InfoPath Debugger 1.0

Background
 
InfoPath 是Microsoft出品的一個製作電子表單的工具,可能是因爲當初沒有想到會有這麼多Developer會使用InfoPath (全拜SharePoint所賜),InfoPath中居然沒有調試功能。試想一下,一個Button觸發m個rule, 一個rule有n個action, 隨着Form的業務邏輯增加,沒有調試功能的缺陷被逐漸放大。一個Button會改變十幾個Data Field的值,而這些變化沒辦法監測,只能在文檔中記載,以至於文檔成爲了InfoPath Developer的調試工具。
 
好在InfoPath還可以添加託管代碼,可以將過於複雜的業務邏輯寫到託管代碼中。但這樣的壞處也不少:發佈時需要Full Trust,會降低整個應用程序的效率等等。如果所有的業務邏輯都寫成託管代碼,InfoPath Form幾乎就是個空殼了。
 
InfoPath Debugger
 
由於本人多次遇到“一個Button引發的血案”,所以下定決心製作一個能調試InfoPath Form的工具,於是有了InfoPath Debugger. 其實目前這個版本,叫做Monitor更好,因爲除了監控之外,並沒有讓用戶輸入調試數據的地方。取這個名就當作是爲以後做打算吧。
 
InfoPath Debugger 的界面相當簡單,點擊File->Open InfoPath Form, 選擇需要Debug的Form就可以了。 這裏就以InfoPath自帶的Travel form做爲例子。
 
Open
 
在Form的下方有一個Tab控件,Auto頁監控一次操作後所有Fields的變化,Watch頁監控你指定的Fields.
 
在 "Name:" text box 中輸入 "Jim Ma",在Auto頁中立刻顯示該操作帶來的變化。其中Path是變化的Field的XPath,可以方便在InfoPath中查找。不過InfoPath沒有查找功能也是一個讓人頭疼的問題,我的另一個Tool --> InfoPathFormInsideViewer還在Beta階段,專門針對InfoPath查找數據的問題,不久應該能發佈。我說"應該"。。。
 
每次操作後,請點擊"Clear"按鈕清空記錄。InfoPath Debugger不會自動清空上一次的記錄。
 
接下來,點擊Trip左上角的圖標,選擇insert,這次操作會導致多個Field變化,都羅列在Auto頁中:
 
切換到Watch頁。Watch頁用於監控指定的Field,當操作導致指定的Field變化時,Watch頁中對應的記錄會變紅。點擊Watch頁右下角的Add按鈕,彈出選擇Field對話框:
 
點擊OK後,選擇的記錄會顯示到Watch頁中。當操作影響到監控的Field時,對應的記錄會變紅,如圖:
 
右鍵可以選擇Remove或Clear Change.
 
Conclusion
 
總的說來,我做這個工具是迫於無奈,因爲InfoPath應該自帶這項功能。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章