누름틀 및 필드에 데이터 셋팅 중 질문드립니다.

이 범주에서는 웹한글 기안기에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.

  1. 웹한글 기안기의 API 사용/연동은 개발 가이드를 참조하세요.
  2. 일반 문의는 한글과컴퓨터 웹사이트의 고객 지원을 이용하세요.
  3. 개인정보가 포함되지 않도록 유의하세요. 게시글 또는 댓글에 개인정보가 포함된 내용이 있을 경우 게시물이 숨김처리 될 수 있습니다.

안녕하세요.
개인정보보호위원회 프로젝트 진행중 질의드립니다.

한글파일 내에 누름틀과 셀필드를 각각 셋팅하고 있는데요.

for문 안에서 구분이 표일경우 셀로 이동>줄추가 >셋아이템 text 를 하고 누름틀일경우 필드로이동>put텍스트

이렇게 하고있는데 for문안에서 순서가 누름틀>표 이면 셋팅이 잘되는데 표>누름틀을 하면 누름틀이 셋팅이 안되는데 어떻게 해야할까요.?

안녕하세요.
질문 하신 내용이 잘 이해되지 않는데… 관련 코드를 올려주실 수 있으실까요?

vaObjIdArr 에 있는 dm~은 누름틀이름별 데이터 정보이고, ds~는 표의 셀필드명별 정보입니다.
현재는 한글파일내에 누름틀이 위에 있고, 셀필드가 있는 표는 마지막 페이지에 있습니다.

  1. 아래와 같이 누름틀 > 표 순서대로 데이터를 셋팅하면 데이터가 잘 들어갑니다.
    vaObjIdArr = [“dmHangulSample”, “dsVltnArtclList”];

  2. 아래와같이 표>누름틀 순서대로 데이터를 셋팅하면 누름틀은 데이터가 셋팅되지 않습니다.
    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"); //문서 시작으로 이동
	
}

안녕하세요.

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);
    

    }

}

위에 질문 관련하여 다시 질문드립니다.

  1. A파일에는 누름틀이 ldnPath, incdntNm, trmnDate,trmnRsn 가 존재합니다.

  2. A파일 open 후 callback에서 조회되는 GetFieldList(1,2)
    => ldnPath{{0}}\x02incdntNm{{0}}\x02trmnDate{{0}}\x02trmnRsn{{0}}

  3. 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}} 로 조회되는 현상으로 다시 문의드립니다.

안녕하세요.

말씀해주신대로 확인했을 때, 조회번호가 잘못 설정되는 현상을 확인했습니다.

이렇게 반환되는게 맞는 동작입니다.
ldnPath{{0}}\x02incdntNm{{0}}\x02trmnDate{{0}}\x02trmnRsn{{0}}\x02ldnPath{{1}}\x02incdntNm{{1}}\x02trmnDate{{1}}\x02trmnRsn{{1}}

해당 현상은 신속히 수정하여 다음 패치에 반영할 수 있도록 하겠습니다.

감사합니다.

다음 패치면 언제인거에요?
테스트 후 배포해야해서요

안녕하세요.

대략 4분기 말일 (12월) 즈음으로 예상됩니다만, 회사 내부사정으로 인해 좀 더 늦어질 수 있습니다.

정확한 일정을 알려드릴 수 없는 점 양해 구합니다.

감사합니다.