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ó

EditForm

Az EditForm típus egy szerkesztő képernyő egy rekord celláinak felvitelére, módosítására.

/Form

Gyökér elem.

/Form/Name

A szerkesztő képernyő neve. Egyedi azonosító, megegyezik az XML fájl kiterjesztés nélküli nevével.

/Form/Caption

A szerkesztő képernyő felirata. Jelenleg nem jelenik meg a felületen.

/Form/DDO

A szerkesztő képernyőhöz tartozó Display Definition. A filterek miatt szükséges.

/Form/BusinessObject

A szerkesztő képernyőhöz tartozó üzleti objektum neve. Az adatbázis műveletekhez szükséges.

/Form/Rules/Readonly

(Effector 5.0.001+) Lehetőség van szerkesztő képernyő szintű szabályt definiálni. Jelenleg beállítható, hogy a szerkesztő képernyőn található összes mező csak olvasható legyen, amely felüldefiniálható a kontrollnál beállított szerkeszthetőségi szabály segítségével. Ez egy RuleValueType, amelyről bővebb leírás a Szabályok menüpontban található.

Opcionális.

/Form/NearControlErrorDisplay

Ha a node értéke false, akkor a kontrollokhoz tartozó hibaüzenet nem a kontroll mellett jelenik meg, hanem a képernyő közepén, mint ahogy egy hagyományos üzenet megjelenik. Opcionális. Alapértelmezett értéke true.

Megjegyzés! Effector 5.0.001 verziótól ez a funkció már nem használható.

/Form/ReportContentChangedOnValueChange (Effector 5.2+)

Opcionális logikai kapcsoló. Ha a node értéke true, akkor a mégsem gombra vagy a dialógus ablak jobb felső sarkában lévő "X" gombra kattintva figyelmeztet a rendszer, hogy az adott ablakon módosítottuk valamelyik mezőt, és biztosan el akarjuk-e vetni azt. Alapértelmezett értéke true.

/Form/ControlGroup

Beviteli mezők egy csoportja. Tipikusan egy címke és egy beviteli mező tartozik egy csoportba, de lehet egy vagy több elemű is.

Attribútumok:

  • order: az egyes csoportok egymáshoz viszonyított függőleges elrendezését határozza meg; értéke egész szám lehet

    tipp: érdemes az egyes csoportok között nagyobb lépésközt alkalmazni a későbbi esetleges bővítés megkönnyítése miatt

/Form/ControlGroup/Rules

(Effector 5.0.001+) Gyűjtemény. Az egy csoportba tartozó kontrollokra tudunk szabályokat illeszteni.

/Form/ControlGroup/Rules/Visible

(Effector 5.0.001+) Láthatósági szabály a csoport elemeire.

/Form/ControlGroup/Rules/Readonly

(Effector 5.0.001+) Szerkeszthetőségi szabály a csoport elemeire.

/Form/ControlGroup/Rules/Required

(Effector 5.0.001+) Kötelezőségi szabály a csoport elemeire.

/Form/ControlGroup/Rules/WorkflowRequired

(Effector 5.0.001+) Speciális kötelezőségi szabály a csoport elemeire: csak akkor hajtódik végre az ellenőrzés, ha a szerkesztő képernyőn a "Kész" jelölőnégyzet ki van töltve (vagyis ha folyamatban vesz részt az aktuális esemény, akkor készre kell állítanunk a szabály lefutásához).

/Form/ControlGroup/Control

Egy ControlGroup-on belüli kontroll. Több 'Control' is megadható egy ControlGroup-on belül, számuk a legtöbb esetben 2.

Példa

<ControlGroup order="10">
    <Control>
        <Type>Label</Type>
        <Name>Label_Name</Name>
        <ControlCaption>Név</ControlCaption>
        <Width>150</Width>
        <Left>10</Left>
    </Control>
    <Control>
        <Type>TextBox</Type>
        <Name>TextBox_Name</Name>
        <Width>200</Width>
        <Left>160</Left>
        <BindingName>Name</BindingName>
    </Control>
</ControlGroup>

/Form/ControlGroup/Control/Type

Az adott kontroll típusa, lehetséges értékek (bizonyos típusokhoz attribútumok is tartoznak):

  • Label: címke
  • TextBox: szövegdoboz
    • Precision: tört szám mező esetén a tizedesjegyek száma
    • ThousandsGrouping: számmező esetén az ezres csoportosítást ki lehet kapcsolni, ha false-ra állítjuk az értékét; alapértelmezett értéke true
    • UseHTMLEncode: HTML-kódolással legyen elmentve a mező értéke, ha true-ra állítjuk; alapértelmezett értéke false
    • AlignNumbersLeft: számmező esetén balra igazít, ha true-ra állítjuk; alapértelmezett értéke false
  • ComboBox: lenyíló lista
    • source: adatforrás típusa, lehetséges értékei SQL, XML
    • ComboDescription: a betölteni kívánt ComboDescription neve
    • lookupfiltername: ez az attribútum meghatározza, hogy melyik filter helyére helyettesítsük be a lookupfiltervalue-ban szereplő adatot.
    • lookupfiltervalue: ezt szeretnénk behelyettesíteni

      <Type source="SQL" ComboDescription="ComboFixedValuesLookup" lookupfiltername="LookupID" lookupfiltervalue="1">ComboBox</Type>

        <?xml version="1.0" encoding="iso-8859-2"?>
        <ComboDescription Name="ComboFixedValuesLookup">
            <ConnectionType>SQLDbConnection</ConnectionType>
            <SelectionString>
                <![CDATA[
                    SELECT LookupListID, LookupValue
                    FROM FSYS_LookupList
                    with (nolock)
                    WHERE GroupNum = '[##Filter.LookupID##]'
                    AND Deleted = 0 AND 1=1
                    ORDER BY sort
                ]]>
            </SelectionString>
            <ValueMember>LookupListID</ValueMember>
            <DisplayMember>LookupValue</DisplayMember>
        </ComboDescription>
      
  • CheckBox: jelölőnégyzet
  • Date, DateTime: dátum beviteli mezők
  • QueryTextBox: érték választó lista táblázatból
    • QueryDescription: az adatforrásként kapcsolt DDO neve, amely a kapcsolt mezőnek megfelelő adatokat tartalmazza
    • LinkScreen: annak a képernyőnek a nevét tartalmazza, amely megnyílik a "..." gomb megnyomásakor
    • ValueMember: annak az oszlopnak a neve, amely az értéket tartalmazza
    • DisplayMember: annak az oszlopnak a neve, amely az értékhez tartozó szöveg leírást tartalmazza
  • DocumentTextBox: dokumentum feltöltő/választó mező
    • LinkScreen: ez a beállítás a QureyTextBox-hoz hasonlóan működik, ám ebben az esetben nem kötelező; ha hiányzik ez az attribútum, akkor nem lehet a rendszerben már meglévő dokumentumok közül választani
    • LinkScreen: annak a képernyőnek a nevét tartalmazza, amely megnyílik a "..." gomb megnyomásakor
    • ValueMember: annak az oszlopnak a neve, amely az értéket tartalmazza
    • DisplayMember: annak az oszlopnak a neve, amely az értékhez tartozó szöveg leírást tartalmazza
    • QueryDescription: az adatforrásként kapcsolt DDO neve, amely a kapcsolt mezőnek megfelelő adatokat tartalmazza
    • IsDocumentVersionEnabled: (Effector 5.0.001+) a dokumentum verziózást lehet kikapcsolni vele az adott beviteli mezőn. Értéke true, false. Alapértelmezett értéke true, vagyis engedélyezve van a verziózás (módosítás esetén rákérdez, hogy új verziót rögzít a felhasználó vagy sem)
  • Button: nyomógomb
  • SaveButton: mentés típusú nyomógomb
  • CancelButton: mégsem típusú nyomógomb
  • DeleteButton: törlés típusú nyomógomb
  • HorizontalRule: vízszintes elválasztó vonal
  • InnerComponent: űrlapra beágyazott component, például egy táblázat
    • Component: annak a komponensnek a neve, amit be kell töltenie az adott helyre az űrlapon
  • FormCardList: űrlapon kártya lista megjelenítő elem Megjegyzés: Effector 5.0.001-től ez a funkció nem támogatott
  • SignaturePad (Effector 5.4+): aláírás beviteli mező, de bármilyen ábra rajzolható rá; adatbázisban egy VARCHAR típusú mezőbe kell történjen a mentés, oda base64 kódolással kerül be.

/Form/ControlGroup/Control/Name

Kontroll neve/azonosítója. Egy EditForm-on belül egyedinek kell lennie.

/Form/ControlGroup/Control/Width

Kontroll szélessége pixelben.

/Form/ControlGroup/Control/Left

A kontroll bal margótól vett távolsága pixelben.

/Form/ControlGroup/Control/ControlCaption

Kontroll felirata. Label és nyomógombok esetén értelmezhető.

/Form/ControlGroup/Control/BindingName

BusinessObject-beli mező neve, így köti össze a mezőt az üzleti objektummal/adatbázissal.

/Form/ControlGroup/Control/CloseWindow

Nyomógombok esetén értelmezett node, értéke true, false. Gombnyomás után zárja-e be az aktuális ablakot.

Opcionális, alapértelmezett értéke true.

/Form/ControlGroup/Control/Icon

(5.0.001+): előre definiált ikonkészletből választva a gomb felirata elé piktogramot helyezhetünk el. Opcionális.

/Form/ControlGroup/Control/ButtonClick

Általános nyomógomb (Button) esetén használható node.

Attibútumok:

  • actiontype: meghatározza a nyomógomb típusát, vagyis milyen jellegű művelet fog végrehajtani. Lehetséges értékei:
    • Link: általános gomb definíció esetén ezt az akciótípust kell megadni (Új felvitel és sor törlés)
    • Outer: egyedileg írt DLL-hívás
    • ProcessResultSet: ProcessResultSet funkciót tartalmazó gomb
    • SQL: Jelenleg nem használt lehetőség
    • Report: szintén egyedi DLL-ben megvalósított egyedi logikát hív meg, az Outer típussal szemben a PSearch-ök értékeit is átadja a DLL-nek

/Form/ControlGroup/Control/ButtonClick/Module

A meghívni kívánt modul neve és elérési útvonala.

<Module classname="orn_Sample.SampleFunction">[##LocalProgramPath##]\Sample.dll</Module>

A rendszer a [##LocalProgramPath##] karakterláncot kicseréli a saját útvonalára.

Attribútumok:

  • classname: a modulban lévő osztályt határozza meg, amely osztálynak egy speciális interfészt kell megvalósítania (dialógus ablakról hívva az IEVIEditForm, táblázatról hívva az IEVIDataGrid interfészt).

/Form/ControlGroup/Control/ButtonClick/Action

Tetszőleges szöveg, amely az egyedi DLL hívásakor mint paraméter fog átadódni.

/Form/ControlGroup/Control/OnButtonClick

SaveButton típusú nyomgógomb esetén használható node. Ugyanazokat a node-okat és attribútumokat használja, mint a/Form/ControlGroup/Control/ButtonClick/ node.

/Form/ControlGroup/Control/Question

Nyomógombok esetén értelmezett node. Gomb megnyomása után a művelet végrehajtása előtt felugró ablak jelenik meg.

Attribútumok:

  • type: a felugró párbeszédablak típusa, lehetséges értékei:
    • OkCancel: a felugró ablak tartalmaz egy "OK" és egy "Cancel" gombot. Az "OK" gomb megnyomására a művelet (mentés/törlés/mégse) folytatódik, a "Mégsem" gomb megnyomására nem fog történni semmi, folytatódik a szerkesztés.
    • Ok: egy tájékoztató ablakot lehet megjeleníteni mentés előtt
    • Cancel: tájékoztatást jelenít meg, de meg is akadályozza a mentést

/Form/ControlGroup/Control/Question/Condition

Ez a node határozza meg, hogy milyen szabálynak kell lefutnia, melynek true visszatérési értéke esetén jelenik meg a párbeszédablak.

/Form/ControlGroup/Control/Question/Message

A Condition node-ban meghatározott feltétel true értéke esetén a Message node értéke jelenik meg.

/Form/ControlGroup/Control/CardScreenName

FormCardList esetén értelmezett node. Értéke az a képernyő, amit meg akarunk jeleníteni az űrlapba ágyazva.

<CardScreenName>ScreenSampleGrid</CardScreenName>

/Form/ControlGroup/Control/StartHour

DateTime esetén értelmezett node. Ettől az órától kezdődik a lista. Opcionális. Alapértelmezett értéke reggel 7 óra.

Megjegyzés! Az Effector 5.0.001-es verziótól nem használt.

/Form/ControlGroup/Control/EndHour

DateTime esetén értelmezett node. Eddig az óráig tart a lista. Opcionális. Alapértelmezett értéke 24 óra.

Megjegyzés! Az Effector 5.0.001-es verziótól nem használt.

/Form/ControlGroup/Control/StepInMinutes

DateTime esetén értelmezett node. Ezek a lépésközök percben. Opcionális. Alapértelmezett értéke 30 perc.

/Form/ControlGroup/Control/TouchValueList

A kontrollok nagy részénél használható(TextBox, Date, DateTime, ComboBox, QueryTextBox).

A beviteli mező alatt kevés számú (gyakran használt) értéket megadva egyszerűsíthetjük az elemek kiválasztását. A TouchValueList egy RuleValueType típusú kifejezés, melyről a Szabályok fejezetben olvasható bővebb információ. A helyes működéshez azonban szükséges a type=”Constant”, valamint az oszlopneveknek Key-nek és Value-nak kell lenniük.

<TouchValueList type="Constant">
    <![CDATA[SELECT TOP 10 CompanyID AS `Key`, Name AS Value FROM Company WITH(NOLOCK) WHERE deleted = 0]]>
</TouchValueList>

/Form/ControlGroup/Control/Multiline

TextBox esetén értelmezett node. Többsoros szövegdoboz megjelenítését teszi lehetővé. Opcionális.

Attribútumok:

  • UseHTMLEditor: Logikai érték, true esetén HTML szerkesztő jelenik meg.
  • HTMLEditorToolbars opcionális attribútummal egy eszköztár készlet nevét lehet megadni, amit definiálni kell az \uis\default\extras\ckeditor\config.js fájlban; Például: toolbar_Basic beállítás esetén az attribútum értéke Basic kell, hogy legyen.
  • UseCodeMirror (5.0.001+): kódrészlet megjelenítése esetén syntax highlight alkalmazása

/Form/ControlGroup/Control/Height

Többsoros TextBox esetén értelmezett node. Beállíthatjuk a szövegdoboz magasságát.

/Form/ControlGroup/Control/Password

TextBox esetén értelmezett node. Logikai érték, true esetén csillag jelenik meg a beírt karakter helyett. Opcionális.

/Form/ControlGroup/Control/Mask

TextBox esetén értelmezett node. Megadásával egy alapszintű maszkolási lehetőséget tudunk beállítani.

<Mask>99999999-9-99</Mask>

A maszkban a 9 jelenti a számokat, a jelenti a betűket, * jelent vagy számot, vagy betűt, a köztük lévő speciális karakterek megjelennek és el is tárolódnak az adatbázis táblában. Megjegyzés! Effector 5.0.001-től a helyett A jelöli a betűkhöz tartozó maszkot!

/Form/ControlGroup/Control/MaxLength (Effector 5.4+)

TextBox esetén korlátozhatjuk a beírható karakterek számát. Ez a beállítás az adatbázis mező hosszától függetlenül működik.

/Form/ControlGroup/Control/ResizeIsAllowed

TextBox esetén értelmezett node. többsoros szöveges beviteli mező átméretezését engedélyezhetjük/tilthatjuk. Opcionális. Alapértelmezett értéke true.

/Form/ControlGroup/Control/CharacterCounterType

TextBox esetén értelmezett node. Ha az adatbázis mező szöveg típusú, és a hossza korlátozva van, akkor ezen node megadásával megmondhatjuk, hogy a megengedett karakterszámot kiírja a rendszer. Opcionális. Lehetséges értékei:

  • None: nincs kiírva (alapértelmezett érték)
  • Count: számolja a beírt karaktereket
  • Remaining: a maximális karakterszámból levonja a beírt karakterek számát

/Form/ControlGroup/Control/ConnectedControls/ConnectedControl

QueryTextBox esetén lehetőség van arra, hogy egyszerre több mezőt is kitöltsünk az adott üzleti objektumban egyetlen lépéssel, ehhez a ConnectedControls kollekcióban kell megadni a megfelelő értékeket. A ConnectedControl node-ban beállított érték az EditForm-on megjelenő kontroll neve (a name node-ban megadott azonosítója), a column attribútum pedig a lekérdezésből kiválasztott sorban található mező.

<ConnectedControls>
    <ConnectedControl column="Field1">TextBox_Field1</ConnectedControl>
    <ConnectedControl column="Field2">TextBox_Field2</ConnectedControl>
    <ConnectedControl column="Field3">TextBox_Field3</ConnectedControl>
</ConnectedControls>

/Form/ControlGroup/Control/AllowedMIMETypes

DocumentTextBox esetén értelmezett. A feltölteni kívánt dokumentumok típusának korlátozásra használható. Az engedélyezett MIME-típusokat szóközzel elválasztva kell felsorolni. Opcionális. Kihagyása esetén bármilyen formátumú fájl feltöltése engedélyezett.

/Form/ControlGroup/Control/FileSizeLimit

DocumentTextBox esetén értelmezett. A feltölteni kívánt dokumentumok méretének korlátozásához használható, értéke MB-ban értendő. Opcionális.

/Form/ControlGroup/Control/DocumentObjectType

DocumentTextBox esetén értelmezett. Ha az EditForm alapja nem BusinessObjectDocument, akkor szükség van a DocumentObjectType node beállításra is. Ez határozza meg, hogy milyen típusú dokumentumról van szó. Ilyen esetben a BusinesObject fájlban az adott mező definíciójában szerepelnie kell két attribútumnak:

  • type: ami értéke mindig document
  • doctype: az adott dokumentum típusa

/Form/ControlGroup/Control/ReComputing

Ez a node adja meg az egyes kontrolloknál, hogy az esetleges számított mezők milyen eseményekre számolódjanak újra. Lehetséges értékei:

  • All: mindig, az ablak megjelenésekor is (nem használt)
  • OnChange: csak érték változáskor (alapértelmezett)
  • TriggerOnRefresh: az EditForm frissítésekor vegye úgy, mintha változott volna a kontroll értéke, így az összes szabály és ComputedValue lefut, ami hivatkozik erre a mezőre – ahol ez be van állítva

/Form/ControlGroup/Control/Required

Mező kötelezőség beállítása. Amíg a leírt szabály nem teljesül (amíg false a visszatérési értéke), addig nem lehet az adott objektumot elmenteni. Vizuális megjelenítését segíti az, ha a címkére is meg van adva ugyanaz a szabály. Ilyen esetben true esetén a címke színe pirosra vált, jelezve ezzel, hogy a mező kitöltése kötelező. RuleValueType típus.

Példa

<ControlGroup order="10">
    <Control>
        <Type>Label</Type>
        <Name>Label_name</Name>
        <ControlCaption>Title</ControlCaption>
        <Width>150</Width>
        <Left>10</Left>
        <Required type="Simple" default="false" return="boolean">'[##Field.name##]' == ''</Required>
    </Control>
    <Control>
        <Type>TextBox</Type>
        <Name>TextBox_name</Name>
        <Width>200</Width>
        <Left>160</Left>
        <BindingName>name</BindingName>
        <Required>true</Required>
    </Control>
</ControlGroup>

/Form/ControlGroup/Control/WorkflowRequired

Ugyanarra használható, mint a Required, annyi különbséggel, hogy mindez csak akkor lép életbe, ha készre állítottuk a folyamat aktuális lépését. RuleValueType típus.

/Form/ControlGroup/Control/Readonly

Szerkeszthetőségi szabály. RuleValueType típus.

A szerkeszthetőségi szabályok prioritási sorrendje: EditForm < ControlGroup < Control

/Form/ControlGroup/Control/DefaultValue

Csak új objektum rögzítésénél(!) kiértékelt alapértelmezett érték. Az EditForm-on megadott alapértelmezett szabály felülírja a BusinessObject-ben megadott szabályt. RuleValueType típus.

/Form/ControlGroup/Control/SessionValue

Megadható egy konstans vagy számított érték, ekkor a kontroll jobb oldalán megjelenik egy extra gomb, melyet megnyomva mindig ez az érték kerül be a beviteli mezőbe. RuleValueType típus.

/Form/ControlGroup/Control/Visible

Láthatósági szabály. RuleValueType típus.

/Form/ControlGroup/Control/ValidateRule

Validálási szabály, addig nem engedi elmenteni az űrlapot, míg az itt definiált feltétel true-t nem ad eredményül, illetve nem logikai visszatérési érték esetén az üres üzenet jelenti, hogy valid a kontrollba írt érték. RuleValueType típus.

/Form/ControlGroup/Control/ComputedValue

Számított mező érték, mely folyamatosan függ a többi mező állapotától.

  • Az érték újraszámolódásnál azt veszi figyelembe, hogy a kiértékelésben mely mezőkre hivatkozunk ([##Field.##]). Ezeknek a változására fog valami történni, további beállításokat lásd a ReComputing résznél.
  • Az újraszámolások egyéb szabályokra is hatással vannak, mint pl. Visible, Readonly, stb.

RuleValueType típus.

/Form/ControlGroup/Control/ComputedValueList

A számított értéklista ComboBox típus esetén, mely függ folyamatosan a többi mező állapotától. RuleValueType típus.

Példa:

<Control>
    <Type source="SQL" ComboDescription="ComboSample">ComboBox</Type>
    <Name>ComboBox_Sample</Name>
    <Width>300</Width>
    <Left>210</Left>
    <BindingName>SampleField</BindingName>
    <ComputedValueList type="SQL" default="1=1" return="string">
        <![CDATA[
            SELECT 'SampleTable.SampleField = ''[##Field.SampleField##]'''
        ]]>
    </ComputedValueList>
</Control>

A példában látható, hogy egy ComboBox típusú beviteli mezőre tettünk egy ComputedValueList szabályt, amely akkor fog kiértékelődni, ha az EditForm-on lévő SampleField mező értéke megváltozik. Ebben az esetben a ComboBox-ban definiált lekérdezésbe bekerül a szűrőfeltétel (vagyis a SampleTable.SampleField = '[##Field.SampleField##]') az 1=1 helyére, mégpedig úgy, hogy a [##Field.SampleField##] helyére behelyettesítődik a mező konkrét értéke.

/Form/ControlGroup/Control/LabelStyle

Label esetén értelmezett node. A címke stílusát adhatjuk meg egy előre definiált CSS-osztály segítségével.

/Form/ControlGroup/Control/Tooltip

Tooltip címke, egy szöveg típusú RuleValueType, ha nem üres, akkor megjelenik a tooltip ikon. Ha az ikon felé viszi a kurzort a felhasználó, akkor megjelenik a szöveg. RuleValueType típus.

/Form/ControlGroup/Control/Warning

Egy piros felkiáltójeles kör jelenik meg a hatására, a tooltip-nek lehet adni szöveget. Szöveg típusú RuleValueType, és ha nem üres, akkor jelenik meg. RuleValueType típus.

/Form/ControlGroup/Control/ClearValueIfNotVisible

ha egy beviteli mezőben van érték, majd valaminek a hatására lefut erre a mezőre egy láthatósági szabály, és a mező eltűnik, akkor ezen node értékét true-ra állítva kitörlődik a beírt érték. Ennek akkor van jelentősége, ha egy nem látható mező értékét nem szeretnénk elmenteni az adatbázisba. Alapértelmezett értéke false.

/Form/ControlGroup/Control/DeleteContent

szabad szöveges és dátum típusú beviteli mezők esetében ezen node true értékre állításával egy 'X' gomb jelenik meg a kontroll jobb szélén, mely a kontroll tartalmát törli.

Megjegyzés! Effector 5.0.001-től ez a funkció elavulttá vált.

/Form/ControlGroup/Control/PlaceHolder

(5.0.001+): üres beviteli mezőkbe írt tájékoztató üzenet. RuleValueType típus.

  • Legutóbb frissítve: 21 hét 2 napja
  • Effector