Általános működési leírás

Adatbázis leírás

Rendszer architektúra

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ó

Karbantartó képernyő v5.4.001

A karbantartó képernyők új adat rögzítésekor, vagy meglévő adatok/objektumok megtekintésekor játszanak szerepet. Felépítését tekintve nincs nagy különbség a más programokban megszokott karbantartó képernyőkhöz képest. Az Effectorban is feliratokból, beviteli mezőkből, funkció gombokból, esetlegesen plusz grafikai elemekből álló megjelenítőről beszélünk.

Elhelyezkedése a rendszerben

Fizika helye az XML csomag EditForm könyvtárában van. A fájlok elnevezésére itt is van megkötés. A fájl nevének meg kell egyeznie az EditForm\Name node-ban beállított egyedi azonosítóval.

A karbantartó képernyők, mint megjelenítők mindig egy-egy komponensbe/komponens fülbe ágyazva jelennek meg. Működésükből kifolyólag tartozik hozzájuk egy DisplayDefinition, valamint egy BusinessObject. Ezek az objektumok fogják elvégezni többek között az adatbázissal kapcsolatos teendőket.

Karbantartó képernyők a rendszerben

Működés

  • Lekérdezés: Egy létező rekord esetén annak lekérése a BO-ban felsorolt mezők alapján.
  • Módosítás: A beviteli mezőkben lévő értékek alapján udpate-eli a teljes sort, ami szerepel a BO-ban. Minden változásról automatikusan készül egy bejegyzés az FSYS_Log táblába.
  • Törlés funkció: Speciális, mivel nincs fizikai törlés a rendszerben, ezért ez egy update–re delegálódik, ahol a Deleted mező értéke 1-re változik.
  • Beszúrás: Két lépcsős művelet. Ahhoz hogy az esetlegesen kapcsolt komponensek (tipikusan az EditForm mellett jobbra egy Grid, ami pl. az esemény résztvevőit mutatja) meg tudják kapni az újonnan felvett rekord azonosítóját – és így teljes értékűen tudjanak működni – meg kell kapniuk az EditForm mögött lévő adatsor egyedi azonosítóját. Ilyenkor az történik, hogy az új gomb megnyomás után beszúródik egy üres sor, majd ezt jeleníti meg az EditForm. Így a mentés gomb megnyomása után egy sima módosítás fog lefutni. A definiált DefaultValue-k (BO-ban, vagy EditForm-on) értelemszerűen a beszúrással egy időben kerülnek be a sorba. Ilyenkor a Deleted oszlop értéke először 2 lesz, majd a mentés gomb megnyomása után változik 0-ra.

Használható hivatkozások:

  • Filter: A felhasználói felületen definiált filterek érékei.
  • Field: Az üzleti objektum saját mezői.
  • Special: Speciális konstansok.
  • Session: Az adott munkamenet bizonyos paraméterei.

Filter kezelés specialitása

Létezik egy speciális filter amely csak EditForm esetén használható, amit a keretrendszer automatikusan kezel. Ez a JumpType alias névvel kerül bele a bejövő filterek közé, és az értéke New vagy NoAction lehet. Új felvitel esetén mindig van ilyen Filter és az értéke New. Egyéb LinkScreen esetén vagy nincs ilyen Filter, vagy az értéke NoAction.

Elérhető funkciók

  • Karbantartó definiálása
  • Kezelt adatok és kontrollok definiálása

Karbantartó definiálása

A karbantartó definícióját az alábbi kötelező node-ok megadásával végezhetjük el. Mindegyikből csak egy szerepelhet. A leíró gyökéreleme a Form node, amely a következőket tartalmazza:

  • A Name node tartalmazza az EditForm nevét, ami a név konvenció alapján az EditForm<BOName>, ahol a <BOName> az objektum egyedi azonosítója.
  • A Caption node segítségével állítható be az EditForm címkéje, mely jelenleg nem jelenik meg a felületen.
  • DDO: Az EditForm-hoz tartozó DDO-t állíthatjuk be ezen keresztül. Az itt beállított DDO a filterek kezelésében játszik szerepet.
  • BusinessObject: az EditForm-hoz tartozó BO-t tartalmazza.
  • NearControlErrorDisplay: Ha a node értéke 'false', akkor a kontrolokhoz tartozó hibaüzenet nem a kontrol mellett jelenik meg, hanem a képernyő közepén, mint ahogy egy hagyományos üzenet megjelenik.

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

  • Rules (Effector 5.0.001+): EditForm szinten definiálhatunk szabályokat; jelenleg egyedül a Readonly szabály használható, vagyis egész EditForm-ra megmondhatjuk, hogy szerkeszthető-e vagy sem, nem kell minden egyes beviteli mezőnél beállítanunk azt. Ez a beállítás felüldefiniálható az egyes beviteli mezőknél. A szabály beállításáról a Szabályok menüpontban található bővebb leírás.
  • 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.

Példa:

<Form>
    <Name>EditFormEvent</Name>
    <Caption>Esemény módosítása</Caption>
    <DDO>DDEventEdit</DDO>
    <BusinessObject>BusinessObjectEvent</BusinessObject>
    <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>

Kezelt adatok és kontrolok definiálása

A kontrolokat a Form\ControlGroup kollekció segítségével állíthatjuk be. Az egyes ControlGroup tag-ek között soroljuk fel az egymás mellett megjelenő kontrollokat. Egyetlen kötelezően megadandó attribútuma van:

  • order: a ControlGroup-ok sorrendjét határozza meg. Érdemes a későbbi könnyebb bővíthetőség érdekében nem egyesével növelni!

A ControlGroup kollekció Control node-jaiban soroljuk fel az egymás mellett megjelenítendő kontrollokat. Ezekből tetszőleges számú lehet (a esetek döntő többségében azonban két elemről beszélünk: egy címkéről és egy beviteli mezőről).

A Control-ok definíciójához egységesen használható node-ok a következők:

  • Type: A kontrol típusa. Lehet például Label, TextBox, stb.
  • Name: A beviteli mező egyedi neve.
  • Width: A beviteli mező szélessége pixelben.
  • Left: A beviteli mező bal margótól vett távolsága pixelben
  • BindingName: Segítségével kapcsolható össze az adatbázis mező és a beviteli mező; a mező azonosítóját tartalmazza.

Az előbb felsorolt node-ok mindegyike kötelező!

A kontrolok nagy részénél használható(TextBox, Date, DateTime, ComboBox, QueryTextBox) a következő beállítási lehetőség:

  • TouchValueList: Lehetőség van arra, hogy egy dobozban pár értéket megadva egyszerűsítsük az elem kiválasztását. Ezt a TouchValueList attribútum megadásával tehetjük meg. Ez egy RuleValueType típusú kifejezés, melyről a Szabályok fejezetben olvashat bővebben. A helyes működéshez azonban szükséges a type attribútum Constant-ra állítása, valamint a lekérdezés által visszaadott oszlopneveknek Key-nek és Value-nak kell lenniük. Itt is használhatóak a szokásos [##Field.*##], [##Filter.*##], stb. hivatkozások.
       <TouchValueList type="Constant">
           <![CDATA[SELECT TOP 10 CompanyID AS `Key`, Name AS Value FROM Company WITH(NOLOCK) WHERE deleted = 0]]>
       </TouchValueList>
    

Címke

A címke definíciójában szükséges speciális node a következő:

  • Control\ControlCaption: a felirat, csak Label típus esetén van értelme

TextBox

Egyszerű szabad szöveges bevitelt tesz lehetővé, opcionálisan maszkolás is beállítható hozzá.

Opcionális attribútumok:

  • Precision: Tört számok esetén megadhatjuk a beírható tizedesjegyek számát (nemnegatív egész szám). Alapértelmezett érték: 2
  • ThousandsGrouping: Szám mező esetén ki/be kapcsolhatjuk az ezres csoportosítást. Lehetséges értékei:true, false. Alapértelmezett érték true.
  • UseHTMLEncode: A mezőbe írt értéket HTML kódolással tároljuk-e az adatbázisban. Alapértelmezett értéke false.
  • AlignNumbersLeft: Szám mező esetén alapértelmezésben jobbra igazítja az értékeket a rendszer. Ennek az attribútumnak true értékre állításával balra igazítja a beviteli mező értékét.
  • Multiline: Többsoros szövegdoboz megjelenítését teszi lehetővé. Opcionális. További testreszabás érdekében felhasználhatjuk az alábbi attribútumokat is:

    • UseHTMLEditor: Logikai érték, true esetén a HTML szerkesztő jelenik meg.
    • HTMLEditorToolbars Opcionális attribútum. 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 (Effector 5.0.001+): Kódrészlet megjelenítése esetén syntax highlight alkalmazása.
  • Password: Logikai érték. 'true' esetén csillag jelenik meg a beírt karakter helyett. Opcionális.
  • Mask Megadásával egy alapszintű maszkolási lehetőséget tudunk beállítani. Például: <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 ahelyett A jelöli a betűkhöz tartozó maszkot!
  • ResizeIsAllowed: többsoros szöveges beviteli mező átméretezését engedélyezhetjük/tilthatjuk. Alapértelmezett értéke 'true'.
  • CharacterCounterType: 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.
  • MaxLength (Effector 5.4+): szöveges beviteli mező esetén korlátozhatjuk a maximálisan beírható karakterek számát.

QueryTextBox

Egy érték listából választva állíthatjuk be a mező értékét. Működése megegyezik a ComboBox-szal, azonban itt az érték lista egy több oszlopos listát jelenít meg.

A Type node tartalmazza a beállításokat, mely segítségével meghatározható az érték lista adatforrása, és a felhasznált megjelenítő. A beállításhoz felhasználható attribútumok:

  • LinkScreen: Annak a képernyőnek a nevét tartalmazza, amely megnyílik a "..." gomb megnyomásakor.
  • QueryDescription: Az adatforrásként kapcsolt DDO neve, amely a kapcsolt mezőnek megfelelő adatokat tartalmazza.
  • 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.

Példa:

<Type LinkScreen="ScreenChoisePeople" QueryDescription="DDPeopleComplex" ValueMember="PeopleID" DisplayMember="PeopleName">QueryTextBox</Type>

Ennél a beviteli mezőnél 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ó ConnectedControl elemeiben kell megadni a megfelelő értékeket. A ConnectedControl node-ban beállított érték az EditForm-on megjelenő kontrol neve, a column attribútum pedig a lekérdezésből kiválasztott sorban található mező.

<ConnectedControls>
    <ConnectedControl column="Product_Type">TextBox_Product_Type</ConnectedControl>
    <ConnectedControl column="Part_Number">TextBox_Part_Number</ConnectedControl>
    <ConnectedControl column="EUR_MSRP">TextBox_Listaar</ConnectedControl>
</ConnectedControls>

DateTime

Dátum és idő választó kontrol. Az opcionálisan felhasználható node-ok, melyek segítségével a lenyíló listában megjelenő értékeket szabályozhatjuk a következők:

  • StartHour: Ettől az órától fog kezdődni a lista.

    Megjegyzés! Az Effector 5.0.001-es verziójában és felette ez a beállítás nincs figyelembe véve.

  • EndHour: Eddig fog tartani.
    Megjegyzés! Az Effector 5.0.001-es verziójában és felette ez a beállítás nincs figyelembe véve.
  • StepInMinutes: Ezek lesznek a lépésközök percben.

Date

Dátum választást lehetővé tevő kontrol.

ComboBox

Segítségével egy lenyíló listában szereplő kulcs/érték párokból lehet egyet választani.

<Type source="SQL" ComboDescription="ComboCegPotencial">ComboBox</Type>

A fenti példában a "ComboCegPotencial" nevű ComboDescription.xml fájlban definiált lista jelenik meg. A ComboDescription–ben van definiálva hogy mi a ValueMember, amely elmentődik az adatbázisban, és a DisplayMember ami pedig megjelenik.

Egy gyakori felhasználási eset, ha a lookup táblából kérdezünk le adatokat, akkor plusz 2 attribútumra is szükségünk lesz. Így nem kell minden lookup csoportra külön leírót készíteni.

  • lookupfiltername: Ez az attribútum határozza meg, hogy melyik filter helyére helyettesítsük be a lookupfiltervalue-ban szereplő adatot.
  • lookupfiltervalue: Ez az adat, amelyet be szeretnénk helyettesíteni.

Példa: <Type source="SQL" ComboDescription="ComboFixedValuesLookup" lookupfiltername="LookupID" lookupfiltervalue="1">ComboBox</Type>

HorizontalRule

Design elem, nincs hozzá háttér logika. Egy egyszerű vízszintes vonalat rajzol ki, amivel például tagolni lehet az űrlapot.

CheckBox

Egyszerű jelölönégyzet típus. A mögötte elhelyezkedő mező egy BIT típusú mező az adatbázisban.

FormCardList

Ez egy olyan kontrol, amely megjelenít egy CardList-et az EditForm-on. Megjegyzésekhez és fórumszerű ablakokhoz használható. Egy-egy bejegyzés egy-egy kártya lesz, és az egész alatt egy beviteli mező szerepel, ahová új megjegyzést lehet írni.

Paraméterezése egyszerű. A BindingName nem kell, viszont egy Control\CardScreenName node megadása kötelező, melyben megadunk egy screen-t. A screen-nek tartalmaznia kell egy DGVC-t, amely a CardList-et valósítja meg.

CardScreenName>ScreenCommentsGrid</CardScreenName>

Megjegyzés! Az Effector 5.0.001-es verziójában és felette már nem érhető el ez a mező típus.

InnerComponent

Lehetőség van az űrlapon egy másik komponenst megjeleníteni (mondjuk egy olyat, amelyen a megrendeléshez tartozó tételek rögzítésére és megjelenítésre szolgáló táblázat van).

<Type Component="ComponentEventNotes">InnerComponent</Type>

DocumentTextBox

Dokumentum kiválasztására használható beviteli mező. Ugyanazok az attribútumok használhatók, mint a QueryTextBox esetén.

<Type LinkScreen="ScreenChoiseDocument" IsDocumentVersionEnabled="false" QueryDescription="DDChoiseDocument" ValueMember="DocumentID" DisplayMember="OriginalFilename">DocumentTextBox</Type>

További attribútumok:

  • IsDocumentVersionEnabled (Effector 5.0.001+): A dokumentum verziózást lehet kikapcsolni vele az adott beviteli mezőn. Értéke true vagy false lehet. Alapértelmezett értéke true, vagyis engedélyezve van a verziózás (az Effector módosítás esetén rákérdez, hogy új verziót szeretne-e rögzíteni a felhasználó vagy sem)
  • LinkScreen: Ez a beállítás a QueryTextBox-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.

Lehetséges node-ok:

  • AllowedMIMETypes: A típus korlátozásra is lehetőség van, szóközzel elválasztott MIME típusokat kell felsorolni.
  • FileSizeLimit: A méret korlátozásához használható, értéke MB-ban értendő.
  • DocumentObjectType: Ha az EditForm alapja nem BusinessObjectDocument, akkor szükség van a DocumentObjectType node beállításra is, ez a node meghatározza, hogy milyen típusú dokumentumról van szó. Ilyen esetben a BusinesObject XML fájlban az adott mező definíciójában szerepelnie kell két attribútumnak:
    • type: Aminek az értéke mindig document.
    • doctype: Az adott dokumentum típusa.

Például: <Field name="AlairtSzerzodes" type="document" doctype="Szerzodes" />

A szabályokban lehetőség van a DocumentTextBox -hoz rendelt mezőben tárolt dokumentum egyes jellemzőit felhasználni. Ezek a következők lehetnek:

  • [##Field.<<mező>>@NewVersion##]: Új verzió lett-e rögzítve? Értéke true vagy false.
  • [##Field.<<mező>>@DocumentObjectType##]: A becsatolt dokumentum altípusa (Document üzleti objektum altípusa)
  • [##Field.<<mező>>@ValueChanged##]: Változott a mező értéke?
  • [##Field.<<mező>>@FileName##]: A becsatolt fájl neve.

Button

Általános gomb, rendszerint egyedi DLL hívásokhoz használjuk. Paraméterezése megegyezik a keresőmezőknél (PSearch) leírt Outer akciógombokéval.

A külső függvényhívást megvalósító gomb, egy paraméterezett modul adott osztályát hívja meg. Beállítását a Module node segítségével tehetjük meg, ez a node fogja tartalmazni azokat a technikai adatokat, melyek segítségével eléri az implementáló osztályt.

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

A Module node értéke a meghívandó modul neve és teljes elérési útvonala. A felhasználható [##LocalProgramPath##] karakterláncot a rendszer kicseréli a saját útvonalára. Például: (C:\Inetpub\wwwroot\Effector\bin). A classname attribútum, a modulban lévő osztályt határozza meg, amely osztálynak egy speciális interfészt kell megvalósítania (IEVIEditForm). EZ az interfész megvalósítás garantálja a megfelelő működést.

Az Action node egy tetszőleges szöveg lehet, amely a külső DLL-be történő híváskor, mint paraméter fog átadódni.

Gomboknál használható extra node:

  • CloseWindow: false-ra állításával elérhetjük, hogy az EditForm a mentés után nem záródik be. Értéke lehet true vagy false. Alapértelmezett értéke true.
  • Icon (5.0.001+): Opcionális. Előre definiált ikonkészletből választva a gomb felirata elé piktogramot helyezhetünk el.

SaveButton

Mentés gomb.

Mentés gomboknál használható extra node:

  • CloseWindow: false-ra állításával elérhetjük, hogy az EditForm a mentés után nem záródik be. Értéke lehet true vagy false, az alapértelmezett érték a true.

CancelButton

Mégsem gomb.

Gomboknál használható extra node:

  • CloseWindow: false-ra állításával elérhetjük, hogy az EditForm a mentés után nem záródik be. Értéke lehet true vagy false. Az alapértelmezett érték true.

DeleteButton

Törlés gomb.

Gomboknál használható extra node:

  • CloseWindow: false-ra állításával elérhetjük, hogy az EditForm a mentés után nem záródik be. Értéke lehet true vagy false. Az alapértelmezett érték true.

Egyéb opciók, szabályok, kiértékelések

Szabályok, kiértékelések: Az alábbi szabályokat (node-okat) minden kontrollnál megadhatjuk, ezek mindegyike egy RuleValueType. Paraméterezésükről a Szabályok fejezetben bővebb információt talál.

  • 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ő.
  • WorkflowRequired: Ugyanarra használható, mint a Required, annyi különbséggel, hogy mindez csak akkor lép életbe, ha a [##Field.Done##] == true, azaz készre állítottuk a folyamat aktuális lépését.
  • Readonly: Szerkeszthetőségi szabály.
  • 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.
  • SessionValue: Megadható egy konstans vagy számított érték, ami ha meg van adva, a kontrol jobb oldalán megjelenik egy extra gomb, melyet megnyomva mindig ez az érték kerül bele a beviteli mezőbe. Tipikusan a bejelentkezett felhasználó maga vagy az ő cége, stb.
  • Visible: Láthatósági szabály.
  • Tooltip: A 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.
  • Warning: Egy kis piros felkiáltójeles kör jelenik meg a hatására. Figyelmeztető üzenethez használt. A tooltip-nek lehet adni szöveget. Alapvetően szöveg típusú RuleValueType, és ha nem üres, akkor jelenik meg.
  • 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 kontrolba írt érték.
  • ComputedValue: Számított mező érték, mely függ folyamatosan 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.<Mezőnév>##]). Ezeknek a változására fog valami történni, további beállításokért lásd a ReComputing részt.
    • Az újraszámolások egyéb szabályokra is hatással vannak, mint pl. Visible, Readonly, stb.
  • ComputedValueList: A számított lista érték. Olyan ComboBox típus esetén használható, melynek tartalma függ folyamatosan 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.<Mezőnév>##]) 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.
  • 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ítása esetén kitörlődik a mezőbe 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.
  • 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.

  • LabelStyle: A címke szövegéhez társíthatunk előre definiált CSS osztályt
  • PlaceHolder (Effector 5.0.001+): Üres beviteli mezőkbe írt tájékoztató üzenet.
  • ReComputing: Ez a node adja meg az egyes kontroloknál, hogy az esetleges számított mezők milyen eseményekre számolódjanak újra. Lehetséges értékei a következők:

    • 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 kontrol értéke, így az összes szabály és ComputedValue lefut, ami hivatkozik erre a mezőre – ahol ez be van állítva.

Példa:

<ReComputing>TriggerOnRefresh</ReComputing>

Gombok esetén használható speciális szabályok

Annyiban speciálisak az ilyen kontrolok, hogy nincs címke, illetve értelemszerűen nincs BindingName node. Két extra RuleValueType-ot meg lehet adni a gomboknál, melyek összetartoznak. Ezt a két szabályt kötelezően egy Question node fogja össze.

Példa:

<Control>
    <Type>SaveButton</Type>
    <Name>Save</Name>
    <ControlCaption>Mentés</ControlCaption>
    <Question type="OkCancel">
        <Condition type="SQL" return="boolean" default="false">select case when not exists(select documentconnectionid from documentconnection where boid = `[##Field.ProjectID##]` and botype = `project` and deleted = 0) then `true` else `false` end</Condition>
        <Message type="Constant" return="string" default="">Az ügylethez jelenleg nincs csatolva dokumentum. Biztosan így szeretné elmenteni? Ha igen, kattintson az "ok", ha nem akkor a "mégsem", vagy "cancel" gombra!</Message>
    </Question>
    <CloseWindow>false</CloseWindow>
    <Width>80</Width>
    <Left>250</Left>
</Control>

A Question node-on definiált type attribútum jelenleg OkCancel, Ok és Cancel értékeket vehet fel.

  • OkCancel: Azt jelenti, hogy egy olyan ablak fog feljönni a gombnyomásra, mely 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: Tulajdonképpen egy tájékoztató ablakot lehet megjeleníteni mentés előtt.
  • Cancel: Szintén tájékoztatást jelenít meg, de meg is akadályozza a mentést.

Mint azt fentebb már említettük a Question node-on belül két RuleValueType-nak kell szerepelni. Az egyik neve Condition, a másik pedig Message. A Condition szabályozza, hogy mikor kell az üzenetnek megjelennie, és true visszatérési érték esetén fog megjelenni a párbeszédablak, melyben a Message node értéke fog látszódni. Mindkét RuleValueType-ban használhatóak a [##Field.{Mezőnév}##] értékek.

SignaturePad (Effector 5.4+)

Tipikusan aláírás beviteli mező, de tesztőleges ábrát tudunk rögzíteni. Az adatbázisba egy VARCHAR típusú mezőt kell hozzá a BindingName node-ban definiálni, ahová base64 kódolással kerül be az ábra.

  • Legutóbb frissítve: 8 hét 6 napja
  • Effector