Merhaba Arkadaşlar,
döküman yönetimi programı hazırlıyorum,
cari kartlara ve faturalara dosya eklemek( pdf, jpg..) istiyorum.
işlemde hata oluşan durum şu;
cari hesaplar formunu açıyorum ve filtre ile hangi hesabı istediğimi sorgu ile listeliyorum.
sonra open dialog ile ilgili cari hesaba dosya yolunu seçerek kaydediyorum. Buraya kadar sorun yok.
bu işlemden sonra bütün formlardaki listele butonlarında bulunan kodları hiç yokmuş gibi davranıyor ve işlem yapımıyor. Ancak programı kapatıp açınca normale dönüyor.
datasetleri kapatıp açıyorum olmadı, çözüm olarak başka birşey de aklıma gelmiyor.
KODLAR AŞAĞIDAKİ GİBİ :
open dialog kodu
if (form1.ADODataSet3.IsEmpty) then begin
OpenDialog1.Title :='Dosya Seçiniz';
OpenDialog1.Filter:='Evrak Seçiniz (*.pdf)|*.pdf|(*.jpg)|*.jpg|(*.jpeg)|*.jpeg)';
OpenDialog1.FilterIndex :=1;
if OpenDialog1.Execute then begin
FORM1.adodataset3.Append;
form1.ADODataSet3DOC_LOGREF.asinteger:=form1.ad_clcardLOGICALREF.asinteger;
FORM1.adodataset3DOCUMENT_PATH.AsString:=opendialog1.FileName;
FORM1.ADODataSet3.post;
end;
opendialog1.Free;
end else begin
Showmessage('Ekli Evrak Bulunmaktadır...!!!');
end;
listele içinde bulunan kod
procedure TForm4.SpeedButton5Click(Sender: TObject);
var
dosya: TextFile ;
yol: string;
dosya2: TextFile ;
dosya1: TextFile ;
frm:string;
dnm:string;
begin
AssignFile(dosya,'Data.PTH');
{$I-}
Reset(dosya);
{$I+}
AssignFile(dosya2,'frm.PTH');
{$I-}
Reset(dosya2);
{$I+}
AssignFile(dosya1,'dnm.PTH');
{$I-}
Reset(dosya1);
{$I+}
if IOResult = 0 then begin
ReadLn(dosya,yol);
CloseFile(dosya);
ReadLn(dosya2,frm);
CloseFile(dosya2);
ReadLn(dosya1,dnm);
CloseFile(dosya1);
Try
FORM1.ad_clcard.Close;
FORM1.ad_clcard.CommandText:=('SELECT CL.LOGICALREF,CL.CODE,CL.DEFINITION_,CL.SPECODE, CL.ADDR1,CL. ADDR2, CL.CITY, CL.TELNRS1, CL.TELNRS2, CL.FAXNR, CL.TAXNR, CL.TAXOFFICE, CL.EMAILADDR,DC.DOCUMENT_PATH FROM LG_'+frm+'_CLCARD CL'
+' LEFT JOIN ERT_'+frm+'_'+dnm+'_DOCUMENT DC ON DC.DOC_LOGREF=CL.LOGICALREF'
+' WHERE CL.CODE like '+#39+'%'+edit1.Text+'%'+#39+' AND CL.DEFINITION_ like '+#39+'%'+edit2.Text+'%'+#39+' AND ACTIVE=0 ORDER BY DEFINITION_ ASC');
FORM1.ad_clcard.open;
form1.ADODataSet3.Close;
FORM1.ADODataSet3.CommandText:=('SELECT *FROM ERT_'+frm+'_'+dnm+'_DOCUMENT WHERE DOC_LOGREF=:LOGICALREF');
form1.ADODataSet3.open;
except
On exception do
raise;
end;
END;
end;
yardımcı olursanız çok sevinirim.
iyi çalışmalar.
opendialog sql sorgusunu bozuyor.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
opendialog sql sorgusunu bozuyor.
"Bilginin Doruğuna Hep Birlikte..."
Re: opendialog sql sorgusunu bozuyor.
Merhaba,
Sorununuz kod yapınızda. Eğer IOResult sıfırdan farklı olur ise (ki sizin durumunuzda mutlaka öyle olmalı) listele butonu altındaki kod hiçbirşey yapmadan ve mesaj vermeden çıkıyor.
Ayrıca I/O hata bildirimleri kapalı iken her bir I/O işlemi sonrasında IOResult kontrol edilmelidir. Sizin mevcut kodunuzda sadece Reset(dosya1) işleminin sonucu kontrol ediliyor. Hata varsa prosedürden çıkılıyor. dosya, dosya2 için bu kontroller yapılmıyor.
Kodunuzu debug modunda satır satır ilerletir iseniz sorunu daha iyi anlayabilirsiniz.
Sorununuz kod yapınızda. Eğer IOResult sıfırdan farklı olur ise (ki sizin durumunuzda mutlaka öyle olmalı) listele butonu altındaki kod hiçbirşey yapmadan ve mesaj vermeden çıkıyor.
Ayrıca I/O hata bildirimleri kapalı iken her bir I/O işlemi sonrasında IOResult kontrol edilmelidir. Sizin mevcut kodunuzda sadece Reset(dosya1) işleminin sonucu kontrol ediliyor. Hata varsa prosedürden çıkılıyor. dosya, dosya2 için bu kontroller yapılmıyor.
Kodunuzu debug modunda satır satır ilerletir iseniz sorunu daha iyi anlayabilirsiniz.
Re: opendialog sql sorgusunu bozuyor.
Ertan bey, opendialog işleminin döndüğü butona basmayınca hiç bir sıkıntı çıkarmıyor, sadece opendialog exceute olunca bu durum oluyor.
"Bilginin Doruğuna Hep Birlikte..."
Re: opendialog sql sorgusunu bozuyor.
Merhaba,
İlgili kodun tamamını paylaşmadığınız için Dosya seçme kısmında bir sorun var mı söylemek zor. Görünrüğü kadarıyla OpenDialog1 bileşenini Free ediyorsunuz. Ancak Create ettiğiniz bir kod gözükmüyor.
Ayrıca FORM1.adodataset3 OnNewRecord(), OnBeforePost(), OnAfterPost() gibi olaylarında bir kod çalışıyor mu bu belli değil. Orada çalışan kod kaynaklı bir sorun da yaşıyor olabilirsiniz.
Bunun dışında ilk söylediğim gibi. IOResult kontrolünü her bir I/O operasyonu sonrasında yapmalısınız. Eğer "Data.PTH", "frm.PTH", "dnm.PTH" dosyaları çalışma dizini içinde yok ise (başka bir kod bu dosyaları siliyor ise) butonu tıkladığınızda hiçbirşey olmayacaktır. Paylaşılan kod için sadece "dnm.PTH" dosyasının olmaması dahi hiçbirşey olmaması için yeterli.
İlgili kodun tamamını paylaşmadığınız için Dosya seçme kısmında bir sorun var mı söylemek zor. Görünrüğü kadarıyla OpenDialog1 bileşenini Free ediyorsunuz. Ancak Create ettiğiniz bir kod gözükmüyor.
Ayrıca FORM1.adodataset3 OnNewRecord(), OnBeforePost(), OnAfterPost() gibi olaylarında bir kod çalışıyor mu bu belli değil. Orada çalışan kod kaynaklı bir sorun da yaşıyor olabilirsiniz.
Bunun dışında ilk söylediğim gibi. IOResult kontrolünü her bir I/O operasyonu sonrasında yapmalısınız. Eğer "Data.PTH", "frm.PTH", "dnm.PTH" dosyaları çalışma dizini içinde yok ise (başka bir kod bu dosyaları siliyor ise) butonu tıkladığınızda hiçbirşey olmayacaktır. Paylaşılan kod için sadece "dnm.PTH" dosyasının olmaması dahi hiçbirşey olmaması için yeterli.