2024/09/05

作ってみよう:#12)お小遣い帳 - ノーツ用フォームの修正とテスト機能追加

前回の対応で、それぞれのクライアント用の画面を作成し、Nomad - ノーツ ハイブリッド環境ができました。この機能を生かして、ノーツからでも Google Map 連係機能が利用できるよう修正します。


フォームの更新

第 4 回 以降 Nomad 用の設計ばかりを作ってきました。ノーツ用フォーム fExpence は放置状態だったので、Nomad 版と同じレベルに修正します。

場所については Nomad 用フォームからカスケードした表ごとコピペすると簡単です。

分類は 1 行 2 列の表をマージンに合わせる設定で作成し、罫線を 0 に設定します(表の上下の段落は非表示)。そこに、Budget と ItemGroup のフィールドを Nomad 用フォームからコピペします。フィールドは、ノーツクライアントに合わせてサイズを調整します(添付の画像では、幅 4.5 cm、高さ 4 cm に設定)。

座標欄は、外側の表に一行追加します。セル内のデザインは場所と同じなので、コピペした後に、フィールドを Nomad 用フォームからコピペします。ボタンは後ほど作業するので名称だけ[入力]に変更します。


マージンに合わせる設定のままだとフォームが間延びするので固定幅とします。添付の画像では、タイトルの表は 12.4 cm、入力欄の列は 10 cm 幅に設定しています。


入力ボタンの作成

ノーツクライアントには通常 GPS は付いていません。Google Map 連係機能を利用するためには座標の入力が必要です。ただ、緯度・経度を手入力するのは大変なので、入力機能を作成します。

入力を補助してくれるのも Google Map です。地図上を右クリックすると座標をクリップボードにコピーする機能があり、これを利用します。

まず、新規で LotusScript のエージェントを作成します。

エージェント名 InputLocation
トリガー イベント
エージェントリストの選択
対象 なし

エージェントのプログラムは次の通りです。

Option Declare

Sub Initialize
   Dim nuiw As New NotesUIWorkspace
   Dim nuid As NotesUIDocument
   Dim nd As NotesDocument
   Dim sTmp As String
   Dim vTmp As Variant
   Dim dLat As Double
   Dim dLng As Double

   On Error GoTo Label_Err

   '座標の入力
   sTmp = nuiw.Prompt(PROMPT_OKCANCELEDIT, "座標の入力", "検索の座標を入力してください。", "")
   vTmp = Split(sTmp, ",")
   dLat = CDbl(Trim(vTmp(0)))
   dLng = CDbl(Trim(vTmp(1)))

   '座標の設定
   Set nuid = nuiw.CurrentDocument
   Set nd = nuid.Document
   nd.Sch_Latitude = dLat
   nd.Sch_Longitude = dLng

Label_Exit:
   Exit Sub

Label_Err:
   Resume Label_Exit
End Sub


エージェントができたら[入力]ボタンで実行するように設定します。


動作検証

完成したら、動作検証です。

ノーツから新規作成し座標を入力します。そのあと[近隣]ボタンでその近辺の情報がリストアップされたら成功です。

これでいちいち Nomad で操作しなくても、検証ができるようになりました。また、その場所にいたことにして検索できるもありがたいですね。


前回 作ってみよう 次回


0 件のコメント:

コメントを投稿