Logo Destek

Logo Plus Acil Destek (Plus versiyonlarına artık buradan destek verilecektir.) => GO3 - GO PLUS => Konuyu başlatan: westshine - 28.03.2018, 21:28

Başlık: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: westshine - 28.03.2018, 21:28
Çözemediğim için yazıyorum.

Rapor üreticisine bir query yazdım. Bu query, kullanıcının verdiği başlangıç ve bitiş tarihleri arasında çeşitli toplamlar alıyor.
SUM işlemi yapan bölümlerde tarih aralığı için ;
{FLTDATEBEG(1)}
{FLTDATEEND(1)}
alanlarını kullanıp FİLTRELER bölümünde Tarih aralığı seçerek SORGUDA KULLANILIR işaretini vermeme rağmen sorgu alanına bağlayamadığım için filtreyi kabul etmiyor.
Bundan dolayı raporu oluşturamıyorum.
İlla filtre alanının Select içinde bulunan bir alan ile eşleştirmek istiyor.
(Logo nun böyle bir seçeneği atlamasını allayamam ayrı bir durum)
Ama bu filteyi SUM yaptığım bir Select içinde subquery de kullanıyorum.

Bunu çözebilen var mı ?

İkinci dert ise SQL içinde oluşturduğum Storage Procedure'i
Rapor üreticisinde nasıl kullanmam gerektiği
AMA
Yukarda belirtiiğim sorun burda da var.
Yani SP ye Başlangıç ve bitiş tarihi göndererek gelen sonucu satır satır dökmek

Belki de LOGO dan olduğundan fazla şeyler bekliyorum
Ama bence Yıllardan beri kullandığı Raporlama Teknolojisini Değiştirmeli


Not: Bu arada yaptığım iki tarih arasında ürünlerin marka bazında toplamlarını getirmek
Sütunlar Şöyle

Devir Tutarı (girilen başlangıç tarihine kadar)
Alım Tutarı (girilen başlangıç tarihi ile bitiş tarihi arasında)
Alım İade tutarı (girilen başlangıç tarihi ile bitiş tarihi arasında)
Satış Tutarı (girilen başlangıç tarihi ile bitiş tarihi arasında)
Satış iade Tutarı (girilen başlangıç tarihi ile bitiş tarihi arasında)
Son tutar (Girilen bitiş tarihinde)

Yani 1 günde olsa bir hafta yada bir ay yada istenilen tarih aralığında aynı extre gibi ama marka bazında rakamları oluşturmak.

Tüm bunları SQL den yaptım
Ama bunu Rapor Üreticiye tanımlayamadım.
Select ile seçilmeyen bir alanı filtreye ekleyemediğim için...

Şimdiden yardımlarınız için teşekkür ediyorum.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 28.03.2018, 22:51
Selamlar

Filtre alanında mutlaka bir yerleri atlamış olmanız lazım. Projeyi görürsem belki daha net çözüme gidebiliriz.

Ikinci dediğini ben şöyle yapıyorum sorgu öncesi çalışacak alana proc yazıp ordan çıkan sonuçları normal tabloya insert yapıyorum sonra çalışacak alana tabloyu yazıyorum.

Bende bu konuda baya bi sıkıntı çekmiştim çok şükür normal cari hesap ekstresi ile faturalanmamis irsaliyeyi birlestirdim.

Sizin ya rapor üreticiye ekledigin formu görmem lazım yada işlem asamlarin fotoğraflarını

Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: westshine - 30.03.2018, 22:54
Aslında ilk yazdığımda yapmaya çalıştığım işlem açık ama şöyle bir örnek verebilrim;

DECLARE @BASTAR DATE = '01.01.2018'
DECLARE @BITTAR DATE = '01.31.2018'

SELECT I.CODE, I.NAME, SUM(S.LINENET) FROM LG_XXX_01_STLINE
INNER JOIN LG_XXX_ITEMS I ON I.LOGICALREF=S.STOCKREF
WHERE S.TRCODE=8 AND S.CANCELLED=0 AND S.LINETYPE=0 AND S.DATE_>=@BASTAR AND S.DATE_<=@BITTAR
GROUP BY I.CODE,I.NAME
ORDER BY I.CODE

Burada verilecek iki tarih arasında ürün bazında net satış tutarını buluyorum.
Fakat sorgu alanları içinde olmadığı için başlangıç ve bitiş tarihlerini Rapor üreticisinde filtre olarak tanımlayamıyorum

Sorgu tamamen örnektir.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 31.03.2018, 13:57
Selamlar,

Normal şartlarda tarih alanına filtre verebilmemiz için Select içerinde Tarih alanını seçmemiz lazım. Ben net satış raporu üzerinden örnek bir dosya hazırladım sen mantığını kavrayınca uyarlar'sın kendine. Rapor Üretici / Sağ Tuş / Diğer / Dosyaya Aktar ile içerisi alırsınız

Sonuçları kontrol etmedim

https://drive.google.com/open?id=1ABR5S681qCluTlOonhi0_EkR386vy0Yy (https://drive.google.com/open?id=1ABR5S681qCluTlOonhi0_EkR386vy0Yy)

Kod: [Seç]
SELECT
CARI.CODE [Cari Kodu],
carı.DEFINITION_ [Cari Adı],
MALZEMEKARTI.CODE [Stok Kodu],
MALZEMEKARTI.NAME [Stok Adı],
MALZEMEKARTI.STGRPCODE [Grup Kodu],
max(MALZEMEHRK.DATE_) [Tarıh],
SUM(CASE WHEN MALZEMEHRK.TRCODE IN (7,8) THEN 1 ELSE -1 END* MALZEMEHRK.VATMATRAH) [Tutar]
FROM  {FIRMDB}..LG_{FIRMNR}_{PERIODNRPP}_STLINE AS MALZEMEHRK INNER JOIN LG_{FIRMNR}_ITEMS AS MALZEMEKARTI ON MALZEMEHRK.STOCKREF=MALZEMEKARTI.LOGICALREF AND MALZEMEHRK.LINETYPE IN (0, 1, 6, 8, 9 )
INNER JOIN {FIRMDB}..LG_{FIRMNR}_CLCARD CARI ON CARI.LOGICALREF=MALZEMEHRK.CLIENTREF
WHERE MALZEMEHRK.CANCELLED=0  AND   MALZEMEKARTI.NAME LIKE {FLTSTRVAL(1)}
AND MALZEMEHRK.DATE_ BETWEEN {FLTDATEBEG(2)} AND {FLTDATEEND(2)}
GROUP BY
CARI.CODE ,
carı.DEFINITION_ ,
MALZEMEKARTI.CODE ,
MALZEMEKARTI.NAME ,
MALZEMEKARTI.STGRPCODE



Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: ByBirol® - 31.03.2018, 16:03
Logoda rapor üretici ekleme özelliği kaldırıldı artık bilginize
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 31.03.2018, 16:26
Lisanslı mı olacak  ?
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: ByBirol® - 31.03.2018, 16:40
yok , fakat dikey çözümlerde ki ürünlere Kaysın diye , Mind vs.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 31.03.2018, 17:02
Anladım bende tam bu konular üzerine çalışıyordum.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: westshine - 02.04.2018, 18:42
2.50 verisonundan itibaren mi geçerli bu durum ?

Eğer öyleyse büyük dert...
Logo içinde rapor olanakları çok kısıtlı hala yıllar öncesinin teknolojisini kullanıyorlar.
En basit şekilde hiç bir tanımlı logo raporunda Özel Kod alanlarına göre bir sıralama yok.
Sadece belli raporlarda sıralamayı sormaktalar.
Ayrıca Gruplama da yapılamamakta.
Sadece kendi oluşturduğu gruplamalar kullanılmakta.

Logo bunu yaparsa bence kendi ayağına sıkmış olur.

Birçok müşteri bundan dolayı yeni vesiona geçiş bile yapmazlar.

Not : Vedat Bey bulduğunuz çözümü deneyeceğim. Ama bana olur gibi gözüktü teşekkür ederim.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 02.04.2018, 19:17
Selamlar

2.50 versiyonu ile geldi . Logo bu konuda başka raporlama programlarını satacak sanırım

Sen sorguları dene sonucu bildir sorun olursa bakariz
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: ByBirol® - 02.04.2018, 23:43
2018-2019 planlarında standart raporlar ile ilgili iyileştirmeler planlar dahilinde .
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: westshine - 03.04.2018, 20:20
Merhaba.

Sorgu için önerdiğiniz yöntem maalesef olmadı.
Çünki iki tarih arasında bir değer verildiğinde max(tarih) sonucu çıkaramıyor.

Ama şöyle çözdüm.
ID
BASTAR
BITTAR

alanları olan bir tablo oluşturdum.

Bu tabloyu INNER JOIN TABLO T ID=1
olarak querye ekledim.

Rapor üreticisinde bulunan ana sorgu çalışmadan evel çalıştırılacak hazırlık sorgusuna
Fitreden girilen BASTAR ve BITTAR değerlerini ID=1 ile ekledim (varsa kaydı silerek)

Ana soruda select kısmına da T.BASTAR, T.BITTAR ekleyince
istediğim tarihler arasında tamamen serbest raporlama alabilmem olanaklı oldu

Bu yöntem bence Select alanlarına eklenemeyen alanlar için rahatlıkla kullanılabilir.

Oluşturulan tabloya tarih alanları dışında filtresi istenen ama sorgu alanlarına eklenemeyen tum alanlar eklenebilir.

Bu alanları da hazırlık query bolumunde doldurulup kullanılır.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 03.04.2018, 20:29
Rapor üretici bölümüne yazdığınız kod ve şablonu bir yere yükleyip link verir misiniz
Başlık: Logo Mind ?
Gönderen: westshine - 03.04.2018, 20:54
Türkiye'de GO serisi kullanıcılar belli.
Daha herhangi bir tasarımda bile bir değişiklik yapamazken mind gibi bir uygulamayı nasıl kullanacaklar ?
Ayrıca her müşteri kartlarını kendine göre kullanmaktalar.
Mesela müşteri Cari karlarda Özel koda satış elemanını yazmış, yetki koduna satış elemanının cariyi ziyaret edeceği günü yazmış,
bu en basiti
GTIPCODE,B2CCODE,LOGOID,STGRPCODE gibi alanları tamamen kendi isteklerine göre kullanan müşteriler var
Aynı durum malzeme ve muhasebe kartlarında da var.
Şimdi sizden duyar gibiyim Satış elemanı alanı var neden özel kod kullanılsın diye...
Ama maalesef logo raporları içinde satış elemanı filtresi olan 1-2 rapor var başka rapor yok.
Aynı şekilde Malzeme kartlarında marka alanı. bu alanıda kullananı görmedim. Adam markayı özel koda yazmış. çünki marka filtreli rapor 1-2 tane var.

Bence Logoya eklenmesi gereken özellikler :

Üretici kodunun malzeme parametrelerine tekil yada çoğul olabileceğinin belirlenmesi.
Çünki farklı markaların aynı kodu taşıyan ama farklı özellikleri olan ürünleri mevcut
Örnek : oto yedek parçası marş motoru STR-3003 kodu farklı markalarda (UNIPOINT,REMARK,DODO,WINWIN vs vs) mevcut.

Malzeme alternatiflerinin girişlerinin gerçekten zor ve gereksiz bilgiler içermesi
Öncelik, çarpan, başlangıç ve bitiş tarihleri girmeden alternatifi kabul etmemekte.
Bu alanları parametrik olarak zorunlu yada isteğe bağlı tanımlamak ve özellikle A malzemesine B yi alternatif olarak tanıttığımda B malzemesinin alternatifine de A malzemesini otomatik olarak eklemesi gerekir.

Carinin sosyal medya bilgileri sadece tek yere girilebilmekte. Bence ilgili bazında olmaması büyük eksiklik.

Yani bunun gibi dünya kadar eksiklik var.

Ayrıca LOGO ya şunu söylemek gerekiyor :
Uygulamanın içinde aktif olarak kullanılan bir özelliği (Rapor Üreticisi) kaldıramaz.
Kaldırdığı zaman müşteri bunu "kullanımını satın aldığım bir özelliği kapatamaz" diye adli makamlara başvurabilir.
Ve böyle bir durumda müşterinin kazanması içten bile değil...
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 03.04.2018, 21:02
Rapor üretici bölümüne yazdığınız kod ve şablonu bir yere yükleyip link verir misiniz
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları ... ÇÖZÜM
Gönderen: westshine - 03.04.2018, 21:02
RAPORLAMA ÖNCESİ ÇALIŞACAK SORGU :

DELETE ATARIH WHERE ID=1
INSERT INTO ATARIH (ID,BASTAR,BITTAR)
VALUES (1,{FLTDATEVAL(1)},{FLTDATEVAL(2)})

RAPOR SORGUSU

select I.GTIPCODE, P.BASTAR, P.BITTAR,

DEVIRTUT= CASE WHEN DAY(P.BASTAR)=1 AND MONTH(P.BASTAR)=1 THEN
ROUND(ISNULL((SELECT SUM(L.AMOUNT*M.GIRBFYT)
FROM LG_118_01_STLINE L
LEFT OUTER JOIN LA_118_MALMALIYET M ON M.MALREF=L.STOCKREF
INNER JOIN LG_118_ITEMS A ON A.LOGICALREF=L.STOCKREF
WHERE L.CANCELLED=0 AND L.LINETYPE=0 AND L.TRCODE=14 AND L.CANCELLED=0 AND A.GTIPCODE=I.GTIPCODE),0),0)
ELSE
ROUND(ISNULL((SELECT SUM(CASE WHEN L.TRCODE IN (1,2,3,4,5,13,14,50) THEN (L.AMOUNT*M.GIRBFYT) ELSE ((L.AMOUNT*-1)*M.GIRBFYT) END)
FROM LG_118_01_STLINE L
LEFT OUTER JOIN LA_118_MALMALIYET M ON M.MALREF=L.STOCKREF
INNER JOIN LG_118_ITEMS A ON A.LOGICALREF=L.STOCKREF
WHERE L.CANCELLED=0 AND L.LINETYPE=0 AND L.LINETYPE=0 AND L.CANCELLED=0 AND A.GTIPCODE=I.GTIPCODE AND L.DATE_<P.BASTAR),0),0) END
.....
FROM LG_118_ITEMS I
INNER JOIN ATARIH P ON P.ID=1
WHERE I.ACTIVE=0  AND (SELECT TOP 1 S.LOGICALREF FROM LG_118_01_STLINE S
WHERE S.STOCKREF=I.LOGICALREF AND S.CANCELLED=0 AND S.LINETYPE=0
AND S.DATE_<=P.BITTAR) IS NOT NULL
GROUP BY I.GTIPCODE,P.BASTAR,P.BITTAR

işlemi bu kadar sıkıntılı olması GROUP BY işlevinden kaynaklanmakta.
GROUP BY bazı yöntemleri sorgu içinde kullandırmamakta.
Bundan dolayı ancak bu yöntem çalışıyor.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: vedat_ozer - 03.04.2018, 22:14
Selamlar

Ben o group by kısmını select kısmına tarihi max vererek çözdüm. Sizin ilk başta verdiğiniz örnek sorguda uyguladim hata almadım.

Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: ByBirol® - 03.04.2018, 22:22
2.50 ve öncesi icin aktif , sunu unutmayın dilediniz rapora dilediniz alanı filtre olarak ekleyebilirsiniz.

bizim millet programı TV gibi algılıyor alayım yatayım ,en basit apple 10 sene hızlı ekrandan hücresel veriyi aç kapa özelini getirmedi daha yeni geldi , malesef belkide doğru ama dünya böyle .

bu arada select’ e almadan da filtre eklenebilir , üzerinde biraz daha çalışılarak.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: westshine - 04.04.2018, 08:38
Merhaba Birol Bey

Logo'nun kendi dökümanlarında da filtre olarak eklenecek değerin sorgu alanlarında olması gerektiği yazmakta.
bir çok alternatif denememe rağmen sorgu alanında kullanılmayan filtre ekleyemedim.
Fitre ekranında eklenmiş gibi görünmesine rağmen eklememekte.
Eğer sorgu alanında olmayan (ama query içinde kullanılacak) filtre ekleyebiliyorsanız yöntemi paylaşabilirseniz çok iyi olur.

Vedat Bey,

Benim sorgu yöntemimde sizin önerdiğiniz işlem olmuyor.
Bununla ilgilide bir çok deneme yaptım

Ancak yazdığım yöntem ile bilgiye ulaşabiliyorum.
Başlık: Ynt: Rapor üreticisi ile ilgili uzmanlık soruları
Gönderen: ByBirol® - 04.04.2018, 12:06
* Bir fonksiyon yazınız.
* Select ' in içinde çağırıp deneyiniz .