Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > проблема с FilterRecord


Автор: Neox_GeForce 30.5.2008, 18:43
Здорова всем!  вот хочу спросить почему не пашет процедура
Код

procedure TData.tovaryFilterRecord(DataSet: TDataSet; var Accept: Boolean);
var
fieldName,fieldproi,fieldgryp,s1,s2,s3:string;
begin
fieldName:=DataSet['Nazva'];
fieldgryp:=DataSet['grypa2'];
fieldproi:=DataSet['proizv'];
s1:=form5.sEdit1.Text; //вот на етом поле выкидивает ошибку
s2:=form5.DBLookupComboBox1.Text;
s3:=form5.DBLookupComboBox2.Text;

if form5.spSkinCheckRadioBox1.Checked then Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (fieldGryp=AnsiUpperCase(s2));

if form5.spSkinCheckRadioBox2.Checked then Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (fieldproi=AnsiUpperCase(s3));

if (form5.spSkinCheckRadioBox1.Checked) AND (form5.spSkinCheckRadioBox2.Checked) then Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (fieldGryp=AnsiUpperCase(s2)) AND (fieldproi=AnsiUpperCase(s3));

end;

помогите плиз новачку!

Добавлено через 6 минут и 14 секунд
забыл написать я использую ADO

Автор: Данкинг 30.5.2008, 20:23
А что вообще надо сделать и какая ошибка выдаётся?

Автор: Лиходей 30.5.2008, 22:02
Насколько я понял вы хотите фильтровать данные по мере набора строки в sEdit1. Логических и синтаксических ошибок вроде нету. Скорей всего чтото с формами перемудрили. Киньте проект на форум чтоли...  

Автор: Neox_GeForce 30.5.2008, 22:18
я решил проблему! проблема была в том что надо было поставить false перед запуском приложения. и код немножко изменил, вот кому интересно 
Код

procedure TData.AllFilterRecord(DataSet: TDataSet; var Accept: Boolean);
var
fieldName,fieldproi,fieldgryp,s1,s2,s3:string;
begin

fieldName:=DataSet['Nazva'];
fieldgryp:=DataSet['grypa2'];
fieldproi:=DataSet['proizv'];
s1:=form5.sEdit1.Text;
s2:=form5.DBLookupComboBox1.Text;
s3:=form5.DBLookupComboBox2.Text;

if (form5.spSkinCheckRadioBox1.Checked) AND (form5.spSkinCheckRadioBox2.Checked=false) then Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (AnsiUpperCase(fieldgryp)=AnsiUpperCase(s2))
else
if (form5.spSkinCheckRadioBox1.Checked=false) AND (form5.spSkinCheckRadioBox2.Checked) then Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (AnsiUpperCase(fieldproi)=AnsiUpperCase(s3))
else
if (form5.spSkinCheckRadioBox1.Checked) AND (form5.spSkinCheckRadioBox2.Checked) then Accept:=((copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1)) AND (AnsiUpperCase(fieldGryp)=AnsiUpperCase(s2)) AND (AnsiUpperCAse(fieldproi)=AnsiUpperCase(s3)));



if (form5.spSkinCheckRadioBox1.Checked=false) AND (form5.spSkinCheckRadioBox2.Checked=false) then
Accept:=(copy(AnsiUpperCase(fieldname),1,length(s1))=AnsiUpperCase(s1));
end;

end.

а вот и сам скрин, может кому пригодится 

Автор: Лиходей 31.5.2008, 09:56
Мне всетаки интересно в чем была проблема. 
Цитата

...надо было поставить true перед запуском приложения ....

Что именно поставить?

Автор: Neox_GeForce 31.5.2008, 18:36
у меня при запуске ошибка появлялась потому что свойство таблицы FILTERED заранее было true а надо false, проверял 2 раза, если поставить true то ошибка если fals то все ОК  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)