ExecuteSQL 결과를 Virtual List로 사용
2531 단어 FileMaker
이것은 범용적인 테이블을 준비해 두어, 필요에 따라서 데이터를 동적으로 설정해 표시하는 것입니다.
이 기법은 ExecuteSQL 함수가 파일 메이커에 추가된 것으로, 지금까지 이상으로 이용하기 쉬워졌다고 생각합니다. 이번에는 간단한 예를 바탕으로 이 구현 방법을 설명해 보겠습니다.
개요
ExecuteSQL 결과 목록의 형식은 다음과 같습니다.
- 레코드 구분은 개행
- 각 필드의 구분은 임의의 캐릭터 라인 (이번은 "|")으로 한 결과 리스트를 돌려준다
이 결과 목록을 전역 필드에 저장하고 Virtual List용 테이블에서 각 레코드의 데이터로 분해되도록 테이블을 정의하면 완료됩니다.
Virtual List에 대한 테이블 정의
먼저 테이블을 정의합니다.
Virtual 테이블의 항목 정의는 다음과 같이 정의됩니다.
※() 안은 샘플 파일의 필드명
1. ExecuteSQL 함수의 결과를 보관 유지하는 글로벌 필드(gALLData)
2. 레코드 번호 필드(ID)
3. SQL 결과 목록에서 레코드 번호와 일치하는 행 데이터를 잘라낸 데이터 보존 필드(RowData)
3. 2의 데이터에서 각 항목으로 분해한 데이터용의 필드를 복수개(F1~F10)
4. 3이 수치인 경우에 이용하는 필드를 3과 동수(num_F1~num_F10)
Virtual List용 레코드 만들기
정의한 후 필요한 몇 분의 레코드를 생성합니다.
샘플에서는 100 레코드 준비했습니다.
각 레코드의 ID 필드에 일련 번호가 올바르게 설정되어 있는지 확인합니다.
여기서 정의 테스트를 위해 gALLData 필드에 필드 구분 기호를 사용하여 만든 데이터를 입력하여 각 레코드의 필드에 올바르게 표시되는지 확인하는 것이 좋습니다.
검색 스크립트
다음에 ExecuteSQL에서 취득하는 검색용 스크립트를 작성합니다.
샘플에서는, 더미의 고객 테이블을 준비해 도도부현에서 검색하고 있습니다.
실제로 작성하는 경우는 에러 처리등을 추가합니다만, 이번은 요점만을 설명하기 위해 생략하고 있습니다.
그리고, VirtualList 테이블의 레코드수 이상의 결과를 받더라도 쓸데 없기 때문에, 필요한 레코드 수분만 받도록 하고 있습니다.
스크립트명 「고객 정보 추출(도도부현)」1 If [#Assign ( Get(スクリプト引数) )]
2 フィールド設定 [VirtualTable::gALLData;
Let ( [ ~query =
"SELECT \"名前\", \"都道府県\",
\"アドレス\", \"年齢\", \"誕生日\", \"電話番号\"
FROM \"@顧客\"
WHERE \"都道府県\" = ?
FETCH FIRST 100 ROWS ONLY " ] ;
ExecuteSQL ( ~query ; "|" ; "" ; $都道府県)
)]
3 レコード/検索条件/ページへ移動 [最初の]
4 End If
검색용 스크립트 호출 버튼
마지막으로 도도부현을 지정해 스크립트를 실행하는 버튼을 작성해 완성입니다.
클릭 시 정의를 다음과 같이 합니다.
설명은 이상입니다.
조금이라도 도움이되면 다행입니다.
이번 샘플은 이하의 장소에 두었으므로, 자세한 것은 파일을 참조해 주세요.
샘플 파일
Reference
이 문제에 관하여(ExecuteSQL 결과를 Virtual List로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajisan/items/141fddacb1c360b42090
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 테이블을 정의합니다.
Virtual 테이블의 항목 정의는 다음과 같이 정의됩니다.
※() 안은 샘플 파일의 필드명
1. ExecuteSQL 함수의 결과를 보관 유지하는 글로벌 필드(gALLData)
2. 레코드 번호 필드(ID)
3. SQL 결과 목록에서 레코드 번호와 일치하는 행 데이터를 잘라낸 데이터 보존 필드(RowData)
3. 2의 데이터에서 각 항목으로 분해한 데이터용의 필드를 복수개(F1~F10)
4. 3이 수치인 경우에 이용하는 필드를 3과 동수(num_F1~num_F10)
Virtual List용 레코드 만들기
정의한 후 필요한 몇 분의 레코드를 생성합니다.
샘플에서는 100 레코드 준비했습니다.
각 레코드의 ID 필드에 일련 번호가 올바르게 설정되어 있는지 확인합니다.
여기서 정의 테스트를 위해 gALLData 필드에 필드 구분 기호를 사용하여 만든 데이터를 입력하여 각 레코드의 필드에 올바르게 표시되는지 확인하는 것이 좋습니다.
검색 스크립트
다음에 ExecuteSQL에서 취득하는 검색용 스크립트를 작성합니다.
샘플에서는, 더미의 고객 테이블을 준비해 도도부현에서 검색하고 있습니다.
실제로 작성하는 경우는 에러 처리등을 추가합니다만, 이번은 요점만을 설명하기 위해 생략하고 있습니다.
그리고, VirtualList 테이블의 레코드수 이상의 결과를 받더라도 쓸데 없기 때문에, 필요한 레코드 수분만 받도록 하고 있습니다.
스크립트명 「고객 정보 추출(도도부현)」1 If [#Assign ( Get(スクリプト引数) )]
2 フィールド設定 [VirtualTable::gALLData;
Let ( [ ~query =
"SELECT \"名前\", \"都道府県\",
\"アドレス\", \"年齢\", \"誕生日\", \"電話番号\"
FROM \"@顧客\"
WHERE \"都道府県\" = ?
FETCH FIRST 100 ROWS ONLY " ] ;
ExecuteSQL ( ~query ; "|" ; "" ; $都道府県)
)]
3 レコード/検索条件/ページへ移動 [最初の]
4 End If
검색용 스크립트 호출 버튼
마지막으로 도도부현을 지정해 스크립트를 실행하는 버튼을 작성해 완성입니다.
클릭 시 정의를 다음과 같이 합니다.
설명은 이상입니다.
조금이라도 도움이되면 다행입니다.
이번 샘플은 이하의 장소에 두었으므로, 자세한 것은 파일을 참조해 주세요.
샘플 파일
Reference
이 문제에 관하여(ExecuteSQL 결과를 Virtual List로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajisan/items/141fddacb1c360b42090
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음에 ExecuteSQL에서 취득하는 검색용 스크립트를 작성합니다.
샘플에서는, 더미의 고객 테이블을 준비해 도도부현에서 검색하고 있습니다.
실제로 작성하는 경우는 에러 처리등을 추가합니다만, 이번은 요점만을 설명하기 위해 생략하고 있습니다.
그리고, VirtualList 테이블의 레코드수 이상의 결과를 받더라도 쓸데 없기 때문에, 필요한 레코드 수분만 받도록 하고 있습니다.
스크립트명 「고객 정보 추출(도도부현)」
1 If [#Assign ( Get(スクリプト引数) )]
2 フィールド設定 [VirtualTable::gALLData;
Let ( [ ~query =
"SELECT \"名前\", \"都道府県\",
\"アドレス\", \"年齢\", \"誕生日\", \"電話番号\"
FROM \"@顧客\"
WHERE \"都道府県\" = ?
FETCH FIRST 100 ROWS ONLY " ] ;
ExecuteSQL ( ~query ; "|" ; "" ; $都道府県)
)]
3 レコード/検索条件/ページへ移動 [最初の]
4 End If
검색용 스크립트 호출 버튼
마지막으로 도도부현을 지정해 스크립트를 실행하는 버튼을 작성해 완성입니다.
클릭 시 정의를 다음과 같이 합니다.
설명은 이상입니다.
조금이라도 도움이되면 다행입니다.
이번 샘플은 이하의 장소에 두었으므로, 자세한 것은 파일을 참조해 주세요.
샘플 파일
Reference
이 문제에 관하여(ExecuteSQL 결과를 Virtual List로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajisan/items/141fddacb1c360b42090
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ExecuteSQL 결과를 Virtual List로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hajisan/items/141fddacb1c360b42090텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)