![]() |
|
|||||||
| Java - JSP - C# Java JSP C++ C# Delphi C Visual Basic |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|||
|
quick reportda ay bazında fatura toplamlarını raporluycam
bunu için quickreportu bir querye bağladım querye şunu yazdım: SELECT sum(toptutar),sum(kdvtutar),sum(geneltop) FROM fatura where tarih>:tarih1 and tarih<:tarih2 tarihleri paramsda date olarak tanımladım.sonra başka bir forma bir combobox koyup içine ay isimlerini yazdım.comboboxın yanına koyduğum butonun clickine de şunu yazdım: ayfatrapor.query1.close; ayfatrapor.query1.sql.clear; if cb1.Items[cb1.ItemIndex]='Ocak' then begin ayfatrapor.query1.ParamByName('Tarih1').Value:='01 .01.2002'; ayfatrapor.query1.ParamByName('Tarih2').Value:='31 .01.2002'; end else if cb1.Items[cb1.ItemIndex]='Şubat' then begin ayfatrapor.query1.ParamByName('Tarih1').Value:='01 .02.2002'; ayfatrapor.query1.ParamByName('Tarih2').Value:='28 .02.2002'; end vs. vs her ay için ayfatrapor.query1.prepare; ayfatrapor.query1.open; ayfatrapor.QuickRep1.Preview; burada 2002 tarihi yerine system yılı yazıcam,birde bu kod çalışınca ilktarih yok diyor.ne yapmalıyım? Quickreportla ilgili yardımları için tüm arkadaşlara çok teşekkürler
|
|
|||
|
Selamlar,
Query.SQL içine yazdığın kodlara bakıldığı zaman iki tarih arasındaki fatura toplamını alır. Ve bu bir tek kaydı ve sonucu ifade eder. Eğer yanlış anlamadıysam, her ay fatura toplamları bir satırda olacak şekilde bir rapor içinde görmek istiyorsan bu kodlar ve uyguladığın yöntemle sonuca ulaşılamayacaktır. Eğer yapmak istediğin bu ise : Bir Table oluştur, içinde sadece 1,2,3,4,...12 değerlerinin olacağı bir numeric ayno ve her kayıtda aydaki max gün sayısını içerecek bir gunno değeri ve ay isimlerini içerecek bir ayadi değeri içersin. her ay değerini bir kayıt olarak sabitle. Bu dosya böylesi QR raporlar alabilmek için senin sabit kütüphanenin bir parçası olsun ve her uygulamada bu mantığı ve dosyayı uygulayabilirsin. . . function Subat29(Yil:Word): Boolean; (* Şubat ayının 29 çektiği yılı bulmak... *) Var Y:Word; begin Result := (Y mod 4 = 0) and ((Y mod 100 <> 0) or (Y mod 400 = 0)); end; Var Y,A,G:Word; Begin // QR Dataset ini bu belirlediğin ay ve ayın son günlerini içeren table olarak belirle... // oluşturduğun detailband içine ayguntableAyadi değerini, Qtoptut, Qkdvtut, Qgeneltop değerlerini fatquery den alacak qrdbtext comp.ları yerleştir... DecodeDate(Now,Y,A,G); if AygunTable.Active=True Then AygunTable.Open; AygunTable.Locate('AYNO','02',[LoPartialKey]); // Şubat ayı ne çeker...28-29... AygunTable.Edit; if Subat29(Y)=True Then AygunTablegunno.asinteger:=29 Else AygunTablegunno.asinteger:=28; AygunTable.Post; AygunTable.First; Fatquery.SQL.Clear; // fatura = fatura.dbf - Ft ise Global SQL tablename variable... Fatquery.SQL.Add('Select '); Fatquery.SQL.Add('Select SUM(Ft.Fattut) As QToptut, SUM(Ft.kdvtut) as QKdvtut, Sum(Ft.geneltop) As QGeneltop From Fatura Ft'); Fatquery.SQL.Add('Where (EXTRACT(MONTH FROM Ft.Tarih)=:Ayno)'); Fatquery.SQL.Add('Group By Ft.Tarih'); // Fatquery field listi içinde Q ile başlayan değişkenler görünecektir.... QuickRep1.Preview; // NOT : QR içinde, Detailband.event içinde beforeprint aksiyonu içine aşağıdaki kodları yerleştir.. Fatquery.Prepare; // Özet olarak QR, Ay numaraları table kayıtlarını her alışında, Fatquery o ay numarasına ait kayıtların toplam değerlerini alacaktır... Eğer yapmak istediğini yanlış anladıysam daha açık yazarsan cevap vermeye çalışırım... Kolay Gelsin, Saygılarımla. QuickPink |
|
|||
|
yardımın için çok teşekkür ederim.başlangıçta yazdığım kod çalışıyor fakat sadece şubat 29 da sorun var.o biraz daha basit olduğu için şimdilik onunla idare edicem.tekrar teşekkür ederim.yeni sorularım olacak,bir kaç gündür sorduğum ve kimseden cevap alamadığım.onlara da yardım edebilirsen sevinirim.
|
|
|||
|
Merhaba site Uyesi degerli programcı Arkadaslar,
Ben bu siteye yeni kayit oldum ve yaklasik 4 ay gibi bir suredir DELPHI ile calısmaya basladim amacim iyi bir programci olmak fakat yeterli bir egitimci bulamadigim icin programcilik kurslarinda ust seviye bilgi alma sansim olmadi Bu anlamda sizlerden yardim bekliyorum Delphi de en iyi kaynak Kimlerin ve hangi yazarlarin kitaplaridir ?? ve Delphi' ye nasil baslamaliyim su andaki bilgilerim daginik oldugu icin bocalamaktayim bana Dongu mantiklariyla ilgili olarak ornekler gonderirseniz sevinirim ve kolay yoldan mantik olusturmak icin nasil bir yol takip etmeliyim simdiden tesekkurler ediyor va islerinizde basarilar diliyorum Bahattin POLAT |
|
|||
|
Selam Bahattin arkadaşım,
Önce girdiğin bu yolda sana başarılar dilerim. En kolay mantık oluşturmanın tarif edilebilir bir tanımı olduğunu düşünmüyorum. Zor olduğundan değil, kolay mantığın subjektif bir kavram oluşundan kaynaklanması. Bunu 15 yıldan bu vakte kadar profesyonel olarak programcılıkla uğraşmama ve 5 yıllık programcılık öğretmenliğime dayanarak söyleyebiliyorum. Yinede kolay mantığı sonuca giden en basit yol tercihi olarak bir tanım içine koyabiliriz. Seçilen bu yolun kestirme oluşu, dolambaçlı oluşu, çetrefilli veya zor oluşu..vs işte bütün bunların hepsi sonuca gidişte karşılaşılanlar ve tercih edilen yoldaki aşamalardır. Siz hangi yolu tercih etmişseniz o yolun getirdikleri ve sizin karşılaştığınız soru/sorunları algılama ve çözme yöntemleriniz..vs işte kolay mantık bu..yani sonuca gidişdeki her aşamada verilen kararlar..Fakat doğru mantık kurgulamanız en kolay mantığı kurgulamanızdan çok daha önemli ve hayatidir. Kolay mantığı tercih etmeye çalışırken doğru sonuca ulaşmayı geciktirmek, zorlaştırmak veya karışıklığa sebep vermemek gerekir... Delphi'de en iyi kaynak delphi nin kendi içindeki yardımı, örnekleri ve kitaplarıdır.. Döngüler : FOR Vardeğişken:=ilkdeğer TO sondeğer DO BEGIN . . düngü içi işlemler.. ilkdeğerden başlayarak son değere kadar bu işlemler tekrar edilir. . END; WHILE şart DO BEGIN . . verilen şart sağlandığı sürece döngü çalışır.şart ortadan kalkdığında döngüden çıkılır. Dikkat edillmesi gereken en önemli şey döngü içine girmeden önce, şartın sağlanıyor olup/olmadığı.WHILE döngüsü ilk çalıştığı zaman döngü içi işlemleri yapmadan önce şartın uygunluğunu kontrol eder... . END; REPEAT . . UNTIL ile verilen şart sağlandığı sürece döngü içi işlemler çalışır. Burada WHILE döngüsünün (LOOP) aksine şarta bakılmaksızın döngü çalıştırılır, işlemler en az bir defa yapılır ve UNTIL ile şart sağlanırsa işlemler tekrar edilir, şartın sağlanmadığı an döngü terk edilir.. . UNTIL şart GOTO = ilkel döngü/sapma...(Yüksek seviyeli dillerde ilkeldir...Delphi, C/C++..vs) Bunun için Var, Const gibi tanımlama bölümlerinde LABEL paragrafadı1, paragrafadı2...vs gibi bir tanım yapılmalıdır. Sapma Kullanımı : BEGIN işlemler.. if a=b Then goto eşitlik_var Else if a>b Then goto abuyukb Else if a<b Then akucukb; Goto CIKIS; eşitlik_var: showmessage('a=b sonucu bulundu...'); Goto CIKIS; abuyukb: showmessage('a>b sonucu bulundu...'); Goto CIKIS; akucukb: showmessage('a<b sonucu bulundu...'); CIKIS: Exit; End; Dikkat edilecek olursa goto ile program akışına sapma verilemektedir..Program akışının GOTO ile yönlendirilmesi durumlarında akış yönlendirilen satırlardan sonra devam eder..(kullanımını tavsiye etmiyorum..Profesyonel olmadığı ve programları yavaşlattığı bilinen gerçeklerdir..Bu mantığı (döngü olarak kullanılabilmektedir..) Kolay mantık olarak görenler vardır..Fakat ben döngü mantığının öğretilmesi haricinde kullanılmasının doğru olmadığını düşünüyorum.. Döngü için kullanım: i:=0; {i 0 ile başlayacak } Tekrar : inc(i); {i değeri bir arttırıldı..} if i>30 Goto dongucik; Showmessage('I='+inttostr(i),' değeri aldı..'); Goto Tekrar; dongucik: { i döngüsünden çıkıldı... i enson 31 oldu} { For kullanımı : FOR I:=1 TO 30 do Showmessage('I='+inttostr(i),' değeri aldı..'); {i döngüsünden çıkıldı...} FOR i:=30 DOWNTO 1 DO { Burada 30 dan geriye doğru döngü kurulmuştur..} Umarım yardımcı olmuşumdur... Kolay gelsin..Saygılarımla.. QuickPink |
![]() |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Page rank değeri neye göre nereye göre :) | annudora | Link Değişim | 0 | 2006-06-27 22:10 |
| Rapor Yöneticisi | disconnect | Google Adsense | 6 | 2005-12-13 21:29 |
| Size göre belki küçük ama bana göre büyük bir problem | ombossman | Veritabanları | 1 | 2005-03-21 05:43 |
| quickreportda alan birleştirme | purple | Java - JSP - C# | 1 | 2002-09-06 16:47 |
| quickreportda master-detail | Anonymous | Java - JSP - C# | 5 | 2002-08-13 18:03 |