ITRM20100175A1 - MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES - Google Patents
MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES Download PDFInfo
- Publication number
- ITRM20100175A1 ITRM20100175A1 IT000175A ITRM20100175A ITRM20100175A1 IT RM20100175 A1 ITRM20100175 A1 IT RM20100175A1 IT 000175 A IT000175 A IT 000175A IT RM20100175 A ITRM20100175 A IT RM20100175A IT RM20100175 A1 ITRM20100175 A1 IT RM20100175A1
- Authority
- IT
- Italy
- Prior art keywords
- data
- client
- objects
- server
- page
- Prior art date
Links
- 230000002085 persistent effect Effects 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims description 34
- 230000009471 action Effects 0.000 claims description 28
- 238000007726 management method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000009877 rendering Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims 18
- 230000001360 synchronised effect Effects 0.000 claims 8
- 230000000007 visual effect Effects 0.000 claims 5
- 230000009467 reduction Effects 0.000 claims 3
- 230000004913 activation Effects 0.000 claims 2
- 238000011161 development Methods 0.000 claims 2
- 230000008034 disappearance Effects 0.000 claims 2
- 230000002688 persistence Effects 0.000 claims 2
- 230000003449 preventive effect Effects 0.000 claims 2
- 230000003252 repetitive effect Effects 0.000 claims 2
- 230000002776 aggregation Effects 0.000 claims 1
- 238000004220 aggregation Methods 0.000 claims 1
- 230000008901 benefit Effects 0.000 claims 1
- 230000008859 change Effects 0.000 claims 1
- 238000005056 compaction Methods 0.000 claims 1
- 238000012790 confirmation Methods 0.000 claims 1
- 238000013479 data entry Methods 0.000 claims 1
- 238000013506 data mapping Methods 0.000 claims 1
- 230000004927 fusion Effects 0.000 claims 1
- 230000009466 transformation Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 description 2
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 241000405147 Hermes Species 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012739 integrated shape imaging system Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Description
DESCRIZIONE dell'invenzione avente per TITOLO: DESCRIPTION of the invention having as TITLE:
“Applicazioni Web Dinamiche Modulari e Persistenti con Interfacce Complesse", "Modular and Persistent Dynamic Web Applications with Complex Interfaces",
Descrizione Description
Il sistema delle Applicazioni Web Dinamiche Modulari e Persistenti con Interfacce Complesse si basa su un concetto di post-renderizzazione delle pagine web, che vengono scritte inizialmente in formato HTML\XHTML e fogli di stile e successivamente, grazie ad una configurazione parallela tramite file XML, si ottiene il risultato finale (figura 1 e 2). The system of Modular and Persistent Dynamic Web Applications with Complex Interfaces is based on a concept of post-rendering of web pages, which are initially written in HTML \ XHTML format and style sheets and subsequently, thanks to a parallel configuration via XML files, the final result is obtained (figures 1 and 2).
Il file XML contiene al suo interno una struttura divisa in 4 aree logiche (figura 3) The XML file contains a structure divided into 4 logical areas (figure 3)
1. onLoad: In questa sezione vengono indicati tutti i campi che dovranno avere un comportamento particolare, che può andare da una formattazione, alla definizione di un campo obbligatorio, ad una renderizzazione di un oggetto complesso in una area indicata (figura 4). All'interno degli oggetti complessi (Es griglie, repeater, treeview od altri) à ̈ possibile indicare le rispettive formattazioni e campi obbligatori, oltre che regole di validità per ciascun gruppo di dati all'interno di essi (fig. 5,6,7). 1. onLoad: This section indicates all the fields that must have a particular behavior, which can range from formatting, to the definition of a mandatory field, to a rendering of a complex object in an indicated area (figure 4). Within complex objects (e.g. grids, repeaters, tree views or others) it is possible to indicate the respective formatting and mandatory fields, as well as validity rules for each group of data within them (fig. 5,6,7 ).
2. JSonComunicationArea: In questa sezione vengono definite tutte le aree di comunicazioni da, e verso il server (Listato 2 e figura 9). 2. JSonComunicationArea: This section defines all the communication areas to and from the server (Listing 2 and Figure 9).
3. Actions: In questa sezione vengono definite le varie azioni che dovranno essere intraprese per il dialogo con il server. Saranno indicate le aree da controllare ed inviare, i nomi delle variabili con le quali dette aree viaggeranno verso il server, che tipo di dati transiteranno e cosa dovrà accadere al ritorno (Listato 2 e figura 9). 3. Actions: This section defines the various actions that must be taken for the dialogue with the server. The areas to be checked and sent will be indicated, the names of the variables with which these areas will travel to the server, what type of data will transit and what should happen upon return (Listing 2 and Figure 9).
4. UserlnterfaceAction: In questa sezione vengono definite delle azione che dovranno scaturire a seguito di interazioni utente, ad esempio abilitazione/disabilitazione campi. 4. UserlnterfaceAction: This section defines the actions that must arise as a result of user interactions, for example enabling / disabling fields.
L'ABUCore, à ̈ il framework lato Client, scritto in puro JavaScript, che al caricamento di una pagina ne analizza il file di configurazione, include ed attende il caricamento delle sole librerìe richieste e genera tutto il codice necessario per la renderizzazione, il controllo ed il funzionamento della pagina (figura 4), trasformando una semplice pagina HTML/XHTML in un Ricco Client Web Dinamico (figura 5). In pratica l'ABUCore trasforma i tag XML e le rispettive proprietà in puro sorgente JavaScript. Una volta realizzata una pagina Client complessa, che può contenere simultanee gestioni al proprio interno, proprio come in una vera applicazione gestionale desktop, i dati che transiteranno tra il Client ed il server hanno la caratteristica di viaggiare in maniera compatta e modulare . Sarà un framework presente sul server ad occuparsi dello smistamento delle informazioni provenienti dal Client, e aiutare alla creazione delle strutture provenienti da esso e da inviare al Client. Nella versione· attuale si occupa anche della creazione delle query, che-scritte in un formato parametrico speciale sono create dinamicamente ed automaticamente in base ai dati inviati. The ABUCore, is the Client-side framework, written in pure JavaScript, which, when a page loads, analyzes the configuration file, includes and waits for the loading of only the required libraries and generates all the code necessary for rendering. the control and operation of the page (figure 4), transforming a simple HTML / XHTML page into a Rich Dynamic Web Client (figure 5). In practice, ABUCore transforms XML tags and their respective properties into pure JavaScript source. Once a complex Client page has been created, which can contain simultaneous internal managements, just like in a real desktop management application, the data that will pass between the Client and the server have the characteristic of traveling in a compact and modular way. A framework present on the server will take care of sorting the information coming from the Client, and help in the creation of the structures coming from it and to be sent to the Client. In the current version it also deals with the creation of queries, which - written in a special parametric format - are dynamically and automatically created based on the data sent.
Per trasformare una Applicazione Web Dinamica con Ricca Interfaccia Grafica in una Applicazione Web Dinamica, a Richiesta Modulare, Persistente e con Ricca Interfaccia Grafica à ̈ sufficiente dotare la pagina principale del sito di un menù o qualunque tipo di componente che consenta una navigazione tra queste(figura 11) e le inglobi in contenitore- che le conservi come porzioni di applicativo (figure 10 e 11). To transform a Dynamic Web Application with Rich Graphic Interface into a Dynamic Web Application, on Modular Request, Persistent and with Rich Graphic Interface, it is sufficient to equip the main page of the site with a menu or any type of component that allows navigation between these ( figure 11) and enclose them in a container - keep them as application portions (figures 10 and 11).
Il framework Client attualmente consente la creazione dei seguenti componenti avanzati (che verranno sicuramente aggiunti, insieme a routine specializzate per la stampa): Checklmage, Edit Combo, Dynamic Edit Combo, Dynamic Combo Repeater, MultiCheck, MultiRadio, Grids, Repeater, TreeView, Calendar, Agenda, Windows, XPStartMenu, Tabs, TabMenu, Docking Menu. Gli oggetti sopra elencati sono quasi tutti fomiti di data binding e mapping dei campi per le funzioni di import/export dei dati. Sono inoltre dotati di una tecnologia particolare che consente il controllo incrociato per la validazione dei vari campi di input in modalità editabile (fig. 5, 6, 7, 8), e l'accesso ai vari campi viene eseguito indistintamente indicando semplicemente il nome del campo assegnato nel file di configurazione XML. Altra caratteristica dei componenti avanzati à ̈ la conoscenza del loro stato (modalità di scrittura/ normale), delle variazioni interne dei dati (inserimento/modifica/eliminazione di un dato) con possibilità di annullare le modifiche apportate. Hanno una validazione interna, estendibile anche con regole utente, che consente all'ABUCore di eseguire le routine di validità per aree ed evitare l'invio di dati incongruenti. Contiene inoltre delle classi interne che servono all'invio e ricezione dati, assegnazione, formattazione input sui campi tramite maschere, classi per il controllo di campi richiesti, con possibilità di definire classi di obbligatorietà , aggiunta funzioni e prototipi. Sono presenti classi per il mapping dei dati con i campi delle JSON Aree. The Client framework currently allows for the creation of the following advanced components (which will surely be added, along with specialized print routines): Checklmage, Edit Combo, Dynamic Edit Combo, Dynamic Combo Repeater, MultiCheck, MultiRadio, Grids, Repeater, TreeView, Calendar , Agenda, Windows, XPStartMenu, Tabs, TabMenu, Docking Menu. The objects listed above are almost all provided for data binding and field mapping for the data import / export functions. They are also equipped with a particular technology that allows cross-checking for the validation of the various input fields in editable mode (fig. 5, 6, 7, 8), and access to the various fields is performed indiscriminately by simply indicating the name of the field assigned in the XML configuration file. Another feature of the advanced components is the knowledge of their status (writing / normal mode), of the internal variations of the data (insertion / modification / deletion of a datum) with the possibility of canceling the modifications made. They have an internal validation, which can also be extended with user rules, which allows the ABUCore to execute the validity routines for areas and avoid sending incongruent data. It also contains internal classes that are used to send and receive data, assignment, input formatting on fields through masks, classes for checking required fields, with the possibility of defining mandatory classes, adding functions and prototypes. There are classes for mapping data with JSON Areas fields.
Il framework server à ̈ molto più semplice in quanto si dota di alcune classi che si occupano dello smistamento/raggruppamento delle informazioni(Listato 5,6), oltre-che all'assegnazione dei dati alle_varie query (Listato 6), che essendo scritte in un formato proprietario e parametrico (Listato 7), consentono la scrittura automatica delle stesse, senza alcun intervento di analisi da parte dell'utente per i dati presenti o mancanti. I dati provenienti dal client viaggiano in maniera compatta e sotto forma di classi in formato JSON (Listato 8). Il server si occuperà della creazione dell'oggetto proveniente dal client, il quale potrà contenere una moltitudine di altri oggetti, e smisterà le varie informazioni alle varie classi server specializzate nel trattamento dei dati, che le smisteranno a loro volta ad altre classi basilari, fina ad ottenere la completa elaborazione massiva dei dati. Nel caso in cui una sola elaborazione- non venga eseguita saranno annullate tutte le altre, ma questa funzionalità à ̈ strettamente legata alla base dati. Il framework server si occuperà deN'impacchettamento dei dati sempre in maniera modulare, che dovranno viaggiare diretti verso il client (Listato 5,6). The server framework is much simpler as it is equipped with some classes that deal with the sorting / grouping of information (Listing 5,6), as well as assigning data to the various queries (Listing 6), which being written in a proprietary and parametric format (Listing 7), allow the automatic writing of the same, without any analysis by the user for present or missing data. The data coming from the client travels compactly and in the form of classes in JSON format (Listing 8). The server will take care of the creation of the object coming from the client, which may contain a multitude of other objects, and will dispatch the various information to the various server classes specialized in data processing, which will in turn sort them to other basic classes. to obtain the complete massive processing of the data. In the event that a single processing is not carried out, all the others will be canceled, but this functionality is closely linked to the database. The server framework will take care of the packaging of the data always in a modular way, which will have to travel directly to the client (Listing 5,6).
Esempio Semplice pagina HTML (Listato 1) Simple HTML Page Example (Listing 1)
<IDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><HTML><HEADxlink rel="stylesheet" type="text/css" href="../styles/style.css"xscript type="text/javascript" src="ABUCore.js"x/scriptxscript type="text/javascript" language="javascript">var oABUCore = new ABUCoreTest.xml", "oABUCore"); function AnagraficalnsUpd() { if (document.getElementByld("id_anagrafica").value.trim().length == 0) { anagraficalnsert(); } else { anagraficaUpdate(); } } function confìrmDelete(){ var bRes = false; if (ìsDefined(<,>id_anagrafica'.toObj().value, ")) { var agree=confirm("Si desidera eliminare il record corrente ?"); if (agree) { bRes = true; } } return bRes; } </scriptx/HEAD> <BODY> <form name="frmAnagrafica" id="frmAnagrafica" method="post" action=""> <div id="XPTabAnagrafica"> <div dass="ABUTab"> <div id="anagrafìcaBase"> <div id='divABUToolBar' style="text-align:center; widht: 100%; height: Opx; border:0px solid;"x/div> <INPUT name="id_anagrafica" id="id_anagrafìca" class="hide"> <INPUT name="id_utenti" id="id_utenti" class="hide"> <INPUT name="id_tipologia_anagrafìca" id="id_tipologia_anagrafica" class="hide" value=""> <fieldset class="in" title="Dati Generali Persona Fisica"> <legend id=divFisGiur> Dati Generali </legend> <label for="cognome"><strong>* </strong>Cognome: <input id="cognome_rag_soc" name="cognome_rag_soc" class="medium"x/label> <label for="nome"><strong>* </strong>Nome: <input id="nome" name="nome" class="medium"></label><br/xlabel for="radSesso">Maschio <INPUT id=sesso name=sesso type=radio class- 'small" value='M'x/label> <label for="radSesso">Femmina : <INPUT id=sesso name=sesso type=radio class="small" value='F'x/label> <label for="data_nascita">Data di Nascita<input type="text" id=†data_nascita" class="normal" value=""x/label> <label for="partita_iva">Partita IVA<input type="text" id="partita_iva" class="normal" value=""x/label> <label for="codice_fiscale">Codice Fiscale<input type="text"-id="codice_fiscale" class="normal" style="disabled" value=""x/label> _</fieldset> <fieldset class="in" title="Recapiti Telefonici"> <legend>Recapiti Telefonici</legend> <table id="tblTelefoni"> </table> </fieldset> <fìeldset class="in" title- 'lndirizzo Principale"> <legend>lndirizzo Principale</legend> <label for="indirizzo" class="req"xstrong>* </strong>indirizzo: <input id="indirizzo" name="indirizzo" class="medium"x/label> <label for="localita">Località : <input id="localita" name="localita" class="mediumnormal"x/label> <label for="cap">Cap: <input id="cap" name="cap" class="small"x/label> <br/> <label for="id_nazioni">id_nazioni: <SELECT id=id_nazioni name=id_nazioni class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> <label for="id_provincia">id_provincia: <SELECT id=id_provincia name=id_provincia class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> <label for="id_comuni">id_comuni: <SELECT id=id_comunl· name=id_comuni class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> </fìeldset> </div> </div> <div class="ABUTab"> <div id="divRicerca"> <table id="tblRicerca"> </table> </div> </div> </div> </form> </BODYx/HTML> <IDOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEADxlink rel = "stylesheet" type = "text / css" href = "../ styles / style.css" xscript type = "text / javascript" src = "ABUCore.js" x / scriptxscript type = "text / javascript" language = "javascript"> var oABUCore = new ABUCoreTest.xml "," oABUCore "); function AnagraficalnsUpd () {if (document.getElementByld (" id_anagrafica "). value.trim (). length == 0) {anagraficalnsert ();} else {anagraficalUpdate () ;}} function confìrmDelete () {var bRes = false; if (ìsDefined (<,> registry_id'.toObj (). value, ")) {var agree = confirm (" Do you want to delete the current record? "); if (agree) {bRes = true; }} return bRes; } </ scriptx / HEAD> <BODY> <form name = "frmAnagrafica" id = "frmAnagrafica" method = "post" action = ""> <div id = "XPTabAnagrafica"> <div dass = "ABUTab"> <div id = "anagrafìcaBase"> <div id = 'divABUToolBar' style = "text-align: center; widht: 100%; height: Opx; border: 0px solid;" x / div> <INPUT name = "id_anagrafica" id = "id_anagrafìca" class = "hide"> <INPUT name = "id_user" id = "id_user" class = "hide"> <INPUT name = "id_tipologia_anagrafìca" id = "id_tipologia_anagrafica" class = "hide" value = ""> <fieldset class = "in" title = "General Data Individual"> <legend id = divFisGiur> General Data </legend> <label for = "surname"> <strong> * </strong> Surname : <input id = "surname_rag_soc" name = "surname_rag_soc" class = "medium" x / label> <label for = "name"> <strong> * </strong> Name: <input id = "name" name = " name "class =" medium "> </label> <br/xlabel for="radSex"> Male <INPUT id = gender name = gender type = radio class- 'small" value =' M'x / label> <label for = "radSesso"> Female: <INPUT id = sex name = sex type = radio class = "small" value = 'F'x / label> <label for = "date_birth"> Date of Birth <input type = "text" id = â € date_birth "class =" normal "value =" "x / label> <label for =" VAT number "> VAT number <input type = "text" id = "VAT number" class = "normal" value = "" x / label> <label for = "Codice_fiscale"> Codice Fiscale <input type = "text" -id = "Codice_fiscale" class = "normal" style = "disabled" value = "" x / label> _ </fieldset> <fieldset class = "in" title = "Telephone numbers"> <legend> Telephone numbers </legend> <table id = "tblTelefoni "> </table> </fieldset> <fìeldset class =" in "title- 'Main Address"> <legend> Main Address </legend> <label for = "address" class = "req" xstrong> * </strong> address: <input id = "address" name = "address" class = "medium" x / label> <label for = "localita"> LocalitÃ: <input id = "localita" name = "localita" class = "mediumnormal" x / label> <label for = "cap"> Cap: <input id = "cap" name = "cap" class = "small" x / label> <br/> <label for = "id_nazioni" > id_nation: <SELECT id = id_nation name = id_nation class = "mediumnormal"> <OPTION if lectedx / OPTION> </SELECT> </label> <label for = "id_provincia"> id_provincia: <SELECT id = id_provincia name = id_provincia class = "mediumnormal"> <OPTION selectedx / OPTION> </SELECT> </label> <label for = "id_comuni"> id_comuni: <SELECT id = id_comunl · name = id_comuni class = "mediumnormal"> <OPTION selectedx / OPTION> </SELECT> </label> </ fìeldset> </div> < / div> <div class = "ABUTab"> <div id = "divRicerca"> <table id = "tblRicerca"> </table> </div> </div> </div> </form> </ BODYx / HTML>
Esempio file di configurazione pagina di sopra (Listato 2) <ABUConfiguration> <JSonComunicationArea> <JSonArea tagld="AreaAnagraficaBase" form="frmAnagrafica"> <tag tagld="id_anagrafica" fieldld=""x/tagxtag tagld="id_utenti" fieldld=""x/tag> <tag tagld="id_tipologia_anagrafica" fieldld=""x/tagxtag tagld="cognome_rag_soc" fieldld=""x/tag> <tag tagld="nome" fieldld=""x/tagxtag tagld="sesso" fieldld=""x/tag> <tag tagld="data_nascita" fieldld=""x/tag><tag tagld="codice_fiscale" fieldld=""x/tag> <tag tagld="partita_iva" fieldld=""x/tagxtag tagld="indirizzo" fieldld=""x/tag> <tag tagld="localita" fieldld=""x/tagxtag tagld="cap" fieldld=""x/tag> <tag tagld="id_nazioni" fieldld=""x/tagxtag tagld="id_provincia" fieldld=""x/tag> <tag tagld="id_comuni" fieldld=""x/tagxgrid tagld="tblTelefoni" fieldld="telefoni"x/grid> </JSonArea> <JSonArea tagld="AreaAnagraficaSearch"xgrid tagld="tblRicerca" fieldld="ricerca"x/gridx/JSonArea> </JSonComunicationArea> <onLoad> <tag tagld="cognome_rag_soc" fieldld=""x/tagxtag tagld="nome" fieldld=<,,>"x/tagxtag ~tagld="sesso" fieldld=<,>'"x/tagxtag tagld="sesso" fieldld=""x/tag> <tag tagld="data_nascita" fieldld=""x/tagxtag tagld="partita_iva" fieldld=""x/tag> <tag tagld="codice_fiscale" fieldld=""x/tagxtag tagld="indirizzo" fieldld=""x/tag> <tag tagìd="localita" fieldld=""x/tagxtag tagld="{cap" fieldld=""x/tag> <tag tagld="id_nazioni" fieldld=""-onchange="if (this.selectedlndex!=-1) {changeNazione(this.options[this.selectedlndex].value)}" inizialize="112"x/tagxtag tagld="id_provincia" fieldld="" onchange="if (this.selectedlndex!=-l) {changeProvincia(this.options[this.selectedlndex].value)}" inizialize="58"x/tag> <tag tagld="id_comuni" fieldld=""x/tag> <tabs tagld="XPTabAnagrafica" varObjName="tabAnagrafica" width="790" height="550" activetab="0"> <field tagld="dettaglio" objHtmlld="" title="Dettaglio" canclose="false"x/field> <field tagld="ricerca" objHtmlld="" title="Ricerca" canclose="false"x/field> </tabsxgrid tagld="tblTelefoni" fieldld="" varObjName="grdTelefoni" objHtmlld="" width="765" height="100"; editable="true" created="true" deleted="true" paging="false"> <field tagld="id_telefoni" fieldld="" visible="false" sort=""x/field> <field tagld=†descrizione" fieldld="" visible="true" sort="S" mask="A(25)" leaveMask- 'false" req="true"x/field> <field tagld- 'telefono" visible="true" mask="(+99)999/999999" leaveMask="false" req="true"x/field> </grid> <grid tagld="tblRicerca" fieldld="" varObjName="grdTelefoni" tableld="tblRicerca" width="765" 'height="550"> <field tagld="id_anagrafica" fieldld="" objHtmlld="" visible="false" sort=""x/field> <field tagld="soggetto" fieldld="" objHtmlld="" visible="true" sort="S" format=""label style='cursor:pointer;color:#0000FF;' onclick=<,>anagraficaRead(%id_anagrafica%)<,>"%soggetto%"/label""x/field> <field tagld="indirizzo" fieldld="" objHtmlld="" visible="true" sort="S"x/field> <field tagld="recapito" fieldld="" objHtmlld="" visible="true" sort=""x/field> </gridxtoolbar tagld="divABUToolBar" varObjName="toolBar" left="240" top="0"> <field_ tagld="butNuovo" image="nuovo.ico" hint=" Nuovo" event- oABUCore.clearJSonArea("AreaAnagraficaBase");' enabled="true" enabledMask="lllll"x/field> <field tagld="butCerca" ìmage="cerca.ico" hint="Cerca" event="anagraficaSearch" enabled="true" enabledMask="00100"x/field> <field tagld="butElimina" -- image="Elimina.ico" hint="Elimina" event="anagraficaDelete" enabled="true"-- enabledMask="00010"></field> <field tagld="butArmulla" image- 'Annulla.ico" hint="Annulla" eventi"" enabled="true" enabledMask="llill"x/field> </toolbar> </onLoad> <Actions> <action tagld="anagrafjcalnsert" url="Motori/anagraficalns.php" ctrlValidation="AreaAnagraficaBase" ' refreshWhenDone="" onAjaxResponse=""-onAfterAction="anagraficalnsUpd_onAfterAction()"> <send name="frmAnagrafica" value="AreaAnagraficaBase" x/send> </action> <action,tagld="anagraficaUpdate" url="Motori/anagraficaUpd.php" ctrlValidation="AreaAnagraficaBase" refreshWhenDone="" onAjaxResponse="" onAfterAction="anagraficalnsUpd_onAfterAction()"> <send name="frmAnagrafica" value="AreaAnagraficaBase" x/send> </aetion> <action tagld="changeNazione(id_nazioni)" ctrlValidation="id_nazioni=((isDefined(id_nazioni,<,,>))\x26\x26(id_nazioni>=0)?id_nazioni:-l)" onBeforeAction="'id_provincia'.toObj().innerHTML=";<,>id_comuni<,>.toObj().innerHTML=";" url="Motori/getComuni.php" _ refreshWhenDone="id_provincia" resultTransform="" onAjaxResponse="result=result.split('\n');" onAfterAction=""> <send name="id_nazioni" value="id_nazioni" x/send> </action> </Actions> <UserlnterfaceActionxaction tagld="radFisGiur"> <when ctrlValidation="F"> <tag tagld="Dt_Gen_PF" visible="true" v="l"x/tag> <tag tagld="Dt_Gen_PG" visible="false" v="2"x/tag> </when> <when ctrlValidation="G"> <tag tagld="Dt_Gen_PF" visible="false" v="3"x/tag> <tag tagld="Dt_Gen_PG" visible="true" v="4"x/tag> </when> </action> </UserlnterfaceActionx/ABUConfiguration> Example configuration file above page (Listing 2) <ABUConfiguration> <JSonComunicationArea> <JSonArea tagld = "AreaAnagraficaBase" form = "frmAnagrafica"> <tag tagld = "id_anagrafica" fieldld = "" x / tagxtag tagld = "user_id" fieldld = "" x / tag> <tag tagld = "id_type_anagrafica" fieldld = "" x / tagxtag tagld = "surname_rag_soc" fieldld = "" x / tag> <tag tagld = "name" fieldld = "" x / tagxtag tagld = "sex" fieldld = "" x / tag> <tag tagld = "date_birth" fieldld = "" x / tag> <tag tagld = "code_fiscale" fieldld = "" x / tag> <tag tagld = "batch" fieldld = "" x / tagxtag tagld = "address" fieldld = "" x / tag> <tag tagld = "location" fieldld = "" x / tagxtag tagld = "cap" fieldld = "" x / tag> <tag tagld = " id_nazioni "fieldld =" "x / tagxtag tagld =" id_provincia "fieldld =" "x / tag> <tag tagld =" id_comuni "fieldld =" "x / tagxgrid tagld =" tblTelefoni "fieldld =" telephones "x / grid> </JSonArea> <JSonArea tagld = "AreaAnagraficaSearch" xgrid tagld = "tblRicerca" fieldld = "search" x / gridx / JSonArea> </JSonComunicationArea> <onLoad> <tag tagld = "surname_rag_soc" fieldld = " "x / tagxtag tagld =" name "fieldld = <,,>" x / tagxtag ~ tagld = "sex" fieldld = <,> '"x / tagxtag tagld =" sex "fieldld =" "x / tag> <tag tagld = "birth_date" fieldld = "" x / tagxtag tagld = "game_iva" fieldld = "" x / tag> <tag tagld = "code_fiscal" fieldld = "" x / tagxtag tagld = "address" fieldld = "" x / tag> <tag tagìd = "localita" fieldld = "" x / tagxtag tagld = "{cap" fieldld = "" x / tag> <tag tagld = "id_nation" fieldld = "" - onchange = "if (this .selectedlndex! = - 1) {changeNazione (this.options [this.selectedlndex] .value)} "initialize =" 112 "x / tagxtag tagld =" id_provincia "fieldld =" "onchange =" if (this.selectedlndex! = -l) {changeProvincia (this.options [this.selectedlndex] .value)} "initialize =" 58 "x / tag> <tag tagld =" id_comuni "fieldld =" "x / tag> <tabs tagld =" XPTabAnagrafica " varObjName = "tabAnagrafica" width = "790" height = "550" activetab = "0"> <field tagld = "detail" objHtmlld = "" title = "Detail" canclose = "false" x / field> <field tagld = "search" objHtmlld = "" title = "Search" canclose = "false" x / field> </ tabsxgrid tagld = "tblPhone" fieldld = "" varObjName = "grdTelefoni" objHtmlld = "" width = "765" height = "100"; editable = "true" created = "true" deleted = "true" paging = "false"> <field tagld = "phone_id" fieldld = "" visible = "false" sort = "" x / field> <field tagld = ⠀ description "fieldld =" "visible =" true "sort =" S "mask =" A (25) "leaveMask- 'false" req = "true" x / field> <field tagld-' phone "visible =" true "mask =" (+ 99) 999/999999 "leaveMask =" false "req =" true "x / field> </grid> <grid tagld =" tblRicerca "fieldld =" "varObjName =" grdTelefoni "tableld =" tblSearch "width =" 765 "'height =" 550 "> <field tagld =" identity_id "fieldld =" "objHtmlld =" "visible =" false "sort =" "x / field> <field tagld =" subject "fieldld = "" objHtmlld = "" visible = "true" sort = "S" format = "" label style = 'cursor: pointer; color: # 0000FF;' onclick = <,> anagraficaRead (% id_anagrafica%) <,> "% subject%" / label "" x / field> <field tagld = "address" fieldld = "" objHtmlld = "" visible = "true" sort = " S "x / field> <field tagld =" delivery "fieldld =" "objHtmlld =" "visible =" true "sort =" "x / field> </ gridxtoolbar tagld =" divABUToolBar "varObjName =" toolBar "left =" 240 "top =" 0 "> <field_ tagld =" butNuovo "image =" new.ico "hint =" New "event- oABUCore.clearJSonArea (" AreaAnagraficaBase "); ' enabled = "true" enabledMask = "lllll" x / field> <field tagld = "butSearch" ìmage = "search.ico" hint = "Search" event = "anagraficaSearch" enabled = "true" enabledMask = "00100" x / field> <field tagld = "butElimina" - image = "Delete.ico" hint = "Delete" event = "anagraficaDelete" enabled = "true" - enabledMask = "00010"> </field> <field tagld = "butArmulla" image- 'Cancel.ico "hint =" Cancel "events" "enabled =" true "enabledMask =" llill "x / field> </toolbar> </onLoad> <Actions> <action tagld =" anagrafjcalnsert "url =" Motori / anagraficalns.php "ctrlValidation =" AreaAnagraficaBase "'refreshWhenDone =" "onAjaxResponse =" "- onAfterAction =" anagraficalnsUpd_onAfterAction () "> <send name =" frmAnagrafica "value =" x AreaAnagraficaB / action> <action, tagld = "anagraficaUpdate" url = "Motori / anagraficaUpd.php" ctrlValidation = "AreaAnagraficaBase" refreshWhenDone = "" onAjaxResponse = "" onAfterAction = "anagraficalnsUpd_onAfterAction value =" name frank = "sendfica name =" "AreaAnagraficaBase" x / send> </aetion> <action tagld = "changeNazione (id_n actions) "ctrlValidation =" id_nation = ((isDefined (id_nation, <,,>)) \ x26 \ x26 (id_nation> = 0)? id_nation: -l) "onBeforeAction =" 'id_provincia'.toObj (). innerHTML = "; <,> common_id <,>. toObj (). innerHTML ="; " url = "Motori / getComuni.php" _ refreshWhenDone = "id_provincia" resultTransform = "" onAjaxResponse = "result = result.split ('\ n');" onAfterAction = ""> <send name = "id_nazioni" value = "id_nazioni" x / send> </action> </Actions> <UserlnterfaceActionxaction tagld = "radFisGiur"> <when ctrlValidation = "F"> <tag tagld = " Dt_Gen_PF "visible =" true "v =" l "x / tag> <tag tagld =" Dt_Gen_PG "visible =" false "v =" 2 "x / tag> </when> <when ctrlValidation =" G "> < tag tagld = "Dt_Gen_PF" visible = "false" v = "3" x / tag> <tag tagld = "Dt_Gen_PG" visible = "true" v = "4" x / tag> </when> </action> < / UserlnterfaceActionx / ABUConfiguration>
Esempio script pagina di menu (Listato 3) Menu Page Script Example (Listing 3)
ciDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"xHTMLxHEADxscript type="text/javascript" src="../javascript/ABUCore.js"x/scriptxscript type="text/javascript" language="javascript"> var oABUCore = new ABUCore("index.xml", "oABUCore"); oABUCore.path = '../javascript/';</scriptx/HEADxBODYxDIV id=pageContentx/DIVx/BODYx/HTML> ciDOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd"xHTMLxHEADxscript type =" text / javascript "src =" ../ javascript / ABUCore.js "x / scriptxscript type =" text / javascript "language =" javascript "> var oABUCore = new ABUCore (" index.xml "," oABUCore "); oABUCore.path = '../javascript/';</scriptx/HEADxBODYxDIV id = pageContentx / DIVx / BODYx / HTML>
Esempio script configurazione pagina di menu (Listato 4) Menu Page Configuration Script Example (Listing 4)
<?xml version="1.0" encoding="ISO-8859-l"?xABUConfiguration> <onLoad> <window tagld="wAnagBanca" varObjName="wAnagBanca" title="Anagrafìca Istituti di Credito", ...x/window> <window tagld="wAnagMutuatari" varObjName="wAnagMutuatari" title="Anagrafica ' Mutuatari" x/window> <window tagld="wAnagClienti"-varObjName="wAnagClienti" title="Anagrafica Clienti" ...x/window> <window tagld="wAnaglmmobili" varObjName="wAnaglmmobili" title- 'Anagrafica Immobili" ...x/window> <startMenu tagld="startMenu" varObjName="startMenu" container='"' ...> <field tagld="ml0" idMenu="10" idParentMenu="0" caption="Anagrafiche" image- 'globe.ico" ...x/field> <field tagld="ml0" idMenu="20" idPar.entMenu="10" caption="Clienti" image="handl.ico" ...x/field> <field tagld="ml0" idMenu="21" idParentMenu="10" caption="lstituti di credito" ...x/field> <field tagld="ml0" idMenu="22" idParentMenu="10" caption="Mutuatari" ...x/field> <field tagld="mlO" idMenu="23" idParentMenu="10" caption="lmmobili" ...x/field> </startMenu> <dockMenu tagld="dockMenu" varObjName="dockMenu" container="" position="center" ...x/dockMenu> </onLoadx/ABUConfìguration> — <? xml version = "1.0" encoding = "ISO-8859-l"? xABUConfiguration> <onLoad> <window tagld = "wAnagBanca" varObjName = "wAnagBanca" title = "Anagrafìca Credit Institutions", ... x / window> <window tagld = "wAnagMutuatari" varObjName = "wAnagMutuatari" title = "Borrowers' registry" x / window> <window tagld = "wAnagClienti" -varObjName = "wAnagClienti" title = "Customer registry" ... x / window> <window tagld = "wAnaglmmobili" varObjName = "wAnaglmmobili" title- 'Real Estate Registry "... x / window> <startMenu tagld =" startMenu "varObjName =" startMenu "container ='" '...> <field tagld = "ml0" idMenu = "10" idParentMenu = "0" caption = "Personal data" image- 'globe.ico "... x / field> <field tagld =" ml0 "idMenu =" 20 "idPar.entMenu = "10" caption = "Customers" image = "handl.ico" ... x / field> <field tagld = "ml0" idMenu = "21" idParentMenu = "10" caption = "Lenders" ... x / field> <field tagld = "ml0" idMenu = "22" idParentMenu = "10" caption = "Borrowers" ... x / field> <field tagld = "mlO" idMenu = "23" idParentMenu = "10" caption = "furniture" ... x / field> </ startMe nu> <dockMenu tagld = "dockMenu" varObjName = "dockMenu" container = "" position = "center" ... x / dockMenu> </ onLoadx / ABUConfìguration> ⠀ "
Esempio script lato server (Listato 5) Server-side script example (Listing 5)
<? <?
if ( !isset($_POST["id_anagrafìca"])) { return false; } if (! isset ($ _ POST ["id_anagrafìca"])) {return false; }
require_once ('includeAll.php'); require_once ('includeAll.php');
require_once 'openConnection.php'; require_once 'openConnection.php';
$Result = $ Result =
$idAnagrafica = $_POST["id_anagrafica"]; $ idAnagrafica = $ _POST ["id_anagrafica"];
$json = new Services_JSON(); $ json = new Services_JSON ();
$arr_rsMututatari = cABUADO::ReadLine(Mutuatari::GetFromlD($idAnagrafica), MYSQL_ASSOC); $ arr_rsMututatari = cABUADO :: ReadLine (Borrowers :: GetFromlD ($ idAnagrafica), MYSQL_ASSOC);
Sjson->addFields($arr_rsMututatari); Sjson-> addFields ($ arr_rsMutatari);
$arr_rsAnagBaseMututatari = cABUADO::ReadLine(Anagrafìca::GetFromlD($idAnagrafica), MYSQL_ASSOC); $ arr_rsAnagBaseMututatari = cABUADO :: ReadLine (Anagrafìca :: GetFromlD ($ idAnagrafica), MYSQL_ASSOC);
Sjson->addFields($arr_rsAnagBaseMututatari, "anagrafìcaBaseMutuatario"); Sjson-> addFields ($ arr_rsAnagBaseMututatari, "anagrafìcaBaseMutuatario");
$rsTelAnagBaseMututatari = cABUADO::RecordsetToArray(Anagrafìca::getTelefoni($idAnagrafìca), SResult); $ rsTelAnagBaseMututatari = cABUADO :: RecordsetToArray (Anagrafìca :: getTelefoni ($ idAnagrafìca), SResult);
$json->addSubSectionFields($rsTelAnagBaseMututatari, "telefoni", "anagrafìcaBaseMutuatario"); $ json-> addSubSectionFields ($ rsTelAnagBaseMututatari, "phones", "anagrafìcaBaseMutuatario");
$rsConiuge = cABUADO::ReadLine(Mutuatari::GetConiugeFromlDMutuatario($idAnagrafìca), MYSQL_ASSOC); $json->addFields($rsConiuge, "anagraficaConiugeMutuatario"); $ rsConiuge = cABUADO :: ReadLine (Borrowers :: GetConiugeFromlDMutuatario ($ idAnagrafìca), MYSQL_ASSOC); $ json-> addFields ($ rsCospouse, "anagraficaConsugeMutuatario");
$rsTelConiugeMututatari . . = cABUADO::RecordsetToArray(Mutuatari::GetTelefonÌConiugeFromlDMutuatario($idAnagrafìca), $Result); $ rsTelColugeMututatari. . = cABUADO :: RecordsetToArray (Borrowers :: GetTelefonÌConiugeFromlDMutuatario ($ idAnagrafìca), $ Result);
$json->addSubSectionFields($rsTelConiugeMututatari, "telefoni", "anagraficaConiugeMutuatario"); $ json-> addSubSectionFields ($ rsTelConiugeMututatari, "telephones", "anagraficaConiugeMutuatario");
$rsProfessioni = cABUADO::RecordsetToArray(Mutuatari::GetProfessioni($idAnagrafìca), SResult); $ rsProfessioni = cABUADO :: RecordsetToArray (Borrowers :: GetProfessioni ($ idAnagrafìca), SResult);
$json->addFields($rsProfessioni, "professioni");<»>SrsAltriRedditi = cABUADO::RecordsetToArray(Mutuatari::GetAltriRedditi($idAnagrafica), SResult); - -Sjson->addFields($rsAltriRedditi, "altriRedditi"); $ json-> addFields ($ rsProfessioni, "professioni"); <»> SrsAltriRedditi = cABUADO :: RecordsetToArray (Borrowers :: GetAltriRedditi ($ idAnagrafica), SResult); - -Sjson-> addFields ($ rsAltriRedditi, "otherRedits");
SrsSpese = cABUADO::RecordsetToArray(Mutuatari::GetSpese($idAnagrafìca), SResult); SrsSpese = cABUADO :: RecordsetToArray (Borrowers :: GetSpese ($ idAnagrafìca), SResult);
Sjson->addFields($rsSpese, "spese"); Sjson-> addFields ($ rsSpese, "expenses");
SrsAltrilmpegniFinanziari = cABUADO::RecordsetToArray(Mutuatari::GetAltrilmpegniFinanziari($idAnagrafica), SResult); - - — SrsAltrilmpegniFinanziari = cABUADO :: RecordsetToArray (Borrowers :: GetAltrilmpegniFinanziari ($ idAnagrafica), SResult); - - ⠀ "
$json->addFields($rsAltrilmpegniFinanziari, "altrilmpegniFinanziari"); $ json-> addFields ($ rsOtherFinancial Commitments, "otherFinancial Commitments");
SrsSoluzioniAssicurativeComplementari = cABUADO::RecordsetToArray(Mutuatari::GetSoluzioniAssicurativeComplementari($idAnagrafìca), SResult); SrsSoluzioniAssicurativeComplementari = cABUADO :: RecordsetToArray (Borrowers :: GetSoluzioniAssicurativeComplementari ($ idAnagrafìca), SResult);
Sjson->addFields($rsSoluzioniAssicurativeComplementari, "soluzioniAssicurativeComplementari"); Sjson-> addFields ($ rsSoluzioniAssicurativeComplementari, "solutionsAssicurativeComplementari");
SJSonAnag = $json->finalize(); SJSonAnag = $ json-> finalize ();
echo(SJSonAnag); echo (SJSonAnag);
require_once 'closeConnection.php';?> require_once 'closeConnection.php';?>
Esempio classe lato server elaborazione dati (Listato 6) Data Processing Server-Side Class Example (Listing 6)
class ProdottiFinanziari { class Financial Products {
function _SetProdottiFinanziariParam(&$JSon, &$SQL, $Finalize=true){ function _SetProductsFinancialParam (& $ JSon, & $ SQL, $ Finalize = true) {
cABUPrepareSQL::SetSQL($SQL, $Finalize); cABUPrepareSQL::AddParam('@ID_PRODOTTI_FINANZIARI@',$JSon->id _prodotti_finanziari, cABUPrepareSQL::AddParam('@NOME_PRODOTTO@',$JSon->nome_prodotto, cABUPrepareSQL :: SetSQL ($ SQL, $ Finalize); cABUPrepareSQL :: AddParam ('@ ID_FINANCIAL_PRODUCTS @', $ JSon-> id _financial_products, cABUPrepareSQL :: AddParam ('@ PRODUCT_NAME @', $ JSon-> product_name,
cABUPrepareSQL-AddParam('@ID_TIPOLOGIA_MUTUO@',$' JSon-> tipologia_mutuo,.cABUPrepareSQL::AddParam(<,>@ID_INDICIZZAZIONE@',SJSon->id_indicizzazione, -cABUPrepareSQL::AddParam('@TAN@'J$JSon->tan, cABUPrepareSQL-AddParam ('@ MUTUAL_TYPE_ID @', $ 'JSon-> mortgage_type, .cABUPrepareSQL :: AddParam (<,> @ INDEX_ID @', SJSon-> index_id, -cABUPrepareSQL '$ :: AddParam @' -> tan,
cABUPrepareSQL::AddParam('@TAEG@',$JSon->taeg, cABUPrepareSQL::AddParam(<,>@PERC_SPESE_ISTRUTTORIA@',$JSon->perc_spese_istruttorìa, "0"); cABUPrepareSQL::AddParam('@MAX_SPESEJSTRUTTORIA@<,>,$JSon->max_spese_istruttoria, "0"); cABUPrepareSQL::AddParam('@PERC_FINANZIABILE@',$JSon->perc_finanziabile, "0"); cABUPrepareSQL::AddParam{'(S<)>MIN_FINANZIABILE@',SJSon->min_finanziabile, "0"); cABUPrepareSQL::AddParam('@MAX_FINANZIABILE(5<)>',$JSon->max_finanziabile, "0"); cABUPrepareSQL::AddParam('@DURATA_MIN@',$JSon->durata_min, "0"); cABUPrepareSQL::AddParam('@DURATA_MAX@',$JSon->durata_max, "0"); cABUPrepareSQL::AddParam('(S<)>SPESE_PERIZIA@<l>,$JSon->spese_pà ̈rizia, "0"); cABUPrepareSQL::AddParam('@SPESE_INIZIALI(S<)>',$JSon->speseJniziali, "0"); cABUPrepareSQL::AddParam('@PENALE_RIMBORSO_ANTICIPATO@',$JSon->penale_rimborso_anticipato, "0†); cABUPrepareSQL-AddParaml^DESCRIZIONE^ALCOLO^TASSOlffl'^JSon^descrizione^alcoloJasso, cABUPrepareSQL::AddParam('@COPERTURE_ASSICURATIVE@',$JSon->coperture_assicurativeJcABUPrepareSQL::AddParam('@GARANZIE_RICHIESTE@',$JSon->garanzie_richieste, cABUPrepareSQL::AddParam('@ISTANTE_EROGAZIONE@',$JSon->istante_erogazione, cABUPrepareSQL::AddParam('@NOTE@',$JSon->note, cABUPrepareSQL::AddParam('@DATAJNIZIO_VALIDITA@<,>,$JSon->data_inizio_validita, cABUPrepareSQL::AddParam('@DATA_FINE_VALIDITA@',$JSon->data_fine_validita, cABUPrepareSQL :: AddParam ('@ TAEG @', $ JSon-> taeg, cABUPrepareSQL :: AddParam (<,> @ PERC_SPESE_ISTRUTTORIA @ ', $ JSon-> perc_spese_istruttorìa, "0"); cABUPrepareSQL :: AddParam (' @ MAX_SPESEJSTRUTTORIA @ <,>, $ JSon-> max_spese_istruttoria, "0"); cABUPrepareSQL :: AddParam ('@ PERC_FINANZIABILE @', $ JSon-> payable_perc, "0"); cABUPrepareSQL :: AddParam {'(S <> MIN_FINANCIABLE @ ', SJSon-> min_financeable, "0"); cABUPrepareSQL :: AddParam ('@ MAX_FINANCIABLE (5 <)>', $ JSon-> max_financeable, "0"); cABUPrepareSQL :: AddParam ('@ MIN_DURATION @', $ JSon-> min_time, "0"); cABUPrepareSQL :: AddParam ('@ MAX_DURATION @', $ JSon-> max_time, "0"); cABUPrepareSQL :: AddParam ('(S <)> EXPERT_EXPENSES @ <l>, $ JSon- >pà ̈rizia_expenses, "0"); cABUPrepareSQL :: AddParam ('@ START_EXPENSES (S <)>', $ JSon-> initial_expenses, "0"); cABUPrepareSQL :: AddParam ('@ PENALE_RIMBORSO_ANTICIPATO @', $ JSon-> penalty_reimborso_anticipato, "0â €); cABUPrepareSQL-AddParaml ^ DESCRIPTION ^ ALCOHOL ^ RATElffl '^ JSon ^ description ^ alcUPoloJERTA $ JSon-> Insurance_RequestsJcABUPrepareSQL :: AddParam ('@ GUARANTEES_RICHIESTE @', $ JSon-> Guarantees_Requests, cABUPrepareSQL :: AddParam ('@ INSTANT_DISPENSION @', $ JSon-> instant_delivery, cABUPrepare ($ AddPrepareSQL JSon-> note, cABUPrepareSQL :: AddParam ('@ DATAJNIZIO_VALIDITA @ <,>, $ JSon-> start_valid_date, cABUPrepareSQL :: AddParam (' @ END_DATE_VALIDITA @ ', $ JSon-> valid_date_fine,
cABUPrepareSQL::AddParam('@DELETED@',@$JSon->deleted, cABUPrepareSQL :: AddParam ('@ DELETED @', @ $ JSon-> deleted,
$SQL = cABUPrepareSQL::Finalize(); } $ SQL = cABUPrepareSQL :: Finalize (); }
function lnsert(&$JSon) { function lnsert (& $ JSon) {
global $ProdottiFinanziarilns, $ObjUser; global $ FinancialProductsilns, $ ObjUser;
$SQL = $ProdottiFinanziarilns; $ SQL = $ FinancialProductsilns;
SetSessionParam($SQL, false); SetSessionParam ($ SQL, false);
ProdottiFinanziari::_SetProdottiFinanziariParam($JSon,$SQL, true); FinancialProducts :: _ SetFinancialProductsParam ($ JSon, $ SQL, true);
return $SQL; } return $ SQL; }
} -Esempio query lato server (Listato 7) } - Server-side query example (Listing 7)
$ProdottiFinanziarilns = "INSERT INTO tb_prodotti_finanziari (id_societa, id_prodotti_finanziari, id_anagrafica, nome_prodotto, id_tipologia_mutuo, idjndicizzazione, tan, taeg, perc_spese_istruttoria, max_speseJstruttoria, perc_finanziabile, min_finanziabile, max_finanziabile, durata_min, durata_max, spese_perizia, spesejniziali, penale_rimborso_anticipato, descrizione_calcolo_tasso, coperture_assicurative, garanziejrichieste, istante_erogazione, note, data_inizio_validita, data_fine_validita) VALUES ('@ID_SOCIETA@', @ID_PRODOTTI_FINANZIARI@, <5>ID_ANAGRAFICA@, '@NOME_PRODOTTO@', @ID_TIPOLOGIA_MUTUO@, @IDJNDICIZZAZIONE@, @TAN@, @TAEG@, @PERC_SPESE_ISTRUTTORIA@, @MAX_SPESE_ISTRUTTORIA@, @PERC_FINANZIABILE@, @MIN_FINANZIABILE@, @MAX_FINANZIABILE@, @DURATA_MIN@, @DURATA_MAX<'>@, @SPESE_PERIZIA<5>, @SPESEJ^INZIALI@^'@PENALE_RIMBORSO_ANTICIPATO@',<,>@DESCRIZIONE_CALCOLO_TASSO@<,>, '@COPERTURE_ASSICURATIVE@', '@GARANZIE_RICHIESTE<5>', '@ISTANTE_EROGAZIONE@', '@ΠΟΤΕ@', STR_TO_DATE('@DATAJNIZIO_VALIDITA@', '%d/%m/%Y'), STR_TO_DATE('@DATA_FINE_VALIDITA@', '%d/%m/%Y'))"; $ProdottiFinanziarilns = "INSERT INTO tb_prodotti_finanziari (id_societa, id_prodotti_finanziari, id_anagrafica, nome_prodotto, id_tipologia_mutuo, idjndicizzazione, tan, taeg, perc_spese_istruttoria, max_speseJstruttoria, perc_finanziabile, min_finanziabile, max_finanziabile, durata_min, durata_max, spese_perizia, spesejniziali, penale_rimborso_anticipato, descrizione_calcolo_tasso, coperture_assicurative, garanziejrichieste, instante_erogazione, notes, validity_start_date, validity_date_date) VALUES ('@ ID_SOCIETA @', @ ID_PRODOTTI_FINANZIARI @, <5> ID_ANAGRAFICA @, '@ NOME_PRODOTTO @', @ ID_TIPOLOGIA_MUTUO_, @DISTIPOLOGIA_MUTUO_ @, @ ID_TIPOLOGIA_MUTUO_, @CUTTANTIPOLOGIA_MUTUO @, @ ID_TIPOLOGY_MUTUO_, @JU @, @ MAX_SPESE_ISTRUTTORIA @, @ PERC_FINANZIABILE @, @ MIN_FINANZIABILE @, @ MAX_FINANZIABILE @, @ DURATA_MIN @, @DURATA_MAX <'> @, @ EXPENSES <5>, @ EXPENSESJ ^ INZIALI @ ^' @ PENALTY @DESCRIPTION_RATE_CALCULATION @ <,>, '@ INSURANCE_COVER @', '@REQUIRED_GARANZIE <5>', '@ INSTANT_DRAWING @', '@ ΠΟΤΠ• @', STR_TO_DATE ('@ DATA JNIZIO_VALIDITA @ ','% d /% m /% Y '), STR_TO_DATE (' @ DATA_FINE_VALIDITA @ ','% d /% m /% Y ')) ";
$SearchProdottiFinanziari4Finanziamenti = "SELECT DISTINCT PF.id_societa, PF.id_prodotti_finanziari, PF.id_anagrafica, PF.nome _prodotto, PF.id_tipologia_mutuo, PF.idJndicizzazione, /*PFA.id_attivita, PFD.id_durata, PFF.id_finalita, PFP.id_periodicita,*/ PF.tan, PF.taeg, PF.perc_spese_istruttoria, PF.max_spese_istruttoria, PF.perc_finanziabile, PF.max_finanziabile, PF.spese_perizia, PF.speseJniziali, PF.penale_rimborso_anticipato, PF.descrizione_calcolo_tasso, PF.coperture_assicurative, PF.garanzie_richieste, PF.istante_erogazione, PF.note, NULLIF(DATE_FORMAT(PF.data_inizio_validita, '%d/%m/%Y'),'00/00/0000') data _inizio_validita, NULLIF(DATE_FORMAT(PF.data_fine_validita, '%d/%m/%Y'),'00/00/0000') data_fìne_validita $ SearchProdottiFinanziari4Finanziamenti = "SELECT DISTINCT PF.id_company, PF.id_financial_products, PF.id_anagrafica, PF.name _product, PF.id_typology_mutual, PF.idJindication, /*PFA.financial_id_id, PF.Financial_id_id, PF. / PF.tan, PF.taeg, PF.perc_spese_istruttoria, PF.max_spese_istruttoria, PF.perc_financabile, PF.max_financabile, PF.expese_expertizia, PF.speseJnitiali, PF.penale_rimborso_anticipato, PF.description_Finance.Furchable .time_delivery, PF.note, NULLIF (DATE_FORMAT (PF.data_begin_validita, '% d /% m /% Y'), '00/00/0000') date_begin_valid, NULLIF (DATE_FORMAT (PF.data_fine_validita, '% d / % m /% Y '),' 00/00/0000 ') validity_date
FROM TBL_PRODOTTI_FINANZIARI AS PF INNER JOIN TBL_PRODOTTI_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA.id_societa) AND (PF.id_prodotti_finanziari = PFA.id_prodotti_finanziari)) TNNER JOIN TBL_PRODOTTI_FINANZIARI_DURATA AS PFD ON ((PF.id_societa = PFD.id_sociéta) AND (PF.id_prodotti_finanziari = PFD.id_prodotti_finanziari)) INNER JOIN TBL_PRODOTTI_FINANZIARI_FINALITA AS PFF ON ((PF.id_societa = PFF.id_societa) AND . (PF.id_prodotti_flnanziari - PFF.id _prodotti_fìnanziar+)) INNER JOIN TBL_PRODOTTI_FINANZIARI_PERIODICITA AS . PfP ON ((PF.id_societa = PFP.id_societa) AND (PF.id_prodotti_finanziari = PFP.id_prodotti_finanziarì)) WHERE PF.id_societa = '@ID_SOCIETA@' FROM TBL_PRODOTTI_FINANZIARI AS PF INNER JOIN TBL_PRODOTTI_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA.id_societa) AND (PF.id_prodotti_finanziari = PFA.id_Prodotti_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA. (PF. PfP ON ((PF.id_societa = PFP.id_societa) AND (PF.id_prodotti_finanziari = PFP.id_prodotti_finanziarì)) WHERE PF.id_societa = '@ ID_SOCIETA @'
/*[AND (PF.max_finanziabile 3⁄4= @IMPORTO_RICHIESTO@) AND (PF.min_finanziabile <= @IMPORTO_RICHIESTO@)]*//*[AND (PF.perc_finanziabile >= @PERC_FINANZIABILE@)]*/ / * [AND (PF.max_financeable 3⁄4 = @ AMOUNT_REQUIRED @) AND (PF.min_financeable <= @ AMOUNT_REQUIRED @)] * // * [AND (PF.perc_financable> = @PERC_FINANZIABILE @)] * /
/*[AND (PFA.id_attivita = @ID_ATTIVITA@)]*//*[AND ((PF.durata_min >= @DURATA_MIN_FINANZIAMENTO@) AND (PF.durata_max <= @DURATA_MAX_FINANZIAMENTO@)) ]*/ /*[AND (PF.id_tipolpgia_mutuo = @ID_TIPOLOGIA_FINANZIAMENTO@)]*//*[AND (PFF.id_finalita = @ID_FINALITA@)]*/ /*[AND (PFP.id jaeriodicita = @ID_PERIODICITA@)]*/"; / * [AND (PFA. (PF.id_tipolpgia_mutuo = @ID_TIPOLOGIA_FINANZIAMENTO @)] * // * [AND (PFF.id_finalita = @ID_FINALITA @)] * / / * [AND (PFP.id jaeriodicita = @ID_PERIODICITA @)] * / ";
Esempio transito dati tra Client e server (Listato 8) Example of data transit between client and server (Listing 8)
{ {
"intestera_mutuo": false, "id_stato_civile": "1", "quota_proprieta": "50", "anni_in_italia": "36", "intestera_mutuo": false, "id_civile_stato": "1", "quota_proprieta": "50", "anni_in_italia": "36",
"AltriRedditi": [ "Other Income": [
{"sts": "new", "datajnizio": "01V01V1995", "reddito": "500", "data_fine": "01V01V2009", "id_tipologia_periodicita": "l'<!>, "descrizione": "Affitto Casa","id_altri_;redditi": {"sts": "new", "datajnizio": "01V01V1995", "income": "500", "end_date": "01V01V2009", "period_type_id": "the <!>," description ":" Rent House "," id_other_; income ":
"Professioni": [ { "Professions": [{
"socio_cariche_societarie_presso": "Sociol","sts": "new","numero_mensilita“: "14","reddito_annuale": "25000", "da_anni": "8", "società ": "Theorematica", "id_tipologia_attivita": "2","id_professioni": "undefined", "socio_cariche_societarie_presso": "Sociol", "sts": "new", "monthly_numberâ € œ:" 14 "," annual_income ":" 25000 "," da_anni ":" 8 "," company ":" Theorematica "," id_tipologia_attivita ":" 2 "," id_professioni ":" undefined ",
"forma_giuridica_impresa": "3", "data_ultima_assunz_iscriz_albo": "","partita_iva_societa": "pivaSocl", . "juridical_formation_company": "3", "last_date_assunz_iscriz_albo": "", "company_iva_game": "pivaSocl",.
"id_tipo_contratto": "2", "data_prima_assunz_iscriz_albo": "01\/01\/2000","id_anagrafica": "undefined", "reddito_mensile": "1300", "codice_fiscale_societa": "cfìscsocl", "id_tipologia_professione": "1", "descrizione": "Società di Servizi informatici" "id_contratto_type": "2", "first_date_assunz_iscriz_albo": "01 \ / 01 \ / 2000", "id_anagrafica": "undefined", "monthly_income": "1300", "company_fiscal_code": "cfìscsocl", "professional_type_id ":" 1 "," description ":" IT Services Company "
},{ "socio_cariche_societarie_presso": "Socio2", "sts": "new", "numero_mensilita": "13", }, {"socio_cariche_societarie_presso": "Socio2", "sts": "new", "num_mensilita": "13",
"reddito_annuale": "23000000", "da_anni": "3", "società ": "ISIS","id_tipologia_attivita": "2", "id_professioni": "undefined", "forma_giuridica_impresa": "2", "data_ultima_assunz_iscriz_albo": "01VÃ’ÃŒV2000", "partita_iva_societa": "PIVASoc2", "id_tipo_contratto": "3", "data_prima_assunz_iscriz_albo": "01V01V1997", "id_anagrafìca": "undefined", "reddito_mensile": "1700000", "codice_fiscale_società ": "CfiscSoc2", "id_tipologia_professione": "1", "descrizione": "Società di Servizi informatici" "annual_income": "23000000", "da_anni": "3", "company": "ISIS", "id_typology_activity": "2", "id_professioni": "undefined", "juridical_formation": "2", "last_date_assunz_iscriz_albo ":" 01VÃ'ÃŒV2000 "," lotto_iva_societa ":" PIVASoc2 "," id_type_contratto ":" 3 "," data_prima_assunz_iscriz_albo ":" 01V01V1997 "," id_anagrafìca ":" undefined "," income_m00ensile "," "Codice_fiscale_societÃ": "CfiscSoc2", "id_tipologia_professione": "1", "description": "IT Services Company"
},{ }, {
"socio_cariche_societarie_presso": "Socio3"T"sts": "new","numero_mensilita†: "12", "socio_cariche_societarie_presso": "Socio3" T "sts": "new", "number_mensilita⠀:" 12 ",
"reddito_annuale": "14000000", "da_annì": "2", "società ": "Hermes Multimedia","ìd_tipologia_attivita": "3", "ìd_professioni": "undefmed", "forma_giuridica_impresa": "1", "data_ultima_assunz_iscriz_albo": "01V01V1997", "partita_iva_societa": "PlvaSoc3", "id_tipo_contratto": "1", "data_prima_assunz_iscriz_albo": "01V01V1995", "id_anagrafica": "undefined", "reddito_mensile": "14000", "codice_fìscale_societa": "CFisc3", "id_tipologia_professione": "9", "annual_income": "14000000", "da_annì": "2", "company": "Hermes Multimedia", "ìd_tipologia_attivita": "3", "ìd_professioni": "undefmed", "juridical_formation": "1", "last_date_assunz_iscriz_albo": "01V01V1997", "company_vehicle_game": "PlvaSoc3", "id_contract_type": "1", "first_assunz_date_write_albo": "01V01V1997", "unfinished_date": " "," code_fìscale_societa ":" CFisc3 "," id_typology_profession ":" 9 ",
"descrizione": "Società di Servizi informatici Multimediali" "description": "Multimedia IT Services Company"
1, -"anno_ matrimonio": "2004", "pensioni_rendite": "7", "provenienza": "Ro", "fìgli_a_carico": "2", "id_comuni_res": "4448", "id_comuni_dom": "4422", "occupera_ ": true, "id _provincia_res": "58", "id_provincia_dom": "58", 1, - "marriage_year": "2004", "pensions_rendite": "7", "provenance": "Ro", "fìgli_a_load": "2", "id_comuni_res": "4448", "id_comuni_dom": "4422", "occupera_": true, "id _provincia_res": "58", "id_provincia_dom": "58",
"Spese": [ { "sts": "new","dataJnizio": "01V01V2002", "id_spese": "data_fine": "01V01V2012", "id_tipologia_periodicita": "5", "descrizione": "Assicurazione Auto", "costo": "600" }], "Expenses": [{"sts": "new", "dataJnizio": "01V01V2002", "id_spese": "data_fine": "01V01V2012", "id_tipologia_periodicita": "5", "description": "Auto Insurance" , "cost": "600"}],
"intestatariojmmobile": "Mastinu Rita", "id_nazioni_res": "112", "id_nazioni_dom": "112"/cap_:.res": "00040", "cap_dom": "00183", "intestera_ ": true} "intestatariojmmobile": "Mastinu Rita", "id_nazioni_res": "112", "id_nazioni_dom": "112" / cap _ :. res ":" 00040 "," cap_dom ":" 00183 "," intestera_ ": true}
Claims (16)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000175A ITRM20100175A1 (en) | 2010-04-13 | 2010-04-13 | MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES |
PCT/IT2011/000109 WO2011128924A1 (en) | 2010-04-13 | 2011-04-12 | Method for the creation of modular and persistent dynamic web applications with complex interfaces |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000175A ITRM20100175A1 (en) | 2010-04-13 | 2010-04-13 | MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES |
Publications (1)
Publication Number | Publication Date |
---|---|
ITRM20100175A1 true ITRM20100175A1 (en) | 2011-10-14 |
Family
ID=43735282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT000175A ITRM20100175A1 (en) | 2010-04-13 | 2010-04-13 | MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES |
Country Status (2)
Country | Link |
---|---|
IT (1) | ITRM20100175A1 (en) |
WO (1) | WO2011128924A1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014116542A1 (en) | 2013-01-22 | 2014-07-31 | Tealium Inc. | Activation of dormant features in native applications |
US9537964B2 (en) | 2015-03-11 | 2017-01-03 | Tealium Inc. | System and method for separating content site visitor profiles |
US8805946B1 (en) | 2013-08-30 | 2014-08-12 | Tealium Inc. | System and method for combining content site visitor profiles |
US11695845B2 (en) | 2013-08-30 | 2023-07-04 | Tealium Inc. | System and method for separating content site visitor profiles |
US20150066587A1 (en) | 2013-08-30 | 2015-03-05 | Tealium Inc. | Content site visitor processing system |
US9081789B2 (en) | 2013-10-28 | 2015-07-14 | Tealium Inc. | System for prefetching digital tags |
US8990298B1 (en) | 2013-11-05 | 2015-03-24 | Tealium Inc. | Universal visitor identification system |
US9288256B2 (en) | 2014-04-11 | 2016-03-15 | Ensighten, Inc. | URL prefetching |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2098964A1 (en) * | 2005-03-03 | 2009-09-09 | Research In Motion Limited | System and method for conversion of WEB services' applications into component based applications for mobile devices |
-
2010
- 2010-04-13 IT IT000175A patent/ITRM20100175A1/en unknown
-
2011
- 2011-04-12 WO PCT/IT2011/000109 patent/WO2011128924A1/en active Application Filing
Non-Patent Citations (1)
Title |
---|
No Search * |
Also Published As
Publication number | Publication date |
---|---|
WO2011128924A1 (en) | 2011-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ITRM20100175A1 (en) | MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES | |
CN104484216B (en) | Service interface document and on-line testing instrument generation method, device | |
Rodríguez et al. | Semi-formal transformation of secure business processes into analysis class and use case models: An MDA approach | |
CA2790985C (en) | Software application development tool | |
Meliá et al. | The WebSA approach: Applying model driven engineering to web applications | |
CN102096588A (en) | Control-containing page establishing method | |
Zimmermann et al. | Towards an integrated service-oriented reference enterprise architecture | |
CN102609255A (en) | Generation method for Spring IOC (Inversion of Control) configuration file | |
Engel et al. | A Concerted Model-driven and Pattern-based Framework for Developing User Interfaces of Interactive Ubiquitous Applications. | |
Steen et al. | ODP enterprise viewpoint specification | |
Vuorimaa et al. | Leveraging declarative languages in web application development | |
Durai et al. | A novel approach with an extensive case study and experiment for automatic code generation from the XMI schema Of UML models | |
Moreno et al. | Towards interoperable Web engineering methods | |
Sabraoui et al. | A MDA-based model-driven approach to generate GUI for mobile applications | |
Li et al. | Breeze/adl: Graph grammar support for an xml-based software architecture description language | |
Mikkonen et al. | On the role of architectural style in model driven development | |
Soliev et al. | Leveraging Python for Enhanced Excel Functionality: A Practical Exploration | |
CN103902248A (en) | Intelligent WeChat bank system based on natural language automatic scheduler and intelligent scheduling method for computer system through natural language | |
Kontopoulos et al. | Semantically-enhanced authoring of defeasible logic rule bases in the semantic web | |
Kantner | Specification and implementation of a deep ocl dialect | |
Jardim-Gonçalves et al. | Ontology-based framework for enhanced interoperability in networked industrial environments | |
Elstermann et al. | Mapping execution and model semantics for subject-oriented process models | |
Durán et al. | Writing ODP enterprise specifications in maude a case study | |
Tran | Introduction to web sevices with Java | |
Lamharhar et al. | An e-government knowledge model:‘e-customs’ case study |