2020年9月22日火曜日

FIleMaker 検索, ソート ができる 値一覧

FIleMaker 検索, ソート ができる 値一覧

WEBビューアで、検索, ソート ができる 値一覧の代替
Javascript library datatables を使用。https://datatables.net/

動作検証
Windows 10
FileMaker 16,17,18,19

Mac OS
FileMaker 19

iOS
FileMaker Go 19


ValueListsThing|FIleMaker 検索, ソート ができる 値一覧(学習用サンプルファイル)
¥500 税込

動作確認用DEMOファイル
\0
-


ひとつのポップオーバーで異なるデータを切り替える事もできます。


固定のJSONを表示。

[
    {
        "code":"001",
        "区分": "主食"
    },
    {
        "code":"002",
        "区分": "副菜"
    },
    {
        "code":"003",
        "区分": "主菜"
    },
    {
        "code":"004",
        "区分": "乳製品"
    },
    {
        "code":"005",
        "区分": "果物"
    }
]


既存ファイルへの組み込み方法

ファイル:ValueListsThing.fmp12
値一覧で使用したいファイル:テーブルをValueListsThing.fmp12に追加し、検索スクリプトを作成。
例:
スクリプト:検索[personal_infomation]
  • レイアウト切り替え [ 「ValueListsThing」 (ValueListsThing) ]
  • 変数を設定 [ $query; 値:Let ( [ $query ="select '(((連番))):((('||`連番`||')))' ,'(((氏名))):((('||`氏名`||')))' ,'(((氏名_カタカナ_))):((('||`氏名_カタカナ_`||')))' FROM `personal_infomation` WHERE STRVAL(`連番`)||`氏名` LIKE '%{Search}%' FETCH FIRST 10000 ROWS ONLY " ]; Substitute ( $query ; ["`"; "\""] ; ["{Search}"; ValueListsThing::g_Search ] ) ) ]
  • 変数を設定 [ $Result; 値:ExecuteSQL ( $query ; "," ; "},{" ) ]
  • 変数を設定 [ $Result; 値:"[{" & Substitute ( $Result ; [¶ ; "\\\n"] ; ["\"" ; "\\\""] ; ["(((" ; "\""] ; [")))" ; "\""] ) & "}]" ]
  • #columnsを設定
  • テキストを挿入 [ ValueListsThing::g_columns; 「[ { title: "連番", data: "連番" }, { title: "氏名", data: "氏名" }, { title: "フリガナ", data: "氏名_カタカナ_" } ]」 ] [ 選択 ]
  • フィールド設定 [ ValueListsThing::g_dataSet; $Result ]
  • フィールドへ移動 [ ]
  • スクリプト実行 [ 「CreateHTML」 ]
  • 現在のスクリプト終了 [ 結果: Get(スクリプトの結果) ]
例では、ExecuteSQL を使用していまが、以下のようなJSONが出力できれば、通常の検索を使用しても大丈夫です。
[
    {
        "連番": "10001",
        "氏名": "中 美恵子",
        "氏名_カタカナ_": "ナカ ミエコ"
    },
    {
        "連番": "10041",
        "氏名": "畠中 三郎",
        "氏名_カタカナ_": "ハタナカ サブロウ"
    },
    {
        "連番": "10051",
        "氏名": "中沢 美也子",
        "氏名_カタカナ_": "ナカザワ ミヤコ"
    }
]

#columnsを設定
テキストを挿入 の所で、ヘッダーと表示するデータを設定
[
  { title: "連番", data: "連番" },
  { title: "氏名", data: "氏名" },
 { title: "フリガナ", data: "氏名_カタカナ_" }
]

テスト

フィールド:scriptName に
OnClick
を設定
フィールド:fileNameに
ValueListsThing
を設定 ※FileMaker 19 の場合は、fileNameは無しでもOK。

フィールド:columnsに以下を設定
[
  { title: "連番", data: "連番" },
  { title: "氏名", data: "氏名" },
 { title: "フリガナ", data: "氏名_カタカナ_" }
]

フィールド:dataSetに以下を設定
[
    {
        "連番": "10001",
        "氏名": "中 美恵子",
        "氏名_カタカナ_": "ナカ ミエコ"
    },
    {
        "連番": "10041",
        "氏名": "畠中 三郎",
        "氏名_カタカナ_": "ハタナカ サブロウ"
    },
    {
        "連番": "10051",
        "氏名": "中沢 美也子",
        "氏名_カタカナ_": "ナカザワ ミヤコ"
    }
]

WEBビューアの行をクリックしてダイアログが表示されればOK。

Example01.fmp12

ポップオーバーボタンを設置
検索枠、フィールド ValueListsThing::g_Search を配置
WEBビューア を配置。名前:wv_SearchFrame[personal_infomation]


検索、値一覧表示用
スクリプト:SearchVLT[personal_infomation]
  • フィールドへ移動 [ ]
  • #HTMLテンプレート設定
  • フィールド設定 [ ValueListsThing::g_id_html_template; 2 ]
  • #ファイル名設定
  • フィールド設定 [ ValueListsThing::g_fileName; Get ( ファイル名 ) ]
  • #スクリプト名設定
  • フィールド設定 [ ValueListsThing::g_scriptName; "Set[personal_infomation]" ]
  • スクリプト実行 [ 「検索[personal_infomation]」 , ファイル: 「ValueListsThing」 ]
  • 変数を設定 [ $Result; 値:Get(スクリプトの結果) ]
  • Web ビューアの設定 [ オブジェクト名: "wv_SearchFrame[personal_infomation]"; URL: $Result ]
  • オブジェクトへ移動 [ オブジェクト名: "wv_SearchFrame[personal_infomation]" ]

値一覧をクリック、フィールド設定用
スクリプト:Set[personal_infomation]
  • 変数を設定 [ $json; 値:Get(スクリプト引数) ]
  • フィールド設定 [ Example01::Code; JSONGetElement ( $json ; "連番" ) ]
  • フィールド設定 [ Example01::名称; JSONGetElement ( $json ; "氏名" ) ]
  • フィールド設定 [ Example01::フリガナ; JSONGetElement ( $json ; "氏名_カタカナ_" ) ]
-
ご意見・ご質問等などはコチラ。
FILEMAKER プラグイン など フォーラム - Sample Files
-


-

0 件のコメント:

コメントを投稿