burada önce müşteriye bağlı işlemler bu işlemlerden ise yukarıdaki işlemlerin sorgulanmasını istiyorum. istediğim sonuca ulaşamadım. nasıl yapılabilir acaba. birçok şekide denedim olmadı and işe yaramadı.
- parantez koydum sürekli hata verdi. ufak bir örnek yapabilirmisin.
- bu işlemler kullanıcı seçimli değiller. müşteri nakit hareketlerini gösteren bilgiler. seçimli olduğu zaman muhtemelen aynı sorunla karşılaşırım. filtre tek seçimli değil çok seçimli
seçimli olmasınının da bir farkı yok, işaretli checkbox kadar SQL ekleme yapacaksın ve sorguyu sonunda kapatıp açacakçın ister tek ister hepsini seçsin farketmez.
Sana kendi kullandığım sorgu oluşurma kodunu vereyim...Bir tane panel içine sorgu kriterlerini koy...checkbox,combobox vs yani sorguya hangi kriterleri koyacaksan ona göre ayarla...
Kod panel içindeki bileşenlerin değerlerini duruma göre parametre olarak ekleyecektir....örneğin checkbox seçili ise parametreye dahil edecektir....Yalnız önemli olan bileşen isimleri FieldName lerin ile aynı olacak....Çoklu parametrik sorgularda kolaylık sağlayacak bir koddur buyur dene...ilk önce sonucu istersen bir memo ya at nasıl bir SQL döndürüyor bak.....
procedure TForm3.Button1Click(Sender: TObject);
var
strSQL:WideString;
i:byte;
list:TStringList;
begin
try
list:=TStringList.Create;
with panel5,list do
begin
add('select * from TabloX where 1=1 ');
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TComboBox then
if trim((controls[i] as TComboBox).Text)<>'' then
begin
Add(' and '+(controls[i] as TComboBox).Name+'='+QuotedStr((controls[i] as TComboBox).Text));
end;
if controls[i] is TCheckBox then
if (controls[i] as TCheckBox).Checked then
begin
add(' and '+(controls[i] as TCheckBox).Name+'='+'''1''');
end;
end;
strSQL:=list.Text;
Form1.sorgu(Query1,strSQL);
end;
finally
list.Free;
end;
end;
Burda gördüğün gibi checkbox seçili ise değer olarak '1' döndürüyor ve sadece seçili olanları koda ekliyor....deneyince görüceksin...burdaki OR veya AND olma işini koddan kendine göre değiştir...