@
@rtem
Здравствуйте, у меня такая проблема. Когда провожу фильтрацию по полям таблицы то 2 поля никак не хотят фильтроваться (по всем остальным фильтрация работает) и возникает ошибка (одинаковая для обоих полей), это поле BNAME, BPUBLISH. они текстовые, а сама база сделанна в InterBase. Поле BAUTHOR тоже текстовое но по нему фильтрация проводится, и код точно такой же как и на тех полях. В чем проблема подскажите.
Есть скрин ошибки.
Код:
procedure TfrmSearchBooks.spbSearchClick(Sender: TObject);
begin
filtr := ' ';
// Поиск по названию товара
if (chbMName.Checked = true) then
// filtr := 'BNAME = ''' + edtMName.Text + '''';
filtr := 'BNAME = ''' + ComboBox1.Text + '''';
// Поиск по производителю
if (chbMAuthor.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + 'BAUTHOR = ''' + edtMAuthor.Text + '''';
if (chbMAuthor.Checked = true) and (filtr = ' ') then
filtr := 'BAUTHOR = ''' + edtMAuthor.Text + '''';
// Поиск по поставщику
if (chbMPost.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + 'BPUBLISH = ''' + edtMPost.Text + '''';
if (chbMPost.Checked = true) and (filtr = ' ') then
filtr := 'BPUBLISH = ''' + edtMPost.Text + '''';
//Поиск по году выпуска
if (chbMYear.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + 'BYEAR >= ''' + edtMYear1.Text + '''' + ' and BYEAR <= ''' + edtMYear2.Text + '''';
if (chbMYear.Checked = true) and (filtr = ' ') then
filtr := ' BYEAR >= ''' + edtMYear1.Text + '''' + ' and BYEAR <= ''' + edtMYear2.Text + '''';
//Поиск по стандарту упаковки
if (chbMStandart.Checked = true) and (filtr <> ' ' ) then
filtr := filtr + ' and ' + ' BSTAND >= ''' + edtMStandart1.Text + '''' + ' and BSTAND <= ''' + edtMStandart2.Text + '''';
if (chbMStandart.Checked = true) and (filtr = ' ' ) then
filtr := ' BSTAND >= ''' + edtMStandart1.Text + '''' + ' and BSTAND <= ''' + edtMStandart2.Text + '''';
//Поиск по остатку товара на складе
if (chbMQuan.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + ' BQUAN >= ''' + edtMQuan1.Text + '''' + ' and BQUAN <= ''' + edtMQuan2.Text + '''';
if (chbMQuan.Checked = true) and (filtr = ' ') then
filtr := ' BQUAN >= ''' + edtMQuan1.Text + '''' + ' and BQUAN <= ''' + edtMQuan2.Text + '''';
//Поиск по цене закупки товара
if (chbMPrice.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + ' BPRICE >= ''' + edtMPrice1.Text + '''' + ' and BPRICE <= ''' + edtMPrice2.Text + '''';
if (chbMPrice.Checked = true) and (filtr = ' ') then
filtr := ' BPRICE >= ''' + edtMPrice1.Text + '''' + ' and BPRICE <= ''' + edtMPrice2.Text + '''';
//Поиск по оптовой цене продажи товара
if (chbMOpt.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + ' BOPT >= ''' + edtMOpt1.Text + '''' + ' and BOPT <= ''' + edtMOpt2.Text + '''';
if (chbMOpt.Checked = true) and (filtr = ' ') then
filtr := ' BOPT >= ''' + edtMOpt1.Text + '''' + ' and BOPT <= ''' + edtMOpt2.Text + '''';
//Поиск по розничной продажи товара
if (chbMRozn.Checked = true) and (filtr <> ' ') then
filtr := filtr + ' and ' + ' BROZN >= ''' + edtMRozn1.Text + '''' + ' and BROZN <= ''' + edtMRozn2.Text + '''';
if (chbMRozn.Checked = true) and (filtr = ' ') then
filtr := ' BROZN >= ''' + edtMRozn1.Text + '''' + ' and BROZN <= ''' + edtMRozn2.Text + '''';
DM.Books.Filter := filtr;
DM.Books.Filtered := true;
frmSearchBooks.Close();
end;
Есть скрин ошибки.