type
yenigrid=class(TDBGrid);
implementation
uses Unit1, USProj, UTedarikci, USec, UStok, UHLis, UHGTan, UIAktar, UIrsaliye;
{$R *.dfm}
procedure TFFatura.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
FFatura:= nil; //++
end;
procedure TFFatura.sBitBtn40Click(Sender: TObject);
begin
Close;
end;
procedure TFFatura.KaydetClick(Sender: TObject);
begin
DMSProj.TSHareket.Append;
DMSProj.TSHareket.Edit;
DMSProj.TSHareketEvrak.AsString:=E1.Text;
DMSProj.TSHareketTarih.AsString:=E2.Text;
DMSProj.TSHareketVTarih.AsString:=E3.Text;
DMSProj.TSHareketHTip.AsString:=E7.Text;
DMSProj.TSHareketHTanim.AsString:=E4.Text;
DMSProj.TSHareketBaSan.AsString:=E5.Text;
DMSProj.TSHareketHGurup.AsString:=E6.Text;
DMSProj.TSHareketHKodu.AsString:=E8.Text;
DMSProj.TSHareketHarTip.AsString:=E9.Text;
DMSProj.TSHareketTutar.AsString:=Lab.Caption;
DMSProj.TSHareket.Post;
TFatura.Append;
TFatura.Edit;
TFaturaEvrak.AsString:=E1.Text;
TFaturaTarih.AsString:=E2.Text;
TFaturaVTarih.AsString:=E3.Text;
TFaturaHTip.AsString:=E7.Text;
TFaturaHTanim.AsString:=E4.Text;
TFaturaBSantiye.AsString:=E5.Text;
TFaturaHGrub.AsString:=E6.Text;
TFaturaHarKod.AsString:=E8.Text;
TFaturaHarTip.AsString:=E9.Text;
TFaturaSToplam.AsString:=Lab.Caption;
TFatura.Post;
Kaydet.Enabled:=False;
TFatSay.Post;
DMSProj.TPersonel.Close;
DMSProj.TPersonel.Open;//Tabloyu Aç
if E5.Text=''
then DMSProj.TPersonel.Filter:=''
else
DMSProj.QPerExtreToplam.Open;
DMSProj.QPerExtreToplam.Close;
DMSProj.QPerExtreToplam.Filter:='[HTanim]='+#39+E5.text+'*'+#39;
DMSProj.QPerExtreToplam.Filtered:=True;
end;
procedure TFFatura.IKaydetClick(Sender: TObject);
var
adet,i:Integer;
toplam:Double;
begin
if not assigned(FIrsaliye) then
begin
FIrsaliye:=TFIrsaliye.Create(self);
end
else
FIrsaliye.BringToFront;
if FIrsaliye.TIrsaliyeDurum.AsString=IRE.Text Then
FIrsaliye.TIrsaliye.Filter:=''
else
FIrsaliye.TIrsaliye.Filter:='[IrNo]='+#39+IRE.text+'*'+#39;
FIrsaliye.TIrsaliye.Filtered:=True;
FIrsaliye.TIrsaliye.Edit;
FIrsaliye.TIrsaliyeDurum.AsString:=E10.Text;
FIrsaliye.TIrsaliye.Post;
begin
TBagIrs.Refresh;
TBagIrs.Append;
if (TBagIrs.State <> dsEdit) and (TBagIrs.State <> dsInsert) then Exit;
TBagIrsTarih.AsString:=E2.Text;
TBagIrsVTarihi.AsString:=E3.Text;
TBagIrsHTipi.AsString:=E7.Text;
TBagIrsHTanim.AsString:=E4.Text;
TBagIrsBSantiye.AsString:=E5.Text;
TBagIrsHKod.AsString:=E8.Text;
TBagIrsHarTip.AsString:=E9.Text;
TBagIrsIrNo.AsString:=IRE.Text;
TBagIrsMalNo.AsString:=E11.Text;
TBagIrsMalzeme.AsString:=E12.Text;
TBagIrsBirim.AsString:=E13.Text;
TBagIrsMik.AsString:=E14.Text;
TBagIrsBFiyat.AsString:=E15.Text;
TBagIrsKDV.AsString:=E16.Text;
TBagIrsKDVsizToplam.AsFloat:=strtofloat(E14.Text)*strtofloat(E15.Text);
TBagIrsSToplam.AsFloat:=(strtofloat(E14.Text)*strtofloat(E15.Text)*strtofloat(E16.Text)/100)+(strtofloat(E14.Text)*strtofloat(E15.Text));
TBagIrsKDVBFiyat.AsFloat:=(strtofloat(E14.Text)*strtofloat(E15.Text)*strtofloat(E16.Text)/100)/(strtofloat(E14.Text))+(strtofloat(E15.Text));
TBagIrs.Post;
TBagIrs.Refresh;
QFatura.Refresh;
begin
QFatura.Close;
QFatura.Open;
if E19.Text='' then
QFatura.Filter:=''
else
QFatura.Filter:='[HTanim]='+#39+E19.text+'*'+#39;
QFatura.Filtered:=True;
begin
QFatura.Open;
toplam:=0;
adet:=StrToInt(Format('%2d',[yenigrid(DBGrid1).RowCount-1]));//satır sayısı
QFatura.First;//ilk kayıda git
for i:=1 to adet do
begin
toplam:=toplam+DBGrid1.Fields[7].AsFloat;
QFatura.Next;
end;
Lab.Caption:=FloatToStrF(toplam,ffNumber,50,0);
end;
end;
end;
end;
procedure TFFatura.sBitBtn2Click(Sender: TObject);
var
aktar:AnsiString;
begin
E1.Enabled:=True;
E2.Enabled:=True;
E3.Enabled:=True;
E4.Enabled:=True;
E5.Enabled:=True;
E6.Enabled:=True;
TFatSay.Refresh;
if Har2.Text = '' then
TFatSayNo.Text:= '';
TFatSay.Edit;
TFatSayNo.Text:=IntToStr(StrToInt(TFatSayNo.Text)+1);
Har3.Text:= TFatSayNo.Text;
aktar:=(Har1.Text)+' '+(Har3.Text);
E1.Text:=aktar;
Kaydet.BringToFront;
Kaydet.Enabled:=True;
end;
procedure TFFatura.SecClick(Sender: TObject);
begin
IKaydet.Enabled:=True;
E1.Enabled:=True;
E2.Enabled:=True;
E3.Enabled:=True;
E4.Enabled:=True;
E5.Enabled:=True;
E6.Enabled:=True;
E11.Enabled:=True;
E12.Enabled:=True;
E13.Enabled:=True;
E14.Enabled:=True;
E15.Enabled:=True;
E16.Enabled:=True;
if not assigned(FIAktar) then
begin
FIAktar:=TFIAktar.create(self);
FIAktar.ShowModal;
end
else
begin
FIAktar.TIAktar.Open;;
FIAktar.TIAktar.Filtered := False;
if E10.Text=EmptyStr then
FIAktar.TIAktar.Filter:='';
FIAktar.TIAktar.Filter := '[Durum]=' + AnsiQuotedStr(E10.Text + '*', ' ');
FIAktar.TIAktar.Filtered := True;
FIAktar.bringtofront;
end;
end;
end.
//Dostlar en son begin blogu içindeki filitrelem işlemi programı çlaıştırdığımda hata vermiyor ancak filitrelem işlemini gerçekleştirmiyor bu sorunumu çözmeme yardımcı olurmusunuz.
AnsiQuotedStr yerine QuotedStr fonksiyonu kullandım anck "Çok fazla geçerli parametre" hatası verdi
FIAktar.TIAktar.Filter := '[Durum]=' + AnsiQuotedStr(E10.Text + '*', ' ');
FIAktar.TIAktar.Filter := '[Durum]=' + AnsiQuotedStr(E10.Text + ' '); kodu bu şekilde düzelttim çalıştı ancak yinede Filitreleme işlmini gerçekleştirmedi. sayın ertank bey ilginize tşk.
Eğer yanlış bilmiyor isem Filter parametresi SQL standardında bir kullanıma sahiptir. Dolayısıyla string türünde bir bilgiyi boşluk değil tek tırnak ile vermeniz gerekir. Sorununuzun da bu olduğunu düşünüyorum. Siz AnsiQuotedString() fonksiyonunun son parametresi olarak boşluk karakteri gönderiyorsunuz. Dolayısıyla geri dönen bilgide tırnak ( ' ) veya çift tırnak ( " ) karakteri içinde olmamış oluyor.
Diğer taraftan gönderdiğiniz kodda üst kısımlarda birçok defa Filter parametresi kullanılmış. Siz en altta farklı şekilde kullanmaya çalışmışsınız. Buralardan kopya çekmeniz yeterli olabilirdi.
Hata aldığınız QuotedStr() kullanımınızda tahmin ediyorum sondaki boşluk bilgisini eklemeye çalıştınız ki hata açıklaması bana olası sebep olarak bunu söylüyor. QuotedStr() kullanımını aşağıdaki şekilde deneyebilir misiniz?
tavsiyelerinin hepsini denedim maalesef kod çalışıyor ancak filtreleme işlemini yapmıyor. filtre blokunu yanlış yere yazıyorum düşüncesi ile bütün bloklar arasında da denedim olmuyor.
Müsaade edersen özelinden göndermek isterim. Ne profesyonel nede amatörce çalışıyorum sadece piyasadaki programlardan esinlenerek Oğlumun iş yerine karınca kararınca bir şeyler yapmaya çalışıyorum. 62 yaşındayım böylece emekliliğimin zamanını böyle geçiriyorum. Delphi yi seviyorum Delphi 7 ve paradoks vt nı kullanıyorum. tekrar ilgine tşk.
Kullandığınız sürüm ile ilgli; bende hiç kurulu Delphi 7 yok. Paradox veri tabanı yıllardır desteklenmiyor ve Windows 10 64Bit sistem üzerinde çalıştırabilir miyim emin değilim.
Eğer çok zaman ve uğraşı gerektirmeyecek ise sizin kullanımınıza uygun ücretsiz lisans alabileceğiniz Delphi Community Edition kullanmaya başlamanızı tavsiye edebilirim. Böylece SQL Server Express gibi çok daha modern ve desteklenen database sistemlerini kullanabilir hale gelebilirsiniz. Aşağıdaki bağlantıdan gerekli bilgileri doldurarak e-mail adresinize lisans bilgisi alabilir ve en son sürüm Delphi indirip sisteminize kurabilirsiniz.
Arkadaşlar Merhaba,
Benim bir tane SQL veri tabanım var tablomda da varistarihi isimli alanım var bu alana tarih olarak giriş yapıyorum benim amacım
bu alandaki tarihe 3 gün kala her form açılışında show message ile bana uyarı vermesi ne denediysem olmadı yardımlarınızı bekliyorum.
sahin4169 yazdı: ↑06 Eki 2018 12:29
Arkadaşlar Merhaba,
Benim bir tane SQL veri tabanım var tablomda da varistarihi isimli alanım var bu alana tarih olarak giriş yapıyorum benim amacım
bu alandaki tarihe 3 gün kala her form açılışında show message ile bana uyarı vermesi ne denediysem olmadı yardımlarınızı bekliyorum.
Merhaba,
Kullandığınız Delphi sürümü nedir?
Databse erişimi için hangi bileşenleri kullanıyorsunuz?
Database içindeki ilgili tablo adı nedir?
Denediğiniz son kodu paylaşabilir misiniz?