<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TableHandler on Genropy</title><link>https://www.genropy.org/blog/tag/tablehandler/</link><description>Recent content in TableHandler on Genropy</description><generator>Hugo</generator><language>it</language><lastBuildDate>Tue, 04 Jul 2023 11:00:58 +0000</lastBuildDate><atom:link href="https://www.genropy.org/blog/tag/tablehandler/index.xml" rel="self" type="application/rss+xml"/><item><title>Nuova release luglio 2023: le novità</title><link>https://www.genropy.org/blog/nuova-release-luglio-2023-le-novita/</link><pubDate>Tue, 04 Jul 2023 11:00:58 +0000</pubDate><guid>https://www.genropy.org/blog/nuova-release-luglio-2023-le-novita/</guid><description>&lt;p&gt;Oggi, con la &lt;strong&gt;release 2307&lt;/strong&gt; , sono state nuovamente portate sul ramo master le ultime funzionalità sviluppate e testate sul ramo develop. Si consiglia pertanto di effettuare un &lt;code&gt;git pull&lt;/code&gt; del repository di Genropy per usufruire a pieno degli ultimi aggiornamenti.&lt;/p&gt;
&lt;p&gt;Di seguito le principali novità introdotte.&lt;/p&gt;
&lt;blockquote class="wp-block-quote"&gt;
&lt;p&gt;Problemi? Puoi tornare in qualsiasi momento allo stato precedente spostandoti indietro di un commit sul ramo &lt;em&gt;master&lt;/em&gt; oppure facendo il checkout del ramo &lt;code&gt;prev_master&lt;/code&gt;. Ti preghiamo comunque di segnalarci problemi e anomalie su &lt;a href="http://t.me/askongenropy" target="_blank" rel="noreferrer noopener"&gt;AskGenropy&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Tipi di TableHandler: una panoramica</title><link>https://www.genropy.org/blog/tipi-di-tablehandler-una-panoramica/</link><pubDate>Tue, 18 Jan 2022 10:30:49 +0000</pubDate><guid>https://www.genropy.org/blog/tipi-di-tablehandler-una-panoramica/</guid><description>&lt;p&gt;Come abbiamo visto nelle nostre Genropill &lt;a href="https://www.genropy.org/blog/dal-database-alla-web-app-in-meno-di-2-minuti/" target="_blank" rel="noreferrer noopener"&gt;Dal database alla web app in meno di 2 minuti&lt;/a&gt;, &lt;a href="https://www.genropy.org/blog/da-file-excel-al-web-app-in-meno-di-3-minuti/" target="_blank" rel="noreferrer noopener"&gt;Da file excel al web app in meno di 3 minuti&lt;/a&gt;, &lt;a href="https://www.genropy.org/blog/come-creare-un-applicativo-web-da-zero-in-pochi-minuti-con-il-package-editor/" target="_blank" rel="noreferrer noopener"&gt;Come creare un applicativo web da zero in pochi minuti con il Package Editor&lt;/a&gt;, grazie al Package Editor siamo riusciti a creare in pochissimo tempo lo scheletro di un mini-applicativo web: questo è stato reso possibile sfruttando un component di Genropy chiamato &lt;a href="https://docs.genropy.org/tablehandler/index.html" target="_blank" rel="noreferrer noopener"&gt;TableHandler&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Come gestire file in Genropy: le attachmentTable</title><link>https://www.genropy.org/blog/come-gestire-file-in-genropy-le-attachmenttable/</link><pubDate>Mon, 22 Nov 2021 14:42:26 +0000</pubDate><guid>https://www.genropy.org/blog/come-gestire-file-in-genropy-le-attachmenttable/</guid><description>&lt;p&gt;In un software si ha molto spesso a che fare con la &lt;strong&gt;gestione di file su disco&lt;/strong&gt; , di tipologie anche molto diverse a seconda del tipo di applicativo: cataloghi, brochure, curriculum, schede tecniche, bolle di trasporto, contratti, ecc.&lt;/p&gt;
&lt;p&gt;Ciò che li accomuna è il &lt;strong&gt;collegamento con una tabella principale&lt;/strong&gt; , quella dei prodotti, dei candidati, degli ordini, anche questa ovviamente molto diversa a seconda delle funzioni dell&amp;rsquo;applicativo. Come quindi &lt;strong&gt;gestire facilmente file così diversi in ambiti totalmente differenti&lt;/strong&gt;?&lt;/p&gt;</description></item><item><title>Come realizzare un component Python in Genropy</title><link>https://www.genropy.org/blog/come-realizzare-un-component-python-in-genropy/</link><pubDate>Thu, 09 Sep 2021 11:32:42 +0000</pubDate><guid>https://www.genropy.org/blog/come-realizzare-un-component-python-in-genropy/</guid><description>&lt;p&gt;In alcuni casi può capitare di voler &lt;strong&gt;personalizzare il comportamento&lt;/strong&gt; di alcuni widget o component &amp;ldquo;core&amp;rdquo; di Genropy, oppure &lt;strong&gt;creare veri e propri blocchi o interfacce personalizzate da zero&lt;/strong&gt;. Prendiamo ad esempio il caso di una form particolarmente complessa, che vogliamo ripetere uguale (o quasi) su più pagine.&lt;/p&gt;
&lt;p&gt;È sempre buona norma rendere il nostro codice il più possibile &lt;strong&gt;riutilizzabile, flessibile e generico&lt;/strong&gt;: piuttosto che scrivere quindi righe e righe di codice ogni volta, ci converrà utilizzare i component di Genropy, che ci permettono di &lt;strong&gt;scrivere un blocco di codice in un punto dell'applicativo e richiamarlo comodamente al bisogno&lt;/strong&gt;. Un component può essere molto semplice o anche estremamente complesso: si pensi ad esempio al &lt;strong&gt;component core per eccellenza di Genropy, il &lt;a href="https://docs.genropy.org/tablehandler/" target="_blank" rel="noreferrer noopener"&gt;TableHandler&lt;/a&gt;&lt;/strong&gt;, grazie al quale con una sola riga di codice è possibile mostrare la particolare visualizzazione dei record di una tabella. &lt;/p&gt;</description></item><item><title>Come usare i semafori con i valori booleani</title><link>https://www.genropy.org/blog/come-usare-i-semafori-con-i-booleani/</link><pubDate>Fri, 12 Feb 2021 09:51:09 +0000</pubDate><guid>https://www.genropy.org/blog/come-usare-i-semafori-con-i-booleani/</guid><description>&lt;p&gt;Supponiamo di dover &lt;strong&gt;visualizzare in una Form&lt;/strong&gt; &lt;strong&gt;un valore booleano &lt;/strong&gt;che può assumere tre stati: &lt;strong&gt;Vero, Falso e nullo&lt;/strong&gt;. Può essere per esempio il caso di un campo "Iscritto alla newsletter", dove se presente una data di iscrizione viene restituito &lt;em&gt;Vero&lt;/em&gt;, se presente una data di disiscrizione viene restituito &lt;em&gt;Falso&lt;/em&gt;, o se non presente nessuna data viene restituito &lt;em&gt;null&lt;/em&gt;. Si noti quindi che il campo in sé non prevede la possibilità di inserire alcun valore direttamente, ma &lt;strong&gt;dipende da altri campi&lt;/strong&gt;, la data di iscrizione e la data di disiscrizione, che vengono peraltro compilati su una pagina esterna alla Form, e il nostro obiettivo è di mostrare nella Form questo &lt;strong&gt;valore di sola lettura&lt;/strong&gt; in modo chiaro e rapido per l'utilizzatore finale. &lt;/p&gt;</description></item><item><title>Come creare un applicativo web da zero in pochi minuti con il Package Editor</title><link>https://www.genropy.org/blog/come-creare-un-applicativo-web-da-zero-in-pochi-minuti-con-il-package-editor/</link><pubDate>Thu, 08 Oct 2020 14:45:23 +0000</pubDate><guid>https://www.genropy.org/blog/come-creare-un-applicativo-web-da-zero-in-pochi-minuti-con-il-package-editor/</guid><description>&lt;p&gt;Abbiamo visto in due precedenti Genropill come sia possibile in pochissimi minuti &lt;a rel="noreferrer noopener" href="https://www.genropy.org/blog/dal-database-alla-web-app-in-meno-di-2-minuti/" target="_blank"&gt;creare un applicativo partendo da un database legacy&lt;/a&gt; o addirittura &lt;a rel="noreferrer noopener" href="https://www.genropy.org/blog/da-file-excel-al-web-app-in-meno-di-3-minuti/" target="_blank"&gt;partendo da un file Excel&lt;/a&gt; utilizzando uno strumento di Genropy appositamente creato, il &lt;strong&gt;Package Editor&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Il package editor ci permette di &lt;strong&gt;definire (o modificare) da interfaccia grafica un &lt;a rel="noreferrer noopener" href="https://docs.genropy.org/package/introduzione.html" target="_blank"&gt;package&lt;/a&gt;&lt;/strong&gt;, ovvero un insieme di tabelle che servono a implementare un'area funzionale dell'applicativo. Le tabelle sono i &lt;em&gt;modelli di dati &lt;/em&gt;(sotto forma di &lt;em&gt;file Python&lt;/em&gt;) su cui poi potremo generare e aggiornare il database. Le funzionalità che vogliamo attribuire all'applicativo avranno di conseguenza un package dedicato (es: "fatt", per tutta l'area funzionale legata alla fatturazione, o semplicemente "base" per le funzionalità di base).&lt;/p&gt;</description></item><item><title>Come raggruppare e filtrare i dati in tempo reale con la Grouped View</title><link>https://www.genropy.org/blog/come-raggruppare-e-filtrare-i-dati-in-tempo-reale/</link><pubDate>Thu, 24 Sep 2020 18:05:36 +0000</pubDate><guid>https://www.genropy.org/blog/come-raggruppare-e-filtrare-i-dati-in-tempo-reale/</guid><description>&lt;p&gt;Abbiamo già visto nella precedente Genropill &lt;a href="https://www.genropy.org/blog/come-creare-velocemente-report-su-dati-aggregati/" target="_blank" rel="noreferrer noopener"&gt;"Come creare velocemente report su dati aggregati"&lt;/a&gt; come Genropy ci metta a disposizione un semplice ed efficace strumento, il Group By, per aggregare dati sulla base di criteri di nostra scelta ed ottenere di fatto &lt;strong&gt;report immediati&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Da oggi però Genropy ci mette a disposizione un ulteriore strumento di analisi per definire criteri di raggruppamento e selezione dei dati in tempo reale, la &lt;strong&gt;Grouped View&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Come definire le queryBySample</title><link>https://www.genropy.org/blog/come-definire-le-querybysample-per-impostare-criteri-di-ricerca-predefiniti/</link><pubDate>Wed, 06 May 2020 18:34:51 +0000</pubDate><guid>https://www.genropy.org/blog/come-definire-le-querybysample-per-impostare-criteri-di-ricerca-predefiniti/</guid><description>&lt;p&gt;In questo tutorial proseguiremo con il miglioramento dell'applicativo che abbiamo generato automaticamente nella &lt;a href="https://www.genropy.org/blog/dal-database-alla-web-app-in-meno-di-2-minuti/" target="_blank" rel="noreferrer noopener"&gt;Genropill 4: "Dal database alla web app in meno di 2 minuti"&lt;/a&gt; e che abbiamo cominciato a modificare nel &lt;a href="https://www.genropy.org/blog/definire-classi-view-e-form-diverse-in-base-alle-necessita/" target="_blank" rel="noreferrer noopener"&gt;Tutorial: "Definire classi view e form diverse in base alle necessità"&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Nel caso precedente avevamo creato classi &lt;strong&gt;View&lt;/strong&gt; e &lt;strong&gt;Form&lt;/strong&gt; differenti in base a differenti scenari d'uso. Tra le personalizzazioni effettuate avevamo visto velocemente l'uso del metodo &lt;strong&gt;&lt;em&gt;th_queryBySample&lt;/em&gt;&lt;/strong&gt;, per definire nella pagina uno strumento di &lt;strong&gt;ricerca più immediato&lt;/strong&gt; e semplice per l'utente finale.&lt;/p&gt;</description></item><item><title>Definire classi view e form diverse in base alle necessità</title><link>https://www.genropy.org/blog/definire-classi-view-e-form-diverse-in-base-alle-necessita/</link><pubDate>Wed, 22 Apr 2020 10:49:54 +0000</pubDate><guid>https://www.genropy.org/blog/definire-classi-view-e-form-diverse-in-base-alle-necessita/</guid><description>&lt;p&gt;Un tipo di pagina molto usata in Genropy è la &lt;strong&gt;&lt;em&gt;thpage&lt;/em&gt;&lt;/strong&gt;, ovvero una pagina che è quasi interamente costituita da un &lt;em&gt;tableHandler &lt;/em&gt;con l'aggiunta di qualche strumento avanzato in più. Nella sua configurazione di default si tratta di uno &lt;em&gt;stackTableHandler&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Lo &lt;strong&gt;&lt;em&gt;stackTableHandler &lt;/em&gt;è un component Genropy che si basa sull'idea di due fogli sovrapposti (&lt;em&gt;stack&lt;/em&gt;).&lt;/strong&gt; Il primo foglio permette di visualizzare i dati di una table di database in una griglia, mentre il secondo contiene la form relativa ad un singolo record.&lt;/p&gt;</description></item><item><title>Case History: BauApp - Come aiutare i cani con Genropy</title><link>https://www.genropy.org/blog/case-history-bauapp-come-aiutare-i-cani-con-genropy/</link><pubDate>Mon, 09 Dec 2019 13:08:17 +0000</pubDate><guid>https://www.genropy.org/blog/case-history-bauapp-come-aiutare-i-cani-con-genropy/</guid><description>&lt;p&gt;Sin dalla sua prima edizione nel 2007, il team Genropy partecipa e sponsorizza&lt;strong&gt; &lt;/strong&gt;&lt;a href="https://pycon.it/it/"&gt;PyCon Italia&lt;/a&gt;, una dedicata al linguaggio Python, che si tiene ogni anno a Firenze. Questo è uno degli appuntamenti del settore più importante ed apprezzato in Europa e nel mondo.&lt;/p&gt;
&lt;p&gt;A maggio di quest&amp;rsquo;anno, durante &lt;strong&gt;Pycon X&lt;/strong&gt; , Francesco Porcari, uno dei core developer di Gernopy, ha avuto il piacere di presentare un&amp;rsquo; applicazione per un&amp;rsquo;associazione no-profit, da lui interamente realizzata come &lt;em&gt;pet-project&lt;/em&gt; nel suo tempo libero.&lt;/p&gt;</description></item><item><title>Come personalizzare le viste su una tabella in un attimo</title><link>https://www.genropy.org/blog/come-personalizzare-le-viste-su-una-tabella-in-un-attimo/</link><pubDate>Wed, 08 May 2019 09:00:09 +0000</pubDate><guid>https://www.genropy.org/blog/come-personalizzare-le-viste-su-una-tabella-in-un-attimo/</guid><description>&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Quante volte, nella vista di una tabella, manca proprio la colonna di cui avevamo bisogno?&lt;/p&gt;
&lt;p&gt;Grazie a &lt;strong&gt;&lt;em&gt;Genropy &lt;/em&gt;&lt;/strong&gt;ogni griglia può essere &lt;em&gt;personalizzata in pochi secondi &lt;/em&gt;direttamente da &lt;strong&gt;interfaccia utente&lt;/strong&gt;. Semplice a dirsi, ma vediamo come.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Supponiamo di dover esportare dalla&lt;em&gt; tabella Clienti &lt;/em&gt;un foglio di calcolo che riporti i seguiti campi:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ragione sociale, Provincia, Email, Tipo Cliente, Tipo Pagamento, Numero di Fatture, Totale fatturato. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Genropy ti permette di modificare le colonne di una griglia in pochi attimi. Basterà aprire&lt;strong&gt; il cassetto laterale di configurazione&lt;/strong&gt; per entrare in modalità modifica ed aggiungere colonne o rimuovere quelle che non ci servono. Infine si potrà salvare la nuova vista per utilizzi futuri.&lt;/p&gt;</description></item></channel></rss>