[C#.NET][Infopath 2010] 如何在 VSTA 中套用公式

[C#.NET][Infopath 2010] 如何在 VSTA 中套用公式

上篇[Infopath 2010] 控制項資料過濾,提到了過濾功能,Infopath有一個很貼心的功能,就是它可以顯示XPath,我們就可以把這串公式弄到程式裡面,

2010-5-6 下午 11-57-05

 

 

接下來我們來實際演練一下


public void CTRL41_5_Clicked(object sender, ClickedEventArgs e)
{
    XPathNavigator root = MainDataSource.CreateNavigator();
    string queryString = "../my:source[. = '高雄市']";
    //因為要過濾source欄位的資料所以先建立一個source節點
    XPathNavigator source = root.SelectSingleNode("/my:myFields/my:source", this.NamespaceManager);
    try
    {
        //檢查公氏有無錯誤
        XPathExpression expression = source.Compile(queryString);
        //query是存放問句結果
        XPathNavigator query = source.SelectSingleNode(queryString, this.NamespaceManager);
        //顯示結果
        XPathNavigator field2 = source.SelectSingleNode("/my:myFields/my:field2", this.NamespaceManager);
        field2.SetValue(query.Value);
    }
    catch (Exception ex)
    {
        Debug.Write(ex.Message);
    }
}

 

XPathExpression 類別表示已編譯的 XPath 運算式,如果它發生例外表示格式不對。

Note:試了半天次要資料庫卻沒有辦法這樣做,可能資料結構不太一樣,晚了先休息。

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo