Differenze tra le versioni di "SIGLAPPSaveObject"

Da SIGLAkb.
(Voci correlate)
 
m (una versione importata)
 
(Nessuna differenza)

Versione attuale delle 16:06, 26 mag 2021

Dp-ingranaggio3.png SCOPO: SIGLA® chiama questa funzione in determinati punti dell'applicazione dopo aver proceduto alla memorizzazione di un dato (in immissione o in revisione).

Libreria SIGPPDLL.DLL
Dp-Pointing256.png

SIGLAPPStart
SIGLAPPStop
SIGLAPPCreateComuni
SIGLAPPCreateDitta
SIGLAPPInit
SIGLAPPSetEsercizio
SIGLAPPDoMenuCommand
SIGLAPPGetMenuItem
SIGLAPPSaveObject
SIGLAPPDeleteObject
SIGLAPPSetSconti
SIGLAPPSetProvvigioni
SIGLAPPSetPrezzo
SIGLAPPExecuteSQL

L'identificatore theActionID consente di stabilire quale procedura di SIGLA® ha invocato la funzione, mentre theObject fornisce le informazioni relative ai dati da salvare.

La sintassi della funzione è la seguente:
 
 
 BOOL DLLCALL SIGLAPPSaveObject(DPObject *theObject,
  int theActionID);
 


Il puntatore theObject deve essere castato sull'oggetto appropriato (vedere le macro SPPSAVE_ che mappano alcuni valori possibili per theActionID).
Gli header files per effettuare il cast dell’oggetto passato come parametro sono distribuiti con il sistema di sviluppo di SIGLA®. Poiché i nomi delle variabili membro delle classi di oggetti di SIGLA® mappano, nella maggior parte dei casi, i nomi dei campi delle tabelle del database la ricerca fra i dati membro delle informazioni necessarie è piuttosto semplice.

Ad esempio, volendo intercettare il salvataggio di un articolo nell’anagrafica di magazzino per chiamare una funzione personalizzata a cui passare codice e descrizione dell’articolo si può modificare la funzione come segue:

 
 
 BOOL DLLCALL SIGLAPPSaveObject(DPObject *theObject,
  int theActionID)
 {
  //per la dichiarazione di customdll si veda
  //l’esempio della SIGLAPPStart;
 
  switch (theActionID)
  {
  case SPPSAVE_ANAMAG:
  {
  DPAnMag *theAnaMag = (DPAnMag *)theObject;
 
  void (FAR PASCAL *SaveAnaMag) (LPSTR codice,
  LPSTR descrizione);
  FARPROC pp;
 
  if(customdll>HINSTANCE_ERROR)
  {
  pp=GetProcAddress(customdll,"SAVEANAMAG");
  if(pp!=NULL)
  {
  SaveAnaMag=(void (FAR PASCAL *)()) pp;
  (*SaveAnaMag)(theAnaMag->codice,theAnaMag->descrizion);
  }
  }
  break;
  }
  }
 
  return TRUE;
 }
 

La seguente tabella mappa i valori possibili per il parametro theActionID e riporta le specifiche dell’oggetto theObject il cui reference viene passato.

Bibliografia

Voci correlate

Come si personalizza SIGLA
La libreria SIGPPDLL
Personalizzazione delle finestre
Anagrafica di magazzino