필드네임을 주고 싶습니다.

포럼에 여기저기 찾아서 글 상자를 생성하는 방법은 찾았습니다만…
글 상자를 만든 후 필드네임을 주고 싶은데…
아래 처럼 하니 안되네요 ^^;
글상자를 생성 후
axHwpCtrl1.Run(“ShapeObjTextBoxEdit”);
이후 코딩해도 안되고요 ^^;
C# 에서는 어떻게 처리 해야하나요??
부디 자비를 배풀어 주십시요;;;

DHwpAction hact1 = (DHwpAction)axHwpCtrl1.CreateAction(“DrawObjCreatorRectangle”);
DHwpParameterSet hset1 = (DHwpParameterSet)hact1.CreateSet();
hact1.GetDefault(hset1);
hset1.SetItem(“TreatAsChar”, 0);
hset1.SetItem(“TextWrap”, 3);
hset1.SetItem(“VertOffset”, 9921);
hset1.SetItem(“VertAlign”, 0);
hset1.SetItem(“VertRelTo”, 0);
hset1.SetItem(“HorzOffset”, 17008);
hset1.SetItem(“HorzAlign”, 0);
hset1.SetItem(“HorzRelTo”, 0);
hset1.SetItem(“HeightRelTo”, 2);
hset1.SetItem(“Height”, 10204); // '36mm283.465=15218
hset1.SetItem(“WidthRelTo”, 4);
hset1.SetItem(“Width”, 20409); // '72mm
283.465=20409
hset1.SetItem(“AdjustTextbox”, 1);
hset1.SetItem(“ShapeCreationMode”, 0);
hset1.SetItem(“ShapeCreationType”, 1);

    DHwpParameterSet hsubset1_0 = (DHwpParameterSet)hset1.CreateItemSet("ShapeTableCell", "Cell");	
    DHwpParameterSet hsubset1_0_1 = (DHwpParameterSet)hsubset1_0.CreateItemSet("Cell", "CellCtrlData");	
    DHwpParameterSet hsubset1_0_2 = (DHwpParameterSet)hsubset1_0_1.CreateItemSet("CellCtrlData", "CtrlData");	
    hsubset1_0_2.SetItem("Name", sField); <<< 이부분 필드명 삽입	

    DHwpParameterSet hsubset1_1 = (DHwpParameterSet)hset1.CreateItemSet("ShapeDrawFillAttr", "DrawFillAttr");
    hsubset1_1.SetItem("Type", 0);

    DHwpParameterSet hsubset1_2 = (DHwpParameterSet)hset1.CreateItemSet("ShapeDrawLineAttr", "DrawLineAttr");
    hsubset1_2.SetItem("Style", 1);
    hsubset1_2.SetItem("Width", 34.0158);

    DHwpParameterSet hsubset1_3 = (DHwpParameterSet)hset1.CreateItemSet("ShapeDrawLayOut", "DrawLayOut");
    hsubset1_3.SetItem("CreateNumPt", 4);
    DHwpParameterArray ptset1 = (DHwpParameterArray)hsubset1_3.CreateItemArray("CreatePt", 8);
    ptset1.SetItem(0, 0);
    ptset1.SetItem(1, 0);
    ptset1.SetItem(2, 20409);
    ptset1.SetItem(3, 0);
    ptset1.SetItem(4, 20409);
    ptset1.SetItem(5, 10204);
    ptset1.SetItem(6, 0);
    ptset1.SetItem(7, 10204);
    hact1.Execute(hset1);
1개의 좋아요

안녕하세요!

글상자를 생성 후 필드이름을 부여하고 싶다는 질문을 주셨는데요.

필드 이름을 부여하는 API는 SetCurFieldName 입니다.

글상자에 필드이름을 넣을 때는 글상자의 편집모드로 들어가야지만 해당 API가 적용되는데요.

편집모드로 들어가는 Action이 처음 언급해주신 axHwpCtrl1.Run(“ShpeObjTextBoxEdit”)입니다.

따라서 첨부해주신 코드의 마지막에 생성된 Action을 excute하시면 글상자가 선택된 상태인데 이후에 해당 코드를 넣으시면 정상 동작 할 듯 합니다.

hact1.Execute(hset1);
axHwpCtrl1.Run(“ShapeObjTextBoxEdit”);
axHwpCtrl1.SetCurFieldName(“필드이름부여”);

더 궁금한 점 있으시면 언제든지 문의 주세요!!

2개의 좋아요

안녕하세요…
댓글을 달아주셔서 감사합니다…
알려주신 대로 적용 해보았으나…필드네임이 지정 되지 않습니다 ㅠㅠ
개체속성으로 진입후 글상자 필드네임을 확인 해보았으나 보이지 않고…
GetCurFieldName() , GetFieldList() 코드로 확인 해보았으나…역시 아무것도 존재 하지 않네요 ^^;
무엇이 문제일까요…

1개의 좋아요

안녕하세요.

axHwpCtrl1.Run(“ShpeObjTextBoxEdit”);

axHwpCtrl1.SetCurFieldName(“필드이름부여”);

두개를 각각 다른 버튼의 이벤트로 만들어서 테스트 한번 해보실까요?

글상자에 필드 이름이 부여되려면 글상자가 선택된 상태가 아니라 Editing을 할 수 있는 상태가 되어야 합니다.

  1. 글상자를 선택한 상태에서 axHwpCtrl1.Run(“ShpeObjTextBoxEdit”); 호출해서 편집모드로 들어가져있는지 확인.

  2. 글상자 내부를 클릭해서 직접 편집모드로 들어간 뒤 axHwpCtrl1.SetCurFieldName(“필드이름부여”); 호출해서 필드이름 부여되는지 확인.

어느부분이 안되는지 각각 확인한번 부탁드릴게요

2개의 좋아요

안녕하세요
알려주신대로 각각 다른 버튼 이벤트로 실행했을 했습니다.
2번째 방법으로 확인 해보니 필드네임이 적용 되었습니다.
그러면 첫번째 편집모드로 진입이 안되는거 같은데 해결할 방법이 있을가요?

1개의 좋아요

아…오타가있네요 액션 실행하는데 ㅠ

ShapeObjTextBoxEdit입니다.

Shape에 a가 빠졌네요. 그래서 편집모드로 들어가지 못하고 필드이름 부여가 안됐던거 같습니다.

원문에는 수정해두겠습니다.

2개의 좋아요

감사합니다 ^^
알려주신 내용대로 정상적으로 동작 하였습니다 !!

2개의 좋아요