private void CreateWebQueryField(TBlockFieldItem aFieldItem, string Range, bool NewLine) { #if VS90 WebQueryColumnsCollection QueryColumns = new WebQueryColumnsCollection(null, typeof(QueryColumns)); if (string.Compare(aFieldItem.QueryMode, "normal", true) == 0 || string.Compare(aFieldItem.QueryMode, "range", true) == 0) { if (QueryColumns != null) { WebQueryColumns column = new WebQueryColumns(); column.Column = aFieldItem.DataField; column.Caption = string.IsNullOrEmpty(aFieldItem.Description) ? aFieldItem.DataField : aFieldItem.Description; if (string.Compare(aFieldItem.ControlType, "textbox", true) == 0) { column.ColumnType = "ClientQueryTextBoxColumn"; } else if (string.Compare(aFieldItem.ControlType, "combobox", true) == 0) { column.ColumnType = "ClientQueryTextBoxColumn"; } else if (string.Compare(aFieldItem.ControlType, "refvalbox", true) == 0) { column.ColumnType = "ClientQueryTextBoxColumn"; } else if (string.Compare(aFieldItem.ControlType, "datetimebox", true) == 0) { column.ColumnType = "ClientQueryCalendarColumn"; } if (string.Compare(aFieldItem.QueryMode, "normal", true) == 0) { column.Operator = (aFieldItem.DataType == typeof(string)) ? "%" : "="; } else { WebQueryColumns columnrev = new WebQueryColumns(); columnrev.Column = column.Column; columnrev.Caption = column.Caption; columnrev.ColumnType = column.ColumnType; columnrev.Operator = ">="; QueryColumns.Add(columnrev); column.Operator = "<="; } QueryColumns.Add(column); } } WebDevPage.IHTMLElement ClientQuery = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("WebClientQuery1", 0); if (ClientQuery != null) { SetCollectionValue(ClientQuery, typeof(WebClientQuery).GetProperty("Columns"), QueryColumns); } #else WebClientQuery WebClientQuery1 = (WebClientQuery)FPage.FindControl("WebClientQuery1"); if (WebClientQuery1 != null) { if (aFieldItem.QueryMode.ToUpper() == "NORMAL" || aFieldItem.QueryMode.ToUpper() == "RANGE") { WebQueryColumns qColumns = new WebQueryColumns(); qColumns.Column = aFieldItem.DataField; qColumns.Caption = aFieldItem.Description; if (qColumns.Caption == "") qColumns.Caption = aFieldItem.DataField; qColumns.Condition = "And"; if (aFieldItem.QueryMode.ToUpper() == "NORMAL") { if (aFieldItem.DataType == typeof(DateTime)) qColumns.Operator = "="; if (aFieldItem.DataType == typeof(int) || aFieldItem.DataType == typeof(float) || aFieldItem.DataType == typeof(double) || aFieldItem.DataType == typeof(Int16)) qColumns.Operator = "="; if (aFieldItem.DataType == typeof(String)) qColumns.Operator = "%"; } qColumns.NewLine = NewLine; if (aFieldItem.QueryMode.ToUpper() == "RANGE") { qColumns.Condition = "And"; if (Range == "") { qColumns.Operator = "<="; qColumns.NewLine = false; CreateWebQueryField(aFieldItem, ">=", true); } else { qColumns.Operator = Range; } } switch (aFieldItem.ControlType.ToUpper()) { case "DATETIMEBOX": qColumns.ColumnType = "ClientQueryCalendarColumn"; break; case "CHECKBOX": qColumns.ColumnType = "ClientQueryCheckBoxColumn"; break; default: qColumns.ColumnType = "ClientQueryTextBoxColumn"; break; } WebClientQuery1.Columns.Add(qColumns); } IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService)); NotifyRefresh(200); FComponentChangeService.OnComponentChanged(WebClientQuery1, null, "", "M"); } #endif }
/// <summary> /// 加入查询 /// </summary> /// <param name="fieldItem">blockfielditem</param> /// <param name="queryFields">Navigator的查询集合</param> /// <param name="queryColumns">ClientQuery的查询集合</param> /// <param name="tableName">tablename</param> private void GenQuery(TBlockFieldItem fieldItem, WebQueryFiledsCollection queryFields, WebQueryColumnsCollection queryColumns , string tableName) { if (string.Compare(fieldItem.QueryMode, "normal", true) == 0 || string.Compare(fieldItem.QueryMode, "range", true) == 0) { if (queryFields != null) { WebQueryField field = new WebQueryField(); field.FieldName = fieldItem.DataField; field.Caption = string.IsNullOrEmpty(fieldItem.Description) ? fieldItem.DataField : fieldItem.Description; if (string.Compare(fieldItem.QueryMode, "normal", true) == 0) { field.Condition = (fieldItem.DataType == typeof(string)) ? "%" : "="; } else { WebQueryField fieldrev = new WebQueryField(); fieldrev.FieldName = field.FieldName; fieldrev.Caption = field.Caption; fieldrev.RefVal = field.RefVal; fieldrev.Condition = ">="; fieldrev.Mode = InitQueryField(fieldItem, fieldrev); queryFields.Add(fieldrev); field.Condition = "<="; } field.Mode = InitQueryField(fieldItem, field); queryFields.Add(field); } if (queryColumns != null) { WebQueryColumns column = new WebQueryColumns(); column.Column = fieldItem.DataField; column.Caption = string.IsNullOrEmpty(fieldItem.Description) ? fieldItem.DataField : fieldItem.Description; if (string.Compare(fieldItem.ControlType, "textbox", true) == 0) { column.ColumnType = "ClientQueryTextBoxColumn"; } else if (string.Compare(fieldItem.ControlType, "combobox", true) == 0) { column.ColumnType = "ClientQueryComboBoxColumn"; column.WebRefVal = string.Format("wrv{0}{1}QF", tableName, fieldItem.DataField); } else if (string.Compare(fieldItem.ControlType, "refvalbox", true) == 0) { if (fieldItem.RefValNo == String.Empty) column.ColumnType = "ClientQueryTextBoxColumn"; else { column.ColumnType = "ClientQueryRefValColumn"; column.WebRefVal = string.Format("wrv{0}{1}QF", tableName, fieldItem.DataField); } } else if (string.Compare(fieldItem.ControlType, "datetimebox", true) == 0) { column.ColumnType = "ClientQueryCalendarColumn"; } if (string.Compare(fieldItem.QueryMode, "normal", true) == 0) { column.Operator = (fieldItem.DataType == typeof(string)) ? "%" : "="; } else { WebQueryColumns columnrev = new WebQueryColumns(); columnrev.Column = column.Column; columnrev.Caption = column.Caption; columnrev.ColumnType = column.ColumnType; columnrev.WebRefVal = column.WebRefVal; columnrev.Operator = ">="; queryColumns.Add(columnrev); column.Operator = "<="; } queryColumns.Add(column); } } }