private void buttonAdd_Click(object sender, EventArgs e) { if (innerAnyQuery.AllowAddQueryField) { InfoDataSet ids = null; if (innerAnyQuery.BindingSource != null) { ids = innerAnyQuery.BindingSource.DataSource as InfoDataSet; if (innerAnyQuery.MaxColumnCount == -1 || Count < innerAnyQuery.MaxColumnCount) { if (innerAnyQuery.QueryColumnMode == AnyQueryColumnMode.ByBindingSource) { if (Count >= ids.RealDataSet.Tables[0].Columns.Count) return; } else if (innerAnyQuery.QueryColumnMode == AnyQueryColumnMode.ByColumns) { if (Count >= innerAnyQuery.Columns.Count) return; } Count++; AnyQueryColumns aqcTemp = new AnyQueryColumns(); foreach (AnyQueryColumns aqc in innerAnyQuery.Columns) { aqcTemp = aqc; break; } CreateColumns(ids, aqcTemp, Count, false); } } } }
void cbColumn_SelectedIndexChanged(object sender, EventArgs e) { int count = 0; for (int i = 0; i < (sender as ComboBox).Name.Length; i++) { if (Char.IsDigit((sender as ComboBox).Name[i])) { count = count * Convert.ToInt16(Math.Pow(10, i)) + Convert.ToInt16(Char.ToString((sender as ComboBox).Name[i])); } } if (count > 0) { bool flag = false; AnyQueryColumns aqcTemp = new AnyQueryColumns(); InfoDataSet ids = null; if (innerAnyQuery.BindingSource != null) { ids = innerAnyQuery.BindingSource.DataSource as InfoDataSet; foreach (AnyQueryColumns aqc in innerAnyQuery.Columns) { if (aqc.Caption == (sender as ComboBox).Text) { aqcTemp = aqc; flag = true; break; } } } if (flag) { ArrayList arr = new ArrayList(); foreach (Control c in this.panel2.Controls) { if (c.Name.StartsWith(count + "AnyQuery")) { arr.Add(c); } } for (int i = 0; i < arr.Count; i++) this.panel2.Controls.Remove(arr[i] as Control); CreateColumns(ids, aqcTemp, count, true); } else { ArrayList arr = new ArrayList(); foreach (Control c in this.panel2.Controls) { if (c.Name.StartsWith(count + "AnyQuery")) { arr.Add(c); } } for (int i = 0; i < arr.Count; i++) this.panel2.Controls.Remove(arr[i] as Control); aqcTemp.Caption = (sender as ComboBox).Text; aqcTemp.Column = CaptionToColumn(aqcTemp.Caption, innerAnyQuery.BindingSource); Type aqcType = GetDataType(aqcTemp.Column); if (aqcType == typeof(DateTime)) aqcTemp.ColumnType = "AnyQueryCalendarColumn"; else aqcTemp.ColumnType = "AnyQueryTextBoxColumn"; CreateColumns(ids, aqcTemp, count, true); } } }
private void CreateColumns(InfoDataSet ids, AnyQueryColumns aqc, int columnsCount, bool isActive) { String value = aqc.DefaultValue; if (aqc.DefaultValue.StartsWith("_")) { object[] realValue = CliUtils.GetValue(aqc.DefaultValue); if (realValue[0].ToString() == "0") value = realValue[1].ToString(); } int columnWidth = aqc.ColumnWidth; int ColumnsCount = columnsCount; if (120 + ColumnsCount * 30 > this.Height) this.Height += 30; int standard = 40; CheckBox cbActive = new CheckBox(); cbActive.Name = ColumnsCount + "AnyQueryActiveCheckBox"; cbActive.Width = 15; cbActive.Location = new Point(standard, 13 + ColumnsCount * 30); cbActive.Checked = isActive; cbActive.CheckedChanged += new EventHandler(cbActive_CheckedChanged); this.panel2.Controls.Add(cbActive); //standard += 30; //Label labelCondition = new Label(); //labelCondition.Name = ColumnsCount + "AnyQueryConditionLabel"; //labelCondition.Width = 50; //labelCondition.Text = aqc.Condition.ToUpper(); //labelCondition.Location = new Point(standard, 17 + ColumnsCount * 30); //labelCondition.Click += new EventHandler(labelCondition_Click); //this.panel2.Controls.Add(labelCondition); standard += 30; ComboBox cbColumn = new ComboBox(); cbColumn.Name = ColumnsCount + "AnyQueryColumnComboBox"; this.panel2.Controls.Add(cbColumn); DataView dvColumn = CreateDataViewColumn(ids); cbColumn.DataSource = dvColumn; cbColumn.DisplayMember = "CAPTION"; cbColumn.ValueMember = "FIELDNAME"; cbColumn.Width = columnWidth; //if (innerAnyQuery.QueryColumnMode == AnyQueryColumnMode.ByBindingSource) // cbColumn.Text = GetHeaderText(aqc.Column); //else cbColumn.DropDownStyle = ComboBoxStyle.DropDownList; cbColumn.Location = new Point(standard, 15 + ColumnsCount * 30); cbColumn.Text = aqc.Caption; cbColumn.SelectedIndexChanged += new EventHandler(cbColumn_SelectedIndexChanged); standard += cbColumn.Width + 5; ComboBox cbOperator = new ComboBox(); Type cbType = GetDataType(aqc.Column); List<String> op = new List<string>(); op.AddRange(new String[] { "=", "!=", ">", "<", ">=", "<=", "%**", "**%", "%%", "!%%", "<->", "!<->", "IN", "NOT IN" }); if (!innerAnyQuery.DisplayAllOperator) { if (cbType == typeof(Char) || cbType == typeof(String)) { op.Clear(); //op.AddRange(new String[] { "=", "!=", "%**", "**%", "%%", "!%%", "IN", "NOT IN" }); op.AddRange(new String[] { "=", "!=", "%**", "**%", "%%", "!%%" }); } else if (cbType != null && (cbType == typeof(int) || cbType == typeof(float) || cbType == typeof(double) || cbType == typeof(DateTime) || cbType.FullName == "System.Decimal" || cbType == typeof(Int16) || cbType == typeof(Int64))) { op.Clear(); //op.AddRange(new String[] { "=", "!=", "<", ">", "<=", ">=", "<->", "!<->", "IN", "NOT IN" }); op.AddRange(new String[] { "=", "!=", "<", ">", "<=", ">=", "<->", "!<->" }); } } cbOperator.Items.AddRange(op.ToArray()); cbOperator.DropDownStyle = ComboBoxStyle.DropDownList; cbOperator.Name = ColumnsCount + "AnyQueryOperatorComboBox"; cbOperator.Width = 65; cbOperator.Location = new Point(standard, 15 + ColumnsCount * 30); SetOperatorHelp(cbOperator); cbOperator.SelectedIndexChanged += new EventHandler(cbOperator_SelectedIndexChanged); this.panel2.Controls.Add(cbOperator); standard += cbOperator.Width + 5; switch (aqc.ColumnType) { case "AnyQueryTextBoxColumn": TextBox tbValue = new TextBox(); tbValue.Name = ColumnsCount + "AnyQueryValue1TextBox" + aqc.Enabled.ToString(); tbValue.Text = value; tbValue.Width = aqc.Width; tbValue.Location = new Point(standard, 15 + ColumnsCount * 30); tbValue.Enabled = aqc.Enabled; tbValue.Enter += new EventHandler(tbValue_Enter); tbValue.KeyPress += new KeyPressEventHandler(tbValue_KeyPress); this.panel2.Controls.Add(tbValue); break; case "AnyQueryComboBoxColumn": cbOperator.Items.Clear(); op.Clear(); op.AddRange(new String[] { "=", "!=" }); cbOperator.Items.AddRange(op.ToArray()); InfoComboBox icbValue = new InfoComboBox(); if (aqc.InfoRefVal != null) { icbValue.DisplayMemberOnly = true; if (aqc.InfoRefVal.SelectAlias != null && aqc.InfoRefVal.SelectAlias != String.Empty && aqc.InfoRefVal.SelectCommand != null && aqc.InfoRefVal.SelectCommand != String.Empty) { icbValue.SelectAlias = aqc.InfoRefVal.SelectAlias; icbValue.SelectCommand = aqc.InfoRefVal.SelectCommand; } else { icbValue.DataSource = aqc.InfoRefVal.DataSource; } icbValue.DisplayMember = aqc.InfoRefVal.DisplayMember; icbValue.ValueMember = aqc.InfoRefVal.ValueMember; icbValue.EndInit(); } else { icbValue.DisplayMemberOnly = false; icbValue.Items.AddRange(aqc.Items); } icbValue.Name = ColumnsCount + "AnyQueryValue1InfoComboBox" + aqc.Enabled.ToString(); icbValue.Text = value; icbValue.Width = aqc.Width; icbValue.Location = new Point(standard, 15 + ColumnsCount * 30); icbValue.Enabled = aqc.Enabled; icbValue.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(icbValue); break; case "AnyQueryCheckBoxColumn": cbOperator.Items.Clear(); op.Clear(); op.AddRange(new String[] { "=", "!=" }); cbOperator.Items.AddRange(op.ToArray()); CheckBox cbValue = new CheckBox(); cbValue.Name = ColumnsCount + "AnyQueryValue1CheckBox" + aqc.Enabled.ToString(); if (aqc.DefaultValue == "1") cbValue.Checked = true; cbValue.Width = aqc.Width; cbValue.Location = new Point(standard, 15 + ColumnsCount * 30); cbValue.Enabled = aqc.Enabled; cbValue.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(cbValue); break; case "AnyQueryRefValColumn": cbOperator.Items.Clear(); op.Clear(); op.AddRange(new String[] { "=", "!=", "IN", "NOT IN" }); cbOperator.Items.AddRange(op.ToArray()); if (aqc.Operator == "IN" || aqc.Operator == "NOT IN") { InfoTranslate it = new InfoTranslate(); if (aqc.InfoRefVal.SelectAlias != null && aqc.InfoRefVal.SelectCommand != null && aqc.InfoRefVal.SelectAlias != String.Empty && aqc.InfoRefVal.SelectCommand != String.Empty) { InfoDataSet idsRefButton = new InfoDataSet(); idsRefButton.RemoteName = "GLModule.cmdRefValUse"; idsRefButton.Execute(aqc.InfoRefVal.SelectCommand, CliUtils.fLoginDB, true); InfoBindingSource ibsRefButton = new InfoBindingSource(); ibsRefButton.DataSource = idsRefButton; ibsRefButton.DataMember = "cmdRefValUse"; it.BindingSource = ibsRefButton; } else { it.BindingSource = aqc.InfoRefVal.DataSource as InfoBindingSource; } TranslateRefReturnFields trrf = new TranslateRefReturnFields(); trrf.ColumnName = aqc.InfoRefVal.ValueMember; trrf.DisplayColumnName = aqc.InfoRefVal.DisplayMember; it.RefReturnFields.Add(trrf); InfoRefbuttonBox aInfoRefbuttonBox = new InfoRefbuttonBox(); aInfoRefbuttonBox.Name = ColumnsCount + "AnyQueryValue1RefTextBox" + aqc.Enabled.ToString(); aInfoRefbuttonBox.Text = value; aInfoRefbuttonBox.Location = new Point(standard, 15 + ColumnsCount * 30); aInfoRefbuttonBox.Width = aqc.Width; aInfoRefbuttonBox.Enabled = aqc.Enabled; aInfoRefbuttonBox.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(aInfoRefbuttonBox); //TextBox tbRefButton = new TextBox(); //tbRefButton.Name = ColumnsCount + "AnyQueryValue1RefTextBox" + aqc.Enabled.ToString(); //tbRefButton.Text = aqc.DefaultValue; //tbRefButton.Width = aqc.Width; //tbRefButton.Location = new Point(standard, 15 + ColumnsCount * 30); //tbRefButton.Enabled = aqc.Enabled; //tbRefButton.Enter += new EventHandler(tbValue_Enter); //this.panel2.Controls.Add(tbRefButton); InfoRefButton ifb = new InfoRefButton(); ifb.autoPanel = true; ifb.infoTranslate = it; RefButtonMatch rbm = new RefButtonMatch(); rbm.matchColumnName = aInfoRefbuttonBox.Name; ifb.refButtonMatchs.Add(rbm); ifb.Name = ColumnsCount + "AnyQueryValue1InfoRefButton" + aqc.Enabled.ToString(); ifb.Text = "..."; ifb.Width = 20; ifb.Location = new Point(aInfoRefbuttonBox.Location.X + aInfoRefbuttonBox.Width + 2, 15 + ColumnsCount * 30); //ifb.Enabled = aqc.Enabled; this.panel2.Controls.Add(ifb); } else { cbOperator.Items.Remove("IN"); cbOperator.Items.Remove("NOT IN"); InfoRefvalBox irbValue = new InfoRefvalBox(); irbValue.Name = ColumnsCount + "AnyQueryValue1InfoRefvalBox" + aqc.Enabled.ToString(); irbValue.RefVal = aqc.InfoRefVal; irbValue.TextBoxText = value; irbValue.Width = aqc.Width; irbValue.Location = new Point(standard, 15 + ColumnsCount * 30); irbValue.TextBoxEnabled = aqc.Enabled; irbValue.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(irbValue); } break; case "AnyQueryCalendarColumn": InfoDateTimePicker idtpValue = new InfoDateTimePicker(); idtpValue.BeginInit(); idtpValue.Name = ColumnsCount + "AnyQueryValue1InfoDateTimePicker" + aqc.Enabled.ToString(); idtpValue.Text = value; idtpValue.Width = aqc.Width; idtpValue.Location = new Point(standard, 15 + ColumnsCount * 30); idtpValue.Enabled = aqc.Enabled; idtpValue.Format = DateTimePickerFormat.Long; idtpValue.EndInit(); idtpValue.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(idtpValue); break; case "AnyQueryRefButtonColumn": cbOperator.Items.Clear(); op.Clear(); op.AddRange(new String[] { "IN", "NOT IN" }); cbOperator.Items.AddRange(op.ToArray()); InfoTranslate itRefButton = new InfoTranslate(); if (aqc.InfoRefVal.SelectAlias != null && aqc.InfoRefVal.SelectCommand != null && aqc.InfoRefVal.SelectAlias != String.Empty && aqc.InfoRefVal.SelectCommand != String.Empty) { InfoDataSet idsRefButton = new InfoDataSet(); idsRefButton.RemoteName = "GLModule.cmdRefValUse"; idsRefButton.Execute(aqc.InfoRefVal.SelectCommand, CliUtils.fLoginDB, true); InfoBindingSource ibsRefButton = new InfoBindingSource(); ibsRefButton.DataSource = idsRefButton; ibsRefButton.DataMember = "cmdRefValUse"; itRefButton.BindingSource = ibsRefButton; } else { itRefButton.BindingSource = aqc.InfoRefVal.DataSource as InfoBindingSource; } TranslateRefReturnFields trrf2 = new TranslateRefReturnFields(); trrf2.ColumnName = aqc.InfoRefVal.ValueMember; trrf2.DisplayColumnName = aqc.InfoRefVal.DisplayMember; itRefButton.RefReturnFields.Add(trrf2); InfoRefbuttonBox aInfoRefbuttonBox2 = new InfoRefbuttonBox(); aInfoRefbuttonBox2.Name = ColumnsCount + "AnyQueryValue1RefTextBox" + aqc.Enabled.ToString(); aInfoRefbuttonBox2.Text = value; aInfoRefbuttonBox2.Location = new Point(standard, 15 + ColumnsCount * 30); aInfoRefbuttonBox2.Width = aqc.Width; aInfoRefbuttonBox2.Enabled = aqc.Enabled; aInfoRefbuttonBox2.Enter += new EventHandler(tbValue_Enter); this.panel2.Controls.Add(aInfoRefbuttonBox2); //TextBox tbRefButton2 = new TextBox(); //tbRefButton2.Name = ColumnsCount + "AnyQueryValue1RefTextBox" + aqc.Enabled.ToString(); //tbRefButton2.Text = aqc.DefaultValue; //tbRefButton2.Width = aqc.Width; //tbRefButton2.Location = new Point(standard, 15 + ColumnsCount * 30); //tbRefButton2.Enabled = aqc.Enabled; //tbRefButton2.Enter += new EventHandler(tbValue_Enter); //this.panel2.Controls.Add(tbRefButton2); InfoRefButton ifb2 = new InfoRefButton(); if (aqc.InfoRefButtonAutoPanel) ifb2.autoPanel = true; else { ifb2.autoPanel = false; ifb2.panel = aqc.InfoRefButtonPanel; } ifb2.infoTranslate = itRefButton; RefButtonMatch rbm2 = new RefButtonMatch(); rbm2.matchColumnName = aInfoRefbuttonBox2.Name;//rbm2.matchColumnName = tbRefButton2.Name; ifb2.refButtonMatchs.Add(rbm2); ifb2.Name = ColumnsCount + "AnyQueryValue1InfoRefButton" + aqc.Enabled.ToString(); ifb2.Text = "..."; ifb2.Width = 20; ifb2.Location = new Point(aInfoRefbuttonBox2.Location.X + aInfoRefbuttonBox2.Width + 2, 15 + ColumnsCount * 30);//ifb2.Location = new Point(tbRefButton2.Location.X + tbRefButton2.Width + 2, 15 + ColumnsCount * 30); //ifb2.Enabled = aqc.Enabled; this.panel2.Controls.Add(ifb2); break; } if (aqc.Operator == "%") cbOperator.Text = "**%"; else cbOperator.Text = aqc.Operator; //if (aqc.Operator == "<->" || aqc.Operator == "!<->") //{ // standard += aqc.Width + 5; // Label aLabel = new Label(); // aLabel.Name = ColumnsCount + "AnyQueryValue1to2Label"; // aLabel.Text = "~"; // aLabel.Width = 10; // aLabel.Location = new Point(standard, 15 + ColumnsCount * 30); // this.panel2.Controls.Add(aLabel); // standard += aLabel.Width + 5; // switch (aqc.ColumnType) // { // case "AnyQueryTextBoxColumn": // TextBox tbValue = new TextBox(); // tbValue.Name = ColumnsCount + "AnyQueryValue2TextBox" + aqc.Enabled.ToString(); // tbValue.Text = aqc.DefaultValue; // tbValue.Width = aqc.Width; // tbValue.Location = new Point(standard, 15 + ColumnsCount * 30); // tbValue.Enabled = aqc.Enabled; // tbValue.Enter += new EventHandler(tbValue_Enter); // this.panel2.Controls.Add(tbValue); // break; // case "AnyQueryComboBoxColumn": // InfoComboBox icbValue = new InfoComboBox(); // icbValue.DisplayMemberOnly = true; // if (aqc.InfoRefVal != null) // { // if (icbValue.SelectAlias != null && icbValue.SelectAlias != String.Empty && icbValue.SelectCommand != null && icbValue.SelectCommand != String.Empty) // { // icbValue.SelectAlias = aqc.InfoRefVal.SelectAlias; // icbValue.SelectCommand = aqc.InfoRefVal.SelectCommand; // } // else // { // icbValue.DataSource = aqc.InfoRefVal.DataSource; // } // icbValue.DisplayMember = aqc.InfoRefVal.DisplayMember; // icbValue.ValueMember = aqc.InfoRefVal.ValueMember; // icbValue.EndInit(); // } // else // { // icbValue.Items.AddRange(aqc.Items); // } // icbValue.Name = ColumnsCount + "AnyQueryValue2InfoComboBox2" + aqc.Enabled.ToString(); // icbValue.Text = aqc.DefaultValue; // icbValue.Width = aqc.Width; // icbValue.Location = new Point(standard, 15 + ColumnsCount * 30); // icbValue.Enabled = aqc.Enabled; // icbValue.Enter += new EventHandler(tbValue_Enter); // this.panel2.Controls.Add(icbValue); // break; // case "AnyQueryCheckBoxColumn": // break; // case "AnyQueryRefValColumn": // InfoRefvalBox irbValue = new InfoRefvalBox(); // irbValue.Name = ColumnsCount + "AnyQueryValue2InfoRefvalBox2" + aqc.Enabled.ToString(); // irbValue.RefVal = aqc.InfoRefVal; // irbValue.TextBoxText = aqc.DefaultValue; // irbValue.Width = aqc.Width; // irbValue.Location = new Point(standard, 15 + ColumnsCount * 30); // irbValue.TextBoxEnabled = aqc.Enabled; // irbValue.Enter += new EventHandler(tbValue_Enter); // this.panel2.Controls.Add(irbValue); // break; // case "AnyQueryCalendarColumn": // InfoDateTimePicker idtpValue = new InfoDateTimePicker(); // idtpValue.BeginInit(); // idtpValue.Name = ColumnsCount + "AnyQueryValue2InfoDateTimePicker2" + aqc.Enabled.ToString(); // idtpValue.Text = aqc.DefaultValue; // idtpValue.Width = aqc.Width; // idtpValue.Location = new Point(standard, 15 + ColumnsCount * 30); // idtpValue.Enabled = aqc.Enabled; // idtpValue.Format = DateTimePickerFormat.Long; // idtpValue.EndInit(); // idtpValue.Enter += new EventHandler(tbValue_Enter); // this.panel2.Controls.Add(idtpValue); // break; // case "AnyQueryRefButtonColumn"://<->不会用到RefButton // //InfoTranslate itRefButton = new InfoTranslate(); // //if (aqc.InfoRefVal.SelectAlias != null && aqc.InfoRefVal.SelectCommand != null && aqc.InfoRefVal.SelectAlias != String.Empty && aqc.InfoRefVal.SelectCommand != String.Empty) // //{ // // InfoDataSet idsRefButton = new InfoDataSet(); // // idsRefButton.RemoteName = "GLModule.cmdRefValUse"; // // idsRefButton.Execute(aqc.InfoRefVal.SelectCommand, aqc.InfoRefVal.SelectAlias, true); // // InfoBindingSource ibsRefButton = new InfoBindingSource(); // // ibsRefButton.DataSource = idsRefButton; // // ibsRefButton.DataMember = "cmdRefValUse"; // // itRefButton.BindingSource = ibsRefButton; // //} // //else // //{ // // itRefButton.BindingSource = aqc.InfoRefVal.DataSource as InfoBindingSource; // //} // //TranslateRefReturnFields trrf2 = new TranslateRefReturnFields(); // //trrf2.ColumnName = aqc.InfoRefVal.ValueMember; // //itRefButton.RefReturnFields.Add(trrf2); // //TextBox tbRefButton2 = new TextBox(); // //tbRefButton2.Name = ColumnsCount + "AnyQueryValue1RefTextBox" + aqc.Enabled.ToString(); // //tbRefButton2.Text = aqc.DefaultValue; // //tbRefButton2.Width = aqc.Width; // //tbRefButton2.Location = new Point(standard, 15 + ColumnsCount * 30); // //tbRefButton2.Enabled = aqc.Enabled; // //this.panel2.Controls.Add(tbRefButton2); // //InfoRefButton ifb2 = new InfoRefButton(); // //if (aqc.InfoRefButtonAutoPanel) // // ifb2.autoPanel = true; // //else // //{ // // ifb2.autoPanel = false; // // ifb2.panel = aqc.InfoRefButtonPanel; // //} // //ifb2.infoTranslate = itRefButton; // //RefButtonMatch rbm2 = new RefButtonMatch(); // //rbm2.matchColumnName = tbRefButton2.Name; // //ifb2.refButtonMatchs.Add(rbm2); // //ifb2.Name = ColumnsCount + "AnyQueryValue1InfoRefButton" + aqc.Enabled.ToString(); // //ifb2.Text = "..."; // //ifb2.Width = 20; // //ifb2.Location = new Point(tbRefButton2.Location.X + tbRefButton2.Width + 2, 15 + ColumnsCount * 30); // //ifb2.Enabled = aqc.Enabled; // //this.panel2.Controls.Add(ifb2); // break; // } //} if (innerAnyQuery.AutoDisableColumns) { cbActive_CheckedChanged(cbActive, new EventArgs()); } }
private AnyQuery CopyAnyQueryFileds() { AnyQuery aAnyQuery = new AnyQuery(); Control baseForm = this.Parent; while (baseForm != null) { if (baseForm is InfoForm) { aAnyQuery.OwnerComp = baseForm as InfoForm; break; } else { baseForm = baseForm.Parent; } } aAnyQuery.ValueControlEnter += new EventHandler(aq_ValueControlEnter); InfoBindingSource ibs = null; if (this.ViewBindingSource != null && this.DetailBindingSource == null) { ibs = this.ViewBindingSource; } else if (this.BindingSource != null) { ibs = this.BindingSource; } if (ibs == null) { throw new Exception("Can't find InfoBindingSource"); } aAnyQuery.BindingSource = ibs; foreach (QueryField qf in this.QueryFields) { AnyQueryColumns qc = new AnyQueryColumns(qf.Name, qf.FieldName, qf.Caption, 120); qc.DefaultValue = qf.DefaultValue; if (qf.Mode == "") { qc.ColumnType = "AnyQueryTextBoxColumn"; } else { qc.ColumnType = "AnyQuery" + qf.Mode + "Column"; } if (qf.Condition == "" && (ibs.GetDataSource() as InfoDataSet).RealDataSet.Tables[ibs.DataMember].Columns[qf.FieldName] != null) { Type tp = (ibs.GetDataSource() as InfoDataSet).RealDataSet.Tables[ibs.DataMember].Columns[qf.FieldName].DataType; if (tp == typeof(string)) { qc.Operator = "%"; } else { qc.Operator = "="; } } else { qc.Operator = qf.Condition; } qc.InfoRefVal = qf.RefVal; qc.InfoRefButtonAutoPanel = qf.RefButtonAutoPanel; qc.InfoRefButtonPanel = qf.RefButtonPanel; qc.Enabled = qf.Enabled; qc.AutoSelect = qf.AutoSelect; qc.Items = qf.Items; qc.DateConver = qf.DateConver; qc.Width = qf.Width; qc.ColumnWidth = qf.ColumnWidth; qc.IsNvarChar = qf.IsNvarChar; aAnyQuery.Columns.Add(qc); } if (this.AnyQueryID == String.Empty) aAnyQuery.PackageForm = (this.Parent as InfoForm).PackageName + "." + (this.Parent as InfoForm).FormName; aAnyQuery.AnyQueryID = this.AnyQueryID; aAnyQuery.AutoDisableColumns = this.AutoDisableColumns; aAnyQuery.MaxColumnCount = this.MaxColumnCount; aAnyQuery.QueryColumnMode = this.QueryColumnMode; aAnyQuery.DetailBindingSource = this.DetailBindingSource; aAnyQuery.MasterDetailField = this.MasterDetailField; aAnyQuery.DetailKeyField = this.DetailKeyField; aAnyQuery.KeepCondition = this.QueryKeepCondition; aAnyQuery.DisplayAllOperator = this.DisplayAllOperator; return aAnyQuery; }