Files correlati : ci2.exe Ricompilazione Demo : [ ] Commento : Corretta rilevazione ore git-svn-id: svn://10.65.10.50/branches/R_10_00@22323 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			719 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			719 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <colors.h>
 | 
						|
#include <defmask.h>
 | 
						|
#include <recset.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <sheet.h>
 | 
						|
#include <textset.h>
 | 
						|
#include <utility.h>
 | 
						|
#include <reputils.h>
 | 
						|
 | 
						|
#include <doc.h>
 | 
						|
 | 
						|
#include "ci2.h"
 | 
						|
#include "cilib.h"
 | 
						|
#include "ci2300a.h"
 | 
						|
#include "rilore.h"
 | 
						|
#include "../ca/calib01.h"
 | 
						|
#include "../ve/velib.h"
 | 
						|
#define OREORD "OREORD"
 | 
						|
#define CODGIU "CODGIU"
 | 
						|
#define OREGIU "OREGIU"
 | 
						|
 | 
						|
#define T_N "N"
 | 
						|
#define T_X "X"
 | 
						|
 | 
						|
//Classe TImporta_fat_rec
 | 
						|
class TImporta_rilore_rec : public TAS400_recordset
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual TRecnotype new_rec(const char* trc);
 | 
						|
  void add_field(const char* name, const char* tipo, int pos, int len);
 | 
						|
 | 
						|
public:
 | 
						|
  TImporta_rilore_rec(TFilename& filename);
 | 
						|
};
 | 
						|
 | 
						|
/////////////////////////////////////////////////////////////
 | 
						|
//	Recordset specifici per i dati da trasferire INPUT
 | 
						|
/////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
//ADD_FIELD: aggiunge i campi al recordset
 | 
						|
 | 
						|
void TImporta_rilore_rec::add_field(const char* name, const char* tipo, int pos, int len)
 | 
						|
{
 | 
						|
  //CHECK(name[1]=='.', "Campo orfano di tracciato");
 | 
						|
  const TFixed_string str_tipo(tipo);
 | 
						|
  TFieldtypes ft = _alfafld;
 | 
						|
  if (str_tipo.ends_with("N"))
 | 
						|
    ft = _intzerofld;
 | 
						|
  create_field(name, -1, len, ft);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
TRecnotype TImporta_rilore_rec::new_rec(const char* trc)
 | 
						|
{
 | 
						|
  if (trc && *trc > ' ')
 | 
						|
  {
 | 
						|
    TString rec; rec << trc;
 | 
						|
    return TText_recordset::new_rec(rec);
 | 
						|
  }
 | 
						|
  return -1;
 | 
						|
}
 | 
						|
 | 
						|
//questo invece è il metodo magico che vale per il caricamento da file esterno
 | 
						|
TImporta_rilore_rec::TImporta_rilore_rec(TFilename& filename)
 | 
						|
                   : TAS400_recordset(TString("AS400(1707)") << filename)
 | 
						|
{
 | 
						|
  add_field("CODAZI",       T_N,  -1,  4);
 | 
						|
  add_field("CODFIL",       T_N,  -1,  2);
 | 
						|
  add_field("MATR",         T_X,  -1,  9);
 | 
						|
  add_field("COGNOME",      T_X,  -1, 34);
 | 
						|
  add_field("NOME",         T_X,  -1, 34);
 | 
						|
  add_field("DADATA",       T_X,  -1,  6);
 | 
						|
  add_field("ADATA",        T_X,  -1,  6);
 | 
						|
 | 
						|
  add_field("01_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("01_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("01_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("02_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("02_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("02_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("03_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("03_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("03_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("04_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("04_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("04_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("05_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("05_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("05_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("06_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("06_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("06_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("07_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("07_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("07_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("08_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("08_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("08_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("09_OREORD",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("09_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("09_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("10_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("10_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("10_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("11_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("11_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("11_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("12_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("12_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("12_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("13_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("13_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("13_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("14_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("14_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("14_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("15_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("15_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("15_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("16_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("16_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("16_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("17_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("17_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("17_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("18_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("18_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("18_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("19_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("19_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("19_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("20_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("20_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("20_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("21_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("21_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("21_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("22_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("22_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("22_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("23_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("23_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("23_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("24_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("24_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("24_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("25_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("25_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("25_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("26_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("26_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("26_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("27_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("27_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("27_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("28_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("28_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("28_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("29_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("29_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("29_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("30_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("30_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("30_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  add_field("31_OREORD",    T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU1",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU1",   T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU2",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU2",   T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU3",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU3",   T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU4",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU4",   T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU5",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU5",   T_N, -1, 4);
 | 
						|
  add_field("31_CODGIU6",   T_N, -1, 4);
 | 
						|
  add_field("31_OREGIU6",   T_N, -1, 4);
 | 
						|
 | 
						|
  TText_recordset::load_file(filename);
 | 
						|
}
 | 
						|
 | 
						|
                                      ////////////////////////////////////////////
 | 
						|
                                      ////    CLASSE TImporta_rilore_msk    ////
 | 
						|
                                      ////////////////////////////////////////////
 | 
						|
 | 
						|
//Classe TRilevamento_imp_msk
 | 
						|
class TImporta_rilore_msk : public TAutomask
 | 
						|
{
 | 
						|
	TAssoc_array _matricole;
 | 
						|
	TArray _ore;
 | 
						|
	
 | 
						|
protected:
 | 
						|
  void importa();
 | 
						|
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
  
 | 
						|
public:
 | 
						|
	TAssoc_array & matricole() {return _matricole;}
 | 
						|
	TArray & ore() {return _ore;}
 | 
						|
 | 
						|
  TImporta_rilore_msk();
 | 
						|
};
 | 
						|
 | 
						|
void TImporta_rilore_msk::importa()
 | 
						|
{
 | 
						|
  TFilename file = get(F_FILE);
 | 
						|
 | 
						|
  TImporta_rilore_rec recordset(file);
 | 
						|
 | 
						|
  TModule_table tab("&DRA");
 | 
						|
 | 
						|
  TString matricola;
 | 
						|
	TString16 codice;
 | 
						|
  TString80 key;
 | 
						|
	TString16 fieldname;
 | 
						|
	TString tpora;
 | 
						|
	real oreril;
 | 
						|
 | 
						|
	TProgind pi(recordset.items(), TR("Importazione ore"), true, true);
 | 
						|
  TLog_report log(TR("Importazione ore"));
 | 
						|
	TString msg_head(256);
 | 
						|
	TString msg(256);
 | 
						|
 | 
						|
	for (bool ok = recordset.move_first(); ok && !pi.iscancelled() ; ok = recordset.move_next())
 | 
						|
	{
 | 
						|
		pi.addstatus(1L);
 | 
						|
		matricola = recordset.get("MATR").as_string();
 | 
						|
		const TString16 s = recordset.get("DADATA").as_string();
 | 
						|
		TDate data(atoi(s.left(2)), atoi(s.mid(2, 2)), 2000 + atoi(s.right(2))); 
 | 
						|
 | 
						|
		if (matricole().is_key(matricola))
 | 
						|
		{
 | 
						|
			codice = (TString &) matricole()[matricola];
 | 
						|
			codice.rpad(16);
 | 
						|
			int err = NOERR;
 | 
						|
 | 
						|
			for(int i = 1; i <= 31; i++)
 | 
						|
			{
 | 
						|
				key = "R";
 | 
						|
				tpora = "0000";
 | 
						|
        const int index = atoi(tpora);
 | 
						|
 | 
						|
        if (ore().objptr(index) != NULL)
 | 
						|
					tpora = (TString &) ore()[index];
 | 
						|
				msg_head = data.string();
 | 
						|
				msg_head << " Addetto - " << codice;
 | 
						|
				key << codice << data.string(ANSI) << tpora; // cambiare
 | 
						|
				tab.put("CODTAB", key);
 | 
						|
				tab.put("D0", data);
 | 
						|
				fieldname.format("%02d_%s", i, OREORD);
 | 
						|
				oreril = recordset.get(fieldname).as_real() / CENTO;
 | 
						|
				if (oreril > ZERO)
 | 
						|
				{
 | 
						|
					tab.put("R1", oreril);
 | 
						|
					err = tab.write_rewrite();
 | 
						|
					msg = msg_head;
 | 
						|
					msg << " Tipo ora - " << tpora << " Ore - " << oreril;
 | 
						|
					log.log(0, msg);
 | 
						|
 | 
						|
					if (err != NOERR)
 | 
						|
						log.log(2, format(FR("Errore di scrittura %d : Codice %s data %s ore normali"), err, (const char *) codice, (const char *) data.string()));
 | 
						|
				}
 | 
						|
				for (int t = 1; t <= 6; t++)
 | 
						|
				{
 | 
						|
					fieldname.format("%02d_%s%1d", i, CODGIU, t);
 | 
						|
					tpora = recordset.get(fieldname).as_string();
 | 
						|
 | 
						|
          const int index = atoi(tpora);
 | 
						|
 | 
						|
          if (index > 0)
 | 
						|
					{
 | 
						|
				    if (ore().objptr(index) != NULL)
 | 
						|
						{
 | 
						|
    					tpora = (TString &) ore()[index];
 | 
						|
							fieldname.format("%02d_%s%1d", i, OREGIU, t);
 | 
						|
							oreril = recordset.get(fieldname).as_real() / CENTO;
 | 
						|
 | 
						|
							if (tpora.full() && oreril > ZERO)
 | 
						|
							{
 | 
						|
								key = "R";
 | 
						|
								key << codice << data.string(ANSI) << tpora;
 | 
						|
								tab.put("CODTAB", key);
 | 
						|
								tab.put("D0", data);
 | 
						|
								tab.put("R1", oreril); 
 | 
						|
								err = tab.write_rewrite();
 | 
						|
								msg = msg_head;
 | 
						|
								msg << " Tipo ora - " << tpora << " Ore - " << oreril;
 | 
						|
								log.log(0, msg);
 | 
						|
								if (err != NOERR)
 | 
						|
									log.log(2, format(FR("Errore di scrittura %d : Codice %s data %s tipo ora %s"), err, (const char *) codice, (const char *) data.string(), (const char *) tpora));
 | 
						|
							}
 | 
						|
							else
 | 
						|
								log.log(0, format(FR("Tipo ora %s con ore a zero Codice %s data %s "), (const char *) tpora, (const char *) codice, (const char *) data.string()));
 | 
						|
						}
 | 
						|
						else
 | 
						|
							log.log(0, format(FR("Tipo ora %s non definito: Codice %s data %s"), (const char *) tpora, (const char *) codice, (const char *) data.string()));
 | 
						|
					}
 | 
						|
				}
 | 
						|
				++data;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else
 | 
						|
			log.log(2, format(FR("Matricola % s assente"), (const char *) matricola));
 | 
						|
	}
 | 
						|
  log.print_or_preview();
 | 
						|
}
 | 
						|
 | 
						|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
 | 
						|
bool TImporta_rilore_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
						|
{
 | 
						|
  switch (f.dlg())
 | 
						|
  {
 | 
						|
  case DLG_OK:
 | 
						|
  {
 | 
						|
    if(e == fe_button)
 | 
						|
    {
 | 
						|
      importa();
 | 
						|
        return false;
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  default: break;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
TImporta_rilore_msk::TImporta_rilore_msk() 
 | 
						|
                     : TAutomask("ci2300a")
 | 
						|
{  
 | 
						|
}
 | 
						|
 | 
						|
                                      ////////////////////////////////////////////
 | 
						|
                                      ////    CLASSE TRilevamento_imp_app    ////
 | 
						|
                                      ////////////////////////////////////////////
 | 
						|
 | 
						|
//classe TRilevamento_imp_app
 | 
						|
class TImporta_rilore__app : public TSkeleton_application
 | 
						|
{
 | 
						|
public:
 | 
						|
	virtual void main_loop();  
 | 
						|
};
 | 
						|
 | 
						|
static bool scan_rss(const TRelation & rel, void *pJolly)
 | 
						|
{
 | 
						|
	TImporta_rilore_msk & mask = *((TImporta_rilore_msk *)pJolly);
 | 
						|
	TString80 matricola = rel.curr().get("S3");
 | 
						|
 | 
						|
	matricola = matricola.mid(20,20);
 | 
						|
	matricola = matricola.trim();
 | 
						|
	if (matricola.full())
 | 
						|
	{
 | 
						|
		const TString16 codice = rel.curr().get("CODTAB");
 | 
						|
 | 
						|
		mask.matricole().add(matricola, codice);
 | 
						|
	}
 | 
						|
	return true;
 | 
						|
}
 | 
						|
static bool scan_ore(const TRelation & rel, void *pJolly)
 | 
						|
{
 | 
						|
	TImporta_rilore_msk & mask = *((TImporta_rilore_msk *)pJolly);
 | 
						|
	const int cod_est = atoi(rel.curr().get("S1"));
 | 
						|
	const TString& codice = rel.curr().get("CODTAB");
 | 
						|
	
 | 
						|
	mask.ore().add(codice, cod_est);
 | 
						|
	return true;
 | 
						|
}
 | 
						|
 | 
						|
void TImporta_rilore__app::main_loop()
 | 
						|
{
 | 
						|
  TImporta_rilore_msk msk; 
 | 
						|
	TRelation rrss("RSS");
 | 
						|
	TCursor crss(&rrss);
 | 
						|
 | 
						|
	crss.scan(scan_rss, (void *) &msk);
 | 
						|
	TRelation rore("&ORE");
 | 
						|
	TCursor core(&rore);
 | 
						|
 | 
						|
	core.scan(scan_ore, (void *) &msk);
 | 
						|
  while (msk.run() != K_QUIT) ;
 | 
						|
}
 | 
						|
 | 
						|
int ci2300(int argc, char *argv[])
 | 
						|
{
 | 
						|
  TImporta_rilore__app a;
 | 
						|
  a.run (argc, argv, TR("Importazione Ore"));
 | 
						|
  return TRUE;
 | 
						|
} |