이 범주에서는 웹한글 기안기에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.
웹한글 기안기의 API 사용/연동은 개발 가이드 를 참조하세요.
일반 문의는 한글과컴퓨터 웹사이트의 고객 지원 을 이용하세요.
개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.
안녕하세요.
개인정보보호위원회 프로젝트 진행중 질의드립니다.
한글파일 내에 누름틀과 셀필드를 각각 셋팅하고 있는데요.
for문 안에서 구분이 표일경우 셀로 이동>줄추가 >셋아이템 text 를 하고 누름틀일경우 필드로이동>put텍스트
이렇게 하고있는데 for문안에서 순서가 누름틀>표 이면 셋팅이 잘되는데 표>누름틀을 하면 누름틀이 셋팅이 안되는데 어떻게 해야할까요.?
hsoh
10월 11, 2023, 2:13오전
2
안녕하세요.
질문 하신 내용이 잘 이해되지 않는데… 관련 코드를 올려주실 수 있으실까요?
vaObjIdArr 에 있는 dm~은 누름틀이름별 데이터 정보이고, ds~는 표의 셀필드명별 정보입니다.
현재는 한글파일내에 누름틀이 위에 있고, 셀필드가 있는 표는 마지막 페이지에 있습니다.
아래와 같이 누름틀 > 표 순서대로 데이터를 셋팅하면 데이터가 잘 들어갑니다.
vaObjIdArr = [“dmHangulSample”, “dsVltnArtclList”];
아래와같이 표>누름틀 순서대로 데이터를 셋팅하면 누름틀은 데이터가 셋팅되지 않습니다.
vaObjIdArr = [“dsVltnArtclList”, “dmHangulSample”];
[스크립트]
var vaObjIdArr = [“dmHangulSample”, “dsVltnArtclList”];
for(var i=0; i<vaObjIdArr.length; i++){
var vsObjId = vaObjIdArr[i]; //데이터셋,데이터맵 ID
var voObjId = voHostApp.lookup(vsObjId);
if(voObjId == undefined) return;
var vaColumnNm = voObjId.getColumnNames();
if(voObjId.type == "dataset") { //데이터셋일 경우 표
var vnRowCnt = voObjId.getRowCount();
//해당 데이터셋의 첫번째 컬럼명으로 이동
moHangulEditor.MoveToField(vaColumnNm[0], true, true, false);
var act = moHangulEditor.CreateAction("InsertText");
var set = act.CreateSet();
act.GetDefault(set);
for(var i=0; i<vnRowCnt; i++){
if(i != (vnRowCnt-1)){
moHangulEditor.Run("TableInsertLowerRow"); //줄 삽입
}
if(i > 0) {
moHangulEditor.Run("TableLowerCell"); //셀 이동: 셀 아래
}
moHangulEditor.Run("TableColBegin"); //셀 이동: 열 시작
for(var j=0; j<vaColumnNm.length; j++){
var vsColNm = vaColumnNm[j]; //컬럼명
var vsColVal = voObjId.getValue(i, vsColNm);
if(j > 0){
moHangulEditor.Run("TableRightCell"); //오른쪽셀로이동
}
set.SetItem("Text", vsColVal);
act.Execute(set);
}
}
} else {
for(var j=0; j<vaColumnNm.length; j++){
var vsColNm = vaColumnNm[j]; //컬럼명 (필드ID)
var vsColVal = voObjId.getValue(vsColNm);
if(moHangulEditor.FieldExist(vsColNm)){
moHangulEditor.MoveToField(vsColNm, true, true, false);
moHangulEditor.PutFieldText(vsColNm, vsColVal);
}
}
}
moHangulEditor.Run("MoveDocBegin"); //문서 시작으로 이동
}
hsoh
10월 14, 2023, 1:14오전
4
안녕하세요.
for loop 문의 'var i = 0’의 중첩선언으로 인해 버그가 발생되고 있습니다.
for loop 문의 변수명을 서로 다르게 처리하거나, let 키워드를 쓰시면 정상적으로 동작합니다.
감사합니다.
제 잘못이었네요 … 해결되었어요 … 죄송합니다 ㅠㅠ
하나 더 질문드릴게 있는데요 …
A라는 파일에 누름틀 field1, field2 두개가 있는데,
A 파일 open 하면 moHangulEditor.GetFieldList(1,2) → field1{{0}}\x02field2{{0}} 로 조회되서 아래처럼
필드{{일련번호}}로 텍스트를 넣고 있어요.
moHangulEditor.MoveToField(“field1{{0}}”, true, true, true);
moHangulEditor.PutFieldText(“field1{{0}}”, “텍스트”);
순서는 A파일 open → PutFieldText → A파일 insertFile → PutFieldText 이구요.
처음 open했을 때는 텍스트 셋팅이 잘되는데, 똑같은 A파일을 insertFile하여 callback 함수에서 똑같이 텍스트를 넣으려고 하는데, insertFile한 문서에 있는 필드를 못찾는데 원인을 모르겠어요. 답변 부탁드립니다.
/**
문서 open 시 필드목록 field1{{0}}\x02field2{{0}}
문서 insertFile 시 필드목록 field1{{0}}\x02field2{{0}}\x02field1{{1}}\x02field2{{3}}
*/
var vsFieldList = moHangulEditor.GetFieldList(1,2);
var vaFieldList = ValueUtil.split(vsFieldList, “\x02”);
for(var k=0; k<vaFieldList.length; k++){
var vsColNm = vaFieldList[k]; //컬럼명 (필드ID)
if(moHangulEditor.FieldExist(vsColNm)){
moHangulEditor.MoveToField(vsColNm, true, true, true);
moHangulEditor.PutFieldText(vsColNm, "test" + vsColNm);
}
}
위에 질문 관련하여 다시 질문드립니다.
A파일에는 누름틀이 ldnPath, incdntNm, trmnDate,trmnRsn 가 존재합니다.
A파일 open 후 callback에서 조회되는 GetFieldList(1,2)
=> ldnPath{{0}}\x02incdntNm{{0}}\x02trmnDate{{0}}\x02trmnRsn{{0}}
A파일 open callback에서 insertFile을 합니다. insertFile callback에서 조회되는 GetFieldList(1,2)
=> ldnPath{{0}}\x02incdntNm{{0}}\x02trmnDate{{0}}\x02trmnRsn{{0}}\x02ldnPath{{1}}\x02incdntNm{{2}}\x02trmnDate{{4}}\x02trmnRsn{{6}}
insertFile 후 필드목록에 {{1}} 이이면 FieldExist(incdntNm{{1}}) 이면 true인데, 위에서 조회된 FieldExist(incdntNm{{2}}) 는 false입니다.
** incdntNm{{1}} 이 아닌 incdntNm{{2}} 로 조회되는 현상으로 다시 문의드립니다.
hsoh
10월 16, 2023, 1:28오전
7
안녕하세요.
말씀해주신대로 확인했을 때, 조회번호가 잘못 설정되는 현상을 확인했습니다.
이렇게 반환되는게 맞는 동작입니다.
ldnPath{{0}}\x02incdntNm{{0}}\x02trmnDate{{0}}\x02trmnRsn{{0}}\x02ldnPath{{1}}\x02incdntNm{{1}}\x02trmnDate{{1}}\x02trmnRsn{{1}}
해당 현상은 신속히 수정하여 다음 패치에 반영할 수 있도록 하겠습니다.
감사합니다.
다음 패치면 언제인거에요?
테스트 후 배포해야해서요
hsoh
10월 16, 2023, 7:45오전
9
안녕하세요.
대략 4분기 말일 (12월) 즈음으로 예상됩니다만, 회사 내부사정으로 인해 좀 더 늦어질 수 있습니다.
정확한 일정을 알려드릴 수 없는 점 양해 구합니다.
감사합니다.