OBJECT:
STRING LVPATHSERVER,/*서버 폴더 위치*/
STRING LVPATHLOCAL;/*로컬 폴더 위치*/
LVPATHSERVER = STRSUBFIX + 'FILEUPLOAD/TEMPLATE/EDUT804NK/' + 'EDUT804NK_SAMPLE_BOOK_DOC.xlsx';
/*[FILEUPLOAD/TEMPLATE/EDUT804NK/EDUT804NK_SAMPLE_BOOK_DOC.xlsx]*/
LVPATHLOCAL = '*' + GETUSERINFO('user.home') + GETUSERINFO('file.separator') + 'Downloads' + GETUSERINFO('file.separator') + 'EDUT804NK_SAMPLE_BOOK_DOC.xlsx';
/*[*C:\Users\hmoh\Downloads\EDUT804NK_SAMPLE_BOOK_DOC.xlsx]*/
COPYFILE LVPATHLOCAL INTO LVPATHSERVER;
: 서버 위치 지정 후, 로컬 위치 명시
그리고 COPYFILE 로 서버에 파일 저장

BTNDL.Click()
GLOBAL:
STRING MSGTEXT,
STRING STRSUBFIX,
STRING S1,
STRING S2;
MESSAGE DEV C9999 WITH '양식을 다운로드 하시겠습니까?';
IF CONFIRM == 'NO' THEN
RETURN;
ENDIF;
STRSUBFIX = SYSCOMMONNK.GETFILEPATH(SYSCOMMONNK.SESSIONINFO('COMP_CODE'), 'FILE_ROOT');
S1 = STRSUBFIX + 'EDUT804NK_SAMPLE_BOOK_DOC.xlsx';
S2 = '*' + GETUSERINFO('user.home') + GETUSERINFO('file.separator') + 'Downloads' + GETUSERINFO('file.separator') + 'EDUT804NK/EDUT804NK_SAMPLE_BOOK_DOC.xlsx';
COPYFILE S1 INTO S2;
MSGTEXT = ' 엑셀 파일이 생성되었습니다.' + TOCHAR(10) + 'Path : ' + S2;
MESSAGE DEV I9999 WITH MSGTEXT;
핵심코드
STRSUBFIX = SYS..
: 회사 코드와 FILE_ROOT 정보를 이용해서 서버에 있는 파일 저장 기본 경로를 가져옴
: Errors: can not invoke class method:SESSIONINFO 에러 발생,
BEFORE 에 변수 선언 해줘야함
GLOBAL: SYSCOMMONNK SYSCOMMONNK;
CALL DIALOG EDUT804F003NK WITH LOCATION 1050,50 SIZE 400,95;
SET NKRENTITEM8100 TO RESIZE;
BEFORE (EDUT804F003NK)SELECT *
FROM NKRENTITEM3100
WHERE 1 = 2
INTO TMPRENTITEM;
: NKRENTITEM8100 하고 동일한 구조의 임시테이블 생성
READEXCELFILE (EDUT804F003NK)ROWCOUNT = 2; : 헤더 제외 2번쨰 줄부터 읽기ACCESSXLS FILENAME READ.. 로 읽어오고,APPEND ROW TO TMPRENTITEM; 로 추가하고...ACCESSXLS FILENAME READ SHEET 1 'A' ROWCOUNT VALUE TMPRENTITEM_BOOKID;
ACCESSXLS FILENAME READ SHEET 1 'B' ROWCOUNT VALUE TMPRENTITEM_RENTAMOUNT;
ACCESSXLS FILENAME READ SHEET 1 'C' ROWCOUNT VALUE TMPRENTITEM_RETURNEXPECTEDDATE;
ACCESSXLS FILENAME READ SHEET 1 'D' ROWCOUNT VALUE TMPRENTITEM_RETURNDATE;
ACCESSXLS FILENAME READ SHEET 1 'E' ROWCOUNT VALUE TMPRENTITEM_STATUS;
ACCESSXLS FILENAME READ SHEET 1 'F' ROWCOUNT VALUE TMPRENTITEM_OVERDUEAMOUNT;
ACCESSXLS FILENAME READ SHEET 1 'G' ROWCOUNT VALUE TMPRENTITEM_DAMAGEDAMOUNT;
IF TRIM(FILEPATH) == '' THEN
MESSAGE DEV E9999 WITH '파일을 선택해주세요.';
RETURN;
ENDIF;
THIS.READEXCELFILE(SCCOMPANY,FILEPATH);
CLEAR ALL NKRENTITEM8100;
LOOP AT TMPRENTITEM
BEGIN
APPEND ROW TO NKRENTITEM8100;
MOVE-CORRESPONDING TMPRENTITEM TO NKRENTITEM8100;
ENDLOOP;
SHUTDOWN;
끝 이러면 넘어옴
요약해보기
엑셀 파일 서버에 올리기 > 양식다운로드 끝
엑셀로 값 채우기 > 임시테이블 구조만 복사해서 생성 > 엑셀값 반복문으로 임시테이블 채우기 > 그 임시테이블 진짜 테이블에 집어 넣기