English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Document Orientation
  • ID Document
  • Data Base

Get QBE Clauses

procedura copia link

Scopo

Questa procedura permette di recuperare le clausole Where e Order By che sarebbero state utilizzate per il caricamento della collection da parte della funzione LoadCollectionByExample e simili. L'utilizzo primario di questa procedura e quello di consentire il caricamento personalizzato delle collection all'interno dell'evento BeforeLoadCollection senza perdere la gestione automatica del QBE.

Sintassi

Documento.GetQBEClauses(collection, usa qbe, where clause, order by clause, alias)

Argomenti

Collection Collection da cui verranno estratti i criteri di ordinamento per calcolare la clausola Order By. E' possibile passare null object.
Usa QBE Parametro booleano. Se impostato a True allora i valori delle proprietà del documento verranno interpretati come criteri QBE.
Where Clause E' un parametro stringa di output che conterrà la clausola di Where calcolata dalla procedura.
Order By Clause E' un parametro stringa di output che conterrà la clausola di Order By calcolata dalla procedura.
Alias E' un parametro di input/output che conterrà l'alias utilizzato per costruire i nomi delle colonne delle clausole. Vedi le note per maggiori informazioni.

Esempio di codice

// ****************************************************************************
// Evento notificato al documento prima di caricare una collection del suo tipo
// ****************************************************************************

event ProdottoBE.BeforeLoadCollection(
  IDDocument Parent       // E' il documento padre che ha chiesto il caricamento della collection. Può essere Nul...
  IDCollection Collection // E' la collection da caricare.
  inout boolean Skip      // Parametro di output booleano. Se impostato a True, allora il caricamento standard no...
)
{
  string wc = ""       // Where Clause
  string oc = ""       // Order By Clause
  string al = "A."     // Richiedo alias A.
  Recordset rs = new() // This variable contains the recordset returned by the linked query
  // 
  // Prelevo le clausole di filtro che sarebbero state usate dal QBE

  this.GetQBEClauses(Collection, Parent IS Null Object, wc, oc, al)
  // 
  this.GetQBEClauses(Null Object, Null Object, Empty String, Empty String, Empty String)
  // 
  // Nessun criterio = criterio nullo

  if wc = Empty String
  {
    wc := 0=0
  }
  // 
  // Carico i prodotti (solo quelli pari), passando le WHERE

  select into recordset (rs)
    set Id := Id
    set NomeProdotto := NomeProdotto
    set Idfornitore := Idfornitore
    set Idcategoria := Idcategoria
    set QuantitaPerUnita := QuantitaPerUnita
    set PrezzoUnitario := PrezzoUnitario
    set Scorte := Scorte
    set QuantitaOrdinata := QuantitaOrdinata
    set LivelloDiRiordino := LivelloDiRiordino
    set Sospeso := Sospeso
  from
    Prodotti // Master Table
  where
    Id % C2 = ZERO
    wc
  // 
  // Metto i record dentro la collection

  this.LoadCollectionFromRecordset(Collection, rs, ??)
  // 
  Skip := True
}
  • Il parametro Alias può essere utilizzato per impostare l'alias dei nomi delle colonne all'interno delle clausole. Questo può avvenire solo se il documento non ha una master query, la collection non ha una query di caricamento ed infine il documento non è stato esteso da altri documenti. In tutti questi casi l'alias verrà deciso dal framework in base alla situazione e ritornato al chiamante.
  • Se la procedura viene utilizzata all'interno dell'evento BeforeLoadCollection si consiglia di impostare il parametro Usa QBE all'espressione Parent Is Null Object.

Ultima modifica: 20/09/2021 / Validità: da 7.5.3400

Vedi Anche

  • Load Collection By Example (procedura)
  • Before Load Collection (evento)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum