RWSFilterParams Nesnesi üzerinden ilgili raporun filter listesini çekeriz, bu nesne üzerinden dönen veriler bize string tipinde xml olarak gelecektir.

  Aşağıdaki kod satırları getfilter almaya örnek c#.net örneğidir.

ReportingService.RWSFilterParams parameters = new ReportingService.RWSFilterParams();
parameters.repName = "MMRPItemsList";string filterList =myService.getFilterList(parameters, basicParams);

Bize dönen filter listesi aşağıdaki gibi olacaktır.

<?xml version="1.0" encoding="UTF-8"?>
<navi-filters>
   <filter type="group-selection" caption="Malzeme (Sınıfı) Türü" id="1" />
   <filter type="group-selection" caption="Malzeme (Sınıfı) Durumu" id="2" />
   <filter type="string" caption="Malzeme (Sınıfı) Kodu" id="3" range="true" />
   <filter type="string" caption="Malzeme (Sınıfı) Açıklaması" id="4" range="true" />
   <filter type="string" caption="Malzeme (Sınıfı) Özel Kodu" id="5" range="true" />
   <filter type="string" caption="Malzeme (Sınıfı) Yetki Kodu" id="8" range="true" />
   <filter type="string" caption="Malzeme (Sınıfı) Grup Kodu" id="10018" range="true" />
   <filter type="string" caption="Üst Malzeme Sınıfı Kodu" id="20" />
   <filter type="group-selection" caption="Konfigüre Edilebilir" id="10" />
   <filter type="string" caption="Birim Seti Kodu" id="22" range="true" />
   <filter type="string" caption="Birim Seti Açıklaması" id="23" range="true" />
   <filter type="group-selection" caption="ızleme Yöntemi" id="24" />
   <filter type="group-selection" caption="Stok Yeri Takibi" id="31" />
   <filter type="numeric" caption="Alış KDV Oranı (%)" id="25" />
   <filter type="numeric" caption="Satış KDV Oranı (%)" id="34" />
   <filter type="numeric" caption="İade KDV Oranı (%)" id="35" />
   <filter type="group-selection" caption="Kullanım Yeri" id="36" />
   <filter type="string" caption="Org. Birimler" id="33" range="true" />
   <filter type="string" caption="OrgBirimGrupKodu" id="9" />
   <filter type="list-selection" caption="Ambar_Bilgisi_Detayları" id="28" />
   <filter type="string" caption="Ambar Kodu" id="29" range="true" />
   <filter type="list-selection" caption="Takım_Bilesenleri" id="30" />
</navi-filters>

Dönen filter üzerinden kullanmak istediğimiz parametreleri xml içerisinden eleyelim aşağıdaki formata çevirelim. Örneğin yukarıdaki filter listesinden malzeme kodunu kullanmak istiyoruz. 

<?xml version="1.0" encoding="UTF-8"?> 
<filter type="string" caption="Malzeme(Sınıfı) Kodu" id="3" range="true"/>

 Yukarıda ki filter alanından gereksiz alanları çıkartırız,

Filter türleri

STRING_FILTER = 1

STRING_RANGE_FILTER = 2

NUMERIC_FILTER = 3

NUMERIC_RANGE_FILTER = 4

DATE_FILTER = 5

DATE_RANGE_FILTER = 6

TIME_FILTER = 7

TIME_RANGE_FILTER = 8

GROUPSEL_FILTER = 9

LISTSEL_FILTER = 10

Type alanını yukarıdaki filter türüne göre değiştiririz.

Kullanacağımız malzeme kodunda yukarıda type alanı string olarak bize geri dönmüştü, bunu filter türüne göre 1 yaparız.

Son olarak xml’e value alanı koyarak çağırmak istediğimiz değeri veya değer aralığını veririz, verdiğimiz örnekte value=”2|5” yani malzeme kodu 2 ile 5 arasındaki değerleri dönmesini istiyoruz.

 Kullanacağımız xml yapısının değiştirdiğimiz hali;

<?xmlversion="1.0" encoding="UTF-8"?> 
<navi-filters><filter type="2" id="3" value="2|5" />  </navi-filters>

Son olarakta raporumuzu çalıştırmak için kullandığımız metodda aşağıdaki kod satırında; tanımlanan filterlist xml’i kaydedilen yerden çekerek filterValues içerisine set edilir.

string filter = System.IO.File.ReadAllText(@"D:\web\reportfilterlist.xml");
parameters.filtersValues= filter;

Aşağıda c#.net üzerinden filterları kullanılarak çalıştırılan ReportingWebServis örnek metottur.

ReportingService.RWSParams parameters = new ReportingService.RWSParams();
            parameters.reportName = "MMRPItemsList";
            parameters.outputType = 4;
            parameters.outputTypeSpecified = true;
            string filter = System.IO.File.ReadAllText(@"D:\web\reportfilterlist.xml");
            parameters.filtersValues = filter;
            ReportingService.RWSBasicParams basicParams = new ReportingService.RWSBasicParams();
            basicParams.firm = 1;
            basicParams.firmSpecified = true;
            basicParams.period = 1;
            basicParams.periodSpecified = true;
            basicParams.language = "TRTR";
string reportLink =myService.executeReport(parameters, basicParams);

Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım