379 Views
March 10, 24
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第40回は @NewLine、@Char と @ReplicaID について
@ -notes knows community- 2022/10/13 @関数Talk 第40回 公開版 @ Talks around @Functions in Notes and Domino ✔ @NewLine ✔ @Char 40th ✔ @ReplicaID 阿部 覚 (tw:) @abesat
@ 今回触れる内容には、 もしかするとNotesの利用環境によっては 結果にずれが無いとも限りません 「私がWindows (10) で行った場合はこうだった」 ということでご承知おきください @
@ ひきつづき… @
@ @NewLine で放談 @
を続けてゆくのですが @ 今回まず触れたいのは、ヘルプでのこんな記述 この関数は選択式、非表示切り替え式、列式、ウィンドウタイトル 式、フォーム式、および @Prompt 内では機能しません。 @Prompt 式内で改行を挿入する場合は、@Char を参照してく ださい。 そこで @
@ @Char @ でも放談するよ
先に@Charのお話から @ ヘルプ冒頭には、こうあります IBM コードページ 850 のコード番号を、対応する 1 文字の文字列 に変換します。 これだけだと正直???ですが、 要は「文字コード」に対応する1文字を返す関数です @
例えばこんな式は @ 👇 こんな結果を返します 👇 👇 @
しかし、こういった普通の文字を使う例は、 @ 実アプリでは見かけたことはないです ヘルプには次の3つの用い方が載っています @Char(10) では改行が返されます。 @Char(9) ではタブが返されます。 @Char(13) を @Prompt 式で使用すると、改行が返されます。 @ 改行を表す数には10と13の 2つがあるらしい。 これはNotes/Dominoに限らない 文字コードの世界で共通のうんちくらしいですが、 このプレゼンでの詳述は避け、口頭でフォローします
とにかく@Promptでそれぞれの改行を試しましょう @ こんなアクションボタンを作ってみました それぞれの改行をいっぺんに行っています @
実施結果のプロンプトはこちら @ あれ、どの改行も機能してるよ? @ バージョンアップを重ねるうちに、どの方法でも 動くようになったのかな(謎)
次に、フィールドの初期値として改行を加えてみます @ テキストとリッチテキスト どちらも同じデフォルト値です @
なんと、@NewLineしか機能しないようです @ @ ここまでの結果だけ踏まえると、 いまのバージョンでは、式で改行するには @NewLineだけ覚えておけばよいという結論になっちゃう かもしれませんね
@ @ReplicaID @ で放談
まずはレプリカIDって何?の確認 @ データベース(アプリケーション)を識別する 個別のコードのことですね @
データベース(アプリケーション)内で@ReplicaIDを @ 使用するとこんな感じ 👇 @ 返すのはあくまで「いま、このデータベース」のID よそさまのデータベースのIDは返せません
@ ところで、@Text には隠れたこんな構文があります @Text(日時値;"*") ヘルプには載っていません @
たとえば @ 👇 @ レプリカIDと同様の形式を取り出すことができます
いくつか試してみたサンプルです @ 式 👉 結果の値 @ 左側が日付を表すらしいことがなんとなくわかりますよね
日付の切れ目は0時ではなく9時でした @ 式 👉 結果の値 これはおそらく日本時間でのお話で 世界標準時との時差によるのではと思われます @ つまりレプリカIDは、「日時を変換した値」で できています
であれば、データベースのレプリカIDから @ 正確な作成日時を割り出すことができないか 新規のデータベースをひとつ作ってみました @
@ そもそもプロパティ上に 作成日時とレプリカIDが同時に載っています @
@ したがってこの日時を前掲の式に入れてみれば …でも、ちょっと違います 式 👉 結果の値 @
@ じつは時刻部分は1/100秒単位 こんな式で特定できました 式 👉 結果の値 @
@ 特定した後は、対象のDB内で確かめ算を行い、 式 👉 結果の値 @ReplicaIDとの一致を確認できました♥ @
@ 今回もお付き合い ありがとうございました 😀 ※今回のプレゼンでは、NotesおよびDomino Designer を 12.0.1 にアップグレードしています @