Fejlesztői kézikönyv 6.3

XML Referencia 6.3

Effector Studio 6.3 összefoglaló

Effector Studio 6.3 kézikönyv

Fejlesztői kézikönyv 6.2

XML Referencia 6.2

Effector Studio 3.2 összefoglaló

Effector Studio 3.2 kézikönyv

Fejlesztői kézikönyv 5.5

XML referencia 5.5

Effector Studio 2.0 kézikönyv

Effector Studio 2.0 összefoglaló

Képernyő kiegészítés

Az öröklésről és annak előnyeiről már szó volt az üzleti objektumoknál. Használatának eredményeképp az ős osztály adatai mellett a származtatott objektumok adatai egy másik táblában kerülnek letárolásra az adatbázisban, így a származtatott objektumok adatai is rendben megtalálhatóak az adatbázis megfelelő tábláiban. Azonban ezeket az adatokat meg is kell jelenítenünk. Táblázatos megjelenítőt használva az adatok megjeleníthetők, de szerkesztésükhöz nem elegendő két különálló EditForm-ot létrehoznunk. Megtehetnénk, de nem lenne túl felhasználóbarát. Valahogy meg kellene egy EditForm-on jelenítenünk a két tábla adatait. Ezt a feladatot tudjuk megoldani a Fragment-ek segítségével. Egyszerűsítve a Fragment-ek ugyanazok az EditForm-nak, mint a származtatott osztályok az üzleti objektumoknak. Minden Fragment egy a származtatott objektumhoz kapcsolt EditForm kiegészítésként fogható fel.

Objektumok és Fragmentek

Elhelyezkedése a rendszerben

Fizikai helye a Editform mappában található. Önmagában nem használható fel, csak az EditForm-mal együtt jeleníthető meg, azt kiegészítve a hozzáadott beviteli mezőkkel.

Használat

Előfeltételek, konvenciók

A Fragment-ek használatának előfeltétele, hogy a rendszer ismerje a rendelkezésre álló definíciókat. Ezért minden egyes származtatott objektumhoz definiálni kell a felhasználható Fragment-ek listáját. A felhasználható Fragment-ek listáját egy speciális állományban tudjuk rögzíteni. Objektum típusonként a típusnak megfelelő állományba kell paramétereznünk a felhasználható Fragment-eket. A Fragment-ek listáját tartalmazó fájlok a FragmentList mappában találhatóak, és szigorú név konvenciót követve elnevezésük a következő sémára épül: FragmentList<BOtipus>.xml ahol a <BOtipus> tartalmazza az ős üzleti objektum típusát (pl.: Project, Event, Document, People, Company).

Például:

Ha a Project objektumból (BusinessObjectProject) származtatással létrehozunk egy ProjectPelda objektumot (BusinessObjectProjectPelda), akkor létre kell hoznunk a FragmentListProject.xml állományt mely tartalmazni fogja az összes felhasználható Fragment definíció referenciáját, valamint létre kell hoznunk egy FragmentProjectPelda.xml nevű Fragment definíciós állományt is.

Elérhető funkciók

  • FragmentList Fragment lista definíció
  • Fragment megjelenítő definiálása

FragmentList lista definíció

A fenti példát követve elkészítjük a FragmentListProject.xml állományt. Ezt kétféleképp tudjuk megtenni. Vagy felsoroljuk a fragmentek definícióit, vagy pedig egy tárolt eljárásra bízzuk az adatok szolgáltatását. Mindkét típus esetén következő lépésekre van szükségünk:

  • Létre kell hoznunk a megfelelő fájt, majd kitölteni a SourceType és Source node-okat az alábbiak szerint:
    • SourceType: Lehetséges értékei XML és Database. Értelemszerűen a korábban leírt két típusnak megfelelő értékek
    • Source:

Statikus XML-ben történő definíció:

A SourceType node értékének XML-re állításával tehetjük meg. Ekkor a Fragments kollekció Fragment node-jaiban kell felsorolnunk a lehetséges hivatkozásokat. Az order attribútumnak fájlon belül egyedinek kell lennie, egy egyszerű sorszámot tartalmaz. Az ObjectType node tartalmazza a származtatott objektum típusát. Végül a Caption node beállításával megadható az adott Fragment típus leírása, ez a felületen az új objektum létrehozásánál jelenik meg egy legördülő listában.

Példa:

<FragmentList xmlns="http://effector.hu/schema/ns/fragmentlist">
    <SourceType>XML</SourceType>
    <Source>
        <Fragments>
            <Fragment order="1">
                <ObjectType>Pelda</ObjectType>
                <Caption>Példa fragment</Caption>
            </Fragment>
        </Fragments>
    </Source>
</FragmentList>

Dinamikus tárolt eljárásos definíció:

A SourceType node értékének Database-re állításával tehetjük meg. Ekkor nincs Fragments node a Source node-ban, és a Database node-ban kell megadni a kiszolgáló eljárás nevét. A kiszolgáló eljárás előre definiált üzleti logika mentén szolgáltatja az előző példában tárgyalt ObjectType és Caption node értékeinek megfelelő adatokat.

Példa:

<FragmentList xmlns="http://effector.hu/schema/ns/fragmentlist">
    <SourceType>Database</SourceType>
    <Source>
        <Database>
            <SelectionString type="StoredProcedure">osp_getProjectTypes</SelectionString>
        </Database>
    </Source>
</FragmentTypes>

A tárolt eljárás bemenő paramétereit a rendszer tölti ki. Ezek felhasználhatók a dinamikus kiértékelés során:

  • @mmName VARCHAR(100): Munkamódszer neve.
  • @screenName VARCHAR(100): Képernyő neve.
  • @componentName VARCHAR(100): Komponens neve.
  • @buttonName VARCHAR(100): Gomb neve, ha van.
  • @userID INT: Felhasználó azonosítója.
  • @parentBoName VARCHAR(100): Ős üzleti objektum típusa.

Visszatérési értéke két oszlopot tartalmaz, amely megfelel a következőnek:

SELECT 'Egyeb' AS [type], 'Egyéb' AS FragmentCaption

Fragment megjelenítő definiálása

Itt kell a származtatott BusinessObject kiegészítő mezőihez definiálni az EditForm-on megjelenő kontrolokat. Ha nincs kiegészítő mezője a származtatott BusinessObject-nek, akkor is szükség van a Fragment definícióra, ilyenkor csak a minimálisan szükséges beállításokat tartalmazza az állomány:

<Fragment xmlns="http://effector.hu/schema/ns/editform">
    <Caption />
    <DataDefinition>DDEventEdit</DataDefinition>
    <BusinessObject>BusinessObjectEvent.Step1</BusinessObject>
</Fragment>

Kiegészítő adatokkal rendelkező üzleti objektum esetén minden az EditForm-nak megfelelően történik, ahogyan azt a Karbantartó képernyő fejezetben tárgyaltuk. Felhasználhatóak az ott leírt ControlGroup-ok és minden egyéb beállítási lehetőség is.

Fontos! Ha a Fragment-ben létezik olyan ControlGroup definíció, amelynek a name attribútuma megegyezik az ős/szülő objektumhoz tartozó EditForm-ban használt valamely ControlGroup definíciójában lévővel, akkor az felülírja az EditForm-ban megadott beállításokat, így kihat az ős objektum megjelenésére is.

Most vegyük sorra, mik is a felhasználható node-ok:

  • Caption: Nincs jelenleg használva, de megadása kötelező.

    Például: <Caption>Telefon esemény</Caption>

  • DataDefinition: Az ős/szülő objektumhoz tartozó DisplayDefinitionObject referenciája. A filterek kezeléséhez van rá szükség.

    Például:
    <DataDefinition>DataDefinitionPEventComplex</DataDefinition>

  • BusinessObject: Fontos különbség az EditForm-hoz képest, hogy itt a BusinessObject megadása . formában történik, ahogyan az a példában is látszódik.

    Például: <BusinessObject>BusinessObjectEvent.Telefon</BusinessObject>

  • Legutóbb frissítve: 1 év 6 hete
  • Effector