Á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ő

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 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 DataDefinition, 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 Link 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 Caption node segítségével állítható be az EditForm címkéje, mely jelenleg nem jelenik meg a felületen.
  • DataDefinition: Az EditForm-hoz tartozó DataDefinitiont állíthatjuk be ezen keresztül. Az itt beállított DataDefinition a filterek kezelésében játszik szerepet.
  • BusinessObject: az EditForm-hoz tartozó BO-t tartalmazza.
  • Rules: 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: 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 xmlns="http://effector.hu/schema/ns/editform">
    <Caption>Esemény módosítása</Caption>
    <DataDefinition>DDEventEdit</DataDefinition>
    <BusinessObject>BusinessObjectEvent</BusinessObject>
    <ControlGroup name="Név">
        <Control>
            <Type>Label</Type>
            <Name>Label_Name</Name>
            <Caption>Név</Caption>
            <Width>150</Width>
        </Control>
        <Control>
            <Type>TextBox</Type>
            <Name>TextBox_Name</Name>
            <Width>200</Width>
            <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:

  • name: a ControlGroup nevét határozza meg. Az elnevezés egyedinek kell, hogy legyen!

A ControlGroup kollekció Control node-jaiban soroljuk fel az egymás mellett megjelenítendő kontrollokat. Ezekből tetszőleges számú lehet (az 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.
  • 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 Width mező kivételével!

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ók 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/Caption: 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á.

<Control>
    <Type>TextBox</Type>
</Control>

Control node-ban definiálható opcionális node-ok:

  • 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
  • IsThousandsGrouped: 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.
  • TextAlign: Szám mező esetén alapértelmezésben jobbra igazítja az értékeket a rendszer, szöveg beviteli mező esetén balra igazít. Ennek az attribútumnak Left,Right,Default értékei lehetnek.
  • IsMultiline: Többsoros szövegdoboz megjelenítését teszi lehetővé. Opcionális. További testre szabá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 \core\config\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 Kódrészlet megjelenítése esetén syntax highlight alkalmazása.
    • IsResizable: többsoros szöveges beviteli mező átméretezését engedélyezhetjük/tilthatjuk. Alapértelmezett értéke 'true'.
  • IsPassword: 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.
  • 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: 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.

Control node-ban definiálható node-ok:

  • Screen: Annak a képernyőnek a nevét tartalmazza, amely megnyílik a "..." gomb megnyomásakor.
  • DataDefinition: Az adatforrásként kapcsolt DataDefinition neve, amely a kapcsolt mezőnek megfelelő adatokat tartalmazza.
  • KeyColumnDefinition: Annak az oszlopnak a neve, amely az értéket tartalmazza.
  • ValueColumn: Annak az oszlopnak a neve, amely az értékhez tartozó szöveg leírást tartalmazza.

Példa:

<Control>
    <Type>QueryTextBox</Type>
    <Name>QueryTextBox_CompanyID</Name>
    <BindingName>CompanyID</BindingName>
    <Width>200</Width>
    <Screen>ScreenChoiseCompany</Screen>
    <DataDefinition>DataDefinitionCompanyEdit</DataDefinition>
    <KeyColumnDefinition>CompanyID</KeyColumnDefinition>
    <ValueColumn>Name</ValueColumn>
    <Required return="boolean" default="false" type="Constant">true</Required>
    <DefaultValue type="Constant" return="int" default="">[##Filter.Company_ID##]</DefaultValue>
</Control>

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 oszlop megnevezése mely, mint érték kerül a ConnectedControl-ban megadott beviteli mezőbe. Abban az esetben, ha a ConnectedControl által hivatkozott beviteli mező típusa ComboBox vagy QueryTextBox, akkor meg kell adni a beviteli mezőben megjelenítendő érték oszlopát is, amit a displayColumn attribútummal lehet megtenni (ez ugyanúgy egy oszlop neve a lekérdezésből).

<ConnectedControls>
    <ConnectedControl column="Product_Type">TextBox_Product_Type</ConnectedControl>
    <ConnectedControl column="Part_Number">TextBox_Part_Number</ConnectedControl>
    <ConnectedControl column="EUR_MSRP">TextBox_Listaar</ConnectedControl>
    <ConnectedControl column="City_ID" displayColumn="CityName">ComboBox_City</ConnectedControl>
</ConnectedControls>

DateTime

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

  • Step: 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.

<Control>
    <Type>ComboBox</Type>
    <Name>ComboBox_Priority</Name>
    <BindingName>Priority</BindingName>
    <Width>200</Width>
    <ComboDefinition>ComboPriority</ComboDefinition>
</Control>

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

Egy gyakori felhasználási eset, ha a lookup táblából kérdezünk le adatokat, akkor plusz 2 node-ra 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:

ComboBox ComboBox_Eredmeny Eredmeny 200 ComboFixedValuesLookup GroupNum 3 true

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.

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

<Control>
    <Type>InnerComponent</Type>
    <Name>InnerComponent_Products</Name>
</Control>

DocumentTextBox

Dokumentum kiválasztására használható beviteli mező. Ugyanazok a node-ok használhatók, mint a QueryTextBox esetén.

<Control>
    <Type>DocumentTextBox</Type>
    <Name>DocumentTextBox_DocumentTextBox</Name>
    <BindingName>DocumentTextBox</BindingName>
    <Width>200</Width>
    <Screen>ScreenChoiseDocument</Screen>
    <DataDefinition>DataDefinitionDocumentEdit</DataDefinition>
    <KeyColumnDefinition>DocumentID</KeyColumnDefinition>
    <ValueColumn>OriginalFilename</ValueColumn>
    <DocumentObjectType>Egyeb</DocumentObjectType>
</Control>

További node-ok:

  • IsDocumentVersioningEnabled: 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)
  • Screen: 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.
  • 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 a következő attribútumnak:
    • isDocument: Az adott mező dokumentum típusú-e. Értéke true vagy false lehet.

Például: <Field name="AlairtSzerzodes" isDocument="true"/>

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 (ControlPanel.Control) 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-ok:

  • 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: 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.

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 újra szá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.
  • LabelStyle: A címke szövegéhez társíthatunk előre definiált CSS osztályt
  • PlaceHolder: Ü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:

    • Always: Mindig. Az ablak megjelenésekor is. Nem használt.
    • OnValueChange: 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>
</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ók a [##Field.{Mezőnév}##] értékek.

SignaturePad

Tipikusan aláírás beviteli mező, de tetsző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: 1 hét 5 napja
  • Effector