Widget | Dinamik Rapor

Tanım

Veritabanındaki istenilen bilgiyi SQL tipi ile sorgusu girilerek rapor çekmeye yarayan ve istenen tüm sayfalara eklenebilen widget eklentisidir. Gösterilmek istenen kolonlar "Kolonlar" kısmından ayarlanabilen, kısıt olarak "Parametreler" kısmından filtrelenebilen ve kullanıcıya bu bilgileri ekrana dökme ya da Excel, Word, Pdf olarak alabilme özelliği sunan bir widgettır.

Kullanımı

Özelleştirilebilir sistem sayfalarına ya da yeni oluşturulan sayfalara widget olarak eklenmektedir. Eklendikten sonra test amaçlı en altta verilen test girdileri ile kullanım sağlanabilinmektedir.
"Tasarım Modu" açıldığında "Sayfa Tasarımı Düzenle" özelliği ile sayfa layout üzerinden "Yeni Widget Ekle" ile eklenebilir.

Ekran

Görünüm

Tüm sayfalara eklenebilir widget bileşenidir. Belirlenen ayarlara göre cari rapor bilgisini vermektedir. Örnek raporumuz Stored Procedure ile çalışmaktadır. Parametre olarak Cari Kodu, Başlangıç ve Bitiş Tarihi alıp bu kısıtlara göre arama yapmaktadır. Ayarlar kısmında belirtilen 6 adet kolon bu kısıtlara göre dolmaktadır.


Ayarlar

Yetkiniz dahilinde Tasarım modu ile "Ayarlar" kısmından eklentinin parametre ekranı açılmaktadır.


SQL Sorgu

SQL sorgu kısmında kullanılan stored procedure ya da view ın içeriğinde;


StoreId kullanıcının o an ki mağaza bilgisini, BranchId şube bilgisini, UserId kullanıcı bilgisini, CurrentAccountCode o an ki carinin kodunu almaktadır. FormData parametresi ise birbiriyle senkron çalışan işlemler için gerekli parametreyi sağlamaktadır.
CREATE PROCEDURE [dbo].[procedure_name]
@StoreId VARCHAR(35),
@BranchId VARCHAR(35),
@UserId VARCHAR(35),
@CurrentAccountCode VARCHAR(35),
@FormData Xml
Şeklinde yaratılmaktadır.

Parametreler

şeklinde tanımlanmıştır.

şeklinde tanımlanmıştır. Örnek olarak cari kodu kolonunda "12" numarası geçen carileri aramak istiyorsanız operatör alanında 4'ü kullanırsak bu işlemi gerçekleştirecektir. Örneğimizde bitiş tarih kolonunda operatör=3 kullanılmıştır. Bu tarihe eşit ve küçük olan tarihleri getirmektedir. Başlangıç tarihinde ise büyük eşit görevi olan 2 numaralı alan başlangıç tarihine eşit ve büyük tarihleri getirmektedir.

Kolonlar

Kolonlar kısmında kolonun veritabanındaki karşılığı ve raporda görülen kolon başlık adı girilmiştir.

Şeklinde tanımlanmıştır. Bu şekilde kolondaki veriye link verilmesi ya da modalda açılması sağlanmaktadır. Bunun için ColumnType alanına belirtilen değerlerin girilmesi yeterlidir. Kolonlara buton da eklenebilmektedir.

 

Veritabanı İşlemleri


Uyarlamaya açık Sql sorguları kullanılmaktadır. Herhangi bir veritabanı sorgusu kullanılabilir.

Bağlı Modüller

 

Ornek 1


Örnek, cari kodu zorunlu olarak girilmekle birlikte, başlangıç ve bitiş tarihi filtreleri alarak arama yapan dinamik rapordur. Cari kodu alanı 'DataType' alanı 5 verilmiştir. Bu da bize cari rehberi kullanmamızı sağlamaktadır.

SQL Sorgu

exec PRTSP_TEST_CARI_HAREKETCARI_KOD,@FormData

Parametreler

[{
"Name": "CARI_KOD",
"ColumnName": "CARI_KOD",
"Label": "3D957E9",
"DefaultValue": "",
"Required": true,
"DataType": 5,
"Operator": 1
},



{
"Name": "TARIH1",
"ColumnName": "TARIH",
"Label": "7D83F15E",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 2
},
{
"Name": "TARIH2",
"ColumnName": "TARIH",
"Label": "4574AD00",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 3
}]

Kolonlar


[{"ColumnName":"CARI_KOD","DisplayName":"Cari Kodu"}]

View


CREATE PROCEDURE PRTSP_TEST_CARI_HAREKET
@BranchId  VARCHAR(35),
@CARI_KOD  VARCHAR(35),
@FormData Xml
AS
SELECT CARI_KOD,TARIH,BELGE_NO,ACIKLAMA,HKA,BORC,ALACAK FROM DENEME_VIEW_CARIHAREKET (NOLOCK) WHERE SUBE_KODU = @BranchId and CARI_KOD  = @CARI_KOD

Ornek 2


Bu örnek ise müşteri, durum, sipariş no, proje kodu, stok kodu, depo, başlangıç tarihi, bitiş tarihi filtreleri alıp buna göre raporlama yapmaktadır. Müşteri filtresi 'DataType' 5 olarak girildiği için cari rehber açılmaktadır. Aynı şekilde proje kodu, stok kodu, depo için de rehber kullanılmıştır.

SQL Sorgu

SELECT FATIRS_NO,CARI_KODU,CARI_ISIM, TARIH, GENELTOPLAM, STOK_KODU, STOK_ADI, DEPO_KODU, DURUM, KALEMDURUM FROM DENEME_DINAMIK_RAPOR2 (NOLOCK) WHERE SUBE_KODU = @BranchId

Parametreler

[{
"Name": "CARI_KODU",
"ColumnName": "CARI_KODU",
"Label": "Müşteri",
"DefaultValue": "",
"Required": true,
"DataType": 5,
"Operator": 1
},




{
"Name": "DURUM",
"ColumnName": "DURUM",
"Label": "Durum",
"DefaultValue": "",
"Required": false,
"DataType": 1,
"Operator": 1,
"DataSource" : [{"Text":" Hepsi", "Value":""},{"Text":"Beklemede", "Value":"Beklemede"},{"Text":"Faturalasmis", "Value":"Faturalasmis"},{"Text":"Kismi Yüklendi.", "Value":"Kismi Yüklendi."}]
},
{
"Name": "FATIRS_NO2",
"ColumnName": "FATIRS_NO",
"Label": "Sipariş No",
"DefaultValue": "",
"Required": false,
"DataType": 1,
"Operator": 1
},
{
"Name": "PROJE_KODU",
"ColumnName": "PROJE_KODU",
"Label": "Proje Kodu",
"DefaultValue": "",
"Required": false,
"DataType": 9,
"Operator": 1
} ,
{
"Name": "STOK_KODU",
"ColumnName": "STOK_KODU",
"Label": "Stok Kodu",
"DefaultValue": "",
"Required": false,
"DataType": 8,
"Operator": 1
},
{
"Name": "DEPO_KODU",
"ColumnName": "DEPO_KODU",
"Label": "Depo",
"DefaultValue": "",
"Required": false,
"DataType": 12,
"Operator": 1
},

{
"Name": "TARIH1",
"ColumnName": "TARIH",
"Label": "Başlangıç Tarihi",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 2
},
{
"Name": "TARIH2",
"ColumnName": "TARIH",
"Label": "Bitiş Tarihi",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 3
}]

Kolonlar


[{"ColumnName":"CARI_KOD","DisplayName":"Cari Kodu"}]

View


CREATE VIEW DENEME_DINAMIK_RAPOR2
AS
SELECT S.SUBE_KODU, S.FATIRS_NO, S.CARI_KODU, S.GENELTOPLAM,  S.TARIH TARIH, S.ODEMEGUNU, C.CARI_ISIM, C.PLASIYER_KODU, T.STOK_KODU, ST.STOK_ADI, S.PROJE_KODU ,T.DEPO_KODU,
(CASE WHEN (T.STHAR_GCMIK = T.FIRMA_DOVTUT) THEN 'Faturalaşmış'
                WHEN (T.FIRMA_DOVTUT = 0) THEN 'Beklemede'
                ELSE 'Kısmi Yüklendi.' END) as DURUM, CONCAT(CONVERT(varchar(20),CONVERT(int,T.STHAR_GCMIK)),'/',CONVERT(varchar(20),CONVERT(int,T.FIRMA_DOVTUT ))) AS KALEMDURUM
FROM TBLSIPAMAS S (NOLOCK)
JOIN TBLSIPATRA T (NOLOCK) ON S.FATIRS_NO = T.FISNO
JOIN TBLCASABIT C (NOLOCK) ON S.CARI_KODU = C.CARI_KOD
JOIN TBLSTSABIT ST (NOLOCK) ON ST.STOK_KODU = T.STOK_KODU

Ornek 3


3. örneğimiz de yine cari kodu,başlangıç ve bitiş tarihi filtreleri alıp, buna göre raporlama yapmaktadır. Son kolona ise buton eklenmiştir. Bu buton tıklanılan ödemenin detayını açmaktadır. Url kısmında adres belirtilmiştir. Butona tıklandığı zaman bu adrese gidecektir. Aldığı parametreler ise DataColumn'da verilmektedir.




SQL Sorgu

SELECT ACCOUNT_NAME,CC_NUMBER, CC_INSTALLMENT, CC_AMOUNT, PAYMENT_ORDER_NO FROM PRTV_PAYMENTREPORT (NOLOCK)
WHERE REQUEST_TYPE = 'GET'

Parametreler

[{
"Name": "ACCOUNT_CODE",
"ColumnName": "ACCOUNT_CODE",
"Label": "Cari Kodu",
"DefaultValue": "",
"Required": false,
"DataType": 5,
"Operator": 1
},



{
"Name": "TARIH1",
"ColumnName": "DATE",
"Label": "Başlangıç Tarihi",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 2
},
{
"Name": "TARIH2",
"ColumnName": "DATE",
"Label": "BitişTarihi",
"DefaultValue": "",
"Required": false,
"DataType": 3,
"Operator": 3
}]

Kolonlar


[{
"ColumnName": "PAYMENT_ORDER_NO",
"DisplayName": " Bilgi",
"ColumnType": 3,
"ColumnData": [{
"ParamName": "id",
"ColumnName": "PAYMENT_ORDER_NO"
} ],
"Url": "../../OrderFlow/Payment/PaymentDetail",
"IconStyle": "icon-info",
"LinkText": ""
}]

Ornek 4


Son örneğimizde ise cari kodu girerek tablodan veri çekilmektedir. Aynı sayfaya eklediğimiz grafik rapor da bu cari kodunu prosedure un içinde yazdığımız 'FormData' parametresi ile almaktadır. Bu parametre ile aldığı cari kodla raporu dinamik raporla birlikte senkron şekilde çizdirmektedir.Örnek olarak;
set @CurrentAccountCode= @FormData.value('(/WidgetFormParam/DataForm/
FormElement[@name="CARI_KOD"]/@formvalue)[1]','varchar(max)')

"Name" alanı için gerekli kısmı "Profiler" yardımıyla doldurabilirsiniz.

Rapora bastıktan sonra grafik rapor da yukarıda girilen kodu alıp buna göre raporlama yapmaktadır. Senkron bir şekilde raporlar çizilmektedirler.


SQL Sorgu

Rapor oluşturulduğu zaman otomatik olarak gelen sorgu.

Parametreler

Rapor oluşturulduğu zaman otomatik olarak gelen parametreler.

Kolonlar


Rapor oluşturulduğu zaman otomatik olarak gelen kolonlar.
Grafik raporda ise PRTSP_BORA_CHART_SALES_REPORT_DAILY kullanılarak 'Pie' çizdirilmiştir.

 

Ornek 5



NOT:
Dinamik Rapor içerisinde Javascript sahası (JS) desteklenmiştir.
Bu JS 'Rapor' butonuna tıklandığında çalışır.

ÖR:

$(document).ready(function ()
{
var StokDurum = 0.0;
$(".item-row").each(function( index ) {

var newval = parseFloat($( $( this ).find("td")[5]).text().replace('.','').replace(',','.'));
if(newval < 0.0){ $( $( this ).find("td")[5]).html("<div style='color:red;'><b>"+$($( this ).find("td")[5]).text()+"</b></div>"); }
if(newval == 0.0){ $( $( this ).find("td")[5]).html("<div style='color:#E07F2C;'><b>"+$($( this ).find("td")[5]).text()+"</b></div>"); }
if(newval > 0.0){ $( $( this ).find("td")[5]).html("<div style='color:green;'><b>"+$($( this ).find("td")[5]).text()+"</b></div>"); }

});

});