略過巡覽連結。
略過巡覽連結      
  為何貼上MultiLanguage後,無法在MultiLanguage中自動取得各元件的文字屬性內容? 觀看回應
在使用MultiLanguage元件時,需要將Form的Localizable的屬性設為True,這樣可以把設計者新增的元件自動產生到本元件的設定內容中。




  如何讓AutoNum保存後得到的新流水號直接顯示在頁面上? 觀看回應
自動編號的同步部分有3個地方需要註意:
1. UpdateComp的ServerModify要設為true。
2. InfoBidingSource的AutoApply要設為true。
3. InfoDataSet的ServerModify要設為true,如果是Web則須設定WebDataSet的ServerModify要設定為True。





  使用InfoTransaction元件,希望符合條件再執行過帳 觀看回應
InfoTransaction元件有BeforeTrans事件,可以通過e.Cancel=true來取消。




  如何在UpdateComp中去決定存入資料庫的內容值? 觀看回應
在UpdateComp的處理事件中(如BeforeInsert/BeforeModify等),如果需要去決定欄位的內容值,可以使用UpdateComp.SetFieldValue(FieldName,Value)方式來設定,但是SetFieldValue()的欄位對象必須是在InfoCommand存在的欄位,否則會發生錯誤,以下是自動決定更改的使用者與時間的範例:
private void ucOrders_BeforeModify(object sender, UpdateComponentBeforeModifyEventArgs e)
{
ucOrders.SetFieldValue("UpdatedUser",this.GetClientInfo(ClientInfoType.LoginUser);
ucOrders.SetFieldValue("UpdatedDate",System.DateTime.Today);
}





  如何在UpdateComp的事件中去自行處理其他資料交易,而不必使用InfoTransaction元件? 觀看回應
在UpdateComp中的事件中,可以使用GetFieldCurrentValue()與GetFieldOldValue()來讀取Client所輸入的欄位新舊值,並透過ExecuteCommand()來自行下出SQL語法,為了讓此SQL命令能配合原來UpdateComp的Transaction須為同一個交易(同步Commit或RollBack),因此可以透過UpdateComp取得此Connection與Transaction,舉例如下:
int QtyOld = UpdateComp1.GetFieldOldValue("Qty");
int QtyNew = UpdateComp1.GetFieldCurrentValue("Qty");
this.ExecuteCommand("update table2 set field = ....", UpdateComp1.conn, UpdateComp1.trans);
需要注意的地方,新增時只能用GetFieldCurrentValue,刪除的時候,只能用GetFieldOldValue。