Új lista létrehozása

témakör: Felhasználói felület

Ú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.

Hozzászólok