Appendix BClient端元件\InfoRefVal

InfoRefVal

 

 

【功能說明】

用途:使用於Client端,用在GridColumnStyleInfoDataGridViewRefValColumn)以及InfoTextBox可以透過此元件呼叫關聯選單的資料,並充分利用關聯的資料的內容,用於顯示名稱與輸入查表選單或將其部份欄位帶回來,使User界面更親和。例如,可以用此元件使訂單明細表中的Item_No欄位,關聯到Item表,並在Item_no欄位上顯示Item_Name的內容。

 

【元件屬性】

Name(名稱)(string)

元件名稱,用於識別該元件。

 

ActiveBox ( 啟動箱子 ) ( bool)

設置所使用的InfoRefValBox

 

AlwaysClose ( 開啟模式 ) ( bool)

用來控制在此元件被啟動時是否要去下載資料, True 代表不會去下載 ( 會使用 Where 1=0 的方式將資料表打開但沒有資料 ) False 則會下載資料到此資料表中。

 

AllowAddData ( 是否允許資料新增 ) ( bool)

可控制 InfoRefVal 所打開的視窗中內的 DataGridView 是否要有 " 新增 " Button ,並可以新增資料。注意此功能僅針對資料來源為 InfoDataSet 接上 InfoBindingSource 者。

 

AutoGridSize(自動大小)(bool)

下拉的視窗是否要自動跟據欄位數多寡決定視窗的大小。

 

AutoLocate(自動定位)(bool)

設定用戶是否可以通過Keypress事件來自動定位。

 

Caption(抬頭)(string)

用來設定此RefVal視窗的抬頭。

 

CheckData(是否檢查)(bool)

可以設定是否在RefTextBoxDataGridViewRefValColumn輸入資料時,檢查其鍵值是否存在。True為要檢查,False則不要。預設為True

 

ColumnMatch(欄位對應)(collections)

設定從RefVal關聯的資料表中可以傳回部份欄位內容到原來的BindingSource欄位中。此屬性為一個集合,可設定多個欄位的對應關係,也就是說將User所選的RefVal的來源資料表的欄位值,傳回到目前資料表的某欄位上,每個集合的屬性如下:

 

SrcFieldName(來源欄位名稱)(string)指來源資料表的欄位名稱。

ScrGetValue(來源運算式)(string)當不能以ScrFieldName的某個欄位來取值,則改用此運算式呼叫另一個程式來傳回自定的內容值。

DestField(目的欄位名稱)(string)指要設值的目的資料表的欄位,取自來源欄位。

 

 

Columns(顯示欄位明細)(collections)

設定打開下拉視窗時,要顯示那些欄位。此屬性為一個集合,可同時設定多個要顯示的欄位名稱,如果不設定,則顯示所有欄位。其中每個欄位還可以設定如下內容:

 

Column(欄位名稱)(string)要顯示的欄位名稱。

DefaultCellStyle(顯示格式)(string)設定資料顯示格式。

HeaderText(抬頭)(string)要顯示欄位的表頭。此屬性可使用DD資料字典功能,在新增Column時,系統會自動到系統表COLDEF中找到該資料表該欄位的抬頭內容。

Width(寬度)(int32)欄位的寬度。

Visible( 顯示 )( bool) 用來設定是否顯示。

 

 

DataSource(資料源)(InfoBindingSource)

定義下拉的關聯的資料表的來源,如果定義了SelectCommand則就可不必設定此DataSource屬性。

 

DisplayMember(顯示欄位)(string)

用來設定所要對應顯示的欄位名稱,在對應的TextBoxDataGridView中所要顯示的對方欄位名稱。例如以「客戶編號」去找對方「客戶名稱」並顯示出來。

 

Font(字型)(System.Drawing.Font)

用來設定RefVal所顯示的字型

 

IgnoreCase(忽略大小寫)(bool)

用來設定是否忽略大小寫。

PacketRecords ( 傳送記錄數 )( int)

此屬性可是讓 SelectCommand 方式取得的 InfoRefVal 資料,也可以有 PackageRecord 功能,預設為 100

 

SelectAlias(指定資料庫)(string)

配合SelectCommand 設定語法時,在RunTime上去New一個InfoBindingSource,讓RefVal能自行獨自運作。.

 

SelectCommand(關聯資料語法)(string)

設定此RefVal關聯的資料表的資料來源命令語法,系統會根據SelectAlias的資料庫到A/P Server上動態取得此關連選單的資

,在此可以用我們內建的SQL Wizard來建立Select語句;另外也可以用DataSource方式對應到另一個InfoBindingSource,只不過這樣A/P Server也要設定InfoCommand,在Client端則要設定InfoDataSetInfoBindingSource,手續較為煩瑣,使用SelectCommand方式則會內建一個InfoDataSetInfoBindingSourceRefVal內部中。

 

ValueMember(關聯欄位)(string)

用來設定下拉打開關連表單時,要用此欄位去關聯到下拉出來的資料表。例如以「客戶編號」去下拉出客戶資料表的關聯選

單。

 

WhereItem(Where條件項目)(collections)

RefVal被關聯或打開時,此時系統會自動以此Where的條件到後端重新區資料,WhereItem為一個集合,可以設定多個欄位的條件。

其中每個WhereItem可以設定:

 

 FieldName(條件欄位名稱)(string)需要設定條件的欄位名稱。

Condition(條件)(enum)有=,%,%%,><!=,>=,<=,用來控制何種Where條件。

Value(條件值)(string)可設定常數或使用()的函數引用方式取得動態條件值。如可以利用此Value呼叫另一個程式取得其它TextBox.Text內容傳回到此Value,來達到過濾與篩選此RefVal的條件。

 

WhereItemCache(Where條件項目緩存)(bool)

設置是否要緩存WhereItem

 

FormSize(表單尺寸)(bool)

設置RefVal打開的表單大小。

 

 

【事件】

OnActive(被觸發時)

當此RefVal被觸發時的事件。

 

OnClose(被結束時)

當此RefVal被結束或關閉時的事件(取消、確定都會觸發此事件)。

 

OnReturn ( EventArg e)

當此 RefVal 被返回值時的事件。

 

QueryWhere(EventArgs e)

此事件可以讓 User 自行調整 Where SQL 語句 . 如下 :

Private void rvOrdersCustomerID_QueryWhere(object sender, NavigatorQueryWhereEventArgse)

 {

     e.WhereString= " CustomerID= 'ALFKI'"; // 自行改變 Where 的內容

 }

 

【功能函數】

DoColumnMatch(執行欄位對應)

可以讓User在輸入資料時,不經過RefVal的按鈕也能執行ColumnMatch對應設值的動作。

 

【其他說明】

1. InfoRefval 如果 ValueMember DisplayMember 是同一個欄位時,系統會自動不去尋找資料,以加快顯示速度。

 

 

Top of Page