2024/09/04

作ってみよう:#11)お小遣い帳 - Nomad とノーツクライアントの併用

前回の対応で、Google Map のプレイスタイプを管理するマスタを作成しました。このようなマスタメンテなどは、外出先で行うことはありません。Nomad 対応は不要と言えますし、そもそもノーツクライアントで操作したほうが効率もいいですよね。

現時点の『お小遣い帳』アプリをノーツで開くと Nomad 用に作成した画面が開きます。

そこで今回は、初期画面の表示をノーツクライアントではノーツ用、Nomad では Nomad 用の画面を開くよう、ハイブリッド化を行います。そして、ノーツ用画面にマスタメンテ機能を追加します。

 

ノーツ用設計要素の作成

まず、ハイブリッド化の前にノーツ用の画面(フレームセット)を作成します。複数の設計要素が必要なので、関連が奥の設計要素から順に作成します。


アウトライン

ノーツ用画面の左メニューの構造を作成します。

アウトライン名 olMain

エントリは次の通り作成します。既存のビュー 2 つを指定し、[管理]メニューについては今後の拡張を考え階層化しておきます。

また、必要に応じてアイコンを準備し、セットしておきましょう。今回はトップレベルだけアイコンをセットしています。


ページ - メニュー

先ほど作成したアウトラインを表示するページを作成します。

ページ名 pMenu_Main

配置した埋め込みアウトライアンが体裁よく表示されるようプロパティを調整します。



フレームセット

最後に 3 フレームの一般的なフレームセットを作成します。

フレームセット名 fsMain

各フレームには、作成済みの設計要素を指定します。

ヘッダー frmHeader にセットする pTitle は 第 4 回 で作成した Nomad 用のタイトルのページを流用しています。ビューの『1.日付順』は 第 2 回 で作成したビューです。Nomad 対応では使用していないので、当時の状態のままのはずです。


フレームの設定が終わったら、フレームの高さや幅の設定を整えて完成です。


初期画面の切り替え

ノーツ用の画面が準備できたので、クライアントに応じて起動画面を切り替える設定を追加します。実現方法はいろいろありますが、今回はページを利用して作成します。

新規のページを作成します。

ページ名 pUISelector


ページの Postopen イベントに以下のスクリプトを記述します。

Sub Postopen(Source As NotesUIDocument)
   Dim ns As New NotesSession
   Dim nuiw As New NotesUIWorkspace

   '初期フレームセット切替
   If ns.Platform = "iOS" Or ns.Platform = "Android" Then
      Call nuiw.OpenFrameSet("mfsMain")
   Else
      Call nuiw.OpenFrameSet("fsMain")
   End If

   'ページを閉じる
   Call Source.Close()
End Sub

NotesSession クラスの Platform プロパティでクライアントを判別し、クライアントに応じたフレームセットを開いています。

その後このページは不要になるので閉じています。


ページができあがったら、初期画面がこのページとなるようデータベースのプロパティを変更します。


動作検証

完成したら、動作検証をしましょう。Nomad ではこれまで通り利用でき、ノーツクライアントでは、今回作成したフレームセットが開けば、成功です。


前回 作ってみよう 前回


1 件のコメント:

  1. 私は、初期画面の切替はフレームセットの計算式で行うようにしました。そうすればPC用のフレームセット(や中のページ)、スマホ用のフレームセット(やページ)も切り替えられるので。これなら@関数で記述できるのでLotusScriptが分からない~と言う人でも実装できます。

    返信削除