【功能說明】
用途:可以用來設定 Query 的對話框的各欄位條件 , 並可組合 User 輸入的條件產生 Query 的SQL 語句 , 可輔助 InfoNavigator.Query 不足之功能 , 並可作為報表條件輸入的對話框 , 不必另外再設計任何 Form 。 除此以外, ClientQuery 還支援特殊輸入元件(如: InfoRefValBox ,InfoComboBox , InfoDateTimePicker 等)
【元件屬性】
Name( 名稱 )(string)
元件名稱,用於識別該元件。
BindingSource ( 資料源) ( InfoBindingSource)
關聯的資料源 ( BindingSource) ,透過本元件對 BindingSource 所對應的資料。
Caption( 抬頭 )(String)
元件抬頭,如果是配合 Panel 顯示時 ,本屬性無效。
Columns( 欄位明細 )(collection)
條件欄位的設定值。可同時設定多個 Columns , 每個 Columns 有以下幾個屬性
Caption( 抬頭 )(string) : 查詢欄位的抬頭 , 如果有設定資料字典時 , 會在選 Column 時自動決定此抬頭。
Column( 欄位 )(string) : 查詢的欄位名稱。
NewLine( 換行 )(bool) : 是否將目前查詢欄位放到新的一行中 , 如果為 False 則會排在前一個欄位的右方。
ColumnType( 欄位類別 )(string) : 該欄位的類別 , 包括 “ ClientQueryTextBoxColumn ” ( 一般 ) ,“ ClientQueryComboBoxColumn ” (Combo) , “ ClientQueryRefValColumn ” ( 關連選單 ) ,“ ClientQueryCalendarColumn ” ( 日曆輸入 ) , Client CheckBox Column ” ( 鈎選輸入 ) 等 五 種 , 預設為 ClientQueryTextBoxColumn 。
DefaultMode( 預設值模式 )(enum) : 該欄位的類別 , Inital 和Focused 兩种,用于當設定欄位的預設時,是開啟 Form 時有預設,還是在進入焦點時才執行預設值,預設為 Initial 。
Operator( 查詢條件 )(string) : 選擇查詢的條件 , 包括 “ = “,“ > ”,“ < ”“ >= ”“ <= ”“ % ”“ %% ” 。
Condition( 查詢關係 )(string) : 選擇與上一個查詢的關係 , 包括 “ or ”,“ and ” 。
TextAlign( 對齊方式 )(string) : 選擇用戶輸入時的Caption 對齊方式 , 包括 “ Left ”,“ Right ”,“ Center ” 。
Width( 顯示寬度 )(int) : 欄位的顯示寬度。
DefaultValue( 預設值 )(string) : 設定該欄位的預設值。此處可以使用字串或數字的常數 ( 固定值 ) 或使用函數方式。
InfoRefVal( 關聯的 InfoRefVal)(String) : 當欄位類別設定為 “ ClientQueryComboBoxColumn ”或 “ClientQueryRefValColum ” 時 , 需要選擇一個InfoRefVal 作為條件欄位的元件對象與資料源。
ExternalRefval( 關聯的外部 InfoRefVal ) (string) :可以用來選擇別的 Form 或Dll 中的 InfoRefVal 物件 , 而非一定要選擇目前Form 上的 InfoRefVal 物件。
Visible( 可否顯示 )(bool) : 用於設定該查詢欄位是否現實,一般可以用於非 User 輸入的固定條件查詢
IsNvarchar( 是否是Nvarchar )(bool) :設置此欄位元在資料庫裡對應的欄位的類型是否為Nvarchar。
InfoDateTimeBox(InfoDateTimeBox)( InfoDateTimeBox) :選擇使用哪個InfoDateTimeBox。
InfoRefButtonAutoPanel( 參考按鈕自動Panel )(bool) :對應InfoRefButton的AutoPanel屬性。
InfoRefButtonPanel( 参考按钮Panel )(Panel) :對應InfoRefButton的Panel屬性。
GapHorizonal( 欄位水平間距 )(int)
欄位水平間距
GapVertical( 欄位垂直間距 )(int)
欄位垂直間距
KeepCondition(保存查詢條件)(bool)
設定是否將上一次查詢的條件保存,以便在下一次查詢中可以自動設定好。
Margin (查詢邊緣)( Margins )
用來設定查詢時,所有欄位標題的最大長度,用此來解決Caption 很長時會無法完整顯示的問題。
Botton ( int) 設定 欄位 標題的下邊距;
Left( int) 設定 欄位 標題的左邊距寬度;
Right( int) 設定 欄位 標題的右邊距寬度;
Top( int) 設定 欄位 標題的上邊距寬度。
TextColor(文字顏色)(System.Drawing.Font)
設定顯示文字的顏色。
【事件】
QueryWhere( EventArgs e)
通過此方法 可以控制 Query 時的 Where 條件語句,同時提供 e.Cancel 來控制是否放棄查詢。
【功能函數】
Execute() : 開啟查詢視窗 , 使用對話框的形式。
Show(PanelObject): 將查詢欄位顯示在 PanelObject 上 , 一般都是用 Dialog( 交談窗 ) 的方式來顯示查詢的欄位 , 如果使用本Method 時即可將 Query 欄位顯示在 PanelObject 中 。
Clear(PanelObject) : 可以將此 Panel 上所有的查詢欄位設定的查詢內容清除 , 即清除查詢條件。
Execute(PanelObject) : 將 Panel 上的查詢欄位顯示出來, 並讓 User 輸入條件 , 當 User 按下 OK 時會自動組成 SQL 的Where 語法 , 並透過配合的 InfoBindingSource 送往 Server 端 , 重新取得資料。
string Execute(bool ExecuteSQL) :
ExecuteSQL 為 True 時與前面Execute() 一樣 , 如果為 False 代表不會去執行 Where 條件 , 而是在 User 按下 OK 時傳回查詢條件 , 按下 CANCEL 時則傳回 NULL 內容代表 User 按下取消。
String GetWhere():
让设计者取得 ClientQuery 所得到的 SQL 語句 , 自行組織 SQL 语句。
String GetWhere(Panel):
从 Panel 中 取得组好的查询 Where 语句。
String GetWhereText() :
可以取得各個查詢欄位的 Captions 與條件內容, 並以sysmsg.xml 中的多語言取得條件的翻譯 , 如 " 客戶編號 等於 2101 , 而且 訂單日期 大於 1/1/2007 , 而且 訂單日期 小於10/31/2007" 等條件說明。
Control GetControl(index)
此 Method 可以取得查詢窗口中該 Column 對應 的元件。 Index 是指在 Columns 中的序號 , 此功能配合 DefalutMode=Focused , 可以用來動態預設與前面條件欄位相關的預設值。
【其他說明】
1. ClientQuery 具有自動排版與預視 ( Preview ) 功能 , 可隨時在設計過程中查看排版情況。除了自動產生對話框的方式,可免除設計條件輸入表單外,亦可配合現有的 SpliterPanel 來自動顯示查詢條件,達到設計 Layout 為目的 。
2. ClientQuery 支援 Varchar 8 或 Char 8 的日期格式之查詢,只要是對方欄位為此型態,系統會自動轉換與處理。
【範例】
ClientQuery 以程式方式設定預設值
(QueryColumns)(clientQuery1.Columns[3]).DefaultValue= DateTime.Today.ToShortDateString();
clientQuery1.Execute( );
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |