|
為何貼上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。
|
|
|