Configurare e filtrare un oggetto Griglia dati con modello basato su oggetti

Introduzione

Questo tutorial mostra come configurare un oggetto Griglia dati con modello basato su oggetti di progetto per mostrare i dati di alcuni motori di uno stesso tipo. Inoltre mostra come usare query SQL per filtrare i dati, sia numerici, che letterali, che di tipo data e ora.

Scarica il progetto di esempio da qui.

Query SQL

Negli oggetti Griglia dati, Lista e Selezione a discesa è possibile filtrare i dati di interesse del modello di riferimento tramite query SQL standard.

Con modello basato su database la query non ha limitazioni. Con modello basato su nodi invece è obbligatoria la parte SELECT * FROM Model per selezionare tutti i nodi del modello, seguita dalla clausola WHERE con cui indicare le condizioni di ricerca. I riferimenti utilizzabili nelle condizioni sono le proprietà e/o gli attributi dei nodi del modello (es.: SELECT * FROM Model WHERE Speed > 40).

Passi

  1. Creare il tipo di oggetto Motor e le istanze

  2. Configurare un oggetto Griglia dati per visualizzare dati numerici

  3. Configurare un oggetto Griglia dati per visualizzare dati di tipo data e ora

  4. Configurare una casella di testo per impostare un filtro sui dati numerici a runtime

  5. Filtrare i dati da visualizzare

Creare il tipo di oggetto Motor e le istanze

  1. Creare un nuovo progetto standard.

  2. Nella cartella Model, creare un oggetto e rinominarlo Motor.

  3. In Motor creare le seguenti variabili:

    • Speed, di tipo Int32

    • Acceleration, di tipo Int32

    • ManufactureDate, di tipo DateTime

  4. Per rendere Motor un tipo di oggetto, trascinarlo nel pannello Tipi, in particolare all’interno della cartella Modello: nella cartella Model compare un oggetto Motor (type), ovvero il nuovo tipo, e Motor ne diventa un’istanza.

  5. Nella cartella Model creare una cartella MotorObjects, spostare quindi al suo interno l’istanza Motor e istanziare altri nove oggetti dello stesso tipo.

  6. Assegnare un valore a tutte le proprietà di ciascuna istanza e rinominare l’istanza Motor in FaultyMotor.

Configurare un oggetto Griglia dati per visualizzare dati numerici

  1. In MainWindow creare un oggetto Griglia dati (Nuovo > Controlli dati > Griglia dati), quindi rinominarlo MotorGrid.

  2. Per impostare come elementi della griglia le diverse istanze di Motor, in MotorGrid, nella proprietà Modello impostare un collegamento dinamico con la cartella MotorObjects.

  3. Impostare i dati da visualizzare in MotorGrid:

    1. Per creare una colonna fare clic su + accanto alla proprietà Columns.

    2. Espandere la colonna e in DataItemTemplate, nella proprietà Testo impostare un collegamento dinamico con Alias > {Item} > Motor e selezionare l’attributo BrowseName, poi fare clic su Seleziona. Questa colonna mostra i nomi dei motori, pertanto nella proprietà Titolo scrivere Motor Name.

    3. Ripetere i tre passi precedenti per impostare le colonne che mostrano velocità e accelerazione. Nella proprietà Testo impostare rispettivamente un collegamento dinamico con Alias > {Item} > Motor > Speed e con Alias > {Item} > Motor > Acceleration. Nella proprietà Titolo scrivere rispettivamente Speed e Acceleration.

  4. Per impostare l’ordinamento della griglia sulla base dei nomi dei motori, nella proprietà Colonna di ordinamento impostare un collegamento dinamico con la prima colonna (selezionabile in UI > MainWindow > MotorGrid > Columns).

Configurare un oggetto Griglia dati per visualizzare dati di tipo data e ora

In MainWindow creare un oggetto Griglia dati (Nuovo > Controlli dati > Griglia dati), quindi rinominarlo MotorGrid2.

Per impostare come elementi della griglia le diverse istanze di Motor, in MotorGrid2, nella proprietà Modello impostare un collegamento dinamico con la cartella MotorObjects.

Per impostare i dati da visualizzare, in MotorGrid fare come di seguito:

  1. Per creare una colonna fare clic su + accanto alla proprietà Columns.

  2. Espandere la colonna e in DataItemTemplate, nella proprietà Testo impostare un collegamento dinamico con Alias> {Item} > Motor e selezionare l’attributo BrowseName, poi fare clic su Seleziona. Questa colonna mostra i nomi dei motori, pertanto nella proprietà Titolo scrivere Motor Name.

  3. Ripetere i due passi precedenti per impostare la colonna che mostra la data di fabbricazione. Nella proprietà Testo impostare un collegamento dinamico con Alias > {Item} > Motor > ManufactureDate. Nella proprietà Titolo scrivere Manufacture Date.

Per impostare l’ordinamento della griglia sulla base dei nomi dei motori, nella proprietà Colonna di ordinamentoimpostare un collegamento dinamico con la prima colonna (selezionabile in UI > MainWindow > MotorGrid > Columns).

In MainWindow creare due oggetti Data e ora e rinominarli From e To, poi impostare la loro proprietà Valore con valori a piacere.

Nota

questi dati vengono usati per impostare le date nella query di ricerca

Nella proprietà Query impostare un collegamento dinamico avanzato usando un formattatore di stringhe e impostare come formato la seguente stringa:

SELECT * FROM Model WHERE ManufactureDate BETWEEN {0:sql_literal} and {1:sql_literal}

Collegare i segnaposto {0} e {1} rispettivamente alla proprietà Valore degli oggetti From e To.

Configurare una casella di testo per impostare un filtro sui dati numerici a runtime

Creare un oggetto Casella di testo e rinominarlo FilterTextBox. Nella sua proprietà Testo impostare un collegamento dinamico con la proprietà Query di MotorGrid.

Filtrare i dati da visualizzare

  1. Eseguire il progetto.

  2. Filtrare i dati:

    • Per filtrare i dati numerici da visualizzare, in MotorGrid, nella casella di testo FilterTextBox scrivere la query di ricerca e premere INVIO (vedere Esempi di query per dati numerici e letterali).

    • Per filtrare i dati di MotorGrid2 sulla base di data e ora modificare i valori di From e To e premere INVIO.

Esempi di query per dati numerici e letterali

Visualizzare solo la riga dell’oggetto Motor5:

SELECT * FROM Model WHERE BrowseName = 'Motor5'

Visualizzare solo le righe degli oggetti con Acceleration = 20:

SELECT * FROM Model WHERE Acceleration = 20

Visualizzare solo le righe degli oggetti con Acceleration > 20 e Speed tra 30 e 500:

SELECT * FROM Model WHERE Acceleration > 20 AND Speed BETWEEN 30 AND 500

Visualizzare gli oggetti con BrowseName che inizia con «Faulty»:

SELECT * FROM Model WHERE BrowseName LIKE 'Faulty%'

Vedi anche

Riferimenti

Griglia dati