FileMaker로 커스텀 함수를 만들어 보았습니다.
커스텀 함수를 만들어 보았습니다.
피티나에서는, 노구치에 의한 FileMaker의 연수가 월 2회로 개최되고 있습니다만,
FileMaker 초보자 나도 참여하고 있습니다.
이번, 제목으로 「출퇴근을 관리하는 시스템」을 FileMaker로 만들어 보게 되었습니다.
그 가운데, 노동시간을 계산하는데 뒤로 쓰러뜨리고 전도를 하는 시간 계산이 필요하게 되었기 때문에, 커스텀 함수를 사용해 보았습니다.
함수 개요
예를 들어
같은 처리입니다.
이미지 다이어그램 : 후퇴 시간_시(_time; _unit; _i)
코드 : 후퇴 시간_시(_time; _unit; _i)
Let ([
m = Minute ( _time );
h = Hour ( _time );
threshold = _i * _unit
];
Case (
threshold ≥ 60; h+1;
Case (
m = 0; h;
m ≤ threshold ; h;
後倒し時刻_時 ( _time; _unit; _i+1 )
)
)
)
코드:후도해 시간_시(_time; _unit; _i) 개수했습니다! !
후배의 hirata로부터 「n시를 잡는 것만이라면, Loop할 필요 없어」라고 지적을 받았습니다.
확실히! ! 그래서 다음 코드로 다시 작성했습니다.
Let ([
m = Minute ( _time );
h = Hour ( _time );
threshold = 60 - _unit
];
Case (
m > threshold ; h+1;
h
)
)
역치 = 60 - unit 이군요. 부끄러워.
함수 해설
인수 해설
後倒し時刻_時 ( 19:01:00; 15; 0 )
처리 해설
우선, 최초의 Let 함수로,
그런 다음 Case 문에서,
라는 느낌이 듭니다.
마지막으로
왜 재귀 처리를 했는가
사실 FileMaker 함수에서는 루프 처리를 할 수 없습니다. For 또는 While이 없습니다.
그래서 함수 내에서 루프 처리를 하고 싶은 경우, 아무래도 재귀 처리로 해결할 수밖에 없는 것입니다.
또는
(함수가 아닌) 스크립트를 만드는 방법이 있습니다.
그러나 처리 결과를 얻고 싶다면,
그리고, 2단계로 할 필요가 있습니다.
또한 스크립트 작업 공간 (FM13에서는 "스크립트 관리")에 당연히 나오므로,
목록을 신경쓰는 분은 폴더 나누기를 하거나 Lib적인 파일에 작성하도록 하면 좋다고 생각합니다.
도움이되면 다행입니다.
Reference
이 문제에 관하여(FileMaker로 커스텀 함수를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroto_otake/items/cd1a7b59274410d5359e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)