202210FunctionTalkInNotesKnowsWorkshop40th

378 Views

March 10, 24

スライド概要

Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第40回は @NewLine、@Char と @ReplicaID について

profile-image

Notes/Domino worker - Formula language ♡er, #IBMChampion '15 & #HCLAmbassador '20 - '23, Nature Game (Sharing Nature) leader

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

@ -notes knows community- 2022/10/13 @関数Talk 第40回 公開版 @ Talks around @Functions in Notes and Domino ✔ @NewLine ✔ @Char 40th ✔ @ReplicaID 阿部 覚 (tw:) @abesat

2.

@ 今回触れる内容には、 もしかするとNotesの利用環境によっては 結果にずれが無いとも限りません 「私がWindows (10) で行った場合はこうだった」 ということでご承知おきください @

3.

@ ひきつづき… @

4.

@ @NewLine で放談 @

5.

を続けてゆくのですが @ 今回まず触れたいのは、ヘルプでのこんな記述 この関数は選択式、非表示切り替え式、列式、ウィンドウタイトル 式、フォーム式、および @Prompt 内では機能しません。 @Prompt 式内で改行を挿入する場合は、@Char を参照してく ださい。 そこで @

6.

@ @Char @ でも放談するよ

7.

先に@Charのお話から @ ヘルプ冒頭には、こうあります IBM コードページ 850 のコード番号を、対応する 1 文字の文字列 に変換します。 これだけだと正直???ですが、 要は「文字コード」に対応する1文字を返す関数です @

8.

例えばこんな式は @ 👇 こんな結果を返します 👇 👇 @

9.

しかし、こういった普通の文字を使う例は、 @ 実アプリでは見かけたことはないです ヘルプには次の3つの用い方が載っています @Char(10) では改行が返されます。 @Char(9) ではタブが返されます。 @Char(13) を @Prompt 式で使用すると、改行が返されます。 @ 改行を表す数には10と13の 2つがあるらしい。 これはNotes/Dominoに限らない 文字コードの世界で共通のうんちくらしいですが、 このプレゼンでの詳述は避け、口頭でフォローします

10.

とにかく@Promptでそれぞれの改行を試しましょう @ こんなアクションボタンを作ってみました それぞれの改行をいっぺんに行っています @

11.

実施結果のプロンプトはこちら @ あれ、どの改行も機能してるよ? @ バージョンアップを重ねるうちに、どの方法でも 動くようになったのかな(謎)

12.

次に、フィールドの初期値として改行を加えてみます @ テキストとリッチテキスト どちらも同じデフォルト値です @

13.

なんと、@NewLineしか機能しないようです @ @ ここまでの結果だけ踏まえると、 いまのバージョンでは、式で改行するには @NewLineだけ覚えておけばよいという結論になっちゃう かもしれませんね

14.

@ @ReplicaID @ で放談

15.

まずはレプリカIDって何?の確認 @ データベース(アプリケーション)を識別する 個別のコードのことですね @

16.

データベース(アプリケーション)内で@ReplicaIDを @ 使用するとこんな感じ 👇 @ 返すのはあくまで「いま、このデータベース」のID よそさまのデータベースのIDは返せません

17.

@ ところで、@Text には隠れたこんな構文があります @Text(日時値;"*") ヘルプには載っていません @

18.

たとえば @ 👇 @ レプリカIDと同様の形式を取り出すことができます

19.

いくつか試してみたサンプルです @ 式 👉 結果の値 @ 左側が日付を表すらしいことがなんとなくわかりますよね

20.

日付の切れ目は0時ではなく9時でした @ 式 👉 結果の値 これはおそらく日本時間でのお話で 世界標準時との時差によるのではと思われます @ つまりレプリカIDは、「日時を変換した値」で できています

21.

であれば、データベースのレプリカIDから @ 正確な作成日時を割り出すことができないか 新規のデータベースをひとつ作ってみました @

22.

@ そもそもプロパティ上に 作成日時とレプリカIDが同時に載っています @

23.

@ したがってこの日時を前掲の式に入れてみれば …でも、ちょっと違います 式 👉 結果の値 @

24.

@ じつは時刻部分は1/100秒単位 こんな式で特定できました 式 👉 結果の値 @

25.

@ 特定した後は、対象のDB内で確かめ算を行い、 式 👉 結果の値 @ReplicaIDとの一致を確認できました♥ @

26.

@ 今回もお付き合い ありがとうございました 😀 ※今回のプレゼンでは、NotesおよびDomino Designer を 12.0.1 にアップグレードしています @