{"id":24826,"date":"2024-01-12T09:05:13","date_gmt":"2024-01-12T08:05:13","guid":{"rendered":"http:\/\/help.qualiware.it\/qw-help\/?p=24826"},"modified":"2026-01-05T18:57:44","modified_gmt":"2026-01-05T17:57:44","slug":"fd-schede-standard","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/fd-schede-standard\/","title":{"rendered":"Personalizzazione schede standard"},"content":{"rendered":"<p>Dalla release <em>2015.17.2f<\/em> \u00e8 possibile <strong>personalizzare le schede standard<\/strong> attraverso un insieme di funzioni accessibili dal pulsante <strong><span style=\"color: #990000;\">Configurazione<\/span><\/strong> presente nel tab <span style=\"color: #990000;\"><strong>Strumenti<\/strong><\/span> della toolbar del menu principale.<\/p>\n<p><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-PersonalizzazioneSchedeStandard.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-33381\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-PersonalizzazioneSchedeStandard.jpg\" alt=\"QW00 - Scheda tecnica prodotto, Personalizzare oggetti scheda\" width=\"768\" height=\"348\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-PersonalizzazioneSchedeStandard.jpg 1265w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-PersonalizzazioneSchedeStandard-768x348.jpg 768w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>Le funzioni disponibili in <em>Configurazione<\/em> sono:<\/p>\n<ul>\n<li><span style=\"color: #990000;\"><strong>Personalizza oggetti della scheda<\/strong><\/span>, consente di modificare le propriet\u00e0 degli oggetti presenti nella scheda, anche attraverso l&#8217;uso di script VB.NET che permettono d&#8217;agire anche su altri oggetti e sugli eventi;<\/li>\n<li><span style=\"color: #990000;\"><strong>Aggiungi oggetti sulla scheda<\/strong><\/span>, consente d&#8217;aggiungere nuovi oggetti sulla scheda che vengono visualizzati nella parte destra;<\/li>\n<li><span style=\"color: #990000;\"><strong>Report delle personalizzazioni effettuate sulla scheda<\/strong><\/span>, consente di visualizzare un report di tutte le modifiche effettuate sulla scheda;<\/li>\n<li><span style=\"color: #990000;\"><strong>Esportazione delle personalizzazioni su file<\/strong><\/span>, consente d&#8217;esportare in un file tutte le personalizzazioni effettuate;<\/li>\n<li><span style=\"color: #990000;\"><strong>Importazione delle personalizzazioni da file<\/strong><\/span>, consente d&#8217;importare da un file le personalizzazioni della scheda;<\/li>\n<li><span style=\"color: #990000;\"><strong>Audit Trail delle modifiche sulla scheda<\/strong><\/span>, consente di visualizzare il registro cronologico delle modifiche effettuate sulla scheda dov&#8217;\u00e8 memorizzata la versione salvata. Questa funzione pu\u00f2 quindi essere utilizzata per ripristinare il layout della scheda ad una versione precedente.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-size: 14pt;\">Personalizzare oggetti della scheda<\/span><\/h3>\n<p style=\"text-align: left;\" align=\"justify\">La funzione <em>Personalizza oggetti della scheda<\/em> consente all<em>&#8216;Amministratore di sistema<\/em> di personalizzare ogni oggetto di una qualsiasi scheda standard, come ad esempio il <em>campo<\/em>, la <em>casella di spunta<\/em>, la <em>casella di opzione<\/em> e cos\u00ec via.<br \/>\nNelle schede dove non \u00e8 presente la barra degli strumenti si accede alla personalizzazione delle propriet\u00e0 dell&#8217;oggetto attraverso il <em>menu hamburger<\/em> disponibile in alto a destra.<\/p>\n<p align=\"justify\"><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-36735\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti.jpg\" alt=\"QW00 - Personalizza propriet\u00e0 oggetto, Lista oggetti\" width=\"768\" height=\"384\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti.jpg 1790w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti-768x384.jpg 768w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti-1536x769.jpg 1536w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-ListaOggetti-256x128.jpg 256w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p style=\"text-align: left;\" align=\"justify\">Il sistema apre la <em>lista degli oggetti<\/em> presenti nella scheda, dalla quale scegliere l&#8217;oggetto da personalizzare e per il quale il sistema apre la relativa scheda di personalizzazione.<\/p>\n<p align=\"justify\"><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-36737\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto.jpg\" alt=\"QW00 - Personalizza propriet\u00e0 oggetto\" width=\"768\" height=\"385\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto.jpg 1786w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-768x385.jpg 768w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-1536x771.jpg 1536w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-PersonalizzaProprietaOggetto-256x128.jpg 256w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p align=\"justify\">I campi presenti nella scheda per personalizzare le propriet\u00e0 dell&#8217;oggetto sono:<b><\/b><\/p>\n<ul>\n<li><strong>Posizione e dimensioni del campo<\/strong>, area dove personalizzare i margini e le dimensioni dell&#8217;oggetto:\n<ul>\n<li><strong><span style=\"color: #990000;\">Top<\/span><\/strong> \/ <strong><span style=\"color: #990000;\">Left<\/span><\/strong>, indicano le dimensioni dei margini nel caso si desideri spostarlo;<\/li>\n<li><span style=\"color: #990000;\"><strong>Altezza<\/strong><\/span> \/ <span style=\"color: #990000;\"><strong>Larghezza<\/strong><\/span>, indicano le dimensioni dell&#8217;oggetto per eventuali ridimensionamenti;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ruoli per i quali questo oggetto \u00e8 visualizzato<\/strong>, riporta l&#8217;elenco dei ruoli associati alla scheda, tra i quali \u00e8 possibile selezionare coloro che possono vedere l&#8217;oggetto;<\/li>\n<li><strong> Ruoli abilitati alla modifica di questo campo<\/strong>, riporta l&#8217;elenco dei ruoli associati alla scheda, tra i quali \u00e8 possibile definire colori che possono modificare l&#8217;oggetto;<\/li>\n<li>Aree di personalizzazione degli script:\n<ul>\n<li><strong>Script creazione<\/strong>, codice eseguito al momento della creazione dell&#8217;oggetto e l&#8217;assegnazione dello stato. Pu\u00f2 essere scritto in VB.NET o C#, l&#8217;oggetto \u00e8 accessibile con la variabile <em>&#8220;this&#8221;;<\/em><\/li>\n<li><strong>Condizione di abilitazione<\/strong>, codice eseguito all&#8217;apertura della scheda per stabilire se \u00e8 abilitato. Pu\u00f2 essere scritto in VB.NET o C#, l&#8217;oggetto \u00e8 accessibile con la variabile <em>&#8220;this&#8221;<\/em>&nbsp;e lo script deve restituire un valore booleano con l&#8217;istruzione <em>&#8220;Return&#8221;<\/em>;<\/li>\n<li><strong>Condizione di modifica<\/strong>, codice eseguito ad ogni cambiamento della registrazione o del documento corrente per stabilire se \u00e8 modificabile (nel caso di un pulsante stabilisce se \u00e8 cliccabile). Pu\u00f2 essere scritto in VB.NET o C#, l&#8217;oggetto \u00e8 accessibile con la variabile <em>&#8220;this&#8221;<\/em>&nbsp;e lo script deve restituire un valore booleano con l&#8217;istruzione <em>&#8220;Return&#8221;<\/em>;<\/li>\n<li><strong>Script evento prerender<\/strong>, codice eseguito prima del rendering della pagina. Pu\u00f2 essere scritto in VB.NET o C# e l&#8217;oggetto \u00e8 accessibile con la variabile <em>&#8220;this&#8221;<\/em>;<\/li>\n<\/ul>\n<\/li>\n<li><strong>Traduzione<\/strong>, consente d&#8217;inserire e modificare le traduzioni delle stringhe dell&#8217;oggetto. La traduzione pu\u00f2 essere eseguita in automatico dall&#8217;italiano ad altre lingue disponibili a sistema utilizzando il servizio di <strong><em>Microsoft Bing<\/em><\/strong>: in questo caso necessita cliccare la bandiera corrispondente alla lingua desiderata.<\/li>\n<\/ul>\n<p>Inoltre, a seconda del tipo di oggetto la scheda pu\u00f2 presentare i seguenti campi:<\/p>\n<ul>\n<li><span style=\"color: #990000;\"><strong>Testo<\/strong><\/span>, indica il testo associato all&#8217;oggetto, presente quando l&#8217;oggetto \u00e8 un pulsante oppure&nbsp; un&#8217;intestazione di un campo o casella di spunta o altro;<\/li>\n<li><span style=\"color: #990000;\"><b>Datalink<\/b><\/span>, indica il nome del campo all&#8217;interno del database e le sue caratteristiche principali, come il tipo ed il numero di caratteri;<\/li>\n<li><strong>Opzioni di formattazione del contenuto<\/strong>, indica che il campo ha una formattazione specifica. Qui sono presenti i campi <span style=\"color: #990000;\"><strong>Funzione<\/strong><\/span> e <strong><span style=\"color: #990000;\">Maschera<\/span><\/strong>, che sono utilizzati solo per compatibilit\u00e0 di <em>QualiWare Web<\/em> con la versione <em>QualiWare Client\/Server<\/em>, <span style=\"text-decoration: underline;\">campi in via di progressiva dismissione<\/span> perch\u00e9 non hanno effetto sulla versione web.<br \/>\nAttualmente, l&#8217;<em>opzione di formattazione del contenuto<\/em> pu\u00f2 essere utile per i <em>campi numerici<\/em> e definire come debba essere inserito il formato del dato attraverso il campo <span style=\"color: #990000;\"><strong>Maschera<\/strong><\/span>, per esempio: 9999999.99 definisce che la grandezza dei numeri registrati e visualizzati \u00e8 di 9 caratteri, dei quali 2 sono decimali, oppure inserendo 999999.999 s&#8217;imposta il numero a 3 decimali.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-size: 14pt;\">Aggiungere oggetti sulla scheda<\/span><\/h3>\n<p>La funzione <em>Aggiungi oggetti sulla scheda<\/em> apre una scheda che consente d&#8217;aggiungere ulteriori oggetti alla scheda tecnica che vengono visualizzati nella parte destra.<\/p>\n<p><a href=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-OggettiAggiuntiAlForm.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-33387\" src=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-OggettiAggiuntiAlForm.jpg\" alt=\"QW00 - Personalizzazione schede standard, Configura, Aggiungi oggetti sulla scheda\" width=\"768\" height=\"367\" srcset=\"https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-OggettiAggiuntiAlForm.jpg 1245w, https:\/\/help.qualiware.it\/qw-help\/wp-content\/uploads\/QW00-SchedaTecnicaProdotto-OggettiAggiuntiAlForm-768x367.jpg 768w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>I campi di per l&#8217;aggiunta degli oggetti al form sono:<\/p>\n<ul>\n<li><span style=\"color: #990000;\"><strong>Tipo<\/strong><\/span>, menu a tendina dove scegliere la tipologia del campo (es. <em>Pushbotton<\/em>, <em>Memofield<\/em>, <em>Timefield<\/em>, <em>Datafield<\/em>, ecc);<\/li>\n<li><span style=\"color: #990000;\"><strong>Etichetta<\/strong><\/span>, nome d&#8217;assegnare all&#8217;oggetto d&#8217;aggiungere;<\/li>\n<li><span style=\"color: #990000;\"><strong>Maschera<\/strong><span style=\"color: #000000;\">, presente solo per gli oggetti di tipo <em>NumberField<\/em>, specifica il layout numerico nel formato (es. &#8220;99999.999&#8221;)<\/span><\/span><\/li>\n<li><span style=\"color: #990000;\"><strong>Valori<\/strong><span style=\"color: #000000;\">, presente solo per gli oggetti di tipo <em>ComboBox<\/em>, specifica i valori da mostrare nella lista a discesa (uno per riga)<\/span><\/span><\/li>\n<li><span style=\"color: #990000;\"><strong>Stile<\/strong><span style=\"color: #000000;\">, presente solo per gli oggetti di tipo <em>ComboBox<\/em>, specifica se \u00e8 possibile solo scegliere i valori della tendina o si pu\u00f2 inserire anche un valore differente<\/span><\/span><\/li>\n<li><span style=\"color: #990000;\"><strong>Assegnazione propriet\u00e0<\/strong><\/span>, campo di script che consente d&#8217;assegnare le propriet\u00e0 dell&#8217;oggetto nella forma <em>&lt;nome propriet\u00e0&gt;=&lt;valore&gt;<\/em>;<\/li>\n<li><span style=\"color: #990000;\"><strong>Condizione di abilitazione<\/strong><\/span>, campo di script per stabilire se l&#8217;oggetto \u00e8 abilitato o meno. Dev&#8217;essere utilizzata l&#8217;istruzione <em><span style=\"color: #000000;\">Return True<\/span><\/em> per abilitare l&#8217;oggetto, <em>Return False<\/em> per disabilitarlo. Questa condizione ha la precedenza rispetto alle logiche standard.<\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Questi script sono mantenuti per garantire la retro-compatibilit\u00e0 con le configurazioni effettuate sulle release precedenti e se ne sconsiglia l&#8217;uso in favore rispettivamente dello script &#8220;<em>Creazione<\/em>&#8221; e &#8220;<em>Condizione di abilitazione<\/em>&#8221; definiti nella scheda <strong>Personalizza oggetti della scheda<\/strong>.<\/p>\n<p style=\"padding-left: 40px;\">Per la propriet\u00e0 <strong>DataLink<\/strong> il campo va aggiunto preventivamente alla tabella.<\/p>\n<p><strong>NOTA relativa alla scheda &#8220;<a href=\"https:\/\/help.qualiware.it\/qw-help\/progcontrform\/\">Gestione Progetti e Commesse<\/a>&#8221;<br \/>\n<\/strong>Nella scheda &#8220;Gestione Progetti e Commesse&#8221; \u00e8 possibile fare in modo che i campi aggiuntivi compaiano nella griglia presente nella linguetta &#8220;Piano di progetto-&gt;Attivit\u00e0&#8221;.<br \/>\nPer farlo, \u00e8 necessario collegare gli oggetti aggiunti a campi aggiuntivi della tabella PROGFASI, che possono essere di tipo testo, numerico, data e booleano. I tipi di oggetto dovranno essere definiti in base al tipo di campo.<br \/>\nE&#8217; possibile usare oggetti di tipo &#8220;<em style=\"color: #000000;\">ComboBox<\/em>&#8221; specificando i valori della tendina nel campo <strong><span style=\"color: #993300;\">Valori<\/span><\/strong>. Sar\u00e0 possibile solo scegliere i valori da quella lista, e non inserire un valore diverso. Il campo <strong style=\"color: #990000;\">Stile <\/strong>sar\u00e0 quindi ignorato.<br \/>\nPer gli oggetti di tipo &#8220;<em>NumberField<\/em>&#8221; \u00e8 possibile definire il numero di decimali speficando il campo <strong style=\"color: #990000;\">Maschera<\/strong><span style=\"color: #000000;\">.<\/span><strong style=\"color: #990000;\"><br \/>\n<\/strong>Per rendere il campo a sola lettura, \u00e8 necessario inserire &#8220;<em>Return false<\/em>&#8221; nel campo <span style=\"color: #993300;\"><strong>Condizione di modifica<\/strong><\/span>. Non \u00e8 ammesso alcun altro tipo di condizione.<\/p>\n<h3>Esempi di codice<\/h3>\n<p>La possibilit\u00e0 di definire script per gli oggetti consente di realizzare interessanti implementazioni sulle maschere standard.<br \/>\nDi seguito viene riportato un esempio per mostrare come sia possibile aggiungere al workflow del modulo <strong>Non conformit\u00e0<\/strong> la <em>firma forte<\/em> e l&#8217;<em>Audit Trail<\/em> per renderlo conforme con quanto richiesto dalle<strong>&nbsp;<a href=\"http:\/\/help.qualiware.it\/qw-help\/gmp-firma-elettronica-audit-trail\/\">linee guida GMP (Good Manufacturing Practice)<\/a><\/strong>.<\/p>\n<p>Lo script riportato di seguito pu\u00f2 essere inserito nell&#8217;evento <span style=\"color: #990000;\"><strong>script Creazione<\/strong><\/span> dell&#8217;oggetto <strong><em>Conferma<\/em><\/strong>, che ridefinisce il comportamento del pulsante di firma o di rifiuto del box del workflow, per richiedere la firma con nome utente e password e registrare l&#8217;evento dell&#8217;Audit Trail ad inserimento avvenuto.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">dim c as QWWebControls.QWWebPushbutton=ctype(this.page,QWWebControls.QWWebPage).FindControl2(\"VISTO\")\r\ndim form as gemanoco2=this.page\r\ndim wf as workflow = form.FindControl2(\"form_workflow_panel\").FindControl(\"form_workflow\")\r\ndim QWSess as QWSession=form.GetSession()\r\nDim fasi as QWWebControls.QWWebNotebook=wf.findcontrol(\"NOTEBOOK1\")\r\nDim fase as string=fasi.tabs(fasi.cursel-1).Text\r\ndim op as string  \r\n\r\ndim r as QWWebControls.QWWebPushbutton=ctype(this.page,QWWebControls.QWWebPage).FindControl2(\"RIFIUTO\")\r\n\r\n' Rimuove gli handler predefiniti\r\nremovehandler c.Click, addressof wf.VISTO_onClick\r\nremovehandler c.DialogClose, addressof wf.VISTO_DialogClose    \r\nRemoveHandler r.Click, AddressOf wf.RIFIUTO_onClick\r\nRemoveHandler r.DialogClose, AddressOf wf.RIFIUTO_DialogClose\r\n\r\n' Ridefinisce l'handler del Click per richiedere la firma\r\naddhandler c.Click,\r\nsub (sender as object, arg as string)\r\n     dim nomi as QWWebControls.QWWebListaNominativi3 = wf.findcontrol(\"NOMI\")\r\n     dim s as dbarray=nomi.SelectedCodes()\r\n     if s.size=0 orelse s(1)&lt;&gt;QWSess.Q95_USERCODE\r\n        form.alert(\"Selezionare il proprio nome nella lista\")\r\n        return\r\n     end if\r\n\r\n     ' Firma forte\r\n   GMP_Sign(sender,nothing,\"DialogClose\",true)\r\nend sub\r\n\r\n' Ridefinisce l'handler del DialogClose per registrare l'Audit Trail!\r\naddhandler c.DialogClose,\r\nsub (sender as object, arg as string)\r\n     Dim descr as string=Get_Document_Descr(QWSess,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value)\r\n     Dim msg as string\r\n     Dim nomi as QWWebControls.QWWebListaNominativi3 = wf.findcontrol(\"NOMI\")\r\n     if not nomi.selectednode is nothing \r\n        if nomi.selectednode.imageurl=\"\"\r\n           op= \"Firma fase di \"+fase\r\n        else \r\n          op=\"Revoca firma fase di \"+fase\r\n        end if\r\n     end if \r\n \r\n     ' Scrive sull'audit trail\r\n     msg=AuditTrail_Save(QWSess,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value, form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value, descr,op+\" Funzione: \"+arg,QWSess.Q95_USERCODE,QWSess.Q95_USERNAME)\r\n\r\n     if msg=\"\"\r\n        wf.VISTO_DialogClose(sender,QWSess.Q95_USERCODE) ' Esegue l'handler standard\r\n\r\n        form.Memorizza_Campi() ' Impone il salvataggio\r\n     else\r\n        form.alert(msg)\r\n     end if \r\n end sub\r\n\r\n\r\naddhandler r.Click,\r\nsub (sender as object, arg as string)\r\n     dim nomi as QWWebControls.QWWebListaNominativi3 = wf.findcontrol(\"NOMI\")\r\n     dim s as dbarray=nomi.SelectedCodes()\r\n     if s.size=0 orelse s(1)&lt;&gt;QWSess.Q95_USERCODE\r\n        form.alert(\"Selezionare il proprio nome nella lista\")\r\n        return\r\n     end if\r\n\r\n     ' Firma forte\r\n   GMP_Sign(sender,nothing,\"DialogClose\", true)\r\n   \r\n      Dim q as qwtable\r\n   dim par as assocarray = new assocarray()\r\n   dim sql,err as string\r\n   par(\"IDDOC\")=form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value\r\n  par(\"CODDOC\")=form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value\r\n   par(\"FASE\")=fase\r\n   par(\"NOME\")=QWSess.Q95_USERCODE\r\n   sql=\"select rifiutato from reg_reve where iddoc=:IDDOC and CODDOC=:CODDOC and NOME=:NOME and fase=(select fase from FASIREG where IDDOC=:IDDOC and descrizion=:FASE)\"\r\n   q=opentable(form,sql,par,false,false,err)\r\n   if err=\"\"\r\n      q.rowset.first()\r\n      if q.rowset.fields(1).value=0\r\n         form.session(\"rifiutato\") = true\r\n      else \r\n         form.session(\"rifiutato\") = false\r\n      end if\r\n   else\r\n      form.alert(\"Errore: \" + err)\r\n   end if \r\n   closetable(form,q)\r\nend sub\r\n\r\naddhandler r.DialogClose,\r\nsub (sender as object, arg as string)\r\n     Dim descr as string=Get_Document_Descr(QWSess,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value)\r\n     Dim msg as string\r\n     Dim nomi as QWWebControls.QWWebListaNominativi3 = wf.findcontrol(\"NOMI\") \r\n  if left (arg,8) &lt;&gt; \"conferma\"  \r\n      msg = \"\"\r\n      if form.session(\"rifiutato\") = false\r\n         op=\"Revoca rifiuto fase di \"+fase+ \" da \" + QWSess.Q95_USERNAME     \r\n         msg=AuditTrail_Save(QWSess,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value, form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value, descr,op,QWSess.Q95_USERCODE,QWSess.Q95_USERNAME)\r\n      end if\r\n      if msg=\"\"\r\n         wf.RIFIUTO_DialogClose(sender,QWSess.Q95_USERCODE) ' Esegue l'handler standard\r\n         form.Memorizza_Campi() \r\n      else\r\n         form.alert(\"Errore: \" + msg)\r\n      end if\r\n   else\r\n      msg=\"\"\r\n      if op = \"\"     ' Non \u00e8 una revoca del rifiuto, quindi va fatto ora l'AT con il motivo\r\n         Dim formID, motivo_rif As String\r\n         formID = CType(form, qwWebControls.QWWebPage)._uniqueID\r\n         motivo_rif = form.Session(formID + \"_NE_TEXT\")\r\n         op = \"Rifiuto in fase di \" + fase + \" da \" + QWSess.Q95_USERNAME  \r\n         op + = \". Motivazione: \" + motivo_rif\r\n         msg=AuditTrail_Save(QWSess,form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_IDDOC\").value, form.form_state.dmd_ref.GEMANOCO.rowset.fields(\"_CODDOC\").value, descr,op,QWSess.Q95_USERCODE,QWSess.Q95_USERNAME)\r\n      end if\r\n      if msg=\"\"\r\n         wf.RIFIUTO_DialogClose(sender,\"conferma:\"+QWSess.Q95_USERCODE)\r\n         form.Memorizza_Campi() \r\n      else\r\n         form.alert(\"Errore: \" + msg)\r\n      end if\r\n   end if\r\n   form.Session.Remove(\"rifiutato\")\r\nend sub\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Nota importante<br \/>\n<\/strong>In un plugin pu\u00f2 capitare di dovere disconnettere l&#8217;<span class=\"highlight\">handler<\/span> standard di un evento di un oggetto, ad esempio il <em>Click<\/em> o il <em>DialogClose<\/em> di un pulsante.<br \/>\nIn questi casi pu\u00f2 essere impossibile utilizzare Remove<span class=\"highlight\">Handler<\/span>&nbsp;in quanto l&#8217;<span class=\"highlight\">handler<\/span>&nbsp;standard \u00e8 privato.<br \/>\nPer effettuare l&#8217;operazione si pu\u00f2 usare la reflection come nel seguente esempio, che disconnette l&#8217;<span class=\"highlight\">handler<\/span>&nbsp;dell&#8217;evento &#8220;<em>Click<\/em>&#8221; del pulsante &#8220;<em>Elimina<\/em>&#8220;.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">dim c as QWWebControls.QWWebPushbutton=ctype(this.page,QWWebControls.QWWebPage).FindControl2(\"ELIMINA\")\r\nc.gettype().GetField(\"ClickEvent\",Reflection.BindingFlags.NonPublic or Reflection.BindingFlags.Instance).SetValue(c,nothing)<\/pre>\n<p>Il nome dell&#8217;evento \u00e8 seguito dal suffisso &#8220;<em>Event<\/em>&#8220;, pertanto per disconnettere l&#8217;evento &#8220;<em>DialogClose<\/em>&#8221; si deve indicare &#8220;<em>DialogCloseEvent<\/em>&#8221; nel primo argomento della funzione &#8220;<em>GetField<\/em>&#8220;.<\/p>\n<p>Si possono reperire altri<strong> esempi funzionanti nella sezione <a href=\"https:\/\/service.qualiware.it\/forum\/forum_topics.asp?FID=36\" target=\"_blank\" rel=\"noopener noreferrer\">plug-in del forum di QualiWare<\/a><\/strong>, sezione con accesso riservato ai <strong>clienti titolari di Contratto di Manutenzione QIS<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalla release 2015.17.2f \u00e8 possibile personalizzare le schede standard attraverso un insieme di funzioni accessibili dal pulsante Configurazione presente nel tab Strumenti della toolbar del menu principale. Le funzioni disponibili in Configurazione sono: Personalizza oggetti della scheda, consente di modificare le propriet\u00e0 degli oggetti presenti nella scheda, anche attraverso l&#8217;uso di script VB.NET che permettono&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[4],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/24826"}],"collection":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/comments?post=24826"}],"version-history":[{"count":32,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/24826\/revisions"}],"predecessor-version":[{"id":38322,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/24826\/revisions\/38322"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=24826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=24826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=24826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}