方法及範例

Dispose

釋放 strucform2 資源

// sample code for dispose()

private void RemoveStrucFormFromPanel()
{
    if (strucForm != null)
    {
        if (strucForm.IsEnlarged) // IsEnlarged is a property to check if the form is enlarged
        {
            strucForm.RestoreToOriginalParent();
        }
        panel.Controls.Remove(strucForm);
        strucForm.Dispose();
    }
}  

GetTextAsync

取得病歷表單文字

範例

帶回表單中的純文字內容。

// Get the current text from the WebView2 control
    string text = await strucForm.GetTextAsync();

InitAsync

起始表單,參見 起始方法及參數設定

InsertTemplateAsync

插入子表單

表單中的段落輸入框可以支持插入子表單,帶回純文字,除了段落輸入框內建的快捷鍵,調出表單清單選用外,也可利用 InsertTemplateText(option) 呼叫選用子表單,其中 option 為以 '##' 包裹 子表單ID 的文字。

範例

以下範例示範 InsertTemplateAsync ("##FormID##") 帶入預設子表單 FormID

// 呼叫 insertTempalteTextAsync 帶入子表單以及表單內容(option)
    bool insertSuccess = await strucForm.InsertTemplateAsync("##781aaca9-7ead-405a-ac29-1050daed47d5##");

插入文字

可以將純文字範本插入基礎表單段落輸入框的游標位置。

範例

// Insert template text at a specific position
    bool insertSuccess = await strucForm.InsertTemplateAsync("Sample text", 5);

插入子表單/文字組合

使用者也可利用 InsertTemplateAsync ("##FormID##") 動態呼叫快捷表單 FormID 填寫,並將表單的文字結果插入基礎表單段落輸入框的游標位置。

範例

// 僅插入子表單範本
    bool insertSuccess = await strucForm.InsertTemplateAsync("##781aaca9-7ead-405a-ac29-1050daed47d5##");

// 插入文字以及子表單組合
    bool insertSuccess = await strucForm.InsertTemplateAsync("more text before form ##781aaca9-7ead-405a-ac29-1050daed47d5## more text after form");

// 插入多個文字以及子表單範本
    bool insertSuccess = await strucForm.InsertTemplateAsync("happy to new textbox \nmoretext\n");
    bool insertSuccess = await strucForm.InsertTemplateAsync("##781aaca9-7ead-405a-ac29-1050daed47d5##");

LoadDocAsync

可依照 Configuration 檔頭指定的 chtno, deptno, opdno, templateID, docType 參數取出最近一次儲存結構化文件

範例

// Load the document in the WebView2 control
    bool loadDocSuccess = await strucForm.LoadDocAsync();

MoveToNewWindow

開啟放大視窗,提供更大的結構化輸入畫面。

// Move the control to a new window
    strucForm.MoveToNewWindow();
    Console.WriteLine("Moved to New Window");

RestoreToOriginalParent

關閉放大視窗,將結構化控件移回原本的視窗。

// Restore the control to its original parent
    strucForm.RestoreToOriginalParent();
    Console.WriteLine("Restored to Original Parent");

RequiredDoneAsync

查詢必填欄位是否完成,完成的話回傳 true

範例

private async void SaveSubjective(object sender, EventArgs e)
{
    try
    {
        // 如果必填欄位完成才存檔
        bool isDone = await strucForm.RequiredDoneAsync();
        if (isDone ) {
            bool saveDocSuccess = await strucForm.SaveDocAsync();
            Console.WriteLine($"Save Document: {saveDocSuccess}");
        }        
    }
    catch (Exception ex)
    {
        // Handle any exceptions that may occur during the operation.
        MessageBox.Show($"An error occurred: {ex.Message}");
    }
}

ResetFreeTextFormAsync

清空表單段落文字內容。

範例

private async void ResetObjective(object sender, EventArgs e)
{
    try
    {
        // Reset the free text form
        bool resetSuccess = await strucForm.ResetFreeTextFormAsync();
    }
    catch (Exception ex)
    {
        // Handle any exceptions that may occur during the operation.
        MessageBox.Show($"An error occurred: {ex.Message}");
    }
}

SaveDocAsync

儲存文件,可依照 Configuration 檔頭指定的 chtno, deptno, opdno, templateID, docType 參數儲存 xml 以及 key-value 資訊。

private async void SaveSubjective(object sender, EventArgs e)
{
    try
    {
        // Check if the document is saved
        bool isDocSaved = await strucForm.DocSavedAsync();
        Console.WriteLine($"Document Saved: {isDocSaved}");
    }
    catch (Exception ex)
    {
        // Handle any exceptions that may occur during the async operation.
        MessageBox.Show($"An error occurred: {ex.Message}");
    }
}

SetTextAsync

設定病歷表單文字

// Set some text in the WebView2 control
    bool setTextSuccess = await strucForm.SetTextAsync("This is the new text to set in the WebView2 control.");
    Console.WriteLine($"Set Text Success: {setTextSuccess}");

Last updated