2021年11月11日木曜日

FileMaker Treeview Navigation

 -

-

-

-

-

-

-

-

-

スクリプト名NavHide(PortalRowNumber)
  • 変数を設定 [ $arg; 値:Get(スクリプト引数) ]
  • If [ IsEmpty ( $arg ) ]
  • 現在のスクリプト終了 [ ]
  • End If
  • 変数を設定 [ $targetPortalRowNumber; 値:$arg ]
  • 変数を設定 [ $_kActive; 値:GetNthRecord ( NavSelector»Nav::_k ; $targetPortalRowNumber ) ]
  • 変数を設定 [ $PortalRowNumber; 値:$targetPortalRowNumber + 1 ]
  • 変数を設定 [ $filter; 値:NavSelector::gNavFilter ]
  • 変数を設定 [ $level; 値:"" ]
  • 変数を設定 [ $MAX; 値:Count ( NavSelector»Nav::_k ) ]
  • Loop
  • Exit Loop If [ $PortalRowNumber > $MAX ]
  • Exit Loop If [ Length ( $level )>Length ( GetNthRecord(NavSelector»Nav::level;$PortalRowNumber) ) ]
  • Exit Loop If [ IsEmpty ( GetNthRecord(NavSelector»Nav::level;$PortalRowNumber) ) ]
  • 変数を設定 [ $_kPotal; 値:GetNthRecord( NavSelector»Nav::_k ; $PortalRowNumber ) ]
  • 変数を設定 [ $filter; 値:Substitute ( $filter ; $_kPotal ; $_kActive & "/" & $_kPotal) ]
  • If [ IsEmpty ( $level ) ]
  • 変数を設定 [ $level; 値:GetNthRecord( NavSelector»Nav::level ; $PortalRowNumber ) ]
  • End If
  • 変数を設定 [ $PortalRowNumber; 値:$PortalRowNumber+1 ]
  • End Loop
  • フィールド設定 [ NavSelector::gNavFilter; $filter ]
  • レコード/検索条件確定 [ ダイアログなし ]
  • ポータルの更新 [ オブジェクト名: "portal_Nav" ]

-

スクリプト名NavShow(_kChild)
  • 変数を設定 [ $arg; 値:Get(スクリプト引数) ]
  • If [ IsEmpty ( $arg ) ]
  • 現在のスクリプト終了 [ ]
  • End If
  • 変数を設定 [ $_kNav; 値:$arg ]
  • フィールド設定 [ NavSelector::gNavFilter; Substitute ( NavSelector::gNavFilter; $_kNav & "/" ; "" ) ]
  • レコード/検索条件確定 [ ダイアログなし ]
  • ポータルの更新 [ オブジェクト名: "portal_Nav" ]

-

スクリプト名NavShowAll
  • フィールド設定 [ NavSelector::gNavFilter; Let( ~val=Substitute ( NavSelector::gNavFilter ; "/" ; ¶ ) ; UniqueValues ( ~val ; 1 ) ) ]
  • レコード/検索条件確定 [ ダイアログなし ]
  • ポータルの更新 [ オブジェクト名: "portal_Nav" ]

-

スクリプト名NavHideAll
  • 変数を設定 [ $MAX; 値:Count ( NavSelector»Nav::_k ) ]
  • 変数を設定 [ $PortalRowNumber; 値:$MAX ]
  • Loop
  • Exit Loop If [ $PortalRowNumber ≤ 0 ]
  • 変数を設定 [ $_kPotal; 値:GetNthRecord ( NavSelector»Nav::_k ; $PortalRowNumber ) ]
  • If [ PatternCount ( $filter ; $_kPotal & "/" )=0 and $MAX ≠ $PortalRowNumber ]
  • 変数を設定 [ $bool; 値:Let([ ~p1=GetNthRecord ( NavSelector»Nav::level ; $PortalRowNumber ) ;~p2=GetNthRecord ( NavSelector»Nav::level ; $PortalRowNumber+1 ) ]; Case( ~p1 = ~p2 ; 0; IsEmpty ( ~p2 ) ; 0; Length ( ~p1 )>Length ( ~p2 ) ; 0; 1 ) ) ]
  • If [ $bool ]
  • スクリプト実行 [ 「NavHide(PortalRowNumber)」; 引数: $PortalRowNumber ]
  • End If
  • End If
  • 変数を設定 [ $PortalRowNumber; 値:$PortalRowNumber-1 ]
  • End Loop
  • レコード/検索条件確定 [ ダイアログなし ]
  • ポータルの更新 [ オブジェクト名: "portal_Nav" ]

-

0 件のコメント:

コメントを投稿