[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: form 파일입출력함수
소분류: form 출력
formmerge() 작성일: 1999/10/22
수정일: 2002/07/05

1. 형식: result= formmerge(depth) 2. 기능: formopen()을 사용하여 이미 개방된 폼의 내용을 현재 위치로부터 표준 출력장치로 출력하는 것은 formdump()와 동일하지만 폼을 보다 더 정밀 하게 수동적으로 제어를 할 수 있는 차이점이 있다. (폼의 내용중에서 잘못된 폼 매크로가 사용되었다면 에러 처리된다) 3. 설명 (1) 이 함수를 사용하기 전에 반드시 formopen()을 해야한다. (2) 인자 depth의 값은 0 보다 크거나 같아야 한다.(0보다 작으면 에러 처리됨) (3) 폼의 내용에 명령어 매크로 중에서 반복을 의미하는 repeatendrep이 없을 경우에 depth의 값은 의미가 없고 반복 명령이 단계적으로 중첩이 되어 있다면 depth는 중첩 부분을 탈출하는 깊이(수)의 값이 된다. (4) 폼의 제어 명령어 중에서 stop 명령을 처리하게 되면 이 함수는 종료되며 다시 formmerge()를 수행하면 stop 명령의 다음 위치부터 처리한다. (5) endrep명령을 처리하게 되면 그 위치에서 종료되며 다시 formmerge()를 수행 하면 repeat명령어 다음 위치부터 endrep명령어 사이를 반복 후 종료한다. 이때 formmerge(0)을 계속하게 되면 반복 부분을 영원히 탈출할 수 없으며 formmerge(1)을 해야만 탈출을 할 수 있다. 만일 반복 부분이 이중으로 중첩되어 있을 때 전체 중첩 부분을 탈출하려면 formmerge(2)로 해야한다. (6) end명령을 처리했거나 폼의 마지막까지 처리한 상태에서 이 함수를 실행하게 되면 아무런 출력을 하지 않는다. (7) result의 값은 폼의 현재 상태이며 정수 -1, -2, -3 중의 한 수이다. (8) result가 -1 이면 폼의 끝까지 출력했거나 end명령을 실행한 경우이다. (9) result가 -2 이면 stop 명령에 의해 종료된 경우이다. (10) result가 -3 이면 endrep 명령에 의해 종료된 경우이다. 4. 사용예 제목="1999년 11월 정기모임"; 날짜="11월10일", 장소="먹자갈비", 보낸이="웰동호회 회장"; 이름="홍길동", 회비="10,000", FORM_CNT= 0; formname= helpdir ~ "temp/test.fom"; rtcode= formopen(formname); if(rtcode!=FORM_NOERR) { print("form file open error!\n"); print(); return; } formmerge(0); formclose(); // 최후에 개방된 폼을 닫는다. ------------------------------ [ 출력결과 ] ------------------------------ +--------------------------------+ | 1999년 11월 정기모임 | |--------------------------------| | 홍길동님 안녕하십니까? | | | | 이번 모임은 11월10일 입니다 | | 모임 장소는 먹자갈비이고 | | 홍길동님이 납입할 회비는 | | 일금 10,000원입니다. | | | | | | 웰동호회 회장드림 | | No. 1 | +--------------------------------+

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]