Scopo
Rappresenta l'insieme dei dati di un pannello DB come oggetto Recordset.
Sintassi
Recordset rsprod = new() // Il nuovo recordset del pannello
//
Prodotti.Recordset := rsprod
//
Prodotti.Recordset := rsprod
Quando letta
Restituisce l'oggetto Recordset in uso nel pannello. Attenzione: se si modifica la posizione del cursore, occorre ripristinarla prima della fine della procedura.
Quando impostata
Imposta un nuovo recordset nel pannello. Attenzione: le colonne selezionate nel recordset devono essere conformi come numero, nome e tipo di dati a quelle della master query del pannello.
Esempio di codice
// *********************************************************
// Explain which processing is carried out by this procedure
// *********************************************************
public void Prodotti.BottoneImposta()
{
Recordset rsprod = new() // Il nuovo recordset del pannello
//
// Seleziono tutti i prodotti che hanno ID dispari
select into recordset (rsprod)
Id as IdProdotto(IDPRODOTTO)
NomeProdotto as NomeProdotto(NOMEPRODOTTO)
Idfornitore as IdfornitoreProdotto(IDFORNPRODOT)
Idcategoria as IdcategoriaProdotto(IDCATEPRODOT)
QuantitaPerUnita as QuantitaPerUnitaProdotto(QUAPERUNIPRO)
PrezzoUnitario as PrezzoUnitarioProdotto(PREZUNITPROD)
Scorte as ScorteProdotto(SCORTEPRODOT)
QuantitaOrdinata as QuantitaOrdinataProdotto(QUANORDIPROD)
LivelloDiRiordino as LivelloDiRiordinoProdotto(LIVEDIRIOPRO)
Sospeso as SospesoProdotto(SOSPESPRODOT)
from
Prodotti // Master Table
where
Id % C2 = ONE
//
// Ora visualizzo il recordset nel pannello
Prodotti.Recordset := rsprod
}
// Explain which processing is carried out by this procedure
// *********************************************************
public void Prodotti.BottoneImposta()
{
Recordset rsprod = new() // Il nuovo recordset del pannello
//
// Seleziono tutti i prodotti che hanno ID dispari
select into recordset (rsprod)
Id as IdProdotto(IDPRODOTTO)
NomeProdotto as NomeProdotto(NOMEPRODOTTO)
Idfornitore as IdfornitoreProdotto(IDFORNPRODOT)
Idcategoria as IdcategoriaProdotto(IDCATEPRODOT)
QuantitaPerUnita as QuantitaPerUnitaProdotto(QUAPERUNIPRO)
PrezzoUnitario as PrezzoUnitarioProdotto(PREZUNITPROD)
Scorte as ScorteProdotto(SCORTEPRODOT)
QuantitaOrdinata as QuantitaOrdinataProdotto(QUANORDIPROD)
LivelloDiRiordino as LivelloDiRiordinoProdotto(LIVEDIRIOPRO)
Sospeso as SospesoProdotto(SOSPESPRODOT)
from
Prodotti // Master Table
where
Id % C2 = ONE
//
// Ora visualizzo il recordset nel pannello
Prodotti.Recordset := rsprod
}
- Attenzione: Se si desidera effettuare un ciclo sulle righe attualmente presenti nel pannello non è necessario utilizzare questa proprietà ma è sufficiente tirare con il drag&drop il pannello nella procedura per creare il ciclo FOR-EACH-ROW desiderato. Questo metodo funziona per ogni tipo di pannello (DB, DO, IMDB).
- Questa funzione deve essere utilizzata solo con pannelli DB (cioè dove la Master Query seleziona i dati da un database) e non con pannello IMDB o DO per i quali il recordset è sempre vuoto e chiuso.
- Il recordset è effettivamente aperto solo se il pannello non è in stato QBE.
- Se si muove il cursore del recordset del pannello, occorre ripristinarne la posizione originale prima possibile.
- Se si imposta un nuovo recordset, le colonne devono essere conformi a quelle del pannello. Se il pannello era in stato UPDATED, le modifiche vengono perse.
- Se si modifica lo stato di apertura/chiusura del recordset, si otterranno degli errori nelle successive operazioni del pannello.
Ultima modifica: 06/10/2021 / Validità: da 6.5.2680