[C#.NET][Infopath 2007] 如何寫入非字串資料格式 / How to write and clear non-string Format in form service

[C#.NET][Infopath 2007] 如何寫入非字串資料格式 / How to write and clear non-string Format in form service

非字串的資料型態需要做一些處理才能正確的寫到Infopath欄位。

假設我在Infopath使用三個欄位,資料型態分別為date,double,integer

2010-1-8 上午 01-52-14_thumb[3]

2010-1-8 上午 01-04-37_thumb[2]

2010-1-8 上午 01-05-15_thumb[2]

2010-1-8 上午 01-05-50_thumb[3]

 

 

 

寫入這些資料時,必須要動用到xml,

我們觀察一下當欄位是空時,它們的資料格式是如何,設一下中斷點觀察OuterXml屬性

2010-1-8 上午 01-36-17_thumb[5]

1.當欄位是空時資料長這樣

In Local

<my:date xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"></my:date>

In Web

<my:date xsi:nil=\"true\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\"></my:date>
我們可以發現在本機端與在網頁上所呈現的格式不太一樣。

2.接下來,我們在日期欄位隨便選擇一個日期,然後觀察OuterXml屬性。

當欄位資料格式正確且不是空時長這樣:(本機跟網頁都一樣)

<my:date xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\">2010-01-09</my:date>
3.當瞭解空值與非空值的資料格式,我們就可以動手處理了。
4.我們在Write Value按鈕事件中加入以下,並觀察
2010-1-8 上午 02-45-24_thumb[8] 
5.我們在Clear Value按鈕事件中加入以下,並觀察
2010-1-8 上午 02-07-17_thumb[7] 

剛有提到本機端與Web端的空值,長得不太一樣,但是都是一樣的意思,程式碼兩者都適用。

 

 

 

 

 

 

執行結果

範例下載:

WriteNonString.rar

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


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

Image result for microsoft+mvp+logo