위아래 버튼으로 포털 행 재정렬
3733 단어 FileMaker
개요
포털 행의 상하 교환을 버튼으로 실시한다고 하는 것입니다.
아래 화면에 있는 상하의 버튼을 클릭하면 클릭한 행의 상하의 행과 위치가 바뀝니다.
※정렬 순서는 동작 확인용으로 표시하고 있습니다만, 레이아웃상에 없어도 문제 동작에 지장은 없습니다
이번 샘플이라면, 아이 테이블의 「정렬 순서」필드의 값은 1부터의 일련번호인 것이 조건입니다. 스크립트를 일련번호 이외에 대응시키거나, 행의 삭제시에 일련번호가 되는 처리의 궁리가 필요하므로 그 점은 주의해 주세요.
사용자 정의 함수 사용 정보
이번 샘플에서는 스크립트 인수의 전달 및 수신에 커스텀 함수를 이용하고 있습니다.
사용한 커스텀 함수에 대해서는, 이전에 해설을 작성했으므로 그쪽을 참조해 주세요.
스크립트 인수에 대한 설명은 이쪽
상세 설명
테이블 정의
포털을 이용하기 때문에 테이블은 부모와 자식의 2개 정의합니다.
샘플에서는 최소한의 항목만 정의했습니다.
설정에 대한 자세한 내용은 샘플 파일을 참조하십시오.
스크립트 정의
버튼을 눌렀을 때 실제로 정렬을 변경하는 스크립트를 정의합니다.
이번에는 가능한 한 범용적으로 사용할 수있는 스크립트로 하나만 만들고 있습니다.
스크립트 이름 "포털 행 이동 (정렬 필드 이름; 방향)" 1 # ========================================
2 # 概要:
3 # ポータル行の並びを入れ替える
4 # 戻り値:
5 # null
6 # パラメータ:
7 # 並びフィールド名:並び順指定に使用しているフィールド名(テーブルオカレンス名も含める)
8 # 移動の方向:アクティブ行を上に移動->"up", アクティブ行を下に移動->"down"
9 # 呼出元:
10 # 並びを入れ替えたいポータルの上下ボタンのクリック時
11 # 補足説明:
12 # アクティブなポータル行を指定された向きに移動するように行の入れ替えをする
13 # History:
14 # 2015-08-26 新規作成
15 # ========================================
16 If [ #Assign ( Get(スクリプト引数) ) ]
17 変数を設定 [ $recsu ; 値: Count(GetField($並びフィールド名)) ]
18 If [ $向き = "up" and (GetField($並びフィールド名) ≠ 1) // 一番上の行の時は無効 ]
19 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) - 1 ]
20 ポータル内の行へ移動 [ 前の ]
21 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) + 1 ]
22 Else If [ $向き = "down" and ( $recsu > GetField($並びフィールド名) ) // 一番最後の行の時は無効 ]
23 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) + 1 ]
24 ポータル内の行へ移動 [ 次の ]
25 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) - 1 ]
26 End If
27 レコード/検索条件確定 [ ダイアログなし ]
28 End If
간단하게 해설하면, 지정된 방향에 맞추어서 배열용의 필드치를 인접하는 행과 바꾸고 있을 뿐입니다.
이동 선행의 값을 확인하지 않고 1을 가감하고 있을 뿐이므로, 일련 번호인 것이 전제가 되고 있습니다.
포털 정의
포털은 정렬 순서 필드별 정렬을 지정합니다.
버튼 정의
마지막으로 상하 버튼의 정의입니다.
클릭시 호출하는 것은 이전 스크립트입니다.
우선은 「상」버튼으로부터.
다음 "아래"버튼. 실제로는 인수의 "방향"의 값이 다를 뿐입니다.
설명은 이상입니다.
스크립트는 범용성이 있으므로, 그대로 카피해 사용하는 것도 가능할까 생각합니다. (단 자기 책임으로 사용하십시오)
이번 샘플은 이하의 장소에 두었으므로, 자세한 것은 파일을 참조해 주세요.
샘플 파일
Reference
이 문제에 관하여(위아래 버튼으로 포털 행 재정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajisan/items/3cf7516547d5991d6be8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
테이블 정의
포털을 이용하기 때문에 테이블은 부모와 자식의 2개 정의합니다.
샘플에서는 최소한의 항목만 정의했습니다.
설정에 대한 자세한 내용은 샘플 파일을 참조하십시오.
스크립트 정의
버튼을 눌렀을 때 실제로 정렬을 변경하는 스크립트를 정의합니다.
이번에는 가능한 한 범용적으로 사용할 수있는 스크립트로 하나만 만들고 있습니다.
스크립트 이름 "포털 행 이동 (정렬 필드 이름; 방향)"
1 # ========================================
2 # 概要:
3 # ポータル行の並びを入れ替える
4 # 戻り値:
5 # null
6 # パラメータ:
7 # 並びフィールド名:並び順指定に使用しているフィールド名(テーブルオカレンス名も含める)
8 # 移動の方向:アクティブ行を上に移動->"up", アクティブ行を下に移動->"down"
9 # 呼出元:
10 # 並びを入れ替えたいポータルの上下ボタンのクリック時
11 # 補足説明:
12 # アクティブなポータル行を指定された向きに移動するように行の入れ替えをする
13 # History:
14 # 2015-08-26 新規作成
15 # ========================================
16 If [ #Assign ( Get(スクリプト引数) ) ]
17 変数を設定 [ $recsu ; 値: Count(GetField($並びフィールド名)) ]
18 If [ $向き = "up" and (GetField($並びフィールド名) ≠ 1) // 一番上の行の時は無効 ]
19 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) - 1 ]
20 ポータル内の行へ移動 [ 前の ]
21 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) + 1 ]
22 Else If [ $向き = "down" and ( $recsu > GetField($並びフィールド名) ) // 一番最後の行の時は無効 ]
23 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) + 1 ]
24 ポータル内の行へ移動 [ 次の ]
25 フィールドを名前で設定 [ $並びフィールド名 ; GetField ( $並びフィールド名 ) - 1 ]
26 End If
27 レコード/検索条件確定 [ ダイアログなし ]
28 End If
간단하게 해설하면, 지정된 방향에 맞추어서 배열용의 필드치를 인접하는 행과 바꾸고 있을 뿐입니다.
이동 선행의 값을 확인하지 않고 1을 가감하고 있을 뿐이므로, 일련 번호인 것이 전제가 되고 있습니다.
포털 정의
포털은 정렬 순서 필드별 정렬을 지정합니다.
버튼 정의
마지막으로 상하 버튼의 정의입니다.
클릭시 호출하는 것은 이전 스크립트입니다.
우선은 「상」버튼으로부터.
다음 "아래"버튼. 실제로는 인수의 "방향"의 값이 다를 뿐입니다.
설명은 이상입니다.
스크립트는 범용성이 있으므로, 그대로 카피해 사용하는 것도 가능할까 생각합니다. (단 자기 책임으로 사용하십시오)
이번 샘플은 이하의 장소에 두었으므로, 자세한 것은 파일을 참조해 주세요.
샘플 파일
Reference
이 문제에 관하여(위아래 버튼으로 포털 행 재정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hajisan/items/3cf7516547d5991d6be8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)