Differenze tra le versioni di "Esempio SPPSERV/Fattura vendita contabilità/cpp"

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

Versione attuale delle 18:48, 10 apr 2020

Dp-ingranaggio3.png Questo esempio illustra come utilizzare le funzioni della SPPSERV.DLL per la registrazione di una fattura di vendita (solo dati contabili). L'esempio è stato sviluppato in C++ e compilato con Visual Studio 2008.

Prima di utilizzare questo esempio è necessario modificare opportunamente alcuni dati come le stringhe di connessione ai database dei dati comuni e ditta, i sottoconti, le date ecc..

Dp-acceptn72x72.png Questo sorgente è fornito a titolo di esempio come dimostrazione dell'utilizzo della libreria SPPSERV.DLL. Nessuna garanzia, né implicita né esplicita, è prevista per qualsiasi utilizzo diverso da quello indicato.
 
 
 /* --------------------------------------------------------------------------------
  *
  * Programma di esempio per la registrazione di una fattura di vendita utilizzando
  * le funzioni della libreria SPPSERV.DLL.
  * Prima di utilizzare questo esempio è necessario modificare alcune informazioni
  * in modo da adattare il codice alla base dati utilizzata.
  *
  * In questo esempio l'esercizio di lavoro e' considerato corrispondente all'anno
  * solare in corso e le date impostate per default a quella attuale.
  *
  * QUESTO SORGENTE E' FORNITO A TITOLO DI ESEMPIO COME DIMOSTRAZIONE DELL'UTILIZZO
  * DELLA LIBRERIA SPPSERV.DLL. NESSUNA GARANZIA, NE' IMPLICITA NE' ESPLICITA, E'
  * PREVISTA PER QUALSIASI UTILIZZO DIVERSO DA QUELLO INDICATO.
  *
  -------------------------------------------------------------------------------- */
 #include "stdafx.h"
 #include <iostream>
 #include <windows.h>
 #include <stdio.h>
 
 using namespace std;
 
 #define MY_LIBRARY_NAME "sppserv.dll"
 #define SPPSRV_SUCCESS 0
 #define DLLCALL __stdcall
 
 // prototipi delle funzioni della sppserv.dll
 int (DLLCALL *SPPSRVVersion)(void);
 int (DLLCALL *SPPSRVInit)(HWND mainwnd);
 int (DLLCALL *SPPSRVExit)(void);
 int (DLLCALL *SPPSRVComuniConnect)(LPSTR comuniconnectstring);
 int (DLLCALL *SPPSRVDittaConnect)(LPSTR dittaconnectstring);
 int (DLLCALL *SPPSRVSetEsercizio)(LPSTR esercizio);
 int (DLLCALL *SPPSRVSetEuro)(UCHAR IsEuro);
 int (DLLCALL *SPPSRVSetUtente)(LPSTR utente);
 int (DLLCALL *SPPSRVSetTodayDate)(LPSTR todaydate);
 int (DLLCALL *SPPSRVActivateTransaction)(void);
 long int (DLLCALL *SPPSRVGetNum)(LPSTR code);
 int (DLLCALL *SPPSRVInitMovcoTransaction)(void);
 int (DLLCALL *SPPSRVEndMovcoTransaction)(void);
 int (DLLCALL *SPPSRVSetMovcoField)(LPSTR fldname,LPSTR value);
 int (DLLCALL *SPPSRVAppendMovcoRecord)(void);
 int (DLLCALL *SPPSRVCheckMovcoRecord)(void);
 int (DLLCALL *SPPSRVSetMovIvaField)(LPSTR fldname,LPSTR value);
 int (DLLCALL *SPPSRVAppendMovIvaRecord)(void);
 int (DLLCALL *SPPSRVCheckMovIvaRecord)(void);
 int (DLLCALL *SPPSRVGetMovcoField)(LPSTR fldname,LPSTR value,int valuelen);
 
 // funzioni ausiliarie
 void ReportError(const char *Msg);
 void SetMovcoField(LPSTR fldname,LPSTR value);
 void SetMovIvaField(LPSTR fldname,LPSTR value);
 
 int _tmain(int argc, _TCHAR* argv[])
 {
  HINSTANCE dll;
  FARPROC pp;
  UCHAR IsError;
  int rc;
  long int nprot;
  HWND hMainWnd;
  char MovcoNum[16];
  char numeroprot[8], numerodoc[11], adata[9], esercizio[5];
  SYSTEMTIME now;
 
  MovcoNum[0] = 0;
  numeroprot[0] = 0;
  numerodoc[0] = 0;
  nprot = -1;
  rc = 0;
  dll = NULL;
 
  hMainWnd = GetDesktopWindow();
 
  cout << endl;
  cout << "Inizio test " << MY_LIBRARY_NAME << endl;
  cout << "---------------------------------------------------" << endl;
  cout << endl;
 
  //--------------------------------------------------------------//
 
  cout << "Caricamento DLL e estrazione funzioni..." << endl;
  cout << endl;
 
  // caricamento della dll
  dll=LoadLibrary(MY_LIBRARY_NAME);
  if(dll!=NULL) {
  cout << " " << MY_LIBRARY_NAME << " caricata con successo" << endl;
  }
  else {
  cout << "**********************************************" << endl;
  cout << "ERRORE: LoadLibrary(\"" << MY_LIBRARY_NAME << "\") fallita!" << endl;
  ReportError("Dettagli");
  cout << "**********************************************" << endl;
  goto END_OF_TEST;
  }
 
  cout << endl;
 
  // estrazione delle funzioni esportate dalla dll
  IsError = 0;
  //int DLLCALL SPPSRVInit(HWND mainwnd);
  pp=GetProcAddress(dll,"SPPSRVInit");
  if(pp!=NULL) {
  SPPSRVInit=(int (DLLCALL *)(HWND)) pp;
  cout << " " << "SPPSRVInit" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVInit" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVVersion(void);
  pp=GetProcAddress(dll,"SPPSRVVersion");
  if(pp!=NULL) {
  SPPSRVVersion=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVVersion" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVVersion" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVExit(void);
  pp=GetProcAddress(dll,"SPPSRVExit");
  if(pp!=NULL) {
  SPPSRVExit=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVExit" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVExit" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVComuniConnect(LPSTR comuniconnectstring);
  pp=GetProcAddress(dll,"SPPSRVComuniConnect");
  if(pp!=NULL) {
  SPPSRVComuniConnect=(int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVComuniConnect" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVComuniConnect" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVDittaConnect(LPSTR dittaconnectstring);
  pp=GetProcAddress(dll,"SPPSRVDittaConnect");
  if(pp!=NULL) {
  SPPSRVDittaConnect=(int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVDittaConnect" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVDittaConnect" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetEsercizio(LPSTR esercizio);
  pp=GetProcAddress(dll,"SPPSRVSetEsercizio");
  if(pp!=NULL) {
  SPPSRVSetEsercizio=(int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVSetEsercizio" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetEsercizio" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetUtente(LPSTR utente);
  pp=GetProcAddress(dll,"SPPSRVSetUtente");
  if(pp!=NULL) {
  SPPSRVSetUtente=(int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVSetUtente" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetUtente" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetTodayDate(LPSTR todaydate);
  pp=GetProcAddress(dll,"SPPSRVSetTodayDate");
  if(pp!=NULL) {
  SPPSRVSetTodayDate=(int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVSetTodayDate" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetTodayDate" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetEuro(UCHAR IsEuro);
  pp=GetProcAddress(dll,"SPPSRVSetEuro");
  if(pp!=NULL) {
  SPPSRVSetEuro=(int (DLLCALL *)(UCHAR)) pp;
  cout << " " << "SPPSRVSetEuro" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetEuro" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  #ifndef STARTSUITE
  //int DLLCALL SPPSRVActivateTransaction(void);
  pp=GetProcAddress(dll,"SPPSRVActivateTransaction");
  if(pp!=NULL) {
  SPPSRVActivateTransaction=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVActivateTransaction" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVActivateTransaction" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  #endif
  //long int DLLCALL SPPSRVGetNum(LPSTR code);
  pp=GetProcAddress(dll,"SPPSRVGetNum");
  if(pp!=NULL) {
  SPPSRVGetNum=(long int (DLLCALL *)(LPSTR)) pp;
  cout << " " << "SPPSRVGetNum" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVGetNum" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVInitMovcoTransaction(void);
  pp=GetProcAddress(dll,"SPPSRVInitMovcoTransaction");
  if(pp!=NULL) {
  SPPSRVInitMovcoTransaction=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVInitMovcoTransaction" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVInitMovcoTransaction" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVEndMovcoTransaction(void);
  pp=GetProcAddress(dll,"SPPSRVEndMovcoTransaction");
  if(pp!=NULL) {
  SPPSRVEndMovcoTransaction=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVEndMovcoTransaction" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVEndMovcoTransaction" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetMovcoField(LPSTR fldname,LPSTR value);
  pp=GetProcAddress(dll,"SPPSRVSetMovcoField");
  if(pp!=NULL) {
  SPPSRVSetMovcoField=(int (DLLCALL *)(LPSTR, LPSTR)) pp;
  cout << " " << "SPPSRVSetMovcoField" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetMovcoField" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVCheckMovcoRecord(void);
  pp=GetProcAddress(dll,"SPPSRVCheckMovcoRecord");
  if(pp!=NULL) {
  SPPSRVCheckMovcoRecord=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVCheckMovcoRecord" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVCheckMovcoRecord" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVAppendMovcoRecord(void);
  pp=GetProcAddress(dll,"SPPSRVAppendMovcoRecord");
  if(pp!=NULL) {
  SPPSRVAppendMovcoRecord=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVAppendMovcoRecord" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVAppendMovcoRecord" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVSetMovIvaField(LPSTR fldname,LPSTR value);
  pp=GetProcAddress(dll,"SPPSRVSetMovIvaField");
  if(pp!=NULL) {
  SPPSRVSetMovIvaField=(int (DLLCALL *)(LPSTR, LPSTR)) pp;
  cout << " " << "SPPSRVSetMovIvaField" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVSetMovIvaField" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVCheckMovIvaRecord(void);
  pp=GetProcAddress(dll,"SPPSRVCheckMovIvaRecord");
  if(pp!=NULL) {
  SPPSRVCheckMovIvaRecord=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVCheckMovIvaRecord" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVCheckMovIvaRecord" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVAppendMovIvaRecord(void);
  pp=GetProcAddress(dll,"SPPSRVAppendMovIvaRecord");
  if(pp!=NULL) {
  SPPSRVAppendMovIvaRecord=(int (DLLCALL *)(void)) pp;
  cout << " " << "SPPSRVAppendMovIvaRecord" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVAppendMovIvaRecord" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
  //int DLLCALL SPPSRVGetMovcoField(LPSTR fldname,LPSTR value,int valuelen);
  pp=GetProcAddress(dll,"SPPSRVGetMovcoField");
  if(pp!=NULL) {
  SPPSRVGetMovcoField=(int (DLLCALL *)(LPSTR, LPSTR, int)) pp;
  cout << " " << "SPPSRVGetMovcoField" << " caricata con successo" << endl;
  }
  else {
  cout << "**************************************************************" << endl;
  cout << "ERRORE: GetProcAddress(dll,\"" << "SPPSRVGetMovcoField" << "\") fallita!" << endl;
  cout << "**************************************************************" << endl;
  IsError = 1;
  }
 
  if(IsError) goto END_OF_TEST;
 
  //--------------------------------------------------------------//
 
  cout << endl;
  cout << "Test inserimento fattura di vendita..." << endl;
  cout << endl;
 
  /*
  * §: ESEMPIO di registrazione di una fattura di vendita
  * Il codice che segue realizza la registrazione di una fattura di vendita.
  * Viene gestita anche l’acquisizione del numero di protocollo iva.
  */
 
  // inizializzazione della DLL
  rc = SPPSRVInit(hMainWnd);
  cout << " " << "SPPSRVInit" << " ha tornato: " << rc << endl;
  if( rc!=SPPSRV_SUCCESS ) goto END_OF_TEST;
  // numero di versione della dll
  rc = SPPSRVVersion();
  cout << " " << "SPPSRVVersion" << " ha tornato: " << rc << endl;
  // connessione al database dei dati comuni e dei dati ditta
  #ifdef STARTSUITE
  // versione per SIGLA StartSuite (archivi dui tipo DBF)
  rc = SPPSRVComuniConnect("C:\\SIGLAPP\\PROVGEN");
  cout << " " << "SPPSRVComuniConnect" << " ha tornato: " << rc << endl;
  if( rc!=SPPSRV_SUCCESS ) goto FINE;
  rc = SPPSRVDittaConnect("C:\\SIGLAPP\\PROVDIT");
  cout << " " << "SPPSRVDittaConnect" << " ha tornato: " << rc << endl;
  if( rc!=SPPSRV_SUCCESS ) goto FINE;
  #else
  // versione per SIGLA (accesso ai dati via ODBC)
  rc = SPPSRVComuniConnect("DSN=SPPGEN;UID=sigla;PWD=sigla");
  cout << " " << "SPPSRVComuniConnect" << " ha tornato: " << rc << endl;
  if( rc!=SPPSRV_SUCCESS ) goto FINE;
  rc = SPPSRVDittaConnect("DSN=SPPDIT;UID=sigla;PWD=sigla");
  cout << " " << "SPPSRVDittaConnect" << " ha tornato: " << rc << endl;
  if( rc!=SPPSRV_SUCCESS ) goto FINE;
  rc = SPPSRVActivateTransaction();
  cout << " " << "SPPSRVActivateTransaction" << " ha tornato: " << rc << endl;
  #endif
  sprintf(adata, "20120412");
  sprintf(esercizio, "2012");
  // impostazione dell'esercizio di lavoro
  rc = SPPSRVSetEsercizio(esercizio);
  cout << " " << "SPPSRVSetEsercizio" << " ha tornato: " << rc << endl;
  // impostazione dell'utente
  rc = SPPSRVSetUtente("SIGLA ");
  cout << " " << "SPPSRVSetUtente" << " ha tornato: " << rc << endl;
  // impostazione della data
  rc = SPPSRVSetTodayDate(adata);
  cout << " " << "SPPSRVSetTodayDate" << " ha tornato: " << rc << endl;
  // impostazione dell'euro come valuta di lavoro
  rc = SPPSRVSetEuro(1);
  cout << " " << "SPPSrvSetEuro" << " ha tornato: " << rc << endl;
  // acquisizione del protocollo iva dal numeratore V1 (associato alla causale contabile
  // utilizzata); per la ft. di vendita si utilizza sia come protocollo che come numero
  // documento (N.B.: SPPSRVGetNum esegue automaticamente una Commit)
  nprot=SPPSRVGetNum("V1");
  cout << " " << "SPPSRVGetNum" << " ha tornato: " << nprot << endl;
  if( nprot<0 ) goto FINE;
  // memorizzazione del numero acquistito in formato ASCII
  sprintf(numeroprot, "%07ld", nprot);
  sprintf(numerodoc, "%010ld", nprot);
 
  // inizializzazione della transazione
  rc = SPPSRVInitMovcoTransaction();
  cout << " " << "SPPSRVInitMovcoTransaction" << " ha tornato: " << rc << endl;
  if( rc==SPPSRV_SUCCESS )
  {
  // solo dopo l'inizializzazione può essere letto il valore del campo NUMERO
  // della tabella MOVCO (sarà automaticamente utilizzato anche per MOVIVA)
  rc = SPPSRVGetMovcoField("NUMERO",(LPSTR) MovcoNum, sizeof(MovcoNum));
  cout << " " << "SPPSRVGetMovcoField NUMERO" << " ha tornato: " << rc << endl;
  }
 
  // registrazione del record sul cliente (1o record di MOVCO)
  cout << "Registrazione del record sul cliente..." << endl;
  SetMovcoField("DATAREG", adata);
  SetMovcoField("ESEREGISTR", esercizio);
  SetMovcoField("DATACOMPET", adata);
  SetMovcoField("DTCOMPCONT", adata);
  SetMovcoField("ESECOMPET", esercizio);
  SetMovcoField("SOTTOCONTO", "DELTA ");
  SetMovcoField("C_F", "C");
  SetMovcoField("SEGNO", "D");
  // imposta la causale contabile
  SetMovcoField("CAUSALE", "COR");
  SetMovcoField("EIMPORTO","121.00");
  SetMovcoField("EIMPFATTUR","121.00");
  // imposta data e numero del documento
  SetMovcoField("DATAPROTOC", adata);
  SetMovcoField("DATADOCUM", adata);
  SetMovcoField("NUMDOCUM", numerodoc);
  SetMovcoField("NUMPROTOC", numeroprot);
  // imposta il codice del registro IVA (dipende dalla causale contabile)
  SetMovcoField("REGIVA", "CO");
  // imposta il tipo documento IVA (dipende dalla causale contabile)
  SetMovcoField("TIPODOCIVA", "CO");
  // imposta il campo CASO a "prima nota iva"
  SetMovcoField("CASO", "0");
  // controllo e inserimento del record
  rc = SPPSRVCheckMovcoRecord();
  cout << " " << "SPPSRVCheckMovcoRecord" << " ha tornato: " << rc << endl;
  rc = SPPSRVAppendMovcoRecord();
  cout << " " << "SPPSRVAppendMovcoRecord" << " ha tornato: " << rc << endl;
  // registrazione del record sul ricavo (2o record di MOVCO)
  cout << "Registrazione del record sul ricavo..." << endl;
  SetMovcoField("SOTTOCONTO", "VENMAT ");
  SetMovcoField("CONTROPART", "DELTA ");
  SetMovcoField("C_F", "A");
  SetMovcoField("SEGNO", "A");
  SetMovcoField("EIMPORTO", "100.00");
  // i campi non impostati mantengono il valore del record precedente
  // controllo e inserimento del record
  rc = SPPSRVCheckMovcoRecord();
  cout << " " << "SPPSRVCheckMovcoRecord" << " ha tornato: " << rc << endl;
  rc = SPPSRVAppendMovcoRecord();
  cout << " " << "SPPSRVAppendMovcoRecord" << " ha tornato: " << rc << endl;
  // registrazione del record sull’iva (3o record di MOVCO)
  cout << "Registrazione del record sull'iva..." << endl;
  SetMovcoField("SOTTOCONTO", "2370101003");
  SetMovcoField("SEGNO", "A");
  SetMovcoField("EIMPORTO", "21.00");
  SetMovcoField("EIMPORTOIV", "21.00");
  SetMovcoField("MOV_IVA_SN", "S");
  // controllo e inserimento del record
  rc = SPPSRVCheckMovcoRecord();
  cout << " " << "SPPSRVCheckMovcoRecord" << " ha tornato: " << rc << endl;
  rc = SPPSRVAppendMovcoRecord();
  cout << " " << "SPPSRVAppendMovcoRecord" << " ha tornato: " << rc << endl;
  // registra un record su MOVIVA
  cout << "Registrazione del record su moviva..." << endl;
  SetMovIvaField("SOTTOCONTO", "DELTA ");
  SetMovIvaField("C_F", "C");
  SetMovIvaField("TIPODOCIVA", "CO");
  SetMovIvaField("REGISTRO", "CO");
  SetMovIvaField("NUMPROTOC", numeroprot);
  SetMovIvaField("NUMERODOC", numerodoc);
  SetMovIvaField("DATADOC", adata);
  SetMovIvaField("DATAREG", adata);
  SetMovIvaField("ETOTFATTUR","121.00");
  SetMovIvaField("EIMPONIBIL","100.00");
  SetMovIvaField("CODIVA","21 ");
  SetMovIvaField("EIMPOSTA","21.00");
  // controllo e inserimento del record
  rc = SPPSRVCheckMovIvaRecord();
  cout << " " << "SPPSRVCheckMovIvaRecord" << " ha tornato: " << rc << endl;
  rc = SPPSRVAppendMovIvaRecord();
  cout << " " << "SPPSRVAppendMovIvaRecord" << " ha tornato: " << rc << endl;
 
  // termine della transazione
  rc = SPPSRVEndMovcoTransaction();
  cout << " " << "SPPSRVEndMovcoTransaction" << " ha tornato: " << rc << endl;
 
  cout << "registrazione eseguita MOVCO.NUMERO = '" << MovcoNum << "'" << endl;
 
 FINE:
  // resetta la DLL
  rc = SPPSRVExit();
  cout << " " << "SPPSRVExit" << " ha tornato: " << rc << endl;
 
  cout << endl;
 
 END_OF_TEST:
 
  if(dll!=NULL) FreeLibrary(dll);
 
  cout << endl;
  cout << "---------------------------------------------------" << endl;
  cout << "fine test " << MY_LIBRARY_NAME << endl;
  cout << endl;
 
  cout << "... premere <INVIO> per terminare..." << endl;
  char ch;
  cin.get(ch);
  cin.clear();
  return 0;
 }
 
 void ReportError(const char *Msg)
 {
  LPVOID lpMsgBuf;
  DWORD ErrorCode = GetLastError ();
  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS |
  FORMAT_MESSAGE_MAX_WIDTH_MASK | FORMAT_MESSAGE_ALLOCATE_BUFFER,
  NULL, ErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  (LPTSTR) &lpMsgBuf, 0, NULL);
  printf("%s: errore %ld (%s)\n", Msg, ErrorCode, lpMsgBuf);
  LocalFree(lpMsgBuf);
 }
 
 void SetMovcoField(LPSTR fldname,LPSTR value)
 {
  int rc;
 
  rc = SPPSRVSetMovcoField(fldname, value);
  if( rc!=SPPSRV_SUCCESS )
  cout << " " << "SPPSRVSetMovcoField " << fldname << " ha tornato: " << rc << endl;
 }
 
 void SetMovIvaField(LPSTR fldname,LPSTR value)
 {
  int rc;
 
  rc = SPPSRVSetMovIvaField(fldname, value);
  if( rc!=SPPSRV_SUCCESS )
  cout << " " << "SPPSRVSetMovIvaField " << fldname << " ha tornato: " << rc << endl;
 }
 

Bibliografia

Voci correlate

Come si personalizza SIGLA
SPPSERV.DLL