Az oldal megtekintéséhez kérjük, engedélyezze a JavaScriptet.

sERPa súgó

Navigáció: Rendszerfunkciók > Listák > Automatikus lista

Tárolt eljárás írásának szabálya

Ugrás Előző Fel Következő Menü

Az alapja egy TE, melyben el van helyezve egy leíró, ami tartalmazza a párbeszédablak kontroljait. Az automatikus lista form kontrol szinten támogatja az alap kontrolokat (szöveges, numerikus, dátum mező, felsorolt típus, pipa, memo, html edit), továbbá kezel tartományokat (dátum és numerikus mezők esetén), termékfát, és végül be van építve rengeteg kereső combo box (SCB), ill. képlet mezők támogatása.

 

Leíró elhelyezése a lista TE-ben

A @Leiro Logikai bemenő paraméter egyenlő 1 esetén a TE-nek a leírót kell visszaadnia.

 

Leíró XML

A leíró XML szerkezete:

 

<Form ListID="" ReportName="">

 <PageControl>

   <TabSheet Caption="" Name="">

     <Band Caption="" Type="" Name="" Collapsable="">

       <Control Caption="" Reverse="" Name="" ParameterName="" SCBType="" FormulaType="" Mask="" EnumName="" EnumValidValues=""

                DataType="" Nullable="" FullWidth="" FullHeight="" LineCount=""

                DefaultValue="" LinkedFunction="" NullText="" PrevRow="" RangeControlNameFrom=""/>

         <SetParam ParameterName="" ControlName="" Value=""/>

         <Static ControlName="" GetValue="" Value=""/>

         <SQL>...</SQL>

         <WHERE>...</WHERE>

       </Control>

     </Band>

   </TabSheet>

 </PageControl>

 

 <Band>...</Band>

 

 <Control>...</Control>

 

 <SP>

   EXEC TE neve

     @Parameter1 = :Parameter1,

     @Parameter2 = :Parameter2,

     ....

     @ParameterN = :ParameterN

 </SP>

 

 <Version ControlName="" ControlValue="" ListID="">

   <SP>...</SP>

 </Version>

</Form>

 

Form: Form definiálása

ListID: Szokásos

 

PageControl:

Name: Page control neve, Kötelező: nem

 

TabSheet:

  Caption: Fül neve, Kötelező: igen

  Name: Fül kontrol neve, Kötelező: nem

 

Band:

Caption: Sáv neve, Kötelező: Type használata esetén csak felül definiálás, Type nelkül kötelező

Type: 'Altalanos', 'Megjelenites', 'Forditas', 'Szures', Kötelező: nem. A jelenleg használt négy leggyakoribb sáv típust támogatják.

Name: Sáv kontrol neve, Kötelező: Type használata esetén csak felül definiálás, Type nélkül kötelező

Collapsable: 0/1, Alapértelmezés: 1, Type használata esetén csak felül definiálás

 

Control:

Caption: kontrol előtti felirat, Kötelező: nem

Reverse: Megfordítja a label és a kontrol sorrendjét. Csak SCB esetén működik. Kategoria+Tetel-nél használjuk. Kötelező: nem

Name: kontrol neve, Kötelező: Nem, Alapértelmezés: ParameterName-ból képzett kontrol név a szokásos modon. scb, ed prefix, stb. Akkor érdemes kitölteni, ha hivatkozni akarunk a kontrolra (GetParam, Static, ...)

ParameterName: TE bemenő paramétere, Kötelező: igen

SCBType: Jellemzően a tábla neve, amihez kapcsolódik a combobox.

 Pl: Artabla, Bankszamla, BelsoRend, Deviza, ElerhetosegTipus, ElolegSz, Felhasznalo, stb.

 A teljes lista az AutomatikusListaTesztL TE-ben van a SCB-k fülön.

 Kötelező: SCB használata esetén igen.

FormulaType: Keplet szerkesztő

 Pl: TermekKodKeplet, TermekNevKeplet, ...

 A teljes lista az AutomatikusListaTesztL TE-ben van a Képletek fülön.

 Kötelező: Képlet használata esetén igen.

Mask: @-os maszkok, ill. konkrét maszk megadása, Kötelező: SCBType es FormulaType használata esten csak felül definiálás, SQL használatánál kötelező

EnumName: Felsorolt típus neve

EnumValidValues: 0, 1, 2, stb. Kötelező: Nem

DataType: Int, Float, Bit, Date, DateTime, Varchar, Memo, HTMLEdit.

 Kötelező: SCBType, EnumName használata mellett csak felül definiálás, SQL használatánál kötelező - az ID mező típusát definiálja

Nullable: 0/1, Alapértelmezés: 1, azaz nem kötelező.

FullWidth: DataType=Memo és HTMLEdit esetén van értelmezve. Alapértelmezés: 0

FullHeight: DataType=Memo és HTMLEdit esetén van értelmezve. Alapértelmezés: 0

LineCount: DataType=Memo és HTMLEdit esetén van értelmezve. Alapértelmezés: 5

DefaultValue: DataType-nak megfelelő kezdőérték. Kötelező: Nem

LinkedFunction: SQL használata esetén a kapcs. funkció megadása. Kötelező: Nem, SCBType használata esetén van alapértelmezése.

NullText: Csak SCB esetén van értelmezve. Üres mező esetén a kontrolba ez a szöveg kerül. Kötelező: nem

PrevRow: 0/1 - kontrol az előző sorba kerüljön. Alapértelmezés: 0

RangeControlNameFrom: Tartomány ellenőrzéshez, ill. a dátumnál a tartomány kulcsszavak (ma, holnap, január, stb.) használatához kell megadni. A tartomány elejét jelző kontrol nevét kell megadni. Kötelező: nem

 

SetParam: Tétel típusú SCB-nek paraméter megadása

ParameterName: Az SCB-ben használt paraméter neve, Kötelező: igen

ControlName: A kontrol neve, ahonnan ki kell olvasni az értéket. Kötelező: igen, ha a Value üres

Value: Fix értké megadása. Pl menüparaméterben megadott érték. Kötelező: igen, ha a ControlName üres

 

Static:

ControlName: A kontrol neve, ahonnan ki kell olvasni az érteket. Kötelező: igen

GetValue: A kiolvasandó mező neve. Kötelező: igen

Value: Amennyiben az itt megadott értékkel nem egyezik a kiolvasott érték, akkor lesz nem módosítható a mező.

 

SQL:

 Önálló lekérdezés megadása egy nem támogatott SCB-hez. Az ID mező típusát a DataType határozza meg. A szöveges mező típusa szöveges.

 Csak kivételes esetben használd, könnyebb karbantartani a beépített típusokat.

 

WHERE:

 Beépített SCB-k select-jeinek where ágát lehet kiegészíteni. Ez csak azoknál az SCB-knél használható, ahol az SCB nem egy önálló kontrol, mint pl a Termek keresés.

 

SP:

 TE hívása a paraméterekkel. Kötelező: Igen

 pl: EXEC AutomatikusListaTesztL @FeliratNyelv_ID=:FeliratNyelv_ID, @AdatNyelv_ID=:AdatNyelv_ID

 

Version: Üzemmódtól függően a fejlécben megadott ListID felüldefiniálása

ControlName: Kontrol neve, amelyiknek az értékétől függ a ListID. Kötelező: igen

ControlValue: Érték. Kötelező: igen

ListID: Érték függően az alkalmazandó ListID.

 

Példa

A funkciót a 'Lista tárolt eljárás neve' paraméter kitöltése nélkül indítva, alapértelmezésben, a példa felület indul el.

A menüben itt érhető el: sERPa\Rendszerfunkciók\Listák\Automatikus lista

A példa felület tartalmazza az összes kontrolt.

 

Adatforrás támogatása

Amennyiben a listát alkalmassá kell tenni automatikus üzenet segítségével e-mailben való küldéshez, a TE végére mindössze ennyit kell írni:

 

Az XML-t tegyük el pl. egy @XMLDoc XML típusú mezőbe és ezt tegyük a TE végére:

 

IF OBJECT_ID('tempdb.dbo.#AdatforrasEredmeny') IS NULL

SELECT @XMLDoc

ELSE

INSERT INTO #AdatforrasEredmeny VALUES (@XMLDoc)

 

 

Transzformáció AltalanosXLS-el

Az AltalanosXLS alapvetően a mátrixos listák előállításához használható a legkönnyebben. Mártixos listának hívjuk azokat a listákat, ahol az előállítandó XML-ben minden egyes cella külön elemmel van leírva. A hagyományos listáknál egy elem az egy sor és az elem attribútumai az oszlopok. A mártixos megoldás kicsit szószátyárabb, cserébe a hagyományossal ellenben lehet változó oszlopszélességű a lista, éppen ezért van lehetőség egy univerzális transzformáció megírására. Kézzel írt XSL-nél van lehetőség a két módszer vegyes használatára is, de ez nem tárgya a fejezetnek.

 

A mártixos listák használatához fix formátumú XML-t kell előállítani a TE-ben. Az előállítandó XML kinézete a következő:

 

<AltalanosXLS>

 <Parameterek>

   <Fejlec lang="" CegNev="" Felhasznalo="" Idopont="" />

 </Parameterek>

 <Lap Nev="" UtolsoOszlop="" T="n0">

   <Fejlec ListaNev="">

     <Sor>

       <C O="" W="" colspan=""></C>

  ...

     </Sor>

   </Fejlec>

   <Sor>

     <C O="" T="" W="" colspan=""></C>

     ...

   </Sor>

 </Lap>

</AltalanosXLS>

 

Parameterek elem

A Parameterek rész általános infókat tartalmaz a listával kapcsolatban.

Lang: Lista nyelvi beállítása.

CegNev, Felhasznalo, Idopont: Értelemszerű. A lista aljára kerülnek rá ezek az infók.

 

Példa a Parameterek elem összerakásához:

 

(SELECT

  (SELECT KodAlpha2 FROM Nyelv WHERE Nyelv_ID = 0) AS lang,

  (SELECT CegNev FROM SajatAdat WHERE Nev = 'Normál') AS CegNev,

  (SELECT Nev FROM Felhasznalo WHERE Felhasznalo_ID = dbo.Felhasznalo_ID()) AS Felhasznalo,

  CONVERT(VARCHAR,GETDATE(),102)+'. '+CONVERT(VARCHAR,GETDATE(),108) AS Idopont

FOR XML RAW('Fejlec'), ROOT('Parameterek'), TYPE)

 

Lap elem

A Lap elem az Excelben egy lap definiálására szolgál. Több lapos excel esetén több Lap elemet kell definiálni.

Nev: Excel fül neve.

UtolsoOszlop: Számszerűen hány oszlopot tartalmaz a fül.

T: Ez egy technikai mező. Fixen n0-t kell, hogy visszaadjon.

 

Fejlec elem

A Lap elemen belül a Fejlec elem az egy vagy több soros jellemzően szürke fejlécet definiálja.

ListaNev: A szürke fejéc felett kerül kiírásra a fül neve.

 

Sor elem

A Sor elem a konkrét eredmény sorokat definiálja. Saját attribútuma nincs. C - cella elemeket tartalmaz.

 

C elem

Cella definiálására szolgál. Az elem értéke tartalmazza a kiírandó szöveget.

O: 1-től induló oszlop szám.

T: Cella típusa:

 Txt - szöveges,

 n0, n1, n2 - szám mező, 0,1,2 tizedessel.

 %0, %1, %2 - szazalék mező, 0,1,2 tizedessel.

 Date - Datum, yyyy-mm-dd formátummal

 shortDate - Datum, yy-mm-dd formátummal

 time - idő

W: Cella szélessége.

colspan: Összevonandó oszlokok száma.