{"id":24913,"date":"2017-09-21T18:04:49","date_gmt":"2017-09-21T16:04:49","guid":{"rendered":"http:\/\/help.qualiware.it\/qw-help\/?p=24913"},"modified":"2022-07-20T14:36:38","modified_gmt":"2022-07-20T12:36:38","slug":"aggiunta-di-una-colonna-contenente-un-campo-calcolato-alla-griglia-contenente-lindice-dei-documenti-in-document97-aspx","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/aggiunta-di-una-colonna-contenente-un-campo-calcolato-alla-griglia-contenente-lindice-dei-documenti-in-document97-aspx\/","title":{"rendered":"Aggiunta di una colonna contenente un campo calcolato alla griglia contenente l&#8217;indice dei documenti in DOCUMENT97.ASPX"},"content":{"rendered":"<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">' Il seguente frammento di codice mostra come aggiungere una colonna con un campo calcolato alla griglia BROWSE_INDICE contenente l'indice \r\n' dei documenti nella maschera DOCUMENT97.ASPX. In particolare viene aggiunta una colonna in prima posizione che visualizza un \"semaforo\" il cui colore (rosso, giallo, verde) dipende\r\n' dal valore di un altro campo, e viene determinato tramite una query\r\n' Lo script va inserito nello \"Script Creazione\" della grid o di altro oggetto del form\r\n' NOTA: questo snippet si applica alla versione 2019 o successiva, per via dell'utilizzo del metodo Load_Records.\r\ndim form as DOCUMENT=this.page\r\n\r\nif left(form.form_state.subid,5)=\"VIACT\" and not form.isPostback ' Si applica solo alla categoria con codice \"VIACT\"\r\n   addhandler ctype(form.form_state.dmd_ref.DOCUMENT,QWTable).OnOpen,sub (ByVal DOCUMENT As object)\r\n            ' Definisce il campo per il semaforo\r\n      \t\t' Lo deve fare nell'OnOpen in quanto la query DOCUMENT viene aperta pi\u00f9 volte\r\n            Dim f As QWField = New QWField\r\n            f.Fieldname = \"SEMAFORO\"\r\n            AddHandler f.BeforeGetValue, Sub(ByVal sender As Object, ByRef new_val As Object)\r\n         \tIf Not DOCUMENT.Rowset.endofset Then\r\n                       Dim par As AssocArray = New AssocArray\r\n         \t\tpar(\"TIPO\") = DOCUMENT.Rowset.Fields(\"TIPO\").Value\r\n                        par(\"TIPO_CONT\") = DOCUMENT.Rowset.Fields(\"TIPO_CONT\").Value\r\n                        par(\"NUMERO\") = DOCUMENT.Rowset.Fields(\"NUMERO\").Value\r\n                        par(\"IND_REV\") = DOCUMENT.Rowset.Fields(\"IND_REV\").Value\r\n            \r\n                        dim msg as string\r\n                        dim q as qwtable\r\n                        dim ss as string\r\n                        ss=\"SELECT datediff(dd,DATE3,getdate()), flag1 \"\r\n                        ss+=\"FROM DOCUMENT \"\r\n                        ss+=\"WHERE (TIPO = :TIPO) AND (TIPO_CONT = :TIPO_CONT) AND (NUMERO = :NUMERO) AND (IND_REV = :IND_REV) and DATE3 is not null\"                 \r\n                        q=OpenTable(form,ss,par,false,false,msg)\r\n                        if empty(msg) then\r\n               \t\t   if q.rowset.count() &gt; 0 then\r\n                              if q.rowset.fields(2).value = true then   ' VERDE\r\n                                 new_val = \"&lt;img&nbsp;src='.\/images\/2090.gif'&gt;\"              \r\n                              else \r\n                     \t         if q.rowset.fields(1).value &gt;= 0 then   ' ROSSO'\r\n                                    new_val = \"&lt;img&nbsp;src='.\/images\/2092.gif'&gt;\"\r\n                                 else ' GIALLO'\r\n                                    new_val = \"&lt;img src='.\/images\/2091.gif'&gt;\"\r\n                                 end if\r\n                  \t       end if\r\n                             else\r\n                                new_val = \"\"\r\n                             end if\r\n                        Else\r\n               \t\t    new_val = \"\"\r\n               \t\tEnd If\r\n                        CloseTable(form,q)\r\n                   Else\r\n                        new_val = \"\"\r\n                   End If\r\n             End Sub\r\n             f.ReadOnly = True\r\n             f.length = 50\r\n      \t\tf.iscalculated = true\r\n      \t\tDOCUMENT.Rowset.Fields.Add(f)\r\n      End Sub\r\n      \r\n      ' Riattiva DOCUMENT per far scattare l'OnOpen e aggiungere il campo alla prima attivazione\r\n      form.Load_Records()\r\n            \r\n      ' Definisce la colonna per il semaforo\r\n      Dim g As qwWebControls.QWWebGrid\r\n      g = form.FindControl2(\"BROWSE_INDICE\")\r\n      Dim col As Infragistics.WebUI.UltraWebGrid.UltraGridColumn = New Infragistics.WebUI.UltraWebGrid.UltraGridColumn\r\n      col.Key = \"SEMAFORO\"\r\n      col.BaseColumnName = \"SEMAFORO\"\r\n      col.Width = New System.Web.UI.webControls.Unit(22)\r\n      col.HeaderText = \"\"\r\n      col.HTMLEncodeContent = False\r\n      g.Columns.insert(0, col)\r\n      g.RefreshControl() ' Deve rinfrescare la griglia dopo l'aggiunta della colonna e del beforegetvalue\r\nend if\r\n\r\n\r\n\r\n\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&#8216; Il seguente frammento di codice mostra come aggiungere una colonna con un campo calcolato alla griglia BROWSE_INDICE contenente l&#8217;indice &#8216; dei documenti nella maschera DOCUMENT97.ASPX. In particolare viene aggiunta una colonna in prima posizione che visualizza un &#8220;semaforo&#8221; il cui colore (rosso, giallo, verde) dipende &#8216; dal valore di un altro campo, e viene&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":[65],"tags":[78],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/24913"}],"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=24913"}],"version-history":[{"count":0,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/24913\/revisions"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=24913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=24913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=24913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}