【FileMaker】 모 ○ xcel처럼 행 사이에 행을 추가하고 싶습니다.

라는 제목으로 일을 했으므로 Tips로 남겨 둡니다.

요점은 이런 느낌입니다.


LineNo2 행과 3 행 사이에 행을 점점 추가하고 있습니다.
다음에 LineNo2.5 행 사이에도 점점 줄을 추가해갑니다.

일반적으로 새 레코드를 추가하면 마지막 줄에 추가됩니다.
그 부분은 같습니다만, 이번은 소트 기능을 사용하는 것으로, LineNo 순서로 행이 증가해 가는 것 같은 「착각」을 일으키고 있습니다.

테이블 디자인



표에서는
· 일련 번호를 보유하는 필드
· 신규 작성 행시에 자동으로 들어가는 일련 번호의 필드
있다면 충분합니다.


스크립트



단순히 한 줄 마지막 줄에 추가(파란 버튼)



행 아래에 한 행 추가하는 스크립트와 공통으로 구현하고 있습니다.
단순히 한 줄 추가하면 스크립트 인수에 LineNo를 지정하지 않고 실행합니다.


줄 아래에 한 줄 추가(녹색 버튼)



현재행을 스크립트의 인수로서 건네주고, 다음의 행의 LineNo(그림중(1))와의 등분(그림중(2))을 구해, 신규 작성행의 LineNo로 합니다.
항상 등분하므로, 선택한 (버튼을 누른) 행의 LineNo와 다음 행의 중간 값이 됩니다.
마지막으로 LineNo를 오름차순으로 정렬합니다 (그림에서 (3)).


행 삭제(빨간 버튼)



행을 삭제 중입니다.
에러를 내거나 삭제 플래그를 마련하지 않는 경우는, 스크립트화 하지 않아도 움직입니다.


데이터 재설정(Data Reset 버튼)



행 추가에는 없어도 문제 없습니다만, 테스트를 진행할 때에 필요했기 때문에 만들었습니다.
테이블 데이터를 삭제 (그림 중 (1))하고 일련 번호를 1로 되돌리고 있습니다. (도면 중 (3))
다만, FileMaker의 버전 12~14에서는 테이블 데이터를 1행의 삭제할 수 없기 때문에, 에러 처리와 12~14로 실행했을 때에서도 테이블 데이터를 삭제할 수 있도록 구현하고 있습니다. (도면 중 (2))


레이아웃 설계



이 레이아웃은 LineNo의 오름차순이어야 하기 때문에 레이아웃이 표시되는 단계에서 정렬이 움직이도록 스크립트를 작성하고 스크립트 트리거의 onLayoutEnter에서 지정합니다.


요약



이번 Tips와 같은 행간에 행을 추가한다는 것은 모○xcel에서는 표준 구현이군요.
FileMaker에서도 같은 방식으로 행 사이에 행을 추가하고 싶다면 참고하십시오.

샘플로 만든 파일은 Github에서 공개하고 있으므로 다운로드하여 움직임을 확인해보십시오.
addLine.fmp12라는 파일 이름입니다.
Github Repository : FileMakerSample

좋은 웹페이지 즐겨찾기