다음을 통해 공유


연습: InfoPath 2003 개체 모델을 사용하여 기본 양식 서식 파일 만들기 및 디버깅

이 항목에서는 Microsoft.Office.Interop.InfoPath.SemiTrust 네임스페이스에서 제공되는 InfoPath 2003 호환 개체 모델에 적용되는 기본 InfoPath 관리 코드 양식 서식 파일을 만드는 연습 과정을 제공합니다.

Hello World

다음 예제에서는 InfoPath 2003 호환 개체 모델의 Alert 메서드를 사용하여 간단한 경고 대화 상자를 표시하는 방법을 보여 줍니다.

InfoPath 2003 호환 개체 모델에서 작동하는 새 InfoPath 양식 서식 파일 만들기

  1. 방법: InfoPath 2003 개체 모델을 사용하여 관리 코드 양식 서식 파일 만들기에 설명된 대로 InfoPath 2003 호환 개체 모델에서 작동하는 새 양식 서식 파일을 만듭니다.

  2. 양식 서식 파일 프로젝트의 이름을 HelloWorld로 지정하고 저장합니다.

    프로젝트 시스템에서 코드 및 프로젝트 파일을 만든 후 InfoPath 디자인 모드에서 빈 양식 서식 파일을 엽니다. 이제 이벤트 처리기를 추가할 준비가 되었습니다.

OnClick 이벤트 처리기로 단추 추가

  1. 탭의 컨트롤 섹션에서 단추 컨트롤을 클릭하여 단추를 보기에 삽입합니다.

  2. 컨트롤을 마우스 오른쪽 단추로 클릭한 후 단추 속성을 클릭합니다.

  3. 레이블을 Alert으로 변경합니다.

  4. ID를 AlertID로 변경합니다.

  5. 양식 코드 편집을 클릭합니다.

    OnClick 이벤트에 대한 이벤트 처리기의 기본 코드가 만들어지고 포커스가 Microsoft Visual Studio Tools for Applications의 코드 편집기로 이동합니다. 이벤트 처리기 작업에 대한 자세한 내용은 방법: InfoPath 2003 개체 모델을 사용하여 이벤트 처리기 추가를 참조하십시오.

    이제 양식 코드를 단추의 이벤트 처리기에 추가할 수 있습니다.

이벤트 처리기에 양식 코드 추가

  1. OnClick 이벤트 처리기에서 다음 코드를 입력합니다.

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    코드 줄에서 마침표를 입력할 때마다 Microsoft IntelliSense 드롭다운 목록이 표시됩니다. 전체 이벤트 처리기는 다음과 같이 됩니다.

    [InfoPathEventHandler(MatchPath="AlertID", EventType=InfoPathEventType.OnClick)]
    public void AlertID_OnClick(DocActionEvent e)
    {
        thisXDocument.UI.Alert("Hello World!");
    }
    
    <InfoPathEventHandler(MatchPath:="AlertID", EventType:=InfoPathEventType.OnClick)>
    Public Sub AlertID_OnClick(ByVal e As DocActionEvent)
        thisXDocument.UI.Alert("Hello World!")
    End Sub
    
    참고 사항참고 사항

    Alert 메서드를 사용하는 대신 System.Windows.Forms 네임스페이스의 MessageBox.Show 메서드를 사용하여 메시지 상자를 표시할 수 있습니다. 이렇게 하려면 System.Windows.Forms 어셈블리에 대한 참조를 추가하고 코드 파일 시작 부분의 지시문에 using System.Windows.Forms; 또는 Imports System.Windows.Forms를 추가한 후 MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)와 같은 코드 줄을 입력해야 합니다.

  2. InfoPath 디자인 모드 창으로 전환한 후 탭의 미리 보기 단추를 클릭합니다.

  3. 미리 보기 창에서 경고 단추를 클릭합니다.

    "Hello World!"라는 텍스트가 있는 메시지 상자가 표시됩니다.

    다음은 양식 코드에 디버깅 중단점을 추가하는 방법을 보여 주는 절차입니다.

양식 코드 디버깅

  1. 코드 편집기에서 줄 왼쪽에 있는 회색 막대를 클릭합니다.

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    빨간 원이 표시되고 코드 줄이 강조 표시되어 양식 코드의 중단점에서 런타임이 일시 중지될 것임을 나타냅니다.

  2. 디버그 메뉴에서 디버깅 시작을 클릭하거나 F5 키를 누릅니다.

  3. InfoPath 미리 보기 창에서 경고 단추를 클릭합니다.

    코드 편집기로 포커스가 이동하고 중단점 줄이 강조 표시됩니다.

  4. 디버그 메뉴에서 프로시저 단위 실행을 클릭하거나 Shift+F8을 눌러 코드를 단계별로 계속 실행합니다.

    Alert 메서드 코드가 실행되고 InfoPath 미리 보기 창에 "Hello World!" 경고가 표시됩니다.

현재 사용자 이름 반환

.NET Framework 클래스를 사용하면 스크립트에서 쉽게 사용할 수 없는 기능에 액세스할 수 있습니다. 이 예제에서는 .NET Framework 클래스를 사용하여 현재 사용자 이름을 검색하는 방법에 대해 알아 봅니다.

OnLoad 이벤트 처리기 추가

  1. 앞에서 만든 InfoPath HelloWorld 프로젝트를 엽니다.

  2. 보기 탭에서 필드 표시를 클릭합니다.

  3. myFields 노드를 마우스 오른쪽 단추로 클릭하고 추가를 클릭합니다.

  4. 이름employee를 입력한 다음 확인을 클릭합니다.

  5. employee 노드를 보기로 끌어 옵니다.

  6. 개발자 탭에서 On Load 이벤트를 클릭합니다.

    그러면 OnLoad 이벤트에 대한 이벤트 처리기의 기본 코드가 만들어지고 포커스가 코드 편집기로 이동합니다. 양식을 로드할 때마다 이 이벤트 처리기의 코드가 호출됩니다. 다음 절차에서는 양식 코드를 추가하여 사용자 이름을 이벤트 처리기에 가져오는 방법을 보여 줍니다.

양식 코드 추가

  1. OnLoad 이벤트 처리기에서 다음 코드를 입력합니다.

    // Store an XML DOM node as a local variable.
    IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    if(nodeEmployee != null)
    {
        if(nodeEmployee.text == "")
        {
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName;
        }
    }
    
    // Store an XML DOM node as a local variable.
    Dim nodeEmployee As IXMLDOMNode
    nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    If Not(nodeEmployee Is Nothing) Then
        If(nodeEmployee.text = "") Then
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName
        End If
    End If
    
  2. 양식을 컴파일하고 미리 봅니다.

    employee 텍스트 상자에 사용자 이름이 채워집니다.

관리 코드 양식 서식 파일을 배포하는 방법에 대한 자세한 내용은 방법: 코드가 포함된 InfoPath 양식 서식 파일 배포를 참조하십시오. InfoPath 개체 모델과 InfoPath 2003 호환 개체 모델에서 작동하는 관리 코드 양식 서식 파일의 일반적인 프로그래밍 작업에 대한 자세한 내용은 InfoPath 2003 개체 모델 이해를 참조하십시오.

참고 항목

작업

방법: InfoPath 2003 개체 모델을 사용하여 이벤트 처리기 추가

개념

InfoPath 2003 개체 모델을 사용하는 초기화 및 정리 코드

InfoPath 2003 호환 개체 모델