Пример #1
0
        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
        }
Пример #2
0
        /// <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);
                }
            }
        }
Пример #3
0
        private void CreateQueryField(TBlockFieldItem aFieldItem, String Range, InfoComboBox aComboBox, String TableName)
        {
            if (aFieldItem.QueryMode == null)
                return;
            WebNavigator navigator2 = FPage.FindControl("WebNavigator1") as WebNavigator;
            if (navigator2 != null)
            {
                if (aFieldItem.QueryMode.ToUpper() == "NORMAL" || aFieldItem.QueryMode.ToUpper() == "RANGE")
                {
                    WebQueryField qField = new WebQueryField();
                    qField.FieldName = aFieldItem.DataField;
                    qField.Caption = aFieldItem.Description;
                    if (qField.Caption == "")
                        qField.Caption = aFieldItem.DataField;
                    if (aFieldItem.QueryMode.ToUpper() == "NORMAL")
                    {
                        if (aFieldItem.DataType == typeof(DateTime))
                            qField.Condition = "=";
                        if (aFieldItem.DataType == typeof(int) || aFieldItem.DataType == typeof(float) ||
                            aFieldItem.DataType == typeof(double) || aFieldItem.DataType == typeof(Int16))
                            qField.Condition = "=";
                        if (aFieldItem.DataType == typeof(String))
                            qField.Condition = "%";
                    }
                    if (aFieldItem.QueryMode.ToUpper() == "RANGE")
                    {
                        if (Range == "")
                        {
                            qField.Condition = "<=";
                            CreateQueryField(aFieldItem, ">=", aComboBox, TableName);
                        }
                        else
                        {
                            qField.Condition = Range;
                        }
                        navigator2.QueryMode = WebNavigator.QueryModeType.ClientQuery;
                    }
                    switch (aFieldItem.ControlType.ToUpper())
                    {
                        case "TEXTBOX":
                            qField.Mode = "TextBox";
                            break;
                        case "COMBOBOX":
                            qField.Mode = "ComboBox";
                            qField.RefVal = "wrv" + TableName + aFieldItem.DataField + "QF";
                            break;
                        case "REFVALBOX":
                            qField.Mode = "RefVal";
                            qField.RefVal = "wrv" + TableName + aFieldItem.DataField + "QF";
                            break;
                        case "DATETIMEBOX":
                            qField.Mode = "Calendar";
                            break;
                    }
                    navigator2.QueryFields.Add(qField);
                }
                IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService));
                NotifyRefresh(200);
                FComponentChangeService.OnComponentChanged(navigator2, null, "", "M");
            }

            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 = "%";
                    }
                    if (aFieldItem.QueryMode.ToUpper() == "RANGE")
                    {
                        qColumns.Condition = "And";
                        if (Range == "")
                        {
                            qColumns.Operator = "<=";
                            CreateQueryField(aFieldItem, ">=", aComboBox, TableName);
                        }
                        else
                        {
                            qColumns.Operator = Range;
                        }
                    }
                    switch (aFieldItem.ControlType.ToUpper())
                    {
                        case "TEXTBOX":
                            qColumns.ColumnType = "ClientQueryTextBoxColumn";
                            break;
                        case "COMBOBOX":
                            qColumns.ColumnType = "ClientQueryComboBoxColumn";
                            qColumns.WebRefVal = "wrv" + TableName + aFieldItem.DataField + "QF";
                            break;
                        case "REFVALBOX":
                            qColumns.ColumnType = "ClientQueryRefValColumn";
                            qColumns.WebRefVal = "wrv" + TableName + aFieldItem.DataField + "QF";

                            WebDataSource aWebDataSource = new WebDataSource();
                            InfoCommand aInfoCommand = new InfoCommand(FClientData.DatabaseType);
                            aInfoCommand.Connection = WzdUtils.AllocateConnection(FClientData.DatabaseName, FClientData.DatabaseType, true);
                            //aInfoCommand.Connection = FClientData.Owner.GlobalConnection;
                            IDbDataAdapter DA = DBUtils.CreateDbDataAdapter(aInfoCommand);
                            if (FSYS_REFVAL != null)
                                FSYS_REFVAL.Dispose();
                            FSYS_REFVAL = new DataSet();
                            aInfoCommand.CommandText = String.Format("Select * from SYS_REFVAL where REFVAL_NO = '{0}'", aFieldItem.RefValNo);
                            WzdUtils.FillDataAdapter(FClientData.DatabaseType, DA, FSYS_REFVAL, aFieldItem.RefValNo);

                            WebRefVal aWebRefVal = new WebRefVal();
                            aWebRefVal.ID = qColumns.WebRefVal;
                            aWebRefVal.DataTextField = FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString();
                            aWebRefVal.DataValueField = FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString();
                            aWebRefVal.DataSourceID = String.Format("wds{0}{1}", TableName, aFieldItem.DataField);
                            aWebRefVal.Visible = false;
                            FWebRefValListPage.Add(aWebRefVal);
                            break;
                        case "DATETIMEBOX":
                            qColumns.ColumnType = "ClientQueryCalendarColumn";
                            break;
                        case "CHECKBOX":
                            qColumns.ColumnType = "ClientQueryCheckBoxColumn";
                            break;
                    }
                    WebClientQuery1.Columns.Add(qColumns);
                }
                IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService));
                NotifyRefresh(200);
                FComponentChangeService.OnComponentChanged(WebClientQuery1, null, "", "M");
            }
        }
Пример #4
0
        private WebClientQuery CopyQueryFileds(int columncount, bool newpage)
        {
            WebClientQuery wcq = new WebClientQuery();

            if (newpage)
            {
                wcq.ID = this.ID + "QueryTemp";
            }
            else
            {
                object objQuery = this.GetObjByID(this.ID + "QueryTempPanel");
                if (objQuery != null)
                {
                    wcq = objQuery as WebClientQuery;
                    return wcq;
                }
                wcq.ID = this.ID + "QueryTempPanel";

            }
            if (this.QueryFields.Count > 0)
            {
                WebDataSource ds = null;
                object obj = null;
                if (this.ViewBindingObject != null && this.ViewBindingObject != "")
                {
                    obj = this.GetObjByID(this.ViewBindingObject);
                }
                else if (this.BindingObject != null && this.BindingObject != "")
                {
                    obj = this.GetObjByID(this.BindingObject);
                }
                if (obj != null)
                {
                    String strDataSourceID = String.Empty;
                    if (obj is CompositeDataBoundControl)
                    {
                        CompositeDataBoundControl dataControl = (CompositeDataBoundControl)obj;
                        strDataSourceID = dataControl.DataSourceID;
                    }
                    else if (obj.GetType().Name == "ASPxGridView")
                    {
                        strDataSourceID = obj.GetType().GetProperty("DataSourceID").GetValue(obj, null).ToString();
                    }
                    foreach (Control ctrl in this.Page.Form.Controls)
                    {
                        if (ctrl is WebDataSource && ((WebDataSource)ctrl).ID == strDataSourceID)
                        {
                            ds = (WebDataSource)ctrl;
                        }
                    }
                }
                if (ds == null)
                {
                    throw new Exception("Can't find datasource of binding object");
                }

                wcq.DataSourceID = ds.ID;
                wcq.GapVertical = 4;
                int columnindex = 0;
                int index = 0;
                string[] arrQueryText = null;
                if (this.ViewState["QueryTemp"] != null)
                {
                    string strQueryText = this.ViewState["QueryTemp"].ToString();
                    arrQueryText = strQueryText.Split(';');
                }
                wcq.KeepCondition = this.QueryKeepConditon;
                foreach (WebQueryField wqf in this.QueryFields)
                {
                    WebQueryColumns wqc = new WebQueryColumns(wqf.Name, true, wqf.FieldName, wqf.Caption, 120, "ClientQuery" + wqf.Mode + "Column", "And", wqf.Condition, "Left");
                    wqc.DefaultValue = wqf.DefaultValue;
                    wqc.IsNvarChar = wqf.IsNvarChar;
                    if (columnindex == columncount)
                    {
                        wqc.NewLine = true;
                        columnindex = 1;
                    }
                    else
                    {
                        wqc.NewLine = false;
                        columnindex++;
                    }

                    if (arrQueryText != null)
                    {
                        wqc.Text = arrQueryText[index];
                        index++;
                    }
                    if (wqf.Condition == "")
                    {
                        Type tp = ds.InnerDataSet.Tables[ds.DataMember].Columns[wqf.FieldName].DataType;
                        if (tp == typeof(string))
                        {
                            wqc.Operator = "%";
                        }
                        else
                        {
                            wqc.Operator = "=";
                        }
                    }
                    if (wqf.Mode == "")
                    {
                        wqc.ColumnType = "ClientQueryTextBoxColumn";
                    }

                    if (wqf.Mode == "RefVal" || wqf.Mode == "ComboBox")
                    {
                        wqc.WebRefVal = wqf.RefVal;
                    }
                    else if (wqf.Mode == "RefButton")
                    {
                        wqc.WebRefButton = wqf.RefVal;
                    }
                    wcq.Columns.Add(wqc);
                }
            }
            else
            {
                throw new Exception("No QueryFields in WebNavigator");
            }
            this.Page.Form.Controls.Add(wcq);    //为了使用Wcq的Page属性
            return wcq;
        }