Patch level : 10.0 patch 535
Files correlati : lv2 lv2400a.msk Ricompilazione Demo : [ ] Commento : Corretta la stampa automatica da doc a doc in lv2900 Implementata la stampa automatica da doc a doc in lv2400 git-svn-id: svn://10.65.10.50/trunk@19695 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									f1b1a1ae3a
								
							
						
					
					
						commit
						4ea5ca71ed
					
				@ -1,5 +1,6 @@
 | 
				
			|||||||
#include <applicat.h>
 | 
					#include <applicat.h>
 | 
				
			||||||
#include <automask.h>
 | 
					#include <automask.h>
 | 
				
			||||||
 | 
					#include <execp.h>
 | 
				
			||||||
#include <progind.h>
 | 
					#include <progind.h>
 | 
				
			||||||
#include <reputils.h>
 | 
					#include <reputils.h>
 | 
				
			||||||
#include <reprint.h>
 | 
					#include <reprint.h>
 | 
				
			||||||
@ -27,7 +28,7 @@ class TGenera_documenti_msk : public TAutomask
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
					  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
				
			||||||
  TGenera_documenti_msk (const char* name) : TAutomask(name) {}
 | 
					  TGenera_documenti_msk (const char* name) : TAutomask(name) {set(F_STAMPA, 'X');}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//ON_FIELD_EVENT: questo metodo gestisce i vari eventi che si verificano sui campi della maschera
 | 
					//ON_FIELD_EVENT: questo metodo gestisce i vari eventi che si verificano sui campi della maschera
 | 
				
			||||||
@ -51,7 +52,7 @@ class TGenera_documenti_app : public TSkeleton_application
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  //Metodi per la generazione dei documenti
 | 
					  //Metodi per la generazione dei documenti
 | 
				
			||||||
  bool crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen);
 | 
					  bool crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen, TAssoc_array& documenti);
 | 
				
			||||||
  void crea_riga(const TString& codart, const char modpas, const int tplis, const bool tmp, const bool prinbo, TDocumento& doc, TLog_report& rep);
 | 
					  void crea_riga(const TString& codart, const char modpas, const int tplis, const bool tmp, const bool prinbo, TDocumento& doc, TLog_report& rep);
 | 
				
			||||||
  //Metodi per il recupero di codnum, tpdoc, stato
 | 
					  //Metodi per il recupero di codnum, tpdoc, stato
 | 
				
			||||||
  bool numerazione_ddt(TString& codnum, TString& tpdoc, TString& statoi, TString& statof) const;
 | 
					  bool numerazione_ddt(TString& codnum, TString& tpdoc, TString& statoi, TString& statof) const;
 | 
				
			||||||
@ -116,7 +117,7 @@ bool TGenera_documenti_app::destroy()
 | 
				
			|||||||
///////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//CREA_DOCUMENTO: metodo che crea un nuovo documento di trasporto dai dati salvati
 | 
					//CREA_DOCUMENTO: metodo che crea un nuovo documento di trasporto dai dati salvati
 | 
				
			||||||
bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen)
 | 
					bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_report& rep, int& numdocgen, TAssoc_array& documenti)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  //recupero i dati di interesse dalla maschera  
 | 
					  //recupero i dati di interesse dalla maschera  
 | 
				
			||||||
  const TDate datagen(TODAY);
 | 
					  const TDate datagen(TODAY);
 | 
				
			||||||
@ -148,7 +149,7 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
 | 
				
			|||||||
  TString4 statoi;
 | 
					  TString4 statoi;
 | 
				
			||||||
  TString4 statof;
 | 
					  TString4 statof;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //Cerco il tipo documento da generaresul contratto; se non lo trovo lo cerco in configurazione.
 | 
					  //Cerco il tipo documento da generare sul contratto; se non lo trovo lo cerco in configurazione.
 | 
				
			||||||
  //Se non trovo quale documento generare, evito il resto dell'elaborazione
 | 
					  //Se non trovo quale documento generare, evito il resto dell'elaborazione
 | 
				
			||||||
  if(tcont.get(LVCONDV_CODNUM).full() && _buono == 'C')
 | 
					  if(tcont.get(LVCONDV_CODNUM).full() && _buono == 'C')
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -236,6 +237,11 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
 | 
				
			|||||||
      f.put(LVRCONSPLAN_CODNUM, codnum);
 | 
					      f.put(LVRCONSPLAN_CODNUM, codnum);
 | 
				
			||||||
      f.put(LVRCONSPLAN_NDOC, _ndoc);
 | 
					      f.put(LVRCONSPLAN_NDOC, _ndoc);
 | 
				
			||||||
      f.rewrite();
 | 
					      f.rewrite();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      //tengo traccia dei documenti che sto generando, per poterli stampare dopo
 | 
				
			||||||
 | 
					      TDoc_key kdoc(doc.get_int(DOC_ANNO), doc.get(DOC_CODNUM), doc.get_int(DOC_NDOC));
 | 
				
			||||||
 | 
					      if (!documenti.is_key(kdoc))
 | 
				
			||||||
 | 
					        documenti.add(kdoc, kdoc);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return err == NOERR;
 | 
					  return err == NOERR;
 | 
				
			||||||
@ -761,6 +767,8 @@ bool TGenera_documenti_app::transfer()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  int numdocgen = 0;
 | 
					  int numdocgen = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TAssoc_array documenti;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (dadata; dadata <= adata; ++dadata)
 | 
					  for (dadata; dadata <= adata; ++dadata)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    //per ogni data cerco i documenti e per ogni documento cerco i dati del passaggio
 | 
					    //per ogni data cerco i documenti e per ogni documento cerco i dati del passaggio
 | 
				
			||||||
@ -808,11 +816,33 @@ bool TGenera_documenti_app::transfer()
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
        _quantita.destroy();
 | 
					        _quantita.destroy();
 | 
				
			||||||
        _quantita_ritirata.destroy();
 | 
					        _quantita_ritirata.destroy();
 | 
				
			||||||
        crea_documento(plan, rep, numdocgen);
 | 
					        crea_documento(plan, rep, numdocgen, documenti);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (_msk->get_bool(F_STAMPA))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    //preparo il pezzo fisso della linea di comando per richiamare la stampa dei documenti
 | 
				
			||||||
 | 
					    TDoc_key kd(documenti.get_hashobj()->key());
 | 
				
			||||||
 | 
					    const TString4 codnum = kd.codnum();
 | 
				
			||||||
 | 
					    const int anno = kd.anno();
 | 
				
			||||||
 | 
					    const char provv = kd.provv();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TDoc_key& dk1 = *(TDoc_key*)documenti.first_item();
 | 
				
			||||||
 | 
					    const int dandoc = dk1.ndoc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TDoc_key& dk2 = *(TDoc_key*)documenti.last_item();
 | 
				
			||||||
 | 
					    const int andoc = dk2.ndoc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //lancia la stampa dei documenti ve1 -2 da documento a documento
 | 
				
			||||||
 | 
					    TString80 str;
 | 
				
			||||||
 | 
					    str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' ' << dandoc << '-' << andoc << " S D";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TExternal_app stampa(str);
 | 
				
			||||||
 | 
					    stampa.run();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (adata < TODAY && _msk->get_int(F_TPGEN) == 0)
 | 
					  if (adata < TODAY && _msk->get_int(F_TPGEN) == 0)
 | 
				
			||||||
    warning_box(TR("Non è stato possibile generare documenti con data prevista consegna nel passato"));
 | 
					    warning_box(TR("Non è stato possibile generare documenti con data prevista consegna nel passato"));
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
 | 
				
			|||||||
@ -9,3 +9,4 @@
 | 
				
			|||||||
#define F_DESCRAUT   109
 | 
					#define F_DESCRAUT   109
 | 
				
			||||||
#define F_CODCF      110
 | 
					#define F_CODCF      110
 | 
				
			||||||
#define F_RAGSOCCLI  111
 | 
					#define F_RAGSOCCLI  111
 | 
				
			||||||
 | 
					#define F_STAMPA     112
 | 
				
			||||||
@ -118,5 +118,15 @@ BEGIN
 | 
				
			|||||||
  CHECKTYPE NORMAL
 | 
					  CHECKTYPE NORMAL
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GROUPBOX DLG_NULL 76 3
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 1 9 "@bParametri di stampa"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN F_STAMPA
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 2 10 "Stampa automatica buoni"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
ENDMASK
 | 
					ENDMASK
 | 
				
			||||||
@ -216,7 +216,20 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
 | 
				
			|||||||
          const int anno = kd.anno();
 | 
					          const int anno = kd.anno();
 | 
				
			||||||
          const char provv = kd.provv();
 | 
					          const char provv = kd.provv();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          //lancia la stampa dei documenti ve1 -2 per ogni documento preparato
 | 
					          TDoc_key& dk1 = *(TDoc_key*)documenti.first_item();
 | 
				
			||||||
 | 
					          const int dandoc = dk1.ndoc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          TDoc_key& dk2 = *(TDoc_key*)documenti.last_item();
 | 
				
			||||||
 | 
					          const int andoc = dk2.ndoc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          //lancia la stampa dei documenti ve1 -2 da documento a documento
 | 
				
			||||||
 | 
					          TString80 str;
 | 
				
			||||||
 | 
					          str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' ' << dandoc << '-' << andoc << " S D";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          TExternal_app stampa(str);
 | 
				
			||||||
 | 
					          stampa.run();    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          /*//lancia la stampa dei documenti ve1 -2 per ogni documento preparato
 | 
				
			||||||
          TString80 str;
 | 
					          TString80 str;
 | 
				
			||||||
          str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' '; 
 | 
					          str << "ve1 -2 " << codnum << ' ' << anno << ' ' << provv << ' '; 
 | 
				
			||||||
          
 | 
					          
 | 
				
			||||||
@ -230,7 +243,7 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
 | 
				
			|||||||
            
 | 
					            
 | 
				
			||||||
            TExternal_app stampa(lcom);
 | 
					            TExternal_app stampa(lcom);
 | 
				
			||||||
            stampa.run();
 | 
					            stampa.run();
 | 
				
			||||||
          }
 | 
					          }*/
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        message_box(TR("Generazione dei documenti terminata"));
 | 
					        message_box(TR("Generazione dei documenti terminata"));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user