Neden böyle birşeye ihtiyaç duyuyorsunuz ?
Mesela ben olsam sadece bir tane arama formu yaparım. Grid içinde tıklanan kaydın bilgilerini gerekli global değişkenlere atarım ve seçim yapıldıysa 1 alan bir değişken tutarımç sonra bu formu işime gereken her yerde create eder arama işleminden sonra global dğeişkenlerden hangi cari olduğunu çekerim.
Kod: Tümünü seç
var
WhereSql:string;
begin
if Dm.TblFilter.Active then Dm.TblFilter.Close;
Dm.TblFilter.SQL.Clear;
Dm.TblFilter.SQL.Add('SELECT '+
'left(dbo.STOKLAR.sto_kod,4) as Firma, '+
'dbo.STOKLAR.sto_kod AS Stok_Kodu, '+
'dbo.STOKLAR.sto_isim AS Artikel, '+
'dbo.STOK_SATIS_FIYAT_LISTELERI.sfiyat_fiyati AS Fiyat, '+
'dbo.BARKOD_TANIMLARI.bar_kodu AS Barkod, '+
'dbo.fn_eldekimiktar(sto_kod) as Toplam_miktar, '+
'dbo.STOKLAR.sto_birim1_ad as Birim '+
'FROM '+
'dbo.stoklar '+
'left JOIN dbo.STOK_SATIS_FIYAT_LISTELERI ON (dbo.STOK_SATIS_FIYAT_LISTELERI.sfiyat_stokkod = dbo.STOKLAR.sto_kod) '+
'left JOIN dbo.BARKOD_TANIMLARI ON (dbo.STOKLAR.sto_kod = dbo.BARKOD_TANIMLARI.bar_stokkodu) ');
// if UseLike then
Wheresql:='Where dbo.STOKLAR.sto_kod like '''+(edt1.Text)+'%''';
Dm.TblFilter.SQL.Add(Wheresql);
if cbName.Checked then
Dm.TblFilter.SQL.Add(' order by dbo.STOKLAR.sto_isim ')
else
Dm.TblFilter.SQL.Add(' order by dbo.STOKLAR.sto_kod ');
SelectMode:=True;
Dm.TblFilter.Open;
FrmFilterG:=TFrmFilterG.Create(nil);
Try
FrmFilterG.ShowModal;
finally
FrmFilterG.Release;
End;
SelectMode:=False;
if RecSelected then edt1.Text:=Dm.TblFilter.FieldByName('Stok_Kodu').AsString;
Tblfilter benim kullandığım boş bir sorgu. Önce ona neyi sorgulayacaksam gerekli sql kodlarını atıyorum.
Selectmode değişkeni gene benim kullandığım bir değiken. Hangi araç çubuğunu göstereceğini oradan alıyor ilgili arama formu.
Sonra formu oluşturup göstereiyorum.
formu kapattığımda selectmodu tekrar sıfırlayıp kayıt seçilmişmi ona bakıyorum. Pencere ile filan hiç uğraşmaya gerek kalmıyor