Patch level : OMASA
Files correlati : cgp4.exe cgp4100a.msk omasa.ini Ricompilazione Demo : [ ] Commento : Ulteriori modifiche a OSAMA B.L. git-svn-id: svn://10.65.10.50/trunk@12128 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									fe2e1eb01e
								
							
						
					
					
						commit
						3ffd1a4a2e
					
				
							
								
								
									
										187
									
								
								cg/cgp4100.cpp
									
									
									
									
									
								
							
							
						
						
									
										187
									
								
								cg/cgp4100.cpp
									
									
									
									
									
								
							@ -23,6 +23,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define MAX_CG_ROWS 98
 | 
					#define MAX_CG_ROWS 98
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// tabella per la conversione dei numeri negativi (schede perforate????)
 | 
				
			||||||
 | 
					static unsigned char _tabella[10] = {0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TAutomask
 | 
					// TAutomask
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,9 +33,7 @@ class TOmasa_mask : public TAutomask
 | 
				
			|||||||
protected:
 | 
					protected:
 | 
				
			||||||
  bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
					  bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					 | 
				
			||||||
  TOmasa_mask();
 | 
					  TOmasa_mask();
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  virtual ~TOmasa_mask(){};
 | 
					  virtual ~TOmasa_mask(){};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -55,7 +55,10 @@ protected:
 | 
				
			|||||||
  virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
 | 
					  virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
						void negativo(TString& importo);
 | 
				
			||||||
 | 
					  int  strip_zero(TString& importo);
 | 
				
			||||||
 | 
					  bool my_isdigit(unsigned char ch);
 | 
				
			||||||
 | 
					  int  look(unsigned char carattere);
 | 
				
			||||||
  TOmasa_file(const TString& file_name);
 | 
					  TOmasa_file(const TString& file_name);
 | 
				
			||||||
  virtual ~TOmasa_file() { }
 | 
					  virtual ~TOmasa_file() { }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -68,15 +71,68 @@ TOmasa_file::TOmasa_file(const TString& file_name)
 | 
				
			|||||||
void TOmasa_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
 | 
					void TOmasa_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const TString code(s.get(0));
 | 
					  const TString code(s.get(0));
 | 
				
			||||||
  TString valore;
 | 
					  TString valore = str;
 | 
				
			||||||
  if (code == "_UPPERCASE")
 | 
					  if (code == "_UPPERCASE")
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    valore.upper(); 
 | 
					    valore.upper(); 
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
						else if (code == "_IMPORTO")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							negativo(valore);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
  else NFCHECK("Macro non definita: %s", (const char *)code);
 | 
					  else NFCHECK("Macro non definita: %s", (const char *)code);
 | 
				
			||||||
  str = valore;
 | 
					  str = valore;
 | 
				
			||||||
} 
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int TOmasa_file::strip_zero(TString& importo)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TString16 app;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  int size = importo.len();
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  for (int i = 0; i < size; i++)
 | 
				
			||||||
 | 
					    if (importo[i] != '0') break;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  if (i > 0)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    app = importo.mid(importo[i] == '.' ? i - 1 : i);
 | 
				
			||||||
 | 
					    importo = app;
 | 
				
			||||||
 | 
					  }               
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  return (i ? i - 1 : i);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TOmasa_file::my_isdigit(unsigned char ch)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (ch >= '0' && ch <= '9');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int TOmasa_file::look(unsigned char carattere)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  for (int i = 0; i < 10; i++)
 | 
				
			||||||
 | 
					    if (_tabella[i] == carattere)
 | 
				
			||||||
 | 
					      return i;
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					  return -1;
 | 
				
			||||||
 | 
					}                                                             
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TOmasa_file::negativo(TString& importo)
 | 
				
			||||||
 | 
					{                           
 | 
				
			||||||
 | 
					  strip_zero(importo);
 | 
				
			||||||
 | 
					  int size = importo.len(); 
 | 
				
			||||||
 | 
					  if (!size) return;
 | 
				
			||||||
 | 
					  unsigned char last = importo[size - 1]; 
 | 
				
			||||||
 | 
					  if (!my_isdigit(last))
 | 
				
			||||||
 | 
					  {     
 | 
				
			||||||
 | 
					    int new_last = look(last);
 | 
				
			||||||
 | 
					    TString16 dep; dep << new_last;
 | 
				
			||||||
 | 
					    if (new_last >= 0) 
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      importo[size - 1] = dep[0];
 | 
				
			||||||
 | 
					      importo.insert("-");  
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TSkeleton_application
 | 
					// TSkeleton_application
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -171,7 +227,7 @@ bool TOmasa::transfer()
 | 
				
			|||||||
  while (_trasfile->read(curr) == NOERR) 
 | 
					  while (_trasfile->read(curr) == NOERR) 
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    pi.setstatus(_trasfile->read_file()->tellg());
 | 
					    pi.setstatus(_trasfile->read_file()->tellg());
 | 
				
			||||||
		TString impstr = curr.get(F_IMPORTO);
 | 
							TString impstr = curr.get(F_VALOREVOCE);
 | 
				
			||||||
		impstr.insert(".",11);
 | 
							impstr.insert(".",11);
 | 
				
			||||||
		const real importo(impstr);
 | 
							const real importo(impstr);
 | 
				
			||||||
		TString16 contodare = curr.get(F_CONTODARE);
 | 
							TString16 contodare = curr.get(F_CONTODARE);
 | 
				
			||||||
@ -190,23 +246,23 @@ bool TOmasa::transfer()
 | 
				
			|||||||
			movpn->set("CODCMS",codcms);
 | 
								movpn->set("CODCMS",codcms);
 | 
				
			||||||
			if (!contodare.blank())
 | 
								if (!contodare.blank())
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				movpn->set_paragraph("DARE");
 | 
									movpn->set_paragraph("IMPORTI");
 | 
				
			||||||
				contodare.trim();
 | 
									contodare.trim();
 | 
				
			||||||
				impstr = movpn->get(contodare, "DARE");
 | 
									impstr = movpn->get(contodare, "IMPORTI");
 | 
				
			||||||
 | 
									// verificare se l'ultimo carattere e'una lettera = importo negativo
 | 
				
			||||||
				real importomem(impstr);
 | 
									real importomem(impstr);
 | 
				
			||||||
				importomem+=importo;
 | 
									importomem+=importo;
 | 
				
			||||||
				movpn->set(contodare, importomem.string());
 | 
									movpn->set(contodare, importomem.string());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (!contoavere.blank())
 | 
								if (!contoavere.blank())
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				movpn->set_paragraph("AVERE");
 | 
									movpn->set_paragraph("IMPORTI");
 | 
				
			||||||
				contoavere.trim();
 | 
									contoavere.trim();
 | 
				
			||||||
				impstr = movpn->get(contoavere, "AVERE");
 | 
									impstr = movpn->get(contoavere, "IMPORTI");
 | 
				
			||||||
				real importomem(impstr);
 | 
									real importomem(impstr);
 | 
				
			||||||
				importomem+=importo;
 | 
									importomem-=importo;
 | 
				
			||||||
				movpn->set(contoavere, importomem.string());
 | 
									movpn->set(contoavere, importomem.string());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					 | 
				
			||||||
			delete movpn;
 | 
								delete movpn;
 | 
				
			||||||
			if (pi.iscancelled())
 | 
								if (pi.iscancelled())
 | 
				
			||||||
				return TRUE;
 | 
									return TRUE;
 | 
				
			||||||
@ -249,23 +305,23 @@ bool TOmasa::transfer()
 | 
				
			|||||||
		int numrig = 0;
 | 
							int numrig = 0;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		TString_array vl;
 | 
							TString_array vl;
 | 
				
			||||||
	  file_oo.list_variables(vl,TRUE, "DARE", TRUE);
 | 
						  file_oo.list_variables(vl,TRUE, "IMPORTI", TRUE);
 | 
				
			||||||
		FOR_EACH_ARRAY_ROW(vl,rd,sd)
 | 
							FOR_EACH_ARRAY_ROW(vl,r,s)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			TString16 contodare = (*sd).get();
 | 
								TString16 contoomasa = (*s).get();
 | 
				
			||||||
			TString16 importodare = (*sd).get();
 | 
								TString16 importos = (*s).get();
 | 
				
			||||||
			TToken_string conto = _configfile->get(contodare, "CONTI");
 | 
								TToken_string conto = _configfile->get(contoomasa, "CONTI");
 | 
				
			||||||
			if (conto.empty())
 | 
								if (conto.empty())
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				TMask mskconto("cgp4100b");		
 | 
									TMask mskconto("cgp4100b");		
 | 
				
			||||||
				mskconto.set(F_CONTOOMASA, contodare);
 | 
									mskconto.set(F_CONTOOMASA, contoomasa);
 | 
				
			||||||
				if (mskconto.run() == K_ENTER)
 | 
									if (mskconto.run() == K_ENTER)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					const int gr = mskconto.get_int(F_GRUPPO);
 | 
										const int gr = mskconto.get_int(F_GRUPPO);
 | 
				
			||||||
					const int co = mskconto.get_int(F_CONTO);
 | 
										const int co = mskconto.get_int(F_CONTO);
 | 
				
			||||||
					const long so = mskconto.get_long(F_SOTTOCONTO);
 | 
										const long so = mskconto.get_long(F_SOTTOCONTO);
 | 
				
			||||||
					conto.format("%d|%d|%ld", gr, co, so);
 | 
										conto.format("%d|%d|%ld", gr, co, so);
 | 
				
			||||||
					_configfile->set(contodare, conto, "CONTI");
 | 
										_configfile->set(contoomasa, conto, "CONTI");
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
					return TRUE;
 | 
										return TRUE;
 | 
				
			||||||
@ -275,53 +331,23 @@ bool TOmasa::transfer()
 | 
				
			|||||||
			movpn->set("ANNOES", annoes);
 | 
								movpn->set("ANNOES", annoes);
 | 
				
			||||||
			movpn->set("DATAREG", datareg);
 | 
								movpn->set("DATAREG", datareg);
 | 
				
			||||||
			movpn->set("NUMRIG", numrig);
 | 
								movpn->set("NUMRIG", numrig);
 | 
				
			||||||
			movpn->set("IMPORTO", importodare);
 | 
								real importo(importos);
 | 
				
			||||||
			movpn->set("SEZIONE", "D");
 | 
								if (importo > 0)
 | 
				
			||||||
			const int indbil = cache().get(LF_PCON, conto, PCN_INDBIL)[0]; 
 | 
									movpn->set("SEZIONE", "D");
 | 
				
			||||||
			if ((indbil != 1) && (indbil != 2))
 | 
								else
 | 
				
			||||||
				movpn->set("CODCMS", codcms);
 | 
									movpn->set("SEZIONE", "A");
 | 
				
			||||||
			movpn->set("GRUPPO", conto.get(0));
 | 
								importos.strip("-");
 | 
				
			||||||
			movpn->set("CONTO", conto.get(1));
 | 
								movpn->set("IMPORTO", importos);
 | 
				
			||||||
			movpn->set("SOTTOCONTO", conto.get(2));
 | 
								const char indbil = cache().get(LF_PCON, conto, PCN_INDBIL)[0]; 
 | 
				
			||||||
		}
 | 
								if ((indbil != '1') && (indbil != '2'))
 | 
				
			||||||
 | 
					 | 
				
			||||||
		file_oo.list_variables(vl,TRUE, "AVERE", TRUE);
 | 
					 | 
				
			||||||
		FOR_EACH_ARRAY_ROW(vl,ra,sa)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			TString16 contoavere = (*sa).get();
 | 
					 | 
				
			||||||
			TString16 importoavere = (*sa).get();
 | 
					 | 
				
			||||||
			TToken_string conto = _configfile->get(contoavere, "CONTI");
 | 
					 | 
				
			||||||
			if (conto.empty())
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				TMask mskconto("cgp4100b");		
 | 
					 | 
				
			||||||
				mskconto.set(F_CONTOOMASA, contoavere);
 | 
					 | 
				
			||||||
				if (mskconto.run() == K_ENTER)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					const int gr = mskconto.get_int(F_GRUPPO);
 | 
					 | 
				
			||||||
					const int co = mskconto.get_int(F_CONTO);
 | 
					 | 
				
			||||||
					const long so = mskconto.get_long(F_SOTTOCONTO);
 | 
					 | 
				
			||||||
					conto.format("%d|%d|%ld", gr, co, so);
 | 
					 | 
				
			||||||
					_configfile->set(contoavere, conto, "CONTI");
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				else
 | 
					 | 
				
			||||||
					return TRUE;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			numrig++;
 | 
					 | 
				
			||||||
			movpn->set_paragraph(format("%d,%d",LF_RMOV, numrig));
 | 
					 | 
				
			||||||
			movpn->set("ANNOES", annoes);
 | 
					 | 
				
			||||||
			movpn->set("DATAREG", datareg);
 | 
					 | 
				
			||||||
			movpn->set("NUMRIG", numrig);
 | 
					 | 
				
			||||||
			movpn->set("IMPORTO", importoavere);
 | 
					 | 
				
			||||||
			movpn->set("SEZIONE", "A");
 | 
					 | 
				
			||||||
			const int indbil = cache().get(LF_PCON, conto, PCN_INDBIL)[0]; 
 | 
					 | 
				
			||||||
			if ((indbil != 1) && (indbil != 2))
 | 
					 | 
				
			||||||
				movpn->set("CODCMS", codcms);
 | 
									movpn->set("CODCMS", codcms);
 | 
				
			||||||
			movpn->set("GRUPPO", conto.get(0));
 | 
								movpn->set("GRUPPO", conto.get(0));
 | 
				
			||||||
			movpn->set("CONTO", conto.get(1));
 | 
								movpn->set("CONTO", conto.get(1));
 | 
				
			||||||
			movpn->set("SOTTOCONTO", conto.get(2));
 | 
								movpn->set("SOTTOCONTO", conto.get(2));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							delete movpn;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	tempdir.tempdir();
 | 
						tempdir.tempdir();
 | 
				
			||||||
	TString80 applicat = "cg2.exe -0 -i";
 | 
						TString80 applicat = "cg2.exe -0 -i";
 | 
				
			||||||
	applicat << tempdir;
 | 
						applicat << tempdir;
 | 
				
			||||||
@ -343,46 +369,3 @@ int cgp4100 (int argc, char* argv[])
 | 
				
			|||||||
  main_app.run(argc, argv, TR("Importazione stipendi"));
 | 
					  main_app.run(argc, argv, TR("Importazione stipendi"));
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				numrig++;
 | 
					 | 
				
			||||||
				movpn->set_paragraph(format("%d,%d",LF_RMOV, numrig));
 | 
					 | 
				
			||||||
				movpn->set("ANNOES", annoes);
 | 
					 | 
				
			||||||
				movpn->set("DATAREG", datareg);
 | 
					 | 
				
			||||||
				movpn->set("NUMRIG", numrig);
 | 
					 | 
				
			||||||
				movpn->set("IMPORTO", importo.string());
 | 
					 | 
				
			||||||
				movpn->set("SEZIONE", "D");
 | 
					 | 
				
			||||||
				movpn->set("CODCMS", codcms);
 | 
					 | 
				
			||||||
				movpn->set("GRUPPO", conto.get(0));
 | 
					 | 
				
			||||||
				movpn->set("CONTO", conto.get(1));
 | 
					 | 
				
			||||||
				movpn->set("SOTTOCONTO", conto.get(2));
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
				TToken_string conto = _configfile->get(contoavere, "CONTI");
 | 
					 | 
				
			||||||
				if (conto.empty())
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					TMask mskconto("cgp4100b");		
 | 
					 | 
				
			||||||
					mskconto.set(F_CONTOOMASA, contoavere);
 | 
					 | 
				
			||||||
					if (mskconto.run() == K_ENTER)
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						const int gr = mskconto.get_int(F_GRUPPO);
 | 
					 | 
				
			||||||
						const int co = mskconto.get_int(F_CONTO);
 | 
					 | 
				
			||||||
						const long so = mskconto.get_long(F_SOTTOCONTO);
 | 
					 | 
				
			||||||
						conto.format("%d|%d|%ld", gr, co, so);
 | 
					 | 
				
			||||||
					  _configfile->set(contoavere, conto, "CONTI");		
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					else
 | 
					 | 
				
			||||||
						return TRUE;
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				numrig++;
 | 
					 | 
				
			||||||
				movpn->set_paragraph(format("%d,%d",LF_RMOV, numrig));
 | 
					 | 
				
			||||||
				movpn->set("ANNOES", annoes);
 | 
					 | 
				
			||||||
				movpn->set("DATAREG", datareg);
 | 
					 | 
				
			||||||
				movpn->set("NUMRIG", numrig);
 | 
					 | 
				
			||||||
				movpn->set("IMPORTO", importo.string());
 | 
					 | 
				
			||||||
				movpn->set("SEZIONE", "A");
 | 
					 | 
				
			||||||
				movpn->set("CODCMS", F_CENTROCOSTO);
 | 
					 | 
				
			||||||
				movpn->set("GRUPPO", conto.get(0));
 | 
					 | 
				
			||||||
				movpn->set("CONTO", conto.get(1));
 | 
					 | 
				
			||||||
				movpn->set("SOTTOCONTO", conto.get(2));
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -4,9 +4,14 @@
 | 
				
			|||||||
#define F_DATAREG  102
 | 
					#define F_DATAREG  102
 | 
				
			||||||
#define F_CODCAUS  103
 | 
					#define F_CODCAUS  103
 | 
				
			||||||
#define F_DESCR    104
 | 
					#define F_DESCR    104
 | 
				
			||||||
 | 
					#define F_SHEET_CONTI 105
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// campi della maschera di conversione conti
 | 
					// campi della maschera di conversione conti
 | 
				
			||||||
 | 
					#define F_S_CONTOOMASA	101
 | 
				
			||||||
 | 
					#define F_S_GRUPPO			102
 | 
				
			||||||
 | 
					#define F_S_CONTO				103
 | 
				
			||||||
 | 
					#define F_S_SOTTOCONTO	104
 | 
				
			||||||
 | 
					#define F_S_DESCRIZIONE	105
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// campi del tracciato record
 | 
					// campi del tracciato record
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -60,9 +60,5 @@ END
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PAGE "Tabella conversione conti" 0 -1 0 19
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENDPAGE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENDMASK
 | 
					ENDMASK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -80,12 +80,14 @@ TYPE(5) = NUMERO
 | 
				
			|||||||
POSITION(5) = 21
 | 
					POSITION(5) = 21
 | 
				
			||||||
LENGTH(5) = 13
 | 
					LENGTH(5) = 13
 | 
				
			||||||
DECIMAL(5) = 2
 | 
					DECIMAL(5) = 2
 | 
				
			||||||
 | 
					MESSAGE(5) = _IMPORTO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NAME(6) = IMPORTO UNITARIO
 | 
					NAME(6) = IMPORTO UNITARIO
 | 
				
			||||||
TYPE(6) = IMPORTO
 | 
					TYPE(6) = IMPORTO
 | 
				
			||||||
POSITION(6) = 34
 | 
					POSITION(6) = 34
 | 
				
			||||||
LENGTH(6) = 13
 | 
					LENGTH(6) = 13
 | 
				
			||||||
DECIMAL(6) = 2
 | 
					DECIMAL(6) = 2
 | 
				
			||||||
 | 
					MESSAGE(6) = _IMPORTO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NAME(7) = CONTO DARE
 | 
					NAME(7) = CONTO DARE
 | 
				
			||||||
TYPE(7) = STRINGA
 | 
					TYPE(7) = STRINGA
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user