跳轉到

兩種實作方式

SDK 提供兩種外部起單的實作方式,各有其優缺點,可以依照實際需求使用

透過 起單檔案 起單

藉由從指定表單取得 專屬的檔案,透過 C# 的類別 (class) 與強行別的規範,協助開發人員輸入每個欄位的數值。

專屬的檔案

UOF X 能依照各表單的彈性設計結果,匯出成 C# 類別 (class) 格式。

其優點為:

  • 對程式初學者較友善
  • 程式撰寫較直覺,容易找到問題
  • 在開發階段就能避免 資料型態問題

但相對的缺點為:

  • 取得 專屬的檔案 有權限限制,需要表單管理員協助
  • 當表單改版可能就需要 重新 取得新版 專屬的檔案,流程較繁瑣

產生表單內容的程式碼撰寫範例如下

//Ede.Uofx.FormSchema 是表單專屬的檔案物件
var model = new Ede.Uofx.FormSchema() 
{
    Account = "Justin",
    DeptCode = "PRX",
    Urgent = true,
    Opinion = "外部起單測試: " + DateTime.Now,
};

//表單各欄位資料型態明確
model.Fields.C002 = "Justin";
model.Fields.C003 = "Hello";
model.Fields.C004 = decimal.Parse("123.23"); 
model.Fields.C005 = DateTime.Now;

資料型態問題

表單的欄位有許多類型,例如在數值欄位卻寫入英文字串,就會發生資料型態錯誤。

透過 表單代號 起單

相對於透過 起單檔案 起單的方法,此方式可以讓開發人員專注於程式開發,表單資訊可以自行取得,沒有取得表單專屬檔案的問題。

其優點為:

  • 開發流程上更快速
  • 開發彈性較大

但相對的缺點為:

  • 資料型態錯誤需實際送單後才能得知,除錯較困難 (可透過 FieldHelper 協助解決)

產生表單內容的程式碼撰寫範例如下

//表單基本資訊
var formHelper = new FormHelper("JustinTest");
formHelper.ApplyAccount("Justin", "PRX");
formHelper.Urgent();
formHelper.Opinion("外部起單測試: " + DateTime.Now);

//表單欄位
formHelper.FieldAdd("C002", FieldHelper.Base.Text("Justin"));
formHelper.FieldAdd("C003", FieldHelper.Base.Text("Hello"));
formHelper.FieldAdd("C004", FieldHelper.Base.Number(decimal.Parse("123.23")));
formHelper.FieldAdd("C005", FieldHelper.Base.Date(DateTime.Now));

//完成,產生表單物件
var form = formHelper.Complete();