Delphi, C++ Builder & .NET Parte di sgcUI

sgcGrid, la griglia dati live per Delphi, C++ Builder & .NET

Una griglia pensata per dati che non stanno mai fermi. Scrivi le righe per chiave da qualsiasi thread, guarda le celle modificate lampeggiare in verde o in rosso, poi raggruppa, filtra, modifica ed esporta le stesse righe. Un frame 1080p di una griglia con 100.000 righe richiede 3,0 ms su Win32.

VCL, FireMonkey, WinForms, WPF, Avalonia3,0 ms per frame 1080p (Win32)Build .NET Community gratuitaIncluso in sgcUI Standard
sgcGrid con 100.000 ordini raggruppati per Regione e poi per Categoria, chip del pannello dei gruppi e totali nel piè di pagina

Tutto ciò che serve a una griglia live

Ventitré funzionalità in sei gruppi, ciascuna collegata al suo argomento della guida.

Dati live

Feed che non si fermano mai: prezzi, telemetria, code e log.

Dati live

Aggiorna migliaia di righe al secondo da qualsiasi thread

Un feed di mercato, un bus di sensori o una coda di job possono scrivere direttamente nella griglia. Ogni riga ha una chiave e un thread di lavoro aggiorna la riga di una chiave per nome di campo senza chiamare Synchronize e senza codice di locking. La griglia si limita a segnarsi come da aggiornare nel thread che scrive e si ridisegna nel thread principale al massimo MaxFPS volte al secondo.

  • UpdateRow imposta i campi indicati di una chiave e inserisce la riga se la chiave è nuova; UpdateCell modifica un solo campo
  • AppendRow e DeleteRow aggiungono e rimuovono righe per chiave, da qualsiasi thread
  • BeginUpdate e EndUpdate trasformano un gruppo di modifiche in una sola notifica
  • La riga selezionata viene ritrovata tramite la sua chiave dopo ogni riordinamento, quindi non salta mai via
Leggi l'argomento della guida
Vedi ogni cambiamento a colpo d'occhio

Dati live

Vedi ogni cambiamento a colpo d'occhio

Trader e operatori devono vedere cosa si è mosso senza leggere ogni numero. Con FlashChanges attivo, che è il valore predefinito, una cella modificata si tinge di verde quando il valore sale e di rosso quando scende, poi svanisce in FlashDuration millisecondi, 800 per impostazione predefinita. Per i log e i feed in crescita, la modalità tail mantiene in vista la riga più recente e smette di seguirla non appena l'utente scorre verso l'alto per leggere.

  • FlashUpColor, FlashDownColor e FlashChangedColor; un colore 0 usa il valore predefinito del tema
  • FlashMode tinge lo sfondo (fmBackground) o il testo (fmText)
  • TailMode segue la riga più recente, MaxRows elimina le righe più vecchie di un log infinito
  • La selezione si disegna sopra il lampeggio, e il lampeggio sopra le regole di formato
Leggi l'argomento della guida
Colora le righe che richiedono attenzione

Dati live

Colora le righe che richiedono attenzione

Una fattura scaduta, un saldo negativo o un job fallito devono risaltare prima che qualcuno lo chieda. Le regole di formato confrontano una colonna con un valore usando il tipo di dati di quella colonna: i numeri numericamente, le date come date, il testo senza distinzione tra maiuscole e minuscole. Una regola che corrisponde imposta il colore di sfondo, il colore del testo o il grassetto sulla cella o sull'intera riga, e continua a funzionare mentre gli aggiornamenti live cambiano i valori sottostanti.

  • TsgcGridFormatRules valuta le sue regole nell'ordine della collezione, e una corrispondenza successiva prevale su una precedente
  • Operatori come gfoLess, gfoBetween, gfoContains e gfoIsEmpty
  • ApplyToRow applica lo stile a ogni cella della riga, StopOnMatch interrompe la valutazione per una cella
  • I colori traslucidi tingono la cella sopra il suo sfondo, e OnGetCellStyle ha l'ultima parola
  • Le regole impostano corsivo, sottolineato e barrato oltre al grassetto, e OnGetCellFont imposta lo stile e la dimensione del carattere di qualsiasi cella
  • AddIconSet mette frecce, cerchi, bandiere o segni di spunta in una colonna a partire da due soglie, e una regola può mostrare un'icona o un'immagine tua
Leggi l'argomento della guida

Dati live

Un elenco allarmi ISA-18.2 per le schermate HMI

Una schermata operatore ha bisogno di un unico posto che elenchi ogni allarme, mostri quali aspettano ancora una conferma e permetta all'operatore di agire. Il modello di allarmi tiene gli allarmi con gli stati ISA-18.2 e le priorità da 1 a 4, e il collegamento agli allarmi li scrive in una griglia, una riga per tag, con il colore della priorità e righe lampeggianti per gli allarmi non ancora confermati. L'applicazione genera e rimuove gli allarmi in base ai propri limiti, l'operatore li conferma, li mette in shelve e li riattiva dal menu contestuale.

  • TsgcGridAlarmModel: RaiseAlarm, ClearAlarm, Acknowledge, AcknowledgeAll, Shelve, Unshelve
  • Sei stati: attivo non confermato, attivo confermato, rientrato non confermato, normale, in shelve e soppresso
  • FilterPriorities, FilterStates e FilterText, ed esportazione in JSON o CSV
  • TsgcGridAlarmLink e TsgcVCLGridAlarmMenu, anche per FireMonkey e, in .NET, per WinForms, WPF e Avalonia

Il modello, il collegamento e i menu sono in ogni edizione, Community compresa. Il registro delle conferme con Log e OnLog è Registered. L'elenco allarmi fa parte del pacchetto HMI di sgcUI.

Leggi l'argomento della guida

Dai forma ai dati

Ordina, filtra, raggruppa e annida grandi insiemi di righe.

Raggruppa e totalizza 100.000 righe con una sola chiamata

Dai forma ai dati

Raggruppa e totalizza 100.000 righe con una sola chiamata

Vendite per regione, ordini per mese, ticket per stato: gli utenti vogliono totali, non righe grezze. GroupBy raggruppa la griglia per una o più colonne, e ogni riga di gruppo mostra il suo membro, il numero di righe e i riepiloghi delle sue righe. Gli utenti raggruppano da soli trascinando un'intestazione sul pannello dei gruppi. Il raggruppamento è solo stato della vista, quindi un grafico collegato alla griglia vede comunque le righe piatte e ordinate.

  • GroupBy e ClearGrouping da codice, oppure GroupIndex per colonna
  • ShowGroupPanel aggiunge chip con drag and drop; un clic su un chip inverte l'ordine dei gruppi
  • SummaryType gsuSum, gsuCount, gsuAverage, gsuMin o gsuMax, formattato con SummaryFormat
  • GroupSummaries in ogni riga di gruppo e ShowFooter per i totali generali
  • Un DisplayFormat di yyyy-mm raggruppa le date per mese
Leggi l'argomento della guida
Ordina, filtra e cerca in grandi quantità di dati

Dai forma ai dati

Ordina, filtra e cerca in grandi quantità di dati

Trovare un cliente tra migliaia dovrebbe richiedere pochi tasti. FilterText mantiene le righe il cui testo formattato contiene le parole digitate in una qualsiasi colonna visibile, e un gestore OnFilterRow aggiunge le tue regole. Un clic su un'intestazione ordina, Ctrl e clic aggiunge una colonna a un ordinamento multicolonna, e l'ordinamento è stabile. Una colonna che si aggiorna di continuo ma non è né ordinata né filtrata non richiede alcun riordinamento.

  • SortOrder e SortIndex per colonna, OnSortChange dopo ogni modifica
  • FilterText non distingue maiuscole e minuscole e legge il testo come lo vede l'utente
  • OnFilterRow per la logica personalizzata, InvalidateView quando quella logica cambia
  • SelectionMode seleziona righe o celle, e Ctrl+C le copia come testo separato da tabulazioni
  • I valori nulli, vuoti e non convertibili vengono sempre ordinati per primi
Leggi l'argomento della guida
Mostra le gerarchie con righe ad albero e bande di dettaglio

Dai forma ai dati Solo Registered

Mostra le gerarchie con righe ad albero e bande di dettaglio

Un organigramma o una distinta base si leggono meglio come un albero, e gli ordini di un cliente subito sotto il cliente. Le righe ad albero dispongono le righe in profondità a partire da una colonna chiave e da una colonna padre. Le bande di dettaglio aprono una piccola griglia di righe correlate sotto qualsiasi riga master, con la propria intestazione, scorrimento e ordinamento, riempita da un TsgcGridDataStore, da un'altra griglia o da un evento.

  • Tree.KeyField e Tree.ParentField attivano l'albero; ExpandNode e CollapseNode funzionano da codice
  • Lo stato di espansione è mantenuto per chiave, quindi sopravvive a ordinamenti, filtri e aggiornamenti live
  • Detail.MasterKeyField e Detail.DetailKeyField collegano una banda alla sua origine, OnGetDetailData la riempie su richiesta
  • Le bande funzionano in modalità piatta, raggruppata e ad albero, e le celle di dettaglio modificate lampeggiano come nella griglia master

Non è nella build .NET Community, che mantiene il raggruppamento.

Leggi l'argomento della guida
Mostra le stesse righe come card

Dai forma ai dati Solo Registered

Mostra le stesse righe come card

Un elenco di contatti, un catalogo prodotti o una coda di ticket si leggono spesso meglio come card che come tabella. Con ViewStyle impostato su gvsCard la griglia disegna ogni riga come una card: una barra del titolo facoltativa, un'immagine facoltativa e una riga per ogni colonna visibile con la sua didascalia e il suo valore. Le card mostrano le stesse righe della tabella, quindi ordinamento, filtri, pannello di ricerca, selezione, modifica e modalità server funzionano in entrambe le viste, e una sola proprietà passa dall'una all'altra in fase di esecuzione.

  • CardOptions imposta il CaptionField, l'ImageField sopra o accanto ai campi, la CardWidth e il numero di card per banda
  • Ogni card ha la stessa dimensione, quindi la vista a card pagina come la tabella una griglia in modalità server con milioni di righe, con card segnaposto per le righe ancora in arrivo
  • I valori sono disegnati come le celle: regole di formato, celle di avanzamento, tag, collegamento e sparkline, corrispondenze della ricerca e lampeggio al cambiamento
  • I tasti freccia spostano tra le card, Tab tra i campi, F2 modifica un campo, e un clic destro sulla didascalia di un campo apre il menu della colonna per ordinare e filtrare senza l'intestazione
  • Da destra a sinistra, stampa e screen reader funzionano nella vista a card, e il layout salvato mantiene la vista

La vista a card non raggruppa e non disegna intestazione di colonna, riga filtro né piè di pagina. Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia, non nella build .NET Community.

Leggi l'argomento della guida
Tieni in vista le colonne chiave mentre le altre scorrono

Dai forma ai dati

Tieni in vista le colonne chiave mentre le altre scorrono

Le griglie larghe perdono il contesto quando il simbolo o il nome del cliente scorre via. FrozenColumns mantiene in posizione le prime colonne visibili mentre le altre scorrono in orizzontale, e l'intestazione, il piè di pagina e i riepiloghi di gruppo seguono la stessa divisione. Gli utenti ridimensionano le colonne trascinando il bordo dell'intestazione, e il renderer headless usa la stessa impostazione, quindi le immagini esportate corrispondono allo schermo. Anche le frecce dei gruppi a sinistra non scorrono mai.

  • FrozenColumns conta le colonne visibili, e una linea di un pixel segna il bordo bloccato
  • Gli spostamenti da tastiera portano in vista una colonna scorsa a destra del bordo bloccato
  • FrozenWidth del renderer restituisce la larghezza che non scorre
  • MinWidth limita un ridimensionamento, OnColumnResized segnala la nuova larghezza
  • Presente in ogni edizione, compresa la build .NET Community gratuita
  • Da destra a sinistra per arabo ed ebraico: la prima colonna è a destra, le colonne bloccate restano sul bordo destro, e l'esportazione XLSX di una griglia da destra a sinistra scrive un foglio da destra a sinistra
Leggi l'argomento della guida
Demo FilterAndFind: pulsanti a imbuto, una riga filtro con (2 values) e > 500, e il pannello di ricerca che evidenzia Nakatomi

Dai forma ai dati

Filtra come in un foglio di calcolo e trova qualsiasi valore

Gli utenti si aspettano l'imbuto che conoscono da Excel. ShowFilterButtons ne mette uno in ogni intestazione di colonna: apre un popup con i valori distinti della colonna e il numero di righe di ciascuno, una casella di ricerca e fino a due condizioni tipizzate unite da And o Or. ShowFilterRow aggiunge sotto l'intestazione una riga che filtra una colonna mentre l'utente digita, e Ctrl+F apre il pannello di ricerca, che evidenzia il testo in ogni cella e salta da una corrispondenza all'altra.

  • Ogni colonna ha un solo filtro, modificato dal popup, dalla riga filtro e da Column.Filter nel codice, così i tre restano sempre d'accordo
  • Gli elenchi di valori di due colonne filtrate si restringono a vicenda, e un imbuto pieno mostra quali colonne filtrano
  • FilterRowOperator per colonna: uguale a, maggiore di, contiene, inizia con, è vuoto e altro
  • FindText, FindNext e FindPrevious funzionano dal codice, e FindOnlyMatches nasconde le righe senza corrispondenza
  • I filtri di colonna si applicano insieme a FilterText e OnFilterRow, e OnFilterChange segnala ogni modifica
  • Le colonne di date filtrano per periodo: oggi, ieri, questa settimana o la scorsa, questo mese o il mese scorso, quest'anno o l'anno scorso, e gli ultimi N giorni, con l'inizio della settimana in FirstDayOfWeek

Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia, compresa la build .NET Community gratuita.

Leggi l'argomento della guida

Dai forma ai dati

Lascia che gli utenti dispongano le colonne e mantieni la loro scelta

Un clic destro sull'intestazione di una colonna apre un menu che ordina, raggruppa, adatta le larghezze, filtra e apre il selettore colonne, un popup con una casella di controllo per colonna. Gli utenti trascinano un'intestazione per spostare la sua colonna, e un doppio clic sul bordo dell'intestazione adatta la larghezza alla didascalia e alle celle. SaveLayoutToString e LoadLayoutFromString conservano tutto questo come un breve testo JSON, così la griglia si apre come l'utente l'ha lasciata.

  • HeaderMenu, ColumnMoving e BestFitOnDblClick sono attivi per impostazione predefinita, e un PopupMenu assegnato ha comunque la precedenza
  • ShowColumnChooser apre il selettore da un pulsante o da una voce di menu tua
  • Una colonna spostata resta dallo stesso lato delle colonne bloccate e dentro la sua banda, e OnColumnMoved segnala lo spostamento
  • BestFitColumn e BestFitColumns misurano l'intestazione e fino a 1.000 righe campione, così un milione di righe costa circa come mille
  • Il layout conserva ordine delle colonne, larghezze, visibilità, ordinamento, raggruppamento, filtri di colonna, bande e opzioni dei pannelli; SaveLayoutToFile e LoadLayoutFromFile usano un file
  • AutoSaveLayout salva il layout quando la griglia si chiude e lo ripristina all'esecuzione successiva, e Reset layout nel menu dell'intestazione di colonna ripristina le colonne definite in fase di progettazione
  • AutoFitColumns fa riempire alle colonne la larghezza della griglia, e MaxWidth limita la larghezza di una colonna quando viene ridimensionata o adattata

Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia, compresa la build .NET Community gratuita.

Leggi l'argomento della guida
Demo BandsAndCells: bande Instrument, Live data, Price e Position, sparkline ad area, barre di avanzamento, icone di stato e tre righe selezionate

Dai forma ai dati

Intestazioni a bande, celle ricche e selezione di più righe

Una schermata di trading si legge meglio quando Last, Change e Trend stanno sotto un'unica didascalia Price. Bands aggiunge didascalie sopra gruppi di colonne, su quanti livelli servono, e ogni colonna indica la sua banda in Band. CellKind disegna una cella come immagine, barra di avanzamento o sparkline, mentre la cella conserva il suo valore semplice, così ordinamento, raggruppamento ed esportazione vedono ancora il numero.

  • Bands.Add accetta una didascalia e una banda genitore, e le righe delle bande si impilano sopra l'intestazione di colonna
  • gcdProgress usa ProgressMin e ProgressMax; gcdSparkline disegna un grafico a linee, ad area o a barre da un elenco di numeri
  • gcdTags mostra più chip colorati in una cella da un testo come "Urgent, Pending review", con TagColors e OnGetTagStyle per colori propri
  • gcdImage disegna un'immagine di CellImages, che la griglia riempie da qualsiasi elenco di immagini assegnato a Images
  • TrueValue e FalseValue trasformano in caselle di controllo una colonna che memorizza valori come "S" e "N", e gcdLink mostra un collegamento che genera OnLinkClick
  • HeaderLines, RowLines e WordWrap mostrano didascalie e testo delle celle su più righe, e HeaderImageIndex e HeaderButton mettono un'immagine e un pulsante nell'intestazione di colonna
  • ShowTruncatedHints mostra come suggerimento il testo completo di una cella o di una didascalia troncata, e OnGetCellHint imposta un suggerimento tuo per ogni cella
  • SelectionMode gsmMultiRow seleziona qualsiasi insieme di righe con Ctrl e Maiusc, gsmCellRange un intervallo di celle, e Ctrl+A seleziona tutto
  • La selezione è conservata per chiave di riga, così sopravvive a ordinamento, filtri e aggiornamenti live, e Ctrl+C la copia come testo separato da tabulazioni
  • RowHeader aggiunge una striscia con l'indicatore di record, i numeri di riga e una casella di controllo per riga, e SelectionColor e SelectionTextColor impostano i colori di selezione
  • RowDragMode trascina le righe selezionate su un altro controllo, e in VCL su altre applicazioni come Excel

Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia, compresa la build .NET Community gratuita.

Leggi l'argomento della guida

Modifica ed esporta

Cambia i dati, sincronizzali con il tuo database, passali ad altri.

Modifica ed esporta Solo Registered

Modifica direttamente con la convalida

Gli utenti del back office si aspettano di correggere una quantità o uno stato direttamente nella griglia. Imposta ReadOnly su False e F2, Invio, un carattere digitato o un doppio clic aprono un editor sopra la cella, oppure una combo box quando la colonna ha una PickList. Il testo digitato viene convertito nel tipo di dati della colonna, OnValidate può cambiare o rifiutare il valore, e il risultato viene scritto con UpdateCell, quindi ordinamento e lampeggio continuano ad applicarsi.

  • Editable per colonna, e OnBeforeEdit può rifiutare una modifica
  • Invio conferma, Tab passa alla cella modificabile successiva, Esc annulla; StartEdit, CommitEdit e CancelEdit fanno lo stesso da codice
  • OnEditError mantiene aperto l'editor in caso di input errato, OnEdited segnala il valore vecchio e quello nuovo

Non è nella build .NET Community.

Leggi l'argomento della guida
Collega qualsiasi TDataSet in poche righe

Modifica ed esporta

Collega qualsiasi TDataSet in poche righe

Il codice database esistente continua a funzionare: un TsgcGridSource_DataSet riempie la griglia da una query FireDAC, un TClientDataSet o qualsiasi altro TDataSet. Imposta Grid e DataSet, rendilo Active e le righe compaiono. Con un KeyField la griglia viene sincronizzata invece di essere ricaricata, quindi le righe modificate si aggiornano sul posto e lampeggiano. Con LiveUpdates attivo, ogni Append, Edit e Delete registrato arriva alla griglia senza codice aggiuntivo.

  • AutoColumns crea le colonne dai campi del dataset
  • Con un KeyField, le nuove chiavi vengono aggiunte e quelle mancanti eliminate
  • Il dataset viene percorso con DisableControls e il suo record corrente viene ripristinato
  • Anche JSON e CSV: GridLoadFromJSONFile, GridSaveToCSVFile e il resto di sgcGrid_IO
  • Le immagini memorizzate nei campi BLOB appaiono nelle colonne gcdImage, e ImagePreview mostra una copia ingrandita quando il mouse si ferma sulla cella
  • ApplyFilter fa mantenere al DataSet solo le righe mostrate dalla griglia, e OnApplySort passa l'ordinamento della griglia come nomi di campo per la tua query
  • In VCL, il comando Import columns from DB grid del menu contestuale della griglia copia in fase di progettazione le colonne, il collegamento al DataSet e gli eventi di un TDBGrid
  • In .NET la stessa classe legge un DataTable
Leggi l'argomento della guida

Modifica ed esporta Solo Registered

Consegna agli utenti un vero file Excel

L'ufficio contabile vuole i numeri in Excel, non uno screenshot. SaveToXLSX scrive la griglia come cartella di lavoro Office Open XML su un file o uno stream, senza librerie esterne. Il foglio mantiene ciò che l'utente vede: le colonne visibili nell'ordine di visualizzazione con le loro larghezze e i formati numerici, l'intestazione bloccata, i gruppi e i livelli dell'albero come struttura comprimibile, e i totali di gruppo come formule SUBTOTAL.

  • SaveToXLSX accetta un nome di file o uno stream e un nome di foglio facoltativo
  • I numeri restano numeri, le date diventano date di Excel e un DisplayFormat diventa il formato numerico della cella
  • I gruppi compressi si aprono compressi in Excel, come li mostrava la griglia
  • Chiamalo nel thread dell'interfaccia; le bande di dettaglio non vengono esportate
  • Ogni riga di gruppo e ogni riga della vista viene scritta, qualunque cosa sia compressa

Non è nella build .NET Community, che mantiene l'esportazione JSON e CSV.

Leggi l'argomento della guida

Modifica ed esporta Solo Registered

Lavora nella griglia come in un foglio di calcolo leggero

L'ufficio vendite manda una cartella di lavoro e vuole una simulazione veloce, non un altro giro passando da Excel. Con ExcelMode impostato a True la griglia si comporta come un foglio di calcolo leggero: gli utenti selezionano un intervallo, trascinano il quadratino di riempimento per continuare una serie, scrivono formule che iniziano con =, formattano le celle e lavorano su più fogli. LoadFromXLSX apre direttamente la cartella di lavoro, da un file o da uno stream, senza librerie esterne e senza Excel installato.

  • Selezione di intervalli: si trascina un rettangolo, lo si estende con Maiusc+frecce e Ctrl+C lo copia
  • Il quadratino di riempimento continua le serie di numeri e date, copia il testo e sposta i riferimenti relativi delle formule; ogni riempimento è un solo passo di annullamento e OnBeforeFill può bloccarlo
  • Formule con + - * / ^ &, confronti, riferimenti come A1, $A$1 e A1:B5, e SUM, AVERAGE, MIN, MAX, COUNT, IF, ROUND e ABS
  • Gli errori compaiono come #DIV/0!, #REF!, #NAME?, #VALUE! e #CIRC! per un riferimento circolare; i valori si ricalcolano alla modifica e ordinamento, filtri e riepiloghi usano i valori calcolati
  • Formattazione per singola cella: grassetto, corsivo, sottolineato, barrato, dimensione e colore del carattere, colore di riempimento, allineamento orizzontale e verticale, testo a capo, formato numerico e bordi, impostati con FormatSelection o con Ctrl+B, Ctrl+I, Ctrl+U e Ctrl+5; ogni modifica di formato è un solo passo di annullamento
  • Più fogli in una sola griglia: con ShowSheetTabs una barra di schede li aggiunge, rinomina, elimina e riordina, le formule leggono gli altri fogli con riferimenti come Orders!E1:E20 o 'Q4 Notes'!B1, e una ridenominazione riscrive quei riferimenti
  • In modalità Excel SaveToXLSX scrive ogni foglio con il suo nome, i suoi formati di cella e le sue formule come formule Excel con i valori calcolati nella cache; le righe escono nell'ordine dell'archivio, quindi i riferimenti restano esatti
  • LoadFromXLSX legge ogni foglio della cartella di lavoro in modalità Excel, oppure un foglio per nome o indice, costruisce le colonne dalla riga di intestazione con i tipi dedotti e legge stringhe, numeri, booleani e date, compreso il sistema di date 1904
  • Le formule e i formati di cella della cartella di lavoro arrivano attivi in modalità Excel; negli altri casi le formule arrivano come valori memorizzati nella cache
  • Una Formula di colonna come =C1*D1 si scrive per la riga 1 e calcola ogni riga di una colonna di sola lettura, su dati in memoria, in modalità virtuale e su una sorgente DataSet; in modalità virtuale vengono valutati anche i testi di formula restituiti da OnGetValue

Non è un foglio di calcolo completo: nessun grafico, nessuna cella unita e nessuna formula di cella su una sorgente DataSet, dove le formule di colonna prendono il suo posto. In VCL, FireMonkey, WinForms, WPF e Avalonia, non nella build .NET Community.

Leggi l'argomento della guida Leggi l'argomento sulla formattazione delle celle Leggi l'argomento sui fogli Leggi l'argomento sulle formule di colonna
Demo DataSetEditing: un TDBNavigator e due TDBEdit sugli stessi record della griglia, con una colonna di lookup delle categorie

Modifica ed esporta Solo Registered

Modifica il DataSet attraverso la griglia

Con WriteBack attivo, un TsgcGridSource_DataSet scrive ogni modifica della griglia nel record della sua riga. Individua il record tramite KeyField e registra il valore. Quando la registrazione fallisce, per esempio in un controllo BeforePost, il record viene annullato e la cella mantiene il vecchio valore. SyncCursor tiene insieme il record corrente e la riga attiva, così un TDBNavigator e i controlli TDBEdit sullo stesso dataset seguono la griglia, e la griglia segue loro.

  • AllowInsert: Ins aggiunge e registra un record, e OnNewRecord del dataset compila i valori predefiniti
  • AllowDelete: Ctrl+Canc elimina le righe selezionate e i loro record una volta che OnBeforeDelete acconsente
  • I campi lookup si modificano come elenco di scelta dei risultati del lookup, e viene scritta la chiave corrispondente
  • OnEditError mostra il messaggio del dataset; i valori incollati e l'annulla usano lo stesso percorso di scrittura

Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia; non è nella build .NET Community. In .NET l'origine dati scrive su un DataTable, AddLookup aggiunge le colonne di lookup e SyncCursor è solo per Delphi.

Leggi l'argomento della guida
Demo Editing nel tema scuro con un selettore di data aperto nella colonna Date

Modifica ed esporta Solo Registered

Selettori di data, incolla da Excel, annulla e ripristina

Ogni colonna sceglie il controllo che la modifica. EditorKind sceglie un selettore di data, ora o data e ora, un campo numerico con frecce, un selettore di colore o un editor di token di sgcEditors, e il valore predefinito si sceglie dal tipo di dati della colonna. Ctrl+V incolla un blocco copiato da Excel: ogni valore viene convertito e validato prima che venga scritto qualsiasi cosa, e l'intero incolla è un unico passo di annullamento. Ctrl+Z e Ctrl+Y annullano e ripristinano modifiche e incolla.

  • OnCreateEditor mette in una cella qualsiasi controllo tuo, per esempio un TTrackBar
  • gedMemo modifica testo lungo su più righe, e gedLookup sceglie un valore da un elenco con più colonne, riempito da LookupItems o da un campo lookup
  • Le colonne con caselle di controllo si commutano direttamente nella cella e riscrivono il loro TrueValue o FalseValue
  • PasteText e PasteFromClipboard funzionano dal codice, e OnBeforePaste può modificare o rifiutare il testo
  • Un solo valore che non si converte, o che OnValidate rifiuta, ferma l'incolla prima che venga scritto qualsiasi cosa
  • L'annulla lavora per chiave di riga e campo, così ritrova le sue righe dopo ordinamento e filtri, e mantiene un valore che nel frattempo un aggiornamento live ha cambiato
  • UndoLimit conserva gli ultimi 100 passi; Undo, Redo e CanUndo funzionano dal codice

Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia; non è nella build .NET Community.

Leggi l'argomento della guida

Scala e collega

Milioni di righe, feed live e linguaggio naturale.

Sfoglia milioni di righe senza caricarle

Scala e collega

Sfoglia milioni di righe senza caricarle

Archivi di log, storici di sensori e risultati di query che esistono già altrove non hanno bisogno di essere copiati in memoria. In modalità virtuale la griglia non memorizza righe: VirtualRowCount dice quante sono e OnGetValue restituisce un valore quando la sua riga scorre in vista. Vengono disegnate solo le righe visibili, quindi una griglia di un milione di righe costa quanto una di cinquanta. Cambia il conteggio man mano che l'origine cresce.

  • Virtual e VirtualRowCount sui dati della griglia, OnGetValue fornisce le celle
  • Anche i riepiloghi del piè di pagina leggono i loro valori tramite OnGetValue
  • Le righe virtuali non hanno chiavi, quindi mantengono l'ordine dell'origine, senza ordinamento, filtri né lampeggio; per ordinare, filtrare e raggruppare sull'origine dati, usa la modalità server qui sotto
  • Per i feed che crescono senza fine, MaxRows con TailMode è l'alternativa con chiave
Leggi l'argomento della guida
Pagina una tabella di database di milioni di righe

Scala e collega Solo Registered

Pagina una tabella di database di milioni di righe

Uno storico ordini o una tabella di audit sono troppo grandi per essere caricati, eppure gli utenti vogliono comunque ordinarli, filtrarli e raggrupparli. In modalità server un componente provider legge una pagina di righe alla volta, e l'origine dati valuta l'ordinamento, i filtri di colonna, la riga filtro, il testo di ricerca, i riepiloghi del piè di pagina, il raggruppamento e il conteggio delle righe. Una tabella di milioni di righe si apre veloce come una di cinquanta, e vengono lette solo le pagine sullo schermo.

  • TsgcGridServerProvider_DataSet trasforma ogni richiesta in un'unica istruzione SQL per SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase o un dialetto generico, eseguita da qualsiasi componente query: FireDAC, dbExpress, ADO, IBX, UniDAC, Zeos e altri
  • In .NET, TsgcGridServerProvider_Queryable legge qualsiasi IQueryable, per esempio un set di Entity Framework Core, e TsgcGridServerProvider_AdoNet esegue lo stesso SQL su qualsiasi connessione ADO.NET
  • TsgcGridServerProvider_Callback serve qualsiasi altra origine, per esempio un servizio REST, tramite eventi risposti subito o più tardi da qualsiasi thread
  • Le righe vengono caricate in blocchi di PageSize tramite una cache; il disegno non aspetta mai, e le righe non ancora caricate mostrano barre segnaposto finché la loro pagina non arriva
  • Il raggruppamento avviene sul server: un'istruzione GROUP BY per livello restituisce i gruppi con i loro conteggi di righe e riepiloghi, e i figli di un gruppo vengono caricati quando viene espanso
  • Le modifiche vengono scritte tramite il provider, ed esportazioni, stampa e copia leggono ogni riga pagina per pagina

Le righe ad albero e le bande di dettaglio non sono disponibili in modalità server, e il popup del filtro non mostra i conteggi delle righe. Nelle griglie VCL, FireMonkey, WinForms, WPF e Avalonia, non nella build .NET Community.

Leggi l'argomento della guida

Scala e collega

Lascia che gli utenti interroghino la griglia in linguaggio naturale

Non tutti gli utenti vogliono costruire filtri. TsgcGridAI trasforma una domanda come price greater than 100 sort by volume descending highlight change less than 0 in filtri, ordinamenti ed evidenziazioni di righe sulla griglia, e la barra di query AI offre agli utenti un posto dove scriverla. Senza un provider assegnato, un parser basato su regole risponde in locale, senza rete e senza chiave API. Assegna un provider e risponde invece qualsiasi LLM: TsgcUIAIEventProvider passa ogni richiesta al tuo codice, e TsgcUIAIChatProvider usa il componente TsgcAIChat di sgcWebSockets. Viene inviato solo il catalogo dei campi, cioè nomi, didascalie, tipi e alcuni valori di esempio delle colonne, mai le righe.

  • La barra di query: TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar e TsgcAvaloniaAIQueryBar, con domande recenti, suggerimenti, Cancel e Undo
  • I filtri passano da OnFilterRow, le evidenziazioni diventano regole di formato ApplyToRow
  • Ogni risposta sostituisce la precedente, e Undo torna indietro di un passo
  • LastExplanation indica cosa è stato applicato, e quando il provider fallisce risponde il parser basato su regole
  • Il ponte sgcGridWS mantiene TsgcGridAIQuery con TsgcHTMLAIAssistant e porta TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT e TsgcGridFeedSource_SSE, che scrivono messaggi JSON nella griglia per chiave

In ogni edizione, Community compresa, su VCL, FireMonkey, WinForms, WPF e Avalonia. Il provider sgcWebSockets e il ponte sgcGridWS richiedono sgcWebSockets e un'edizione Registered.

Leggi l'argomento della guida

Accessibilità

UI Automation per screen reader, tastiera e alto contrasto, senza alcuna configurazione.

Accessibilità

Una griglia esposta come una vera tabella

sgcGrid espone il suo contenuto a Microsoft UI Automation come una tabella con intestazioni di colonna, righe e celle, l'API usata dagli screen reader come Narrator e NVDA. Vengono create solo le righe visibili e il numero di righe e di colonne è sempre quello completo, quindi una griglia con un milione di righe non costa nulla in più.

  • La cella con il focus, la selezione, l'ordinamento, il filtro, il raggruppamento e le righe ad albero sono esposti tramite i pattern Grid, Table e Selection
  • Le frecce, Home, End, PagÙp e PagÙgiù spostano la cella con il focus, Shift estende la selezione, Ctrl+Space attiva o disattiva la riga o la cella e F2 o Invio avviano la modifica
  • Alt+Giù apre il popup del filtro, Alt+Maiusc+Sinistra e Alt+Maiusc+Destra spostano la colonna, Ctrl+Maiusc+G raggruppa per la colonna con il focus e Ctrl+Maiusc+U rimuove quel raggruppamento
  • Un anello di focus visibile e, con un tema Windows ad alto contrasto, la griglia si disegna con i colori di sistema

L'accessibilità è attiva per impostazione predefinita in tutte le edizioni, compresa l'edizione Community gratuita, su VCL in ogni versione di Delphi e C++Builder da Delphi 7 a Delphi 13, su FireMonkey su Windows e su WinForms, WPF e Avalonia. In Delphi e C++Builder, AccessibleName e AccessibleDescription impostano il nome e la descrizione esposti a UI Automation, e in .NET il nome accessibile e il testo della guida standard di ciascun framework fanno lo stesso. Vedi i report di conformità sull'accessibilità. Su Avalonia, che non ha pattern di tabella, ogni cella riporta la propria colonna e posizione nel nome e nel testo della guida. Le larghezze delle colonne si ridimensionano solo con il mouse.

Leggi l'argomento della guida

Guarda sgcGrid all'opera

sgcGrid nelle demo della suite sgcUI: applicazioni complete che funzionano offline con dati simulati integrati.

Un frame 1080p in pochi millisecondi

Ultime medie misurate del gate di prestazioni QA di sgcGrid: un frame 1920 x 1080 con 12 colonne, 100.000 righe e 45 righe visibili, renderizzato 60 volte sul canvas raster. Il gate fallisce sopra i 16 ms per frame su Win64 e 25 ms su Win32.

MisurazioneRisultatoCondizioni
Frame semplice3,0 msWin32
Frame semplice4,6 msWin64
Frame semplice3,7 msLinux64
Lampeggio e 3 regole di formato3,2 msWin32
Lampeggio e 3 regole di formato6,8 msWin64
Demo LiveTicker, scritture da thread di lavoroCirca 1.000 aggiornamenti al secondoGriglia ordinata con lampeggio a 60 fps

Fonte: l'argomento della guida che documenta questi numeri.

Chi sviluppa con sgcGrid

Desk di trading e dati di mercato

Una lavagna delle quotazioni deve restare leggibile mentre centinaia di prezzi cambiano ogni secondo. I thread dei feed scrivono con UpdateRow e non aspettano mai l'interfaccia, il lampeggio mostra la direzione di ogni movimento e la modalità tail mantiene il registro delle operazioni sull'esecuzione più recente. Il ponte sgcGridWS può leggere le quotazioni da WebSocket, MQTT o SSE.

  • Aggiornamenti live
  • Lampeggio al cambiamento
  • Modalità tail
  • Feed live
Esegui la demo LiveTicker

Back office e applicazioni gestionali

Le schermate di inserimento ordini, elenchi di magazzino e fatturazione vivono su un database. Collega il TDataSet esistente, lascia che gli utenti raggruppino per cliente o per mese con i totali in ogni riga di gruppo, correggano i valori direttamente con la convalida, ed esportino una cartella di lavoro che l'ufficio contabile apre con i suoi gruppi e le formule SUBTOTAL intatti.

  • Collegamento a DataSet
  • Raggruppamento e riepiloghi
  • Modifica diretta
  • Esportazione in Excel
Esegui la demo DataSetGrid

Monitoraggio, log e allarmi

Le schermate operative mostrano flussi di eventi senza fine. MaxRows limita il log, le regole di formato colorano di rosso gli errori e la modalità virtuale sfoglia su richiesta un archivio di milioni di righe. Su un server Linux64 il renderer scrive la stessa griglia in un file PNG o SVG per un'e-mail di allarme.

  • Regole di formato
  • MaxRows e modalità tail
  • Modalità virtuale
  • PNG e SVG headless
Esegui la demo LiveFeed

A Live Grid in a Few Lines

The same API in Delphi, C++ Builder and C#: add columns, append rows by key, and update them later from any thread.

A VCL grid in code: typed columns, rows appended by key, and an update by field name from any thread.

uses
  Forms, Classes, Controls,
  sgcGrid_Columns, sgcGrid_Data, sgcGrid_VCL;

procedure CreateGrid(aForm: TForm);
var
  oGrid: TsgcVCLGrid;
begin
  oGrid := TsgcVCLGrid.Create(aForm);
  oGrid.Parent := aForm;
  oGrid.Align := alClient;
  // the columns: FieldName, Caption and DataType
  oGrid.Columns.Add('Symbol', 'Symbol');
  oGrid.Columns.Add('Price', 'Price', gdtFloat).DisplayFormat := '0.00';
  oGrid.Columns.Add('Volume', 'Volume', gdtInteger);
  // one row per key, the values in column order
  oGrid.Data.AppendRow('MSFT', ['MSFT', 412.5, 1200]);
  oGrid.Data.AppendRow('AAPL', ['AAPL', 228.1, 3400]);
  // later, from any thread: update the row of a key by field name
  oGrid.Data.UpdateRow('MSFT', ['Price', 'Volume'], [413.1, 1350]);
end;

Leggi l'argomento della guida →

The same grid in C++ Builder with the generated sgcGrid headers.

#include "sgcGrid_Columns.hpp"
#include "sgcGrid_Data.hpp"
#include "sgcGrid_VCL.hpp"

void __fastcall CreateGrid(TForm *Form)
{
  TsgcVCLGrid *Grid = new TsgcVCLGrid(Form);
  Grid->Parent = Form;
  Grid->Align = alClient;
  // the columns: FieldName, Caption and DataType
  Grid->Columns->Add("Symbol", "Symbol", gdtText);
  Grid->Columns->Add("Price", "Price", gdtFloat)->DisplayFormat = "0.00";
  Grid->Columns->Add("Volume", "Volume", gdtInteger);
  // one row per key, the values in column order
  Grid->Data->AppendRow("MSFT", OPENARRAY(Variant,
    (Variant("MSFT"), Variant(412.5), Variant(1200))));
  Grid->Data->AppendRow("AAPL", OPENARRAY(Variant,
    (Variant("AAPL"), Variant(228.1), Variant(3400))));
  // later, from any thread: update the row of a key by field name
  Grid->Data->UpdateRow("MSFT",
    OPENARRAY(String, (String("Price"), String("Volume"))),
    OPENARRAY(Variant, (Variant(413.1), Variant(1350))));
}

Leggi l'argomento della guida →

A WinForms grid with flashing cells, a negative change rule and the dark theme.

using System.Windows.Forms;
using esegece.sgcGrid;
using esegece.sgcUICore;

internal class MainForm : Form
{
    private readonly TsgcWinFormsGrid Grid = new TsgcWinFormsGrid();

    public MainForm()
    {
        Grid.Dock = DockStyle.Fill;
        // the columns: field name, caption and data type
        Grid.Columns.Add("symbol", "Symbol");
        Grid.Columns.Add("price", "Price", TsgcGridDataType.gdtFloat).DisplayFormat = "#,##0.00";
        Grid.Columns.Add("change", "Change", TsgcGridDataType.gdtFloat).DisplayFormat = "+0.00;-0.00;0.00";
        Grid.Columns.Add("volume", "Volume", TsgcGridDataType.gdtInteger).DisplayFormat = "#,##0";
        // changed cells flash and fade, negative rows are tinted red
        Grid.FlashChanges = true;
        Grid.FormatRules.Add("change", TsgcGridFormatOperator.gfoLess, "0", 0x30E53935).ApplyToRow = true;
        Grid.Theme = TsgcUITheme.utDark;
        // one row per key, the values follow the column order
        Grid.Data.AppendRow("MSFT", "MSFT", 412.5, 0.0, 1200);
        Grid.Data.AppendRow("AAPL", "AAPL", 228.1, 0.0, 3400);
        Controls.Add(Grid);
    }

    // call it from any thread: TsgcGridData is thread safe
    public void OnQuote(string aSymbol, double aPrice, double aChange, int aVolume)
    {
        Grid.Data.UpdateRow(aSymbol, new[] { "price", "change", "volume" },
            new object[] { aPrice, aChange, aVolume });
    }
}
dotnet add package esegece.sgcGrid.WinForms

Leggi l'argomento della guida →

Esegui le demo di sgcGrid

19 demo per Delphi, cinque delle quali FireMonkey, 13 per C++ Builder e 24 per .NET su WinForms, WPF e Avalonia.

LiveTicker

LiveTicker

Circa 1.000 aggiornamenti di prezzo al secondo da un thread di lavoro con UpdateRow, una vista ordinata, celle che lampeggiano e una regola di formato per le variazioni negative. VCL, FireMonkey, C++ Builder, WinForms, WPF e Avalonia.

DataSetGrid

DataSetGrid

Un TsgcGridSource_DataSet collegato a un TClientDataSet di 200 record con KeyField, AutoColumns e LiveUpdates, più esportazione e importazione JSON e CSV.

Solo Registered Spreadsheet

Modalità Excel con tre fogli su una barra di schede: Orders, la cui colonna Total ha la formula di colonna =C1*D1, Summary, con =SUM(Orders!E1:E20) e altre formule tra i fogli, e Notes. Una barra degli strumenti formatta la selezione, esegue i comandi sui fogli e salva e apre file XLSX con le formule, i formati e i nomi dei fogli. VCL, FireMonkey (SpreadsheetFMX), C++ Builder, WinForms, WPF e Avalonia.

ServerModeAndCards

Solo Registered ServerModeAndCards

200.000 ordini generati in un database FireDAC SQLite in memoria, paginati da TsgcGridServerProvider_DataSet. Passa dalla tabella alle card, ordina, filtra, cerca, somma il piè di pagina, raggruppa per paese e cliente con conteggi e somme calcolati da SQL, e riscrivi le modifiche nel database. VCL e C++ Builder; ServerModeAndCardsFMX pagina 100.000 righe generate tramite TsgcGridServerProvider_Callback, e le demo WinForms, WPF e Avalonia hanno pagine con ADO.NET, IQueryable e callback.

GroupAndSummary

GroupAndSummary

100.000 ordini raggruppati per Regione e Categoria con il pannello dei gruppi, i riepiloghi Count, Sum e Average, un piè di pagina e due colonne bloccate. In .NET si chiama Grouping.

FilterAndFind

FilterAndFind

100.000 righe di vendite con i popup a imbuto, la riga filtro e il pannello di ricerca, più il selettore colonne, l'adattamento automatico e un layout salvato in un file e ricaricato. VCL, FireMonkey, C++ Builder, WinForms, WPF e Avalonia.

BandsAndCells

BandsAndCells

2.000 strumenti sotto le bande Instrument, Live data, Price e Position, con celle sparkline, di avanzamento e immagine, selezione di più righe e un pulsante Copy. VCL, C++ Builder e WinForms.

Solo Registered Editing

Una colonna con elenco, una colonna booleana attivata con la barra spaziatrice, OnValidate che rifiuta le quantità negative, OnEditError e un log di OnEdited, più editor di data, ora, numero, colore e token di sgcEditors, un TTrackBar tramite OnCreateEditor, incolla, annulla e ripristina.

DataSetEditing

Solo Registered DataSetEditing

Prodotti e categorie in due TClientDataSet, con un TDBNavigator e due TDBEdit sugli stessi record: WriteBack, SyncCursor, una colonna di lookup, inserimento, eliminazione e annulla. VCL, C++ Builder e WinForms (un DataTable con AddLookup).

TreeAndDetail

Solo Registered TreeAndDetail

Un albero organigramma e clienti con una banda di dettaglio degli ordini riempita tramite un TsgcGridDataStore.

Solo Registered ExcelExport

Una griglia raggruppata e una griglia ad albero salvate con SaveToXLSX e aperte nell'applicazione di fogli di calcolo, con struttura e riepiloghi mantenuti.

GridAndChart

Un riquadro griglia e un riquadro grafico in una dashboard: un TsgcChartDataSource_Table rappresenta le righe della griglia. Richiede sgcCharts e sgcDashboard.

Solo Registered AskYourGrid

TsgcGridAI e la barra di query AI filtrano, ordinano ed evidenziano 200 titoli a partire da domande in linguaggio naturale, senza rete e senza chiave API, accanto al ponte TsgcGridAIQuery. Richiede sgcWebSockets.

Solo Registered LiveFeed

Un server WebSocket in-process trasmette batch JSON di 50 simboli, e un TsgcGridFeedSource_WebSocket li scrive nella griglia per chiave. Delphi e .NET.

Demo compilate

Eseguibili pronti all'uso di ogni prodotto sgcUI, senza nulla da installare.

Scarica sgcUI_bin.zip →

Guida Getting Started

Cinque demo QuickStart per Delphi (VCL) si trovano in Demos\Grid\Delphi\00.QuickStart. La guida PDF le spiega passo dopo passo: una prima griglia, colonne tipizzate, modifica sul posto, la connessione a un dataset e un'applicazione di ordini con filtri, raggruppamenti e totali.

Scarica la guida (PDF, in inglese) →

Dove è incluso sgcGrid

sgcGrid è venduto singolarmente, fa parte di ogni edizione sgcUI da Standard in su ed è nel bundle All-Access.

sgcGrid come pacchetto singolo

€199 / sviluppatore, codice sorgente completo, 1 anno di aggiornamenti.

Acquista sgcGrid → Vedi i prezzi →

sgcUI Standard

sgcGrid, sgcNavigation, sgcToolbar e sgcEditors, da €380.

Vedi Standard →

sgcUI Professional

Standard più sgcCharts, sgcDashboard e sgcGauges, da €529.

Vedi Professional →

sgcUI Enterprise

Tutti i 17 prodotti sgcUI, da €699.

Vedi Enterprise →

L'edizione .NET Community gratuita è esegece.sgcGrid.Community su NuGet. Un progetto fa riferimento ai pacchetti Community oppure a quelli Registered, mai a entrambi. L'edizione Delphi Community gratuita è nella pagina di download.

FunzionalitàCommunity (gratuita)Registered
Aggiornamenti live da qualsiasi thread, lampeggio alla modifica, modalità tail✓✓
Regole di formato con stili di carattere e set di icone, temi✓✓
Ordinamento, filtri e selezione✓✓
Raggruppamento, pannello dei gruppi e riepiloghi✓✓
Colonne bloccate e ridimensionamento delle colonne✓✓
Modalità virtuale✓✓
Collegamento a DataTable, filtro della griglia applicato al DataTable, JSON e CSV✓✓
PNG e SVG senza interfaccia✓✓
Filtri di colonna con periodi di data, riga di filtro e pannello di ricerca✓✓
Selettore di colonne, riordino delle colonne, adattamento automatico, layout automatici e colonne che riempiono la larghezza✓✓
Bande, celle immagine, di avanzamento, sparkline e tag, selezione multipla✓✓
Celle con casella di controllo e con collegamento, immagini da campi BLOB, intestazioni e righe su più righe, suggerimenti✓✓
Intestazione di riga con caselle di controllo, immagini e pulsanti nelle intestazioni, colori di selezione, trascinamento delle righe✓✓
Chiedi alla tua griglia: TsgcGridAI, la barra di query AI e qualsiasi provider LLM✓✓
Modifica diretta nella cella, commutazione delle caselle di controllo, editor memo e lookup−✓
Modifica bidirezionale di DataTable, incolla, annulla e ripeti, editor di cella sgcEditors−✓
Righe ad albero e master detail−✓
Esportazione in Excel−✓
Modalità Excel, formattazione delle celle, fogli e formule di colonna−✓
Modalità server: paginazione del database, ordinamento, filtri, riepiloghi e raggruppamento sul server−✓
Vista a card−✓
Flussi live, TsgcGridAIQuery e il provider AI sgcWebSockets (ponti sgcGridWS e sgcUICoreWS)−✓

Framework e piattaforme supportati

Componenti di sgcGrid

ComponenteTarget
TsgcVCLGridDelphi e C++ Builder, VCL (sgcGrid_VCL)
TsgcFMXGridDelphi FireMonkey da XE6, su Windows, macOS, iOS e Android (sgcGrid_FMX)
TsgcGridData, TsgcGridColumns, TsgcGridFormatRules, TsgcGridLineView, TsgcGridRendererArchivio di righe, colonne, regole di formato e renderer indipendenti dal framework, anche su Linux64
TsgcGridAIMotore di query in linguaggio naturale indipendente dal framework, in ogni edizione e anche su Linux64 (sgcGrid_AI)
TsgcVCLAIQueryBar, TsgcFMXAIQueryBar, TsgcUIAIEventProviderBarra di query AI e provider AI di sgcUICore, in ogni edizione
TsgcUIAIChatProviderPonte sgcUICoreWS: il TsgcAIChat di sgcWebSockets come provider AI (edizione Registered)
TsgcGridSource_DataSet, TsgcGridDataStoreCollegamento a TDataSet e archivio di righe delle bande master detail
TsgcGridFeedSource_WebSocket, TsgcGridFeedSource_MQTT, TsgcGridFeedSource_SSE, TsgcGridAIQueryPonte sgcGridWS con sgcWebSockets (edizione Registered)
TsgcWinFormsGrid, TsgcWpfGrid, TsgcAvaloniaGrid.NET, WinForms, WPF e Avalonia
TsgcGridAI, TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar, TsgcAvaloniaAIQueryBar.NET, query in linguaggio naturale e barra di query AI per WinForms, WPF e Avalonia
TargetComponentePiattaforme
Da Delphi 7 a 13, VCLTsgcVCLGridWin32 e Win64 da XE2
Da Delphi XE6 a 13, FireMonkeyTsgcFMXGridWindows, macOS, iOS e Android
Da C++ Builder 2007 a 13TsgcVCLGrid, TsgcFMXGridHeader .hpp generati e librerie statiche
Da Delphi 10.2 a 13, indipendente dal frameworkModello, formattazione, renderer, JSON e CSVLinux64, ad esempio per generare immagini della griglia su un server
.NET Framework 4.7.2, .NET 8, 9 e 10TsgcWinFormsGrid, griglie WPF e AvaloniaWinForms, WPF, Avalonia, PNG e SVG headless

Domande frequenti

Sì. AppendRow, UpdateRow, UpdateCell e DeleteRow dei dati della griglia sono thread safe, quindi un thread di lavoro scrive le righe per chiave direttamente. La griglia si ridisegna nel thread principale al massimo MaxFPS volte al secondo. Vedi Aggiornamenti live.

Vengono disegnate solo le righe visibili, quindi il costo di un frame dipende dalla finestra, non dal numero di righe. Il gate QA misura un frame 1080p di una griglia da 100.000 righe in 3,0 ms su Win32 e 4,6 ms su Win64. Per i dati che vivono altrove, la modalità virtuale non memorizza righe e chiede i valori man mano che scorrono in vista. Vedi Prestazioni.

Sì, in modalità server. Un provider legge una pagina di righe alla volta, e il database valuta l'ordinamento, i filtri di colonna, la riga filtro, il testo di ricerca, i riepiloghi del piè di pagina, il raggruppamento e il conteggio delle righe. In Delphi e C++ Builder, TsgcGridServerProvider_DataSet costruisce l'SQL per SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase o un dialetto generico e lo esegue tramite qualsiasi componente query. In .NET i provider leggono un IQueryable, come un set di Entity Framework Core, o una connessione ADO.NET, e un provider callback serve qualsiasi altra origine. La vista a card pagina allo stesso modo. La modalità server è nell'edizione Registered. Vedi Modalità server.

Sì. TsgcGridSource_DataSet riempie una griglia da qualsiasi TDataSet, crea le colonne con AutoColumns e, con LiveUpdates, segue ogni Append, Edit e Delete del dataset. Con un KeyField le righe modificate vengono aggiornate sul posto invece di essere ricaricate. In .NET la stessa origine legge un DataTable. Vedi Collegamento a DataSet.

Sì. TsgcVCLGrid è un normale controllo VCL, quindi può stare su un form accanto a un TStringGrid o a un TDBGrid esistente. Una schermata con TDBGrid mantiene il suo dataset e aggiunge un TsgcGridSource_DataSet; una schermata con TStringGrid scrive le sue righe con AppendRow e UpdateRow per chiave. Non esiste una conversione automatica di interi form, ma in fase di progettazione il comando Import columns from DB grid del menu contestuale della griglia copia le colonne, il collegamento al DataSet, la posizione e gli eventi di un TDBGrid esistente.

La modifica diretta, la commutazione delle caselle di controllo, gli editor memo e lookup, la modifica bidirezionale di un DataTable, incolla, annulla e ripristina, gli editor di cella di sgcEditors, le righe ad albero, le righe master detail, l'esportazione in Excel, la modalità Excel con formattazione delle celle, fogli e formule di colonna, la modalità server, la vista a card, il ponte sgcGridWS e il registro delle conferme degli allarmi. Ordinamento, filtri, riga filtro e pannello di ricerca, raggruppamento, riepiloghi, colonne bloccate, selettore colonne, layout e layout automatici, colonne che riempiono la larghezza, bande, celle immagine, di avanzamento, sparkline, tag, con collegamento e con casella di controllo, immagini da campi BLOB, intestazioni e righe su più righe, suggerimenti, la striscia dell'intestazione di riga, immagini e pulsanti nelle intestazioni, trascinamento delle righe, selezione multipla, regole di formato con set di icone, filtri per periodo di data, modalità virtuale, JSON e CSV, l'output headless, l'elenco allarmi ISA-18.2 e Chiedi alla tua griglia con TsgcGridAI sono in ogni edizione. Vedi Edizioni.

Sì. Dimensioni come GroupIndent e GroupPanelHeight sono pixel indipendenti dal dispositivo, e la griglia VCL le scala al DPI del suo monitor, per monitor da Delphi 10.3. Theme passa da utLight a utDark, AccentColor imposta l'accento della selezione e del lampeggio.

Guida di sgcGrid

Devi migrare?

Vieni da TDBGrid o cxGrid?

Un kit di migrazione associa ogni membro di TDBGrid e DevExpress cxGrid che usi al suo equivalente in sgcGrid, con codice da una demo compilata, passaggi di migrazione numerati e le differenze note.

Migra da TDBGrid e cxGrid →
Tutti i kit di migrazione sgcUI →
3,000+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Prova sgcGrid oggi stesso

Il trial di sgcUI include sgcGrid con tutte le funzionalità sbloccate, gli altri 16 prodotti sgcUI e tutti i progetti demo.