Új lista létrehozásával tetszőleges adatok jeleníthetőek meg a Symbol Ügyvitel megszokott listaablakain. A listaablakok lehetővé teszik az XLS mentést, a lista nyomtatását PDF, PNG, JPG formátumban, illetve az adatok elküldését e-mail üzenetben.
A lista létrehozásához két dolgot kell tennünk.
- Hozzunk létre egy osztályt a PlugInListFilter osztályból származtatva. Ezáltal szűrőfeltételeket adhatunk a listához.
- Hozzunk létre egy metódust, amelynek egyetlen paramétere egy PlugInListFilter-ből származó osztály, visszatérési értéke pedig DataTable.
Példa PlugInListFilter leszármazottra
public class SampleListFilter : PlugInListFilter
{
private int i = 3;
private string str = “AAA”;
private PlugInDateInterval voucherdate =
new PlugInDateInterval(
new DateTime(2011, 1, 1),
new DateTime(2011, 12, 31));
private Customer customer;
[PlugInFilterCaptionAttribute("Szám")]
public int I { get { return i; } set { i = value; } }
[PlugInFilterCaptionAttribute("Név")]
public string Str { get { return str; } set { str = value; } }
[PlugInFilterCaptionAttribute("Dátum")]
public PlugInDateInterval VoucherDate
{ get { return voucherdate; } set { voucherdate = value; } }
[PlugInFilterCaptionAttribute("Vevő")]
public Customer Customer { get { return customer; } set { customer = value; } }
}
A fenti példában a szűrőosztálynak egy szám, egy string, egy dátumintervallum és egy vevő a paraméterei. Ezek a lista megnyitása után, a CTRL+F billentyűvel a szokott módon elérhetőek. A keretrendszer felel érte, hogy a megfelelő adatmezőkhöz a megfelelő beviteli mezők jöjjenek létre: szám=spinedit, szöveg=textedit, dateinterval=intervallum választó, customer=vevőválasztó.
A szűrőosztályban lehetőség van alapértelmezett adatok megadásása is, dátum intervallum típusú mező megadása kötelező!
Példa egyedi listára
[MenuCustomList("Egyedi lista példa", MenuCommandLocation.Tools)]
public DataTable SampleCustomList(SampleListFilter filter)
{
string cmd = @”
SELECT p.”"Id”" AS “”Azonosító”", p.”"Name”" AS “”Név”", p.”"Code”" AS “”Kód”"
FROM “”Product”" p
WHERE p.”"Name”" LIKE ‘A%’
{0}
ORDER BY 2″;
List<string> where = new List<string>();
if (!String.IsNullOrEmpty(filter.Str))
where.Add(@”AND p.”"Code”" NOT LIKE ‘%T’”);
if (filter.Customer != null)
where.Add(@”AND p.”"Id”" == ” + filter.Customer.Id.ToString());
if (filter.VoucherDate.Filled)
where.Add(@”AND p.”"CreateDateTime”" > ‘” + filter.VoucherDate.DateFrom + “‘”);
using (EntityHandler handler = CreateEntityHandler(false))
return handler.ExecuteQuery(String.Format(cmd, String.Join(” “, where.ToArray())));
}
A példa alapján egy új menüpont jön létre az Esközök menüpontban. A lista megnyitása után a korábbi szűrőfeltételekkel dolgozhatunk. A lista adatainek lekérdezéséért az itt definiált egyedi SQL Select a felelős. Ebben a szűrőoszály mezőit felhasználhatjuk.
A végeredmény visszaadásához használjuk az EntityHandler megfelelő metódusát, amely DataTable típusú adatot ad vissza.