void addFilter(bool asAND) { string s = txtWhere.Text.Trim(); if (s.Length > 0) { if (asAND) { s += " AND "; } else { s += " OR "; } } bool bOK = false; string sMsg = ""; if (lstOP.SelectedIndex < 0) { sMsg = Resource1.w3; } else { EPField fld0 = cbxField.SelectedItem as EPField; if (fld0 == null) { sMsg = Resource1.w4; } else { EPField fld = (EPField)fld0.Clone(); s += qParser.Sep1 + fld.FromTableName + qParser.Sep2 + "." + qParser.Sep1 + fld.Name + qParser.Sep2 + " "; FilterOperator op = lstOP.Items[lstOP.SelectedIndex] as FilterOperator; s += op.sOpStart; s += " "; if (op.StartOnly) { bOK = true; } else { string s2; if (rdoField.Checked) { EPField fldVal = cbxValField.SelectedItem as EPField; if (fldVal != null) { s += qParser.Sep1 + fldVal.FromTableName + qParser.Sep2 + "." + qParser.Sep1 + fldVal.Name + qParser.Sep2; bOK = true; } else { sMsg = Resource1.w5; } } else if (rdoParam.Checked) { s2 = txtParam.Text.Trim(); if (s2.Length > 0) { fld.Name = "@" + s2; s += fld.Name; if (qParser.parameters == null) { qParser.parameters = new ParameterList(); } qParser.parameters.AddField(fld); bOK = true; } else { sMsg = Resource1.w6; } } else if (rdoConst.Checked) { string sQuote = fld.ConstQuote(oldQuery.IsOleDb); s2 = txtConst.Text.Trim(); if (s2.Length > 0) { s2 = s2.Replace("'", "''"); s += sQuote; s += s2; s += sQuote; bOK = true; } else { sMsg = Resource1.w7; } } } if (bOK) { s += op.sOpEnd; txtWhere.Text = s; } } } if (sMsg.Length > 0) { MessageBox.Show(this, sMsg, this.Text, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Stop); } }