25 Ekim 2010 Pazartesi

Mikro v12 sürümünde menüye sorgu dosyası bağlayarak raporların oluşturulması.

Merhabalar,

Mikro programlarında T-SQL kodlarını kullanarak sizde kendi raporlarınızı menüye bağlayabilirsiniz. Programa (MYE, MIS9000, MRP29000, MIKRONOM, ENERJI vs) "SRV" kullanıcı ile girmeniz gerkiyor. Ana menü üzerinde fare ile sağ tuşa basıp hazırladığımız "rapordosyasi.sql" uzantılı dosyayı seçtiğimizde ekrana ekleyecektir. Kullanıcıların menülerine kalıcı olarak eklemek için fare ile sağ tıklayıp sakla seçeneğini seçtiğimizde yeni raporu eklemek istediğimizi kullanıcıları seçip enter ile onayladığımızda kayıt edilecektir.






?T = Tarih için kullanılan değişken.
?K = Kod için kullanılan değişkeni.

Mikro programdan tarih değişkenini gördüğü anda ekrana başlangıç ve bitiş tarihlerini getiriyor ve sizden tarih girmenizi istiyor. Ör: cha_tarih BETWEEN ?T1 AND ?T2













SELECT TOP 100 PERCENT


        cari_unvan1 AS [Cari_Adi]
        ,1 AS [Ft_Ad]
        ,cari_vdaire_adi AS [Vergi_Dairesi]
        ,cari_vdaire_no AS [Vergi_No]
        ,dbo.fn_StokAnaGrupIsmi(sth_stok_kod) AS [Satilan_Mal_Cinsi]
        ,sth_miktar AS [Miktar]
        ,dbo.fn_StokBirimi(sth_stok_kod,sth_birim_pntr) AS [Birim]
        ,(sth_tutar - (sth_iskonto1-sth_iskonto2-sth_iskonto3-sth_iskonto4-sth_iskonto5-sth_iskonto6)) 

         AS [Tutar]
        ,sth_vergi AS [KDV]
        ,dbo.fn_VergiYuzde(sth_vergi_pntr) AS [Oran]
 

FROM dbo.CARI_HESAP_HAREKETLERI WITH (NOLOCK, INDEX = NDX_CARI_HESAP_HAREKETLERI_04)
        LEFT OUTER JOIN dbo.STOK_HAREKETLERI WITH(NOLOCK) 

        ON (sth_fat_recid_dbcno = cha_RECid_DBCno AND sth_fat_recid_recno = cha_RECid_RECno)
        LEFT OUTER JOIN dbo.CARI_HESAPLAR WITH(NOLOCK) 

        ON (cha_kod = cari_kod)
WHERE cha_tip = 0 AND cha_cinsi in (6,7) AND cha_evrak_tip = 63 AND  
              cha_normal_Iade = 0 AND cha_tarihi BETWEEN ?T1 AND ?T2 OR (?T1 = ''AND ?T2'') 
             AND sth_stok_kod BETWEEN ?K1 AND ?K2 OR (?K1 = ''AND ?K2='')

6 yorum:

Achilless dedi ki...

Bu sorguya depo kriteride eklemek istiyorum nasıl yapabilirim

Achilless dedi ki...

[< <@P1;NAME=Depo no,40;TABLEID=111;FIELDNAME=dep_no;TYPE=I;CHOOSEID=5;MULTI=true>
<@P2;NAME=İlk tarih,10;TYPE=T>
<@P3;NAME=Son tarih,10;TYPE=T>
<@P4;NAME=Seçilen depolar tek bir depo gibi gözüksün,5;TYPE=C>
>]
Select * FROM dbo.StokEnvanterYonetimi(@P2,@P3,0,N'@P1',@P4,0)



bu sorgudaki parametreleri çalıştıramıyorum. nasıl yaptınız daha detaylı bilgi verebilirmisiniz.

Orhan ÖCAL dedi ki...

Merhaba,

Depo için bu örneği kullanabilirsiniz. Öncelikle bu sorgu biçimi yanlızca v14 ve Series9000 de çalışır. Eğer v12 yada standart seri bir modül kullanıyorsanız bu sorgu çalışmayacaktır. Eğer v14 kullanıyorsanız bu örnekten faydalanabilir yada Menü sorgu yönetimini kullanarak istediğiniz uyarlamaları yapabilirsiniz.

[<
<@P1;NAME=Depo,25;TYPE=S;TABLEID=111;FIELDNAME=dep_no;CHOOSEID=2;FIND=TRUE>
>]
SELECT sth_stok_kod, sth_giris_depo_no
FROM dbo.STOK_HAREKETLERI
WHERE sth_giris_depo_no = @P1
GROUP BY sth_stok_kod, sth_giris_depo_no

Achilless dedi ki...

Cvp için tşk. fakat benim sorunum sql değil iyi derecede sql biliyorum.

depo.sql içerisinde aşağıdaki kodlar var. mikro v14.33c (standart) kullanıyorum. nette anlatıldığı gibi depo.sql dosyasını menüye ekliyorum. fakat çalışmıyor.

Must declare the scalar variable "@P1".

hatası alıyorum. siz nasıl çalıştırıyorsunuz. ben nerde hata yapıyor olabilirim. Tşk.

[<
<@P1;NAME=Depo,25;TYPE=S;TABLEID=111;FIELDNAME=dep_no;CHOOSEID=2;FIND=TRUE>
>]
SELECT sth_stok_kod, sth_giris_depo_no
FROM dbo.STOK_HAREKETLERI
WHERE sth_giris_depo_no = @P1
GROUP BY sth_stok_kod, sth_giris_depo_no

Orhan ÖCAL dedi ki...

Sanırım anlatamadım :) ve siz cevabı verdiniz. Siz Mikro Standart seri kullanıyorsunuz ve bu sorgu şekli çalışmaz. v14 Seri9000 sürümü programlarda ancak bu şekilde değişkenler atayarak kullanabiliriniz.

Mikro Standart seri kullanmanızdan ötürü kullanabileceğiniz değişkenler kısıtlı. Kod değişkenleri "?K1, ?K2" ve Tarih değişkenleri "?T1, ?T2"

Select * FROM dbo.StokEnvanterYonetimi(?T1,?T2,0,?K1,0,0)

Karşınıza çıkan 1.Kod alanına depo no yazarak raporu çalıştırabilirsiniz.

Achilless dedi ki...

Çok tkş. cahilliğime verin. mikro serileri hakkında fazla bilgim yok. Öğrenmiş oldum.