MsSql QuickReport Delphi 3 lüsü ile problem yaşıyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

MsSql QuickReport Delphi 3 lüsü ile problem yaşıyorum

Mesaj gönderen Karamizrak »

Selamlar ve Saygılar hayırlı çalışmalar dileyerek sorunumu yöneltmek isitiyorum.
Hazırladıgım proje MsSql veritabanı üzerine haliyle delphi 7 kullanıyorum QuickReport yüklü ve çalışıyor diğer raporlarımda. Probleme gelince; QuickReportla rapor almak isitiyorum ama veritabanındaki Urun_Sayısı alanındaki secili bilgi ile Fiyat alanındaki secili bilgiyi çarpıp AS TOPLAM_BEDEL adındaki sanal alana yazdırmak isitiyorum. Öncelikle QuickReportla deneyerek Urun_Sayısı alanındaki bilgiyi Fiyat alanındaki bilgi ile çarpmak istedim Expression özelliği ile (Adoquery1.Urun_Sayısı) * (Adoquery1.Fiyat) dedim listelenen tum TOPLAM_BEDEL kısmına ilk kayıtı çarparak hepsine onu yazdı içinden çıkamadım. Sonra Delphi vasıtası ile veritabanına soru gonderdim şöyleki

Kod: Tümünü seç

 select SATIS.URUN_SAYISI, SATIS.URUN_ADI, SATIS.BARKOD, SATIS.SATICI_KODU, STOK.BARKOD, STOK.ACIKLAMA, STOK.FIYAT (SATIS.URUN_SAYISI * STOK.FIYAT) AS TOPLAM_BEDEL from SATIS,STOK where SATIS.URUN=STOK.BARKOD 
diyerek sorgu gonderdim ancak bana gelen mesaj invalid object name STOK.FIYAT boyle bir alan var. ben nasıl quickreport uzerinde iki alandaki bilgileri carpıp sonucu bir yere yazırıp sayfa sonunda toplamı alırım. yardımlarınız için teşekkur ederim.




SAYGILAR İYİ ÇALIŞMALAR.....
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

arkadaslar bır cevap yazın lutfen. bu konuyu bugun cozmem lazım.
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

dar bir vakitte yazıyorum kusura bakma

Query üzerine sağ tıklayıp fields editöre girip,
sağ tuşla tıklayıp new field diyerek açılan menüden bir şeyler yapabileceğini düşünüyorum
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Re: MsSql QuickReport Delphi 3 lüsü ile problem yaşıyorum

Mesaj gönderen Ali Erdoğan »

Karamizrak yazdı: select SATIS.URUN_SAYISI, SATIS.URUN_ADI, SATIS.BARKOD, SATIS.SATICI_KODU, STOK.BARKOD, STOK.ACIKLAMA, STOK.FIYAT, (SATIS.URUN_SAYISI * STOK.FIYAT) AS TOPLAM_BEDEL from SATIS,STOK where SATIS.URUN=STOK.BARKOD
Hocam Stok.FIYAT ifadesinden sonra virgül(,) koyman gerekiyor .
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

:D

Demekki neymiş, iki arada bir derede cevap yazmamak lazımmış.
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Arkadaslar Hocalarım ben bu işin içinden çıkamadım lütfen bir yardım eli uzatın. quickreportta iki alanı çarpıp sanal alan oluşturup orada çarpımı gostermeliyim.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Birden çok çözümü var probleminin. Gerçi zaten dolaylı veya direk belirtmiş arkadaşlar.

Bir kere çözümü QuickReport'ta arama.

Birinci çözümü zaten yapmışsın (virgül hatan hariç). Eğer virgülü de düzelttiysen kullandığın DataSet komponenti (TQuery, TSimpleDataSet vs.) hangisi ise FieldsEditörden eksik alanları da ilave etmelisin (eğer daha önce kullandıysan). Sonrası bildiğin şeyler.

İkinci çözüm Calculated field ilave edip OnCalcFields eventiyle çarpma işlemini yapmak.

Ancak birinci çözüm daha mantıklı gibi.

İyi çalışmalar.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İyi günler; QuickReport içinden de TQRExpr bileşeninden de çarpım sonucu elde edilebilir.

Kod: Tümünü seç

QRExpr1.Expression:='Alan1*Alan2';
[/b]Kolay gele.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Ya arkadaslar o problemi hallettim ama bir sorun daha var

Kod: Tümünü seç

 
  With ADOQuery1 do begin
Close;
SQL.Text:='select * from SATIS,STOK where SATIS.URUN_BARKOD=STOK.BARKOD and SATIS.SATIS_TARIH> :T01 and SATIS.SATIS_TARIH< :T02 and ADI like '''+edit1.Text+'%''';
Parameters.ParamByName('T01').DataType := ftDate;
Parameters.ParamByName('T01').Value := datetimepicker1.date;
Parameters.ParamByName('T02').DataType := ftDate;
Parameters.ParamByName('T02').Value := DateTIMEPicker2.DATE;
Open;
end; 
su sekilde listeleme işlemi ile kayıtları alıyorum dbgridde fakat rapor al dediğim zaman sadece secili olan kayıtı alıyorum ama edit1 de yazılan urun adına mutakip tum hareketleri rapor sayfasında olsun istiyorum. standart detail bandta QRDBText ler ile alanları goruyorum QRExpr ile sum fonksiyonunu kullanarak FIYAT alanında degerlerin toplanması için SummaryBand a yerleştiriyorum, Rapor al butonuna bastığım zaman sadece secili olan satırı listeliyor toplam gridde gozukenler gelmiyor. yine bu quickreportun azizliği olsa gerek bir yardımcı olun bana.
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

Yanlış hatırlamıyorsam Quickreportta koyduğun banda dataset'i de belirtmen gerekiyor.

bunu koymazsan dediğin gibi tek satır geliyor
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
yine bu quickreportun azizliği olsa gerek
birazda çuvaldızı kendimize batırsak diyorum.
quicreport sen neyi yaz dersen onu yazar. (eğer bir bug buldum diyorsan başka).
dataset ayarlarını bir kontrol et.
bileşenleri hangi banda koymuşsun bi kontrol et.
dbgrid ile querynin dataset leri aynı mı onuda bi kontrol et.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla