婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在Infopath中實現數據有效性驗證的三種方法

在Infopath中實現數據有效性驗證的三種方法

熱門標簽:語音平臺系統 電銷機器人怎么收費 醫院地圖標注 洛陽便宜外呼系統廠家 忻州外呼系統接口對接 湖北穩定外呼系統 地圖標注和圖片標注 滄州智能外呼系統收費 嘟聲的電銷機器人
Infopath的使用避免了最終用戶以完全手寫的方式生成XML數據文件,同時也可以統一XML文件的格式,在MOSS系統和網站開發中被廣泛使用。

  使用Infopath開發一個XML前端表單頁面需要有幾個特定的步驟,如編寫XML示例文件,生成XML Schema文件,在Infopath中導入主數據源,設計Infopath表單呈現,如果需要還可以給表單添加C#事件代碼,如表單打開、保存時所要執行的動作,附加按鈕的執行動作等。讀者如果對Infopath的開發有興趣可以單獨去研究,本文主要介紹在Infopath中如何實現數據的有效性驗證。

  在Infopath中,有三種方法可以實現數據的有效性驗證:

  1. 使用Infopath的內置數據類型。

  2. 給輸入項添加自定義數據驗證條件或驗證事件。

  3. 通過給表單自定義按鈕添加規則或驗證事件來進行數據有效性驗證。

 

使用Infopath內置數據類型進行數據的自動驗證

  這是最簡單的數據驗證方法。在Infopath中添加控件,或給主數據源中的域指定控件的時候,可以為控件的輸入指定數據類型。如果沒有為Infopath指定單獨的主數據源,那么Infopath將按照你在表單中添加的控件來構建數據源結構;如果在表單編輯之前已經指定了主數據源,則控件所接受的數據類型依賴于它所綁定的數據源中域的數據類型,數據源中域的數據類型可在編寫XML Schema文件時單獨指定,如果沒有指定,默認為String類型,表示可接受任何類型的數據。

在Infopath中右鍵單擊要設置數據有效性驗證的控件,點擊“屬性”,或者直接雙擊該控件,在彈出的對話框中設置控件的數據類型,如下圖:    Infopath支持下列數據類型:

文本(string)整數(integer)小數(double)布爾(True/False)超鏈接(anyURI)日期(date)時間(time)日期和時間(datetime)

  在屬性對話框中,我們還可以設置數據的默認值,以及數據格式等。當設置了控件的數據類型后,最終用戶在填寫表單時如果類型不匹配則Infopath會給出相應的提示信息,如:

使用自定義數據驗證條件或驗證事件進行數據有效性驗證

   你可以在Infopath中設置自定義數據驗證條件或編寫自定義事件進行數據的有效性驗證,這需要一些額外的編程開銷或計算機編程方面的知識。

  1. 使用自定義數據驗證條件

  右鍵單擊要設置數據有效性驗證的控件,點擊“屬性”,或者直接雙擊該控件,在彈出的對話框中點擊“數據驗證”按鈕,在彈出的對話框中點擊“添加”,在數據驗證對話框中設置數據驗證條件,并填寫當數據驗證失敗時屏幕的提示信息以及警告對話框要顯示的消息內容。

Infopath已經集成了很多數據驗證條件方便用戶直接選擇,如域中的值大于、小于、等于、包含、不包含等等,如果你想定義自己的匹配模式,可以選擇“匹配模式”或“不匹配模式”,然后在第三個下拉列表中選擇“選擇模式”,在彈出的對話框中編寫自定義模式正則表達式。例如你想規定該域只能接受包含小數點的數字,你可以編寫如下正則:

復制代碼 代碼如下:

-?[0-9]*\.?[0-9]+

然后設置警告信息:

  2. 使用自定義驗證事件

  使用自定義驗證事件需要編寫C#代碼進行數據的有效性驗證,因為Infopath內置了VSTA編程接口,使得我們可以非常方便地通過Visual Studio為Infopath編寫C#代碼以完成一些特定的功能。在這里要注意一下,編寫本文時我本機的開發環境是Visual Studio 2008 + Office 2007,在安裝Office 2007時必須手動將Infopath項下的VSTA選項勾上,否則Infopath默認是不支持VSTA編程接口的。Infopath中的VSTA默認使用的Visual Studio 2005的開發環境,讀者不需要特定去安裝Visual Studio 2005,默認情況下VSTA會將所需的程序及環境配置好。

  右鍵單擊要設置數據有效性驗證的控件,選擇“編程”-“Validating事件”,此時Infopath會聯系Visual Studio打開VSTA工程,在VSTA工程中,我們可以為事件添加自定義方法。有一個地方需要說明,默認情況下Infopath會以VB.NET語言創建VSTA工程,如果你想更改工程語言,可以點擊“工具”-“選項”,在“設計”選項卡中將語言選為C#,同時你還可以設置工程的默認保存位置。如果之前你已經創建了VB.NET語言的VSTA工程,可以通過“工具”-“表單選項”,在“編程”選項卡中刪除代碼,然后重新創建新的VSTA工程,在此處也可以選擇本Infopath表單的VSTA工程的存放位置。

   我們在VSTA中添加如下代碼,以實現我們在上例中限制只接受數字類型的數據驗證效果。 

復制代碼 代碼如下:

public void field1_Validating(object sender, XmlValidatingEventArgs e)
{
if (!e.UndoRedo e.Operation == XmlOperation.ValueChange)
{
// 獲取數據源中域的值
XPathNavigator root = MainDataSource.CreateNavigator();
string field1 = root.SelectSingleNode("http://my:field1", NamespaceManager).Value;

// 檢查用戶輸入項是否匹配正則表達式
System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(@"-?[0-9]*\.?[0-9]+");

if (!regEx.IsMatch(field1))
{
e.ReportError(e.Site, true, "僅允許數字");
}
}
}


  保存代碼并關閉Visual Studio,保存或發布編寫好的Infopath表單,然后直接打開表單實例,在所要驗證的域中輸入內容,當驗證失敗時Infopath會按照驗證事件代碼中的要求彈出相應的提示。

在按鈕上使用規則或驗證事件進行數據有效性驗證

  在Infopath中,除了上面介紹的兩種方法可以實現數據的有效性驗證外,我們還可以通過給表單上的按鈕設置規則及驗證事件來驗證域的數據有效性。

  1. 使用規則進行數據有效性驗證

  例如表單中有一個文本框,一個表達式框和一個按鈕,我們想驗證用戶在文本框中輸入的值是否為一個數字,并且將信息顯示在表達式框中。按照下面的步驟給按鈕添加規則:

右鍵單擊按鈕點擊“屬性”,或者直接雙擊按鈕,在彈出的對話框中點擊“規則”按鈕。在“規則”對話框中點擊“添加”。在“規則”對話框中點擊“添加操作”。在“操作”對話框中,從“操作”下拉列表中選擇“設置域值”。點擊“域”后面的按鈕,在彈出的對話框中選擇表達式框所綁定的域,點擊“確定”關閉對話框。保持“操作”對話框中“值”文本框為空,點擊“確定”關閉,然后關閉“規則”對話框。此時在“規則”對話框中已經添加了一條新的規則,其作用是當按鈕點擊時清空表達式框中的值。按照前面的步驟再添加一條規則,同樣綁定到表達式框上,并將值設置成“僅允許數字”。給規則2設置條件,在“條件”對話框中,選擇要進行驗證的域(此處應該是文本框所對應的域),然后選擇“不匹配模式”,同時設置匹配的正則表達式為-?[0-9]*\.?[0-9]+確定并關閉所有的對話框

  當用戶打開表單實例時,在文本框中輸入非數字,然后點擊按鈕,此時表達式框中會出現相應提示;如果用戶輸入的內容符合驗證規則,則表達式框中的內容被清空。 

  2. 在按鈕上使用驗證事件進行數據有效性驗證

  右鍵單擊按鈕點擊“屬性”,或者直接雙擊按鈕,在“屬性”對話框中點擊“編輯表單代碼”,在VSTA工程代碼中已經新添加了一個按鈕事件,添加下面的代碼: 

復制代碼 代碼如下:

public void CTRL2_5_Clicked(object sender, ClickedEventArgs e)
{
// 獲取表單數據源根節點的引用
XPathNavigator root = MainDataSource.CreateNavigator();

// 清空表達式框中的內容
root.SelectSingleNode("my:field2", NamespaceManager).SetValue("");

// 檢查文本框中的值是否為數字,并且在表達式框中顯示提示信息
string field1 = root.SelectSingleNode("my:field1", NamespaceManager).Value;
System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(@"-?[0-9]*\.?[0-9]+");

if (!regEx.IsMatch(field1))
{
root.SelectSingleNode("http://my:field2", NamespaceManager).SetValue("僅允許數字");
}
}


  注意:在Infopath中,所有的數據驗證僅會給出相應的提示信息,用戶可以強制保存表單并忽略數據有效性驗證的提示信息。另外,本文C#代碼中所使用的主數據源節點名稱(如my:field1,my:field2等)因實際情況而異。

標簽:宜賓 防城港 山南 日照 96 巴彥淖爾 定州 內蒙古

巨人網絡通訊聲明:本文標題《在Infopath中實現數據有效性驗證的三種方法》,本文關鍵詞  在,Infopath,中,實現,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Infopath中實現數據有效性驗證的三種方法》相關的同類信息!
  • 本頁收集關于在Infopath中實現數據有效性驗證的三種方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91精品国产综合久久久久久| 高清av一区二区| 国产精品三级电影| 精品国产伦一区二区三区观看方式| 91黄视频在线观看| 在线亚洲欧美专区二区| 在线观看欧美精品| 欧美在线999| 91精品在线免费| 欧美一级欧美三级在线观看 | 激情欧美日韩一区二区| 日本亚洲最大的色成网站www| 天天av天天翘天天综合网| 亚洲国产日韩综合久久精品| 天堂在线亚洲视频| 另类中文字幕网| 国产精品亚洲视频| 一本色道a无线码一区v| 91成人在线免费观看| 777奇米四色成人影色区| 日韩欧美一级二级三级久久久| 精品粉嫩超白一线天av| 国产精品三级av在线播放| 亚洲欧美另类在线| 另类的小说在线视频另类成人小视频在线| 麻豆一区二区三| av在线综合网| 欧美一区二区久久| 中文字幕欧美激情一区| 一区二区三区精品视频| 韩国三级在线一区| 成人免费视频免费观看| 欧美精品高清视频| 中文字幕不卡三区| 日韩国产高清影视| 不卡的av中国片| 欧美久久高跟鞋激| 国产精品私人影院| 蜜臀久久99精品久久久久宅男 | 欧美日韩成人高清| 精品国产电影一区二区| 亚洲男人电影天堂| 国产精品99久久久久久久女警| 欧美午夜理伦三级在线观看| 国产三级三级三级精品8ⅰ区| 亚洲一级二级在线| 国产麻豆一精品一av一免费| www.激情成人| 国产午夜精品久久久久久久| 亚洲aaa精品| 91麻豆精东视频| 久久久蜜臀国产一区二区| 亚洲国产中文字幕在线视频综合| 国产主播一区二区三区| 69堂国产成人免费视频| 一区二区三区电影在线播| 成人黄色av电影| 日韩一区二区三区视频在线| 亚洲一区二区精品久久av| 97久久超碰精品国产| 久久久天堂av| 国产美女精品一区二区三区| 91精品国产综合久久蜜臀| 午夜欧美电影在线观看| 99精品视频在线免费观看| 久久精品亚洲乱码伦伦中文| 麻豆视频观看网址久久| 日韩一级高清毛片| 日本免费在线视频不卡一不卡二| 欧美性色黄大片手机版| 一区二区三区蜜桃| 欧美性生交片4| 午夜精品影院在线观看| 欧美理论片在线| 天天综合色天天| 日韩视频免费观看高清完整版在线观看| 亚洲观看高清完整版在线观看| 在线观看区一区二| 日韩综合一区二区| 欧美本精品男人aⅴ天堂| 日本亚洲天堂网| 26uuu久久综合| 国产不卡在线一区| 一区二区三区在线免费播放| 欧美午夜不卡视频| 久久成人久久鬼色| 国产日韩欧美电影| 99久久精品国产麻豆演员表| 亚洲精品日韩一| 欧美日韩视频专区在线播放| 日韩成人av影视| 久久蜜桃av一区二区天堂| 国产**成人网毛片九色| 一区二区三区视频在线看| 欧美日韩一区不卡| 国产在线视频一区二区| 国产精品伦一区二区三级视频| 色综合视频一区二区三区高清| 亚洲成人在线观看视频| 久久久久久电影| 91最新地址在线播放| 日本一道高清亚洲日美韩| 久久久久久久精| 欧美性色欧美a在线播放| 久久精品国产一区二区三区免费看| 久久精品欧美日韩精品 | 丝袜美腿成人在线| 久久精品亚洲乱码伦伦中文| 色综合久久99| 久久精品噜噜噜成人av农村| 亚洲人成网站在线| 欧美精品一区二区三区蜜臀| zzijzzij亚洲日本少妇熟睡| 麻豆国产精品777777在线| 国产精品久久久99| 日韩三级免费观看| 91美女蜜桃在线| 国产精品69毛片高清亚洲| 首页国产欧美久久| 国产精品欧美一区喷水| 欧美成人vr18sexvr| 91福利在线播放| 成人午夜视频网站| 国产在线不卡视频| 天天操天天色综合| 亚洲精品国产一区二区精华液 | 亚洲精品一区二区在线观看| 91久久线看在观草草青青| 国产91精品精华液一区二区三区 | 青草国产精品久久久久久| 国产精品久久久久一区二区三区共| 日韩一级成人av| 3atv一区二区三区| 欧美色综合久久| 91极品视觉盛宴| 91麻豆成人久久精品二区三区| 国产精品18久久久| 国产自产高清不卡| 精品一区二区三区免费毛片爱| 日韩电影免费在线看| 亚洲1区2区3区4区| 偷拍日韩校园综合在线| 亚洲18色成人| 性久久久久久久久| 日韩电影一区二区三区| 日韩高清不卡一区二区三区| 亚洲一区在线观看网站| 亚洲精品免费电影| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美一级欧美三级在线观看| 色哟哟国产精品| 欧美中文字幕亚洲一区二区va在线| 成人免费黄色大片| 91麻豆自制传媒国产之光| 色8久久精品久久久久久蜜| 欧美亚洲精品一区| 7777精品伊人久久久大香线蕉经典版下载 | 久久久不卡网国产精品二区| 久久亚洲欧美国产精品乐播| 久久久久久电影| 中文字幕中文字幕一区| 亚洲精品亚洲人成人网| 伊人色综合久久天天人手人婷| 亚洲一区二区视频在线| 天堂午夜影视日韩欧美一区二区| 午夜欧美一区二区三区在线播放| 奇米影视一区二区三区| 韩国欧美国产1区| 成人少妇影院yyyy| 日本道色综合久久| 日韩欧美国产高清| 中文欧美字幕免费| 一区二区不卡在线播放| 蜜臀a∨国产成人精品| 国产成人午夜99999| 91美女片黄在线观看91美女| 欧美高清你懂得| 国产精品美女一区二区三区 | 无码av免费一区二区三区试看| 老司机精品视频导航| 夫妻av一区二区| 欧美剧在线免费观看网站| 精品久久久久一区二区国产| 国产精品久久久久永久免费观看| 午夜精品久久久久久久久久久| 国产黄色成人av| 欧美男同性恋视频网站| 欧美激情在线观看视频免费| 婷婷综合在线观看| 成人性生交大片免费看中文| 5月丁香婷婷综合| 中文字幕在线不卡视频| 美腿丝袜在线亚洲一区| 色综合视频一区二区三区高清| 精品美女一区二区| 亚洲国产精品久久艾草纯爱| 国产a久久麻豆| 日韩美女主播在线视频一区二区三区| 中文字幕一区二区三区色视频| 韩国中文字幕2020精品|