La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Eventi di salvataggio VBA Come vengono gestiti i recordset di Input e quelli di Output.

Presentazioni simili


Presentazione sul tema: "Eventi di salvataggio VBA Come vengono gestiti i recordset di Input e quelli di Output."— Transcript della presentazione:

1 Eventi di salvataggio VBA Come vengono gestiti i recordset di Input e quelli di Output

2 Eventi di salvataggio VBA Entrambi gli eventi VBA hanno un vettore di recordset di Input e uno di Output VBASalvaPre(ByRef a_arstRecordsetArray() As Variant,..., ByRef a_vntRecordsetArray() As ADODB.Recordset, a_blnVBACancel) Codice eseguito da e/: If not a_blnVBACancel Then a_vntRecordsetArray() = Business.Salva(..., a_arstRecordsetArray(),... ) End If VBASalvaPost(ByRef a_arstRecordsetArray() As Variant,..., ByRef a_vntRecordsetArray() As ADODB.Recordset) a_arstRecordsetArray() = Array di RecordSet di input a_vntRecordsetArray() = Array di RecordSet di output Il vettore di Input è dichiarato come Variant, quello di Output è tipizzato e dichiarato come ADODB.Recordset

3 Eventi di salvataggio VBA Tramite il parametro VBACancel dellevento SalvaPre si può saltare lesecuzione del Salva standard dello user. Se VBACancel vale True lo user non esegue il salva standard del business… Business.Salva VBASalvaPre Rs_IRs_Oa_blnVBACancel RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output True

4 Eventi di salvataggio VBA … e i vettori dei recordset di input e output vengono passati direttamente allevento VBASalvaPost Business.Salva VBASalvaPre Rs_IRs_O RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output True a_blnVBACancel VBASalvaPostRs_IRs_O

5 Eventi di salvataggio VBA Alla fine del processo di salvataggio i recordset di output vengono utilizzati per riempire i campi della gestione dalla RecordAControlli. RecordAControlli Business.Salva VBASalvaPre Rs_IRs_O True a_blnVBACancel VBASalvaPostRs_IRs_O RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output

6 Eventi di salvataggio VBA Lasciando invece inalterato il parametro a_blnVBACancel (a_blnVBACancel = false) lo user esegue il salva standard dopo levento VBASalvaPre… VBASalvaPre Rs_IRs_Oa_blnVBACancel RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output False Business.Salva

7 Eventi di salvataggio VBA … e i recordset di input vengono utilizzati dal salva standard del business che si occupa di ricreare i recordset di Output VBASalvaPre Rs_IRs_Oa_blnVBACancel RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output False Business.Salva

8 Eventi di salvataggio VBA I recordset di input vengono usati dal salva standard per eseguire il salvataggio dei dati e poi passati allevento VBA I recordset di output vengono invece ricreati dal business e quindi passati VBASalvaPost… VBASalvaPre Rs_IRs_Oa_blnVBACancel RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output False Business.Salva Rs_O VBASalvaPostRs_IRs_O

9 Eventi di salvataggio VBA … che viene poi utilizzato per riempire i campi dello user. VBASalvaPre Rs_IRs_Oa_blnVBACancel RS_I = Array di RecordSet di input RS_O = Array di RecordSet di output False Business.Salva Rs_O VBASalvaPostRs_IRs_O RecordAControlli

10 Come utilizzare gli eventi di salvataggio VBA -Si possono modificare i recordset di input per scegliere i dati con cui il salva standard del business eseguirà loperazione di salvataggio -Utilizzare a_blnVBACancel per saltare eventualmente lesecuzione del salva standard, in questo modo è possibile anche estendere la transazione -Se si salta il salva standard è necessario impostare i vettori dei recordset di output dato che questa operazione verrebbe eseguita appunto dal salva del business. Il codice di esempio per fare questa operazione è: -Utilizzare i valori dei recordset di input per sapere i dati della gestione prima del salvataggio -Si possono modificare i recordset di output per gestire i valori con cui vengono riempiti i campi della gestione dopo il salvataggio -Levento VBASalvaPost viene eseguito indipendentemente da a_blnVBACancel, quindi sia che si sia scelto di saltare il salva standard sia che venga eseguito Evento VBASalvaPreEvento VBASalvaPost ReDim a_vntRecordsetArray(UBound(a_arstRecordsetArray)) As ADODB.Recordset For i = 0 To UBound(a_arstRecordsetArray) Set a_vntRecordsetArray(i) = a_arstRecordsetArray(i) Next i


Scaricare ppt "Eventi di salvataggio VBA Come vengono gestiti i recordset di Input e quelli di Output."

Presentazioni simili


Annunci Google