Patch level : 2.2 112
Files correlati : ve0.exe bacnv.exe profili riga e documento Ricompilazione Demo : [ ] Commento : Bug 0000423 Possibilità di variare il tipo riga direttamente sulla riga Possibilità di selezionare piu' documenti in caso di elaborazione interattiva che aggiunge al documento attuale Modificati i profili documento per le definizioni dei tipi riga colonne handlers etc.. Per quest'ultimo esiste il programma di conversione bacnv 23 nomeprofilo.ini git-svn-id: svn://10.65.10.50/trunk@13151 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									5c664b90e7
								
							
						
					
					
						commit
						520f73114a
					
				@ -1122,7 +1122,7 @@ WARNING "Ufficio IVA assente"
 | 
				
			|||||||
  GROUP 5
 | 
					  GROUP 5
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRINF F_DENUFFIVA 50 48
 | 
					STRING F_DENUFFIVA 50 48
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
PROMPT 23 10 " "
 | 
					PROMPT 23 10 " "
 | 
				
			||||||
FLAGS "D"
 | 
					FLAGS "D"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										58
									
								
								ba/bacnv.cpp
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								ba/bacnv.cpp
									
									
									
									
									
								
							@ -29,6 +29,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22] ditta"
 | 
					#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22] ditta"
 | 
				
			||||||
 | 
					#define usage1 "Errore - uso : bacnv 23 profilo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
 | 
					// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
 | 
				
			||||||
@ -197,6 +198,7 @@ public:
 | 
				
			|||||||
  void convert_quadst() const; 
 | 
					  void convert_quadst() const; 
 | 
				
			||||||
  void convert_clifo_privati(); 
 | 
					  void convert_clifo_privati(); 
 | 
				
			||||||
	void convert_pcon_ivd();
 | 
						void convert_pcon_ivd();
 | 
				
			||||||
 | 
						void convert_profile(const char * profile_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
 | 
					  TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
 | 
				
			||||||
@ -360,6 +362,8 @@ bool TConversione_archivi::menu(MENU_TAG)
 | 
				
			|||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case 22:
 | 
					  case 22:
 | 
				
			||||||
		convert_pcon_ivd(); 
 | 
							convert_pcon_ivd(); 
 | 
				
			||||||
 | 
					  case 23:
 | 
				
			||||||
 | 
							convert_profile(argv(2)); 
 | 
				
			||||||
  default:
 | 
					  default:
 | 
				
			||||||
    break;  
 | 
					    break;  
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1930,6 +1934,58 @@ void TConversione_archivi::convert_pcon_ivd()
 | 
				
			|||||||
		prefix().set(pref);
 | 
							prefix().set(pref);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TConversione_archivi::convert_profile(const char * profile_name)
 | 
				
			||||||
 | 
					{ 
 | 
				
			||||||
 | 
						TConfig p(profile_name);
 | 
				
			||||||
 | 
						TString16 str;
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int ncols = p.get_int( "NCOLS", "SHEET" );
 | 
				
			||||||
 | 
						p.remove("NCOLS");
 | 
				
			||||||
 | 
					  for (i = 1; i <= ncols; i++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    str.format( "%d", i );
 | 
				
			||||||
 | 
					    const	TString16 val(p.get(str));
 | 
				
			||||||
 | 
							p.remove(str);
 | 
				
			||||||
 | 
							p.set("Col", val, NULL, true, i - 1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const int numtr = p.get_int( "NTIPIRIGA", "RIGHE" );
 | 
				
			||||||
 | 
						p.remove( "NTIPIRIGA");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (i = 1; i <= numtr; i ++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    str.format("%d", i);
 | 
				
			||||||
 | 
					    const TString16 tiporiga(p.get(str));
 | 
				
			||||||
 | 
							p.remove(str);
 | 
				
			||||||
 | 
							p.set("Tipo", tiporiga, NULL, true, i - 1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const int hitems = p.get_int("NHANDLER", "HANDLERS");
 | 
				
			||||||
 | 
						p.remove("NHANDLER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (i = 1; i <= hitems; i++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    str.format("%d", i);
 | 
				
			||||||
 | 
					    const TToken_string h(p.get(str));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							p.remove(str);
 | 
				
			||||||
 | 
							p.set("Handler", h, NULL, true, i - 1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const int ditems = p.get_int("NDEFAULTS", "DEFAULT");
 | 
				
			||||||
 | 
						p.remove("NDEFAULTS");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (i = 1; i <= ditems; i++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    str.format("%d", i);
 | 
				
			||||||
 | 
					    const TToken_string h(p.get(str));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							p.remove(str);
 | 
				
			||||||
 | 
							p.set("Default", h, NULL, true, i - 1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
// Programma di conversione archivi speciale
 | 
					// Programma di conversione archivi speciale
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
@ -1938,7 +1994,7 @@ int main(int argc,char** argv)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  const int r = (argc > 1) ? abs(atoi(argv[1])) : 0;
 | 
					  const int r = (argc > 1) ? abs(atoi(argv[1])) : 0;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (r < 0 || r > 22)
 | 
					  if (r < 0 || r > 23)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    error_box(usage);
 | 
					    error_box(usage);
 | 
				
			||||||
    return 100;
 | 
					    return 100;
 | 
				
			||||||
 | 
				
			|||||||
@ -96,6 +96,8 @@
 | 
				
			|||||||
#define BMP_FILE      169
 | 
					#define BMP_FILE      169
 | 
				
			||||||
#define BMP_STOP      170
 | 
					#define BMP_STOP      170
 | 
				
			||||||
#define BMP_FILECHK   171
 | 
					#define BMP_FILECHK   171
 | 
				
			||||||
 | 
					#define BMP_DIRSEL    172
 | 
				
			||||||
 | 
					#define BMP_DIRDNSEL  173
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* @END */
 | 
					/* @END */
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								res/dirdnsel.bmp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								res/dirdnsel.bmp
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 726 B  | 
							
								
								
									
										
											BIN
										
									
								
								res/dirsel.bmp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								res/dirsel.bmp
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 726 B  | 
@ -63,6 +63,8 @@
 | 
				
			|||||||
169=file.bmp
 | 
					169=file.bmp
 | 
				
			||||||
170=stop.bmp
 | 
					170=stop.bmp
 | 
				
			||||||
171=filechk.bmp
 | 
					171=filechk.bmp
 | 
				
			||||||
 | 
					172=dirsel.bmp
 | 
				
			||||||
 | 
					173=dirdnsel.bmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1661=check.bmp
 | 
					1661=check.bmp
 | 
				
			||||||
1662=darrowu.bmp
 | 
					1662=darrowu.bmp
 | 
				
			||||||
 | 
				
			|||||||
@ -157,40 +157,36 @@ DESCRCMS        = S_NORMALE                     //3000
 | 
				
			|||||||
FASCMS          = S_NORMALE                     //3000
 | 
					FASCMS          = S_NORMALE                     //3000
 | 
				
			||||||
DESCRFAS        = S_NORMALE                     //3000
 | 
					DESCRFAS        = S_NORMALE                     //3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=22
 | 
					Col(1)=FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(2)=FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(3)=FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(4)=FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(5)=FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(6)=FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(7)=FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(8)=FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(9)=FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(10)=FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(11)=FR_PREZZO
 | 
				
			||||||
11=FR_PREZZO
 | 
					Col(12)=FR_SCONTO
 | 
				
			||||||
12=FR_SCONTO
 | 
					Col(13)=FR_PERCPROV
 | 
				
			||||||
13=FR_PERCPROV
 | 
					Col(14)=FR_IMPFISUN
 | 
				
			||||||
14=FR_IMPFISUN
 | 
					Col(15)=FR_IMPFISSO
 | 
				
			||||||
15=FR_IMPFISSO
 | 
					Col(16)=FR_CODIVA
 | 
				
			||||||
16=FR_CODIVA
 | 
					Col(17)=FR_ADDIVA
 | 
				
			||||||
17=FR_ADDIVA
 | 
					Col(18)=FR_CAUS
 | 
				
			||||||
18=FR_CAUS
 | 
					Col(19)=FR_CODMAGC
 | 
				
			||||||
19=FR_CODMAGC
 | 
					Col(20)=FR_CODDEPC
 | 
				
			||||||
20=FR_CODDEPC
 | 
					Col(21)=FR_CODCMS
 | 
				
			||||||
21=FR_CODCMS
 | 
					Col(22)=FR_FASCMS
 | 
				
			||||||
22=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					// Handler(0)=F_ORAPART|1
 | 
				
			||||||
1 = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -239,3 +235,4 @@ NGROUPS=11
 | 
				
			|||||||
9=2400
 | 
					9=2400
 | 
				
			||||||
10=2900
 | 
					10=2900
 | 
				
			||||||
11=3000
 | 
					11=3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -155,44 +155,40 @@ BLANK           = S_DISABILITATO                //4000
 | 
				
			|||||||
CODNOTE         = S_NORMALE                     //2500
 | 
					CODNOTE         = S_NORMALE                     //2500
 | 
				
			||||||
NOTECLI         = S_NOCHECK                     //2500
 | 
					NOTECLI         = S_NOCHECK                     //2500
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
Default(0)=F_CAUSTRASP|VEN
 | 
					Default(0)=F_CAUSTRASP|VEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=25
 | 
					Col(1)=FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(2)=FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(3)=FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(4)=FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(5)=FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(6)=FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(7)=FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(8)=FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(9)=FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(10)=FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(11)=FR_PREZZO
 | 
				
			||||||
11=FR_PREZZO
 | 
					Col(12)=FR_SCONTO
 | 
				
			||||||
12=FR_SCONTO
 | 
					Col(13)=FR_PERCPROV
 | 
				
			||||||
13=FR_PERCPROV
 | 
					Col(14)=FR_IMPFISUN
 | 
				
			||||||
14=FR_IMPFISUN
 | 
					Col(15)=FR_IMPFISSO
 | 
				
			||||||
15=FR_IMPFISSO
 | 
					Col(16)=FR_CODIVA
 | 
				
			||||||
16=FR_CODIVA
 | 
					Col(17)=FR_ADDIVA
 | 
				
			||||||
17=FR_ADDIVA
 | 
					Col(18)=FR_NCOLLI
 | 
				
			||||||
18=FR_NCOLLI
 | 
					Col(19)=FR_PNETTO
 | 
				
			||||||
19=FR_PNETTO
 | 
					Col(20)=FR_TARA
 | 
				
			||||||
20=FR_TARA
 | 
					Col(21)=FR_CAUS
 | 
				
			||||||
21=FR_CAUS
 | 
					Col(22)=FR_CODMAGC
 | 
				
			||||||
22=FR_CODMAGC
 | 
					Col(23)=FR_CODDEPC
 | 
				
			||||||
23=FR_CODDEPC
 | 
					Col(24)=FR_CODCMS
 | 
				
			||||||
24=FR_CODCMS
 | 
					Col(25)=FR_FASCMS
 | 
				
			||||||
25=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					// Handler(0) = F_ORAPART|1
 | 
				
			||||||
1 = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -229,7 +225,7 @@ NHANDLER=0
 | 
				
			|||||||
2710    = S_NORMALE
 | 
					2710    = S_NORMALE
 | 
				
			||||||
2800    = S_NORMALE
 | 
					2800    = S_NORMALE
 | 
				
			||||||
2900    = S_NORMALE
 | 
					2900    = S_NORMALE
 | 
				
			||||||
3000    = S_NORMALE 
 | 
					3000    = S_NORMALE
 | 
				
			||||||
4000    = S_NORMALE
 | 
					4000    = S_NORMALE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ORDINEGRUPPI]
 | 
					[ORDINEGRUPPI]
 | 
				
			||||||
@ -264,3 +260,4 @@ NGROUPS=30
 | 
				
			|||||||
28=1000
 | 
					28=1000
 | 
				
			||||||
29=2900
 | 
					29=2900
 | 
				
			||||||
30=3000
 | 
					30=3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -109,37 +109,33 @@ DESCRCMS        = S_NORMALE                     //3000
 | 
				
			|||||||
FASCMS          = S_NORMALE                     //3000
 | 
					FASCMS          = S_NORMALE                     //3000
 | 
				
			||||||
DESCRFAS        = S_NORMALE                     //3000
 | 
					DESCRFAS        = S_NORMALE                     //3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
Default(0)=F_CAUSTRASP|RES
 | 
					Default(0)=F_CAUSTRASP|RES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=18
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_LORDO
 | 
				
			||||||
11=FR_LORDO
 | 
					Col(11) = FR_PREZZO
 | 
				
			||||||
12=FR_PREZZO
 | 
					Col(12) = FR_CODIVA
 | 
				
			||||||
13=FR_CODIVA
 | 
					Col(13) = FR_CAUS
 | 
				
			||||||
14=FR_CAUS
 | 
					Col(14) = FR_CODMAGC
 | 
				
			||||||
15=FR_CODMAGC
 | 
					Col(15) = FR_CODDEPC
 | 
				
			||||||
16=FR_CODDEPC
 | 
					Col(16) = FR_CODCMS
 | 
				
			||||||
17=FR_CODCMS
 | 
					Col(17) = FR_FASCMS
 | 
				
			||||||
18=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					// Handler(0) = F_ORAPART|1
 | 
				
			||||||
1 = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
100     = S_NORMALE
 | 
					100     = S_NORMALE
 | 
				
			||||||
@ -185,3 +181,4 @@ NGROUPS=20
 | 
				
			|||||||
18=1500
 | 
					18=1500
 | 
				
			||||||
19=1600
 | 
					19=1600
 | 
				
			||||||
20=3000
 | 
					20=3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -120,35 +120,32 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
				
			|||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=22
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_PREZZO
 | 
				
			||||||
11=FR_PREZZO
 | 
					Col(11) = FR_SCONTO
 | 
				
			||||||
12=FR_SCONTO
 | 
					Col(12) = FR_PERCPROV
 | 
				
			||||||
13=FR_PERCPROV
 | 
					Col(13) = FR_IMPFISUN
 | 
				
			||||||
14=FR_IMPFISUN
 | 
					Col(14) = FR_IMPFISSO
 | 
				
			||||||
15=FR_IMPFISSO
 | 
					Col(15) = FR_CODIVA
 | 
				
			||||||
16=FR_CODIVA
 | 
					Col(16) = FR_ADDIVA
 | 
				
			||||||
17=FR_ADDIVA
 | 
					Col(17) = FR_CAUS
 | 
				
			||||||
18=FR_CAUS
 | 
					Col(18) = FR_CODMAGC
 | 
				
			||||||
19=FR_CODMAGC
 | 
					Col(19) = FR_CODDEPC
 | 
				
			||||||
20=FR_CODDEPC
 | 
					Col(20) = FR_CODCMS
 | 
				
			||||||
21=FR_CODCMS
 | 
					Col(21) = FR_FASCMS
 | 
				
			||||||
22=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
 | 
				
			|||||||
@ -158,40 +158,37 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
				
			|||||||
Default(0)=F_CAUSTRASP|VEN
 | 
					Default(0)=F_CAUSTRASP|VEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=26
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_LORDO
 | 
				
			||||||
11=FR_LORDO
 | 
					Col(11) = FR_PREZZO
 | 
				
			||||||
12=FR_PREZZO
 | 
					Col(12) = FR_SCONTO
 | 
				
			||||||
13=FR_SCONTO
 | 
					Col(13) = FR_PERCPROV
 | 
				
			||||||
14=FR_PERCPROV
 | 
					Col(14) = FR_IMPFISUN
 | 
				
			||||||
15=FR_IMPFISUN
 | 
					Col(15) = FR_IMPFISSO
 | 
				
			||||||
16=FR_IMPFISSO
 | 
					Col(16) = FR_CODIVA
 | 
				
			||||||
17=FR_CODIVA
 | 
					Col(17) = FR_ADDIVA
 | 
				
			||||||
18=FR_ADDIVA
 | 
					Col(18) = FR_NCOLLI
 | 
				
			||||||
19=FR_NCOLLI
 | 
					Col(19) = FR_PNETTO
 | 
				
			||||||
20=FR_PNETTO
 | 
					Col(20) = FR_TARA
 | 
				
			||||||
21=FR_TARA
 | 
					Col(21) = FR_CAUS
 | 
				
			||||||
22=FR_CAUS
 | 
					Col(22) = FR_CODMAGC
 | 
				
			||||||
23=FR_CODMAGC
 | 
					Col(23) = FR_CODDEPC
 | 
				
			||||||
24=FR_CODDEPC
 | 
					Col(24) = FR_CODCMS
 | 
				
			||||||
25=FR_CODCMS
 | 
					Col(25) = FR_FASCMS
 | 
				
			||||||
26=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					// Handler(0)=F_ORAPART|1
 | 
				
			||||||
1 = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -262,3 +259,4 @@ NGROUPS=30
 | 
				
			|||||||
28=1000
 | 
					28=1000
 | 
				
			||||||
29=2900
 | 
					29=2900
 | 
				
			||||||
30=3000
 | 
					30=3000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -132,33 +132,30 @@ BLANK           = S_DISABILITATO                //4000
 | 
				
			|||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=20
 | 
					Col(1)=FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(2)=FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(3)=FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(4)=FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(5)=FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(6)=FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(7)=FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(8)=FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(9)=FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(10)=FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(11)=FR_PREZZO
 | 
				
			||||||
11=FR_PREZZO
 | 
					Col(12)=FR_SCONTO
 | 
				
			||||||
12=FR_SCONTO
 | 
					Col(13)=FR_PERCPROV
 | 
				
			||||||
13=FR_PERCPROV
 | 
					Col(14)=FR_IMPFISUN
 | 
				
			||||||
14=FR_IMPFISUN
 | 
					Col(15)=FR_IMPFISSO
 | 
				
			||||||
15=FR_IMPFISSO
 | 
					Col(16)=FR_CODIVA
 | 
				
			||||||
16=FR_CODIVA
 | 
					Col(17)=FR_ADDIVA
 | 
				
			||||||
17=FR_ADDIVA
 | 
					Col(18)=FR_CAUS
 | 
				
			||||||
18=FR_CAUS
 | 
					Col(19)=FR_CODMAGC
 | 
				
			||||||
19=FR_CODMAGC
 | 
					Col(20)=FR_CODDEPC
 | 
				
			||||||
20=FR_CODDEPC
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
 | 
				
			|||||||
@ -153,38 +153,34 @@ BLANK           = S_DISABILITATO                //4000
 | 
				
			|||||||
CODNOTE         = S_NORMALE                     //2500
 | 
					CODNOTE         = S_NORMALE                     //2500
 | 
				
			||||||
NOTECLI         = S_NOCHECK                     //2500
 | 
					NOTECLI         = S_NOCHECK                     //2500
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=20
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_PREZZO
 | 
				
			||||||
11=FR_PREZZO
 | 
					Col(11) = FR_SCONTO
 | 
				
			||||||
12=FR_SCONTO
 | 
					Col(12) = FR_PERCPROV
 | 
				
			||||||
13=FR_PERCPROV
 | 
					Col(13) = FR_IMPFISUN
 | 
				
			||||||
14=FR_IMPFISUN
 | 
					Col(14) = FR_IMPFISSO
 | 
				
			||||||
15=FR_IMPFISSO
 | 
					Col(15) = FR_CODIVA
 | 
				
			||||||
16=FR_CODIVA
 | 
					Col(16) = FR_ADDIVA
 | 
				
			||||||
17=FR_ADDIVA
 | 
					Col(17) = FR_CAUS
 | 
				
			||||||
18=FR_CAUS
 | 
					Col(18) = FR_CODMAGC
 | 
				
			||||||
19=FR_CODMAGC
 | 
					Col(19) = FR_CODDEPC
 | 
				
			||||||
20=FR_CODDEPC
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					// Handler(0)=F_ORAPART|1
 | 
				
			||||||
1 = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ TYPE=Ordine Cliente
 | 
				
			|||||||
// modifica
 | 
					// modifica
 | 
				
			||||||
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
 | 
					CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
 | 
				
			||||||
CALCOLI=*
 | 
					CALCOLI=*
 | 
				
			||||||
TOTPROVV = 
 | 
					TOTPROVV =
 | 
				
			||||||
// modifica
 | 
					// modifica
 | 
				
			||||||
// Procedure utente da chiamare per il documento ( preprocessarle? )
 | 
					// Procedure utente da chiamare per il documento ( preprocessarle? )
 | 
				
			||||||
NUOVO=
 | 
					NUOVO=
 | 
				
			||||||
@ -153,41 +153,36 @@ BLANK           = S_DISABILITATO                //4000
 | 
				
			|||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=26
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_LORDO
 | 
				
			||||||
11=FR_LORDO
 | 
					Col(11) = FR_QTAEVASA
 | 
				
			||||||
12=FR_QTAEVASA
 | 
					Col(12) = FR_RIGAEVASA
 | 
				
			||||||
13=FR_RIGAEVASA
 | 
					Col(13) = FR_DATACONS
 | 
				
			||||||
14=FR_DATACONS
 | 
					Col(14) = FR_PREZZO
 | 
				
			||||||
15=FR_PREZZO
 | 
					Col(15) = FR_SCONTO
 | 
				
			||||||
16=FR_SCONTO
 | 
					Col(16) = FR_PERCPROV
 | 
				
			||||||
17=FR_PERCPROV
 | 
					Col(17) = FR_IMPFISUN
 | 
				
			||||||
18=FR_IMPFISUN
 | 
					Col(18) = FR_IMPFISSO
 | 
				
			||||||
19=FR_IMPFISSO
 | 
					Col(19) = FR_CODIVA
 | 
				
			||||||
20=FR_CODIVA
 | 
					Col(20) = FR_ADDIVA
 | 
				
			||||||
21=FR_ADDIVA
 | 
					Col(21) = FR_CAUS
 | 
				
			||||||
22=FR_CAUS
 | 
					Col(22) = FR_CODMAGC
 | 
				
			||||||
23=FR_CODMAGC
 | 
					Col(23) = FR_CODDEPC
 | 
				
			||||||
24=FR_CODDEPC
 | 
					Col(24) = FR_CODCMS
 | 
				
			||||||
25=FR_CODCMS
 | 
					Col(25) = FR_FASCMS
 | 
				
			||||||
26=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// #include <VEUML.H>
 | 
					 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					 | 
				
			||||||
// S_DISABILITATO = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -220,7 +215,7 @@ NHANDLER=0
 | 
				
			|||||||
2400    = S_NORMALE
 | 
					2400    = S_NORMALE
 | 
				
			||||||
2500    = S_NORMALE
 | 
					2500    = S_NORMALE
 | 
				
			||||||
2900    = S_NORMALE
 | 
					2900    = S_NORMALE
 | 
				
			||||||
3000    = S_NORMALE 
 | 
					3000    = S_NORMALE
 | 
				
			||||||
4000    = S_NORMALE
 | 
					4000    = S_NORMALE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ORDINEGRUPPI]
 | 
					[ORDINEGRUPPI]
 | 
				
			||||||
 | 
				
			|||||||
@ -157,40 +157,37 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
				
			|||||||
BLANK           = S_DISABILITATO                //4000
 | 
					BLANK           = S_DISABILITATO                //4000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=25
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_QTAEVASA
 | 
				
			||||||
11=FR_QTAEVASA
 | 
					Col(11) = FR_RIGAEVASA
 | 
				
			||||||
12=FR_RIGAEVASA
 | 
					Col(12) = FR_DATACONS
 | 
				
			||||||
13=FR_DATACONS
 | 
					Col(13) = FR_PREZZO
 | 
				
			||||||
14=FR_PREZZO
 | 
					Col(14) = FR_SCONTO
 | 
				
			||||||
15=FR_SCONTO
 | 
					Col(15) = FR_PERCPROV
 | 
				
			||||||
16=FR_PERCPROV
 | 
					Col(16) = FR_IMPFISUN
 | 
				
			||||||
17=FR_IMPFISUN
 | 
					Col(17) = FR_IMPFISSO
 | 
				
			||||||
18=FR_IMPFISSO
 | 
					Col(18) = FR_CODIVA
 | 
				
			||||||
19=FR_CODIVA
 | 
					Col(19) = FR_ADDIVA
 | 
				
			||||||
20=FR_ADDIVA
 | 
					Col(20) = FR_CAUS
 | 
				
			||||||
21=FR_CAUS
 | 
					Col(21) = FR_CODMAGC
 | 
				
			||||||
22=FR_CODMAGC
 | 
					Col(22) = FR_CODDEPC
 | 
				
			||||||
23=FR_CODDEPC
 | 
					Col(23) = FR_CODCMS
 | 
				
			||||||
24=FR_CODCMS
 | 
					Col(24) = FR_FASCMS
 | 
				
			||||||
25=FR_FASCMS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[RIGHE]
 | 
					 | 
				
			||||||
NTIPIRIGA=*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[RIGHE]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -266,3 +263,4 @@ NGROUPS=33
 | 
				
			|||||||
31=1600
 | 
					31=1600
 | 
				
			||||||
32=2000
 | 
					32=2000
 | 
				
			||||||
33=2900
 | 
					33=2900
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										64
									
								
								ve/ordp.src
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								ve/ordp.src
									
									
									
									
									
								
							@ -11,7 +11,7 @@ TYPE=Ordine Cliente
 | 
				
			|||||||
// modifica
 | 
					// modifica
 | 
				
			||||||
CAMPICALC=
 | 
					CAMPICALC=
 | 
				
			||||||
CALCOLI=
 | 
					CALCOLI=
 | 
				
			||||||
TOTPROVV = 
 | 
					TOTPROVV =
 | 
				
			||||||
// modifica
 | 
					// modifica
 | 
				
			||||||
// Procedure utente da chiamare per il documento ( preprocessarle? )
 | 
					// Procedure utente da chiamare per il documento ( preprocessarle? )
 | 
				
			||||||
NUOVO=
 | 
					NUOVO=
 | 
				
			||||||
@ -141,43 +141,38 @@ BLANK           = S_DISABILITATO                //4000
 | 
				
			|||||||
[DEFAULT]
 | 
					[DEFAULT]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[SHEET]
 | 
					[SHEET]
 | 
				
			||||||
NCOLS=19
 | 
					Col(0) = FR_CODMAG
 | 
				
			||||||
1=FR_CODMAG
 | 
					Col(1) = FR_CODDEP
 | 
				
			||||||
2=FR_CODDEP
 | 
					Col(2) = FR_CODART
 | 
				
			||||||
3=FR_CODART
 | 
					Col(3) = FR_LIV1
 | 
				
			||||||
4=FR_LIV1
 | 
					Col(4) = FR_LIV2
 | 
				
			||||||
5=FR_LIV2
 | 
					Col(5) = FR_LIV3
 | 
				
			||||||
6=FR_LIV3
 | 
					Col(6) = FR_LIV4
 | 
				
			||||||
7=FR_LIV4
 | 
					Col(7) = FR_DESCR
 | 
				
			||||||
8=FR_DESCR
 | 
					Col(8) = FR_UMQTA
 | 
				
			||||||
9=FR_UMQTA
 | 
					Col(9) = FR_QTA
 | 
				
			||||||
10=FR_QTA
 | 
					Col(10) = FR_LORDO
 | 
				
			||||||
11=FR_LORDO
 | 
					Col(11) = FR_QTAEVASA
 | 
				
			||||||
12=FR_QTAEVASA
 | 
					Col(12) = FR_RIGAEVASA
 | 
				
			||||||
13=FR_RIGAEVASA
 | 
					Col(13) = FR_DATACONS
 | 
				
			||||||
14=FR_DATACONS
 | 
					Col(14) = FR_CAUS
 | 
				
			||||||
15=FR_CAUS
 | 
					Col(15) = FR_CODMAGC
 | 
				
			||||||
16=FR_CODMAGC
 | 
					Col(16) = FR_CODDEPC
 | 
				
			||||||
17=FR_CODDEPC
 | 
					Col(17) = FR_IMPIANTO
 | 
				
			||||||
18=FR_IMPIANTO
 | 
					Col(18) = FR_LINEA
 | 
				
			||||||
19=FR_LINEA
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[RIGHE]
 | 
					[RIGHE]
 | 
				
			||||||
NTIPIRIGA=9
 | 
					Tipo(0) = 01
 | 
				
			||||||
1=01
 | 
					Tipo(1) = 02
 | 
				
			||||||
2=02
 | 
					Tipo(2) = 03
 | 
				
			||||||
3=03
 | 
					Tipo(3) = 04
 | 
				
			||||||
4=04
 | 
					Tipo(4) = 05
 | 
				
			||||||
5=05
 | 
					Tipo(5) = 06
 | 
				
			||||||
6=06
 | 
					Tipo(6) = 07
 | 
				
			||||||
7=07
 | 
					Tipo(7) = 08
 | 
				
			||||||
8=08
 | 
					Tipo(8) = 09
 | 
				
			||||||
9=09
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// #include <VEUML.H>
 | 
					 | 
				
			||||||
[HANDLERS]
 | 
					[HANDLERS]
 | 
				
			||||||
NHANDLER=0
 | 
					 | 
				
			||||||
// S_DISABILITATO = F_ORAPART|1
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[PROFILOGRUPPO]
 | 
					[PROFILOGRUPPO]
 | 
				
			||||||
101     = S_NASCOSTO
 | 
					101     = S_NASCOSTO
 | 
				
			||||||
@ -242,4 +237,3 @@ NGROUPS=27
 | 
				
			|||||||
26=2900
 | 
					26=2900
 | 
				
			||||||
27=2000
 | 
					27=2000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -4,12 +4,18 @@ TOOLBAR "" 0 -2 0 2
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 10 2
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -12 -1 ""
 | 
					  PROMPT -13 -1 ""
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_LINK 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -23 -1 "Colle~ga"
 | 
				
			||||||
 | 
						PICTURE BMP_LINK
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_QUIT 10 2
 | 
					BUTTON DLG_QUIT 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -22 -1 ""
 | 
					  PROMPT -33 -1 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
@ -33,7 +39,7 @@ BEGIN
 | 
				
			|||||||
  PROMPT 1 1 "@bDestinazione"
 | 
					  PROMPT 1 1 "@bDestinazione"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GROUPBOX F_GROUP_S 77 9
 | 
					GROUPBOX F_GROUP_S 77 10
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 1 "@bSorgente"
 | 
					  PROMPT 1 1 "@bSorgente"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
@ -151,13 +157,12 @@ END
 | 
				
			|||||||
NUMBER F_NDOC_ELAB 6
 | 
					NUMBER F_NDOC_ELAB 6
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 24 5 "Numero doc. "
 | 
					  PROMPT 24 5 "Numero doc. "
 | 
				
			||||||
  USE LF_DOC KEY 2
 | 
					  USE LF_DOC KEY 4
 | 
				
			||||||
  JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF 
 | 
					  JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF 
 | 
				
			||||||
  INPUT TIPOCF F_TIPOCF_ELAB SELECT 
 | 
					  INPUT TIPOCF F_TIPOCF_ELAB SELECT 
 | 
				
			||||||
  INPUT CODCF F_CODCF_ELAB SELECT 
 | 
					  INPUT CODCF F_CODCF_ELAB SELECT 
 | 
				
			||||||
  INPUT PROVV F_PROVV_ELAB SELECT 
 | 
					  INPUT PROVV F_PROVV_ELAB SELECT 
 | 
				
			||||||
  INPUT ANNO F_ANNO_ELAB SELECT   
 | 
					  INPUT ANNO F_ANNO_ELAB SELECT   
 | 
				
			||||||
  INPUT DATADOC F_DATADOC_ELAB
 | 
					 | 
				
			||||||
  INPUT CODNUM F_CODNUM_ELAB
 | 
					  INPUT CODNUM F_CODNUM_ELAB
 | 
				
			||||||
  INPUT NDOC F_NDOC_ELAB
 | 
					  INPUT NDOC F_NDOC_ELAB
 | 
				
			||||||
  DISPLAY "Num." CODNUM
 | 
					  DISPLAY "Num." CODNUM
 | 
				
			||||||
@ -247,9 +252,23 @@ BEGIN
 | 
				
			|||||||
  GROUP GRP_ART
 | 
					  GROUP GRP_ART
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CURRENCY F_TOTVAL 18
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 2 9 "Valore totale "
 | 
				
			||||||
 | 
						FLAGS "HD"
 | 
				
			||||||
 | 
					  GROUP GRP_CHK
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CURRENCY F_TOTSEL 18
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 40 9 "Valore selezionato "
 | 
				
			||||||
 | 
						FLAGS "HD"
 | 
				
			||||||
 | 
					  GROUP GRP_CHK
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TREE F_ROWS -3 -1
 | 
					TREE F_ROWS -3 -1
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 0 10 ""
 | 
					  PROMPT 0 11 ""
 | 
				
			||||||
  GROUP GRP_DOC
 | 
					  GROUP GRP_DOC
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -20,10 +20,13 @@
 | 
				
			|||||||
#define F_QTA                220
 | 
					#define F_QTA                220
 | 
				
			||||||
#define F_NUMDOCRIF_ELAB     227
 | 
					#define F_NUMDOCRIF_ELAB     227
 | 
				
			||||||
#define F_CODVAL_ELAB        228
 | 
					#define F_CODVAL_ELAB        228
 | 
				
			||||||
#define F_ROWS               229
 | 
					#define F_TOTVAL             229
 | 
				
			||||||
 | 
					#define F_TOTSEL             230
 | 
				
			||||||
 | 
					#define F_ROWS               231
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define GRP_ART              2
 | 
					#define GRP_ART              2
 | 
				
			||||||
#define GRP_DOC              3
 | 
					#define GRP_DOC              3
 | 
				
			||||||
 | 
					#define GRP_CHK              4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define S_RIGACONSEGNATA 101
 | 
					#define S_RIGACONSEGNATA 101
 | 
				
			||||||
#define S_QTARESIDUA     102
 | 
					#define S_QTARESIDUA     102
 | 
				
			||||||
 | 
				
			|||||||
@ -245,7 +245,7 @@ public:
 | 
				
			|||||||
  void  set_defaults(TMask& m) const;
 | 
					  void  set_defaults(TMask& m) const;
 | 
				
			||||||
  const TString_array& keys_descrs();
 | 
					  const TString_array& keys_descrs();
 | 
				
			||||||
  const TString_array& sheet_columns();
 | 
					  const TString_array& sheet_columns();
 | 
				
			||||||
  const TString_array& handlers();
 | 
					  const TString_array& handlers() const;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  const TString& mask_name() const { return get("S4");}
 | 
					  const TString& mask_name() const { return get("S4");}
 | 
				
			||||||
  const TString& causale() const { return get("S6"); } 
 | 
					  const TString& causale() const { return get("S6"); } 
 | 
				
			||||||
@ -694,6 +694,7 @@ public:
 | 
				
			|||||||
  bool provvisorio() const { return get_char("PROVV") == 'P'; }
 | 
					  bool provvisorio() const { return get_char("PROVV") == 'P'; }
 | 
				
			||||||
  char stato() const { return get_char("STATO"); }
 | 
					  char stato() const { return get_char("STATO"); }
 | 
				
			||||||
  void stato(char s) { put("STATO", s); }
 | 
					  void stato(char s) { put("STATO", s); }
 | 
				
			||||||
 | 
					  const TString & codice_costo() const { return get(DOC_CODCOSTO);}
 | 
				
			||||||
  const TString & codice_commessa() const { return get(DOC_CODCMS);}
 | 
					  const TString & codice_commessa() const { return get(DOC_CODCMS);}
 | 
				
			||||||
  const TString & fase_commessa() const { return get(DOC_FASCMS);}
 | 
					  const TString & fase_commessa() const { return get(DOC_FASCMS);}
 | 
				
			||||||
  bool modificabile() const;
 | 
					  bool modificabile() const;
 | 
				
			||||||
@ -811,7 +812,6 @@ protected:
 | 
				
			|||||||
  static bool codlist_handler( TMask_field& f, KEY key );
 | 
					  static bool codlist_handler( TMask_field& f, KEY key );
 | 
				
			||||||
  static bool codcont_handler( TMask_field& f, KEY key );
 | 
					  static bool codcont_handler( TMask_field& f, KEY key );
 | 
				
			||||||
  static bool codcamp_handler( TMask_field& f, KEY key );
 | 
					  static bool codcamp_handler( TMask_field& f, KEY key );
 | 
				
			||||||
//  static bool controeuro_handler( TMask_field& f, KEY key );
 | 
					 | 
				
			||||||
  static bool datacambio_handler( TMask_field& f, KEY key );
 | 
					  static bool datacambio_handler( TMask_field& f, KEY key );
 | 
				
			||||||
  static bool codval_handler( TMask_field& f, KEY key );
 | 
					  static bool codval_handler( TMask_field& f, KEY key );
 | 
				
			||||||
  void user_set_handler( int fieldid, int index);
 | 
					  void user_set_handler( int fieldid, int index);
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "velib.h"
 | 
					#include "velib.h"
 | 
				
			||||||
#include "vepriv.h"
 | 
					#include "vepriv.h"
 | 
				
			||||||
 | 
					#include "verig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../mg/mglib.h"
 | 
					#include "../mg/mglib.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -103,26 +104,28 @@ const TString_array& TTipo_documento::keys_descrs()
 | 
				
			|||||||
    TString16 var, tiporiga;
 | 
					    TString16 var, tiporiga;
 | 
				
			||||||
    TFilename pn; profile_name(pn);
 | 
					    TFilename pn; profile_name(pn);
 | 
				
			||||||
    TConfig prof(pn);
 | 
					    TConfig prof(pn);
 | 
				
			||||||
    const int numtr = prof.get_int( "NTIPIRIGA", "RIGHE" );
 | 
							TTipo_riga_documento tr;
 | 
				
			||||||
    TTipo_riga_documento tr;
 | 
					
 | 
				
			||||||
    _keys_descrs.add("");
 | 
					    _keys_descrs.add("");
 | 
				
			||||||
    _keys_descrs.add("");
 | 
					    _keys_descrs.add("");
 | 
				
			||||||
    TToken_string& k = (TToken_string&)_keys_descrs[0];
 | 
					    TToken_string& k = (TToken_string&)_keys_descrs[0];
 | 
				
			||||||
    TToken_string& d = (TToken_string&)_keys_descrs[1];
 | 
					    TToken_string& d = (TToken_string&)_keys_descrs[1];
 | 
				
			||||||
                
 | 
							int i;
 | 
				
			||||||
    if (numtr > 0)            
 | 
					
 | 
				
			||||||
    {
 | 
							for (i = 0; ; i++)
 | 
				
			||||||
      for ( int i = 1; i <= numtr; i ++ )
 | 
							{
 | 
				
			||||||
      {
 | 
								const TString16 tiporiga(prof.get("Tipo", "RIGHE", i));
 | 
				
			||||||
        var.format("%d", i);
 | 
					
 | 
				
			||||||
        tiporiga = prof.get(var, "RIGHE");
 | 
								if (tiporiga.empty())
 | 
				
			||||||
        tr.read(tiporiga);
 | 
									break;
 | 
				
			||||||
        k.add(tr.codice());
 | 
					            
 | 
				
			||||||
        d.add(tr.descrizione());
 | 
					      tr.read(tiporiga);
 | 
				
			||||||
      }
 | 
					      k.add(tr.codice());
 | 
				
			||||||
 | 
					      d.add(tr.descrizione());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					
 | 
				
			||||||
    {
 | 
					    if (i == 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
      TTable tri("%TRI");
 | 
					      TTable tri("%TRI");
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      for (int err = tri.first(); err == NOERR; err = tri.next())
 | 
					      for (int err = tri.first(); err == NOERR; err = tri.next())
 | 
				
			||||||
@ -140,34 +143,34 @@ const TString_array& TTipo_documento::sheet_columns()
 | 
				
			|||||||
{ 
 | 
					{ 
 | 
				
			||||||
  if (_sheet_columns.items() == 0)
 | 
					  if (_sheet_columns.items() == 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString16 col;
 | 
					 | 
				
			||||||
    TFilename pn; profile_name(pn);
 | 
					    TFilename pn; profile_name(pn);
 | 
				
			||||||
    TConfig prof(pn, "SHEET");
 | 
					    TConfig prof(pn, "SHEET");
 | 
				
			||||||
    int ncols = prof.get_int( "NCOLS", "SHEET" );
 | 
					    for (int i = 0; i < MAX_COLUMNS; i++)
 | 
				
			||||||
    for (int i = 1; i <= ncols; i++)
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      col.format( "%d", i );
 | 
								const TString & id = prof.get("Col", NULL, i);
 | 
				
			||||||
      _sheet_columns.add(prof.get(col, "SHEET"));
 | 
								if (atoi(id) == 0)
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
					      _sheet_columns.add(id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return _sheet_columns;
 | 
					  return _sheet_columns;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const TString_array&  TTipo_documento::handlers()
 | 
					const TString_array&  TTipo_documento::handlers() const 
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (_handlers.items() == 0)
 | 
					  if (_handlers.items() == 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString16 chiave;
 | 
					    TString16 chiave;
 | 
				
			||||||
    TFilename pn; profile_name(pn);
 | 
					    TFilename pn; profile_name(pn);
 | 
				
			||||||
    TConfig prof(pn);
 | 
					    TConfig prof(pn, "HANDLERS");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int numhandler = prof.get_int( "NHANDLER", "HANDLERS" ); // prof
 | 
					    for (int i = 0; ; i++)
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    for (int i = 1; i <= numhandler; i++)
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      chiave.format("%d", i);
 | 
								const TString & h = prof.get("Handler", NULL, i);
 | 
				
			||||||
      _handlers.add(prof.get(chiave, "HANDLERS"));
 | 
								if (h.empty())
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								((TString_array &)_handlers).add(h);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return _handlers;
 | 
					  return _handlers;
 | 
				
			||||||
 | 
				
			|||||||
@ -18,6 +18,25 @@ TDate TLista_documenti::num2date(char provv, int anno, const char* codnum, long
 | 
				
			|||||||
  return doc.get_date(DOC_DATADOC);
 | 
					  return doc.get_date(DOC_DATADOC);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TLista_documenti::find(char provv, int anno, const char * codnum, long ndoc) const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						bool found = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ndoc > 0)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							const int it = items();
 | 
				
			||||||
 | 
							for (int i = 0; !found && i < it; i++)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								const TDocumento & d = doc(i);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								found	=	((d.head().get_long(DOC_NDOC) == ndoc) &&
 | 
				
			||||||
 | 
								         (d.head().get_char(DOC_PROVV) == provv) &&
 | 
				
			||||||
 | 
												 (d.head().get_int(DOC_ANNO) == anno) &&
 | 
				
			||||||
 | 
												 (d.head().get(DOC_CODNUM) == codnum));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return found;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
int TLista_documenti::read(char provv, char tipocf, long clifo, int anno, 
 | 
					int TLista_documenti::read(char provv, char tipocf, long clifo, int anno, 
 | 
				
			||||||
                           TToken_string& tipidoc, TToken_string& statidoc,
 | 
					                           TToken_string& tipidoc, TToken_string& statidoc,
 | 
				
			||||||
                           const TDate& dd, const TDate& ad,
 | 
					                           const TDate& dd, const TDate& ad,
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ protected:
 | 
				
			|||||||
  TDate num2date(char provv, int anno, const char* codnum, long num) const;
 | 
					  TDate num2date(char provv, int anno, const char* codnum, long num) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
						bool find(char provv, int anno, const char * codnum, long ndoc) const;
 | 
				
			||||||
  int read(char provv, char tipo, long clifo, int anno, 
 | 
					  int read(char provv, char tipo, long clifo, int anno, 
 | 
				
			||||||
           TToken_string& tipidoc, TToken_string& statidoc,
 | 
					           TToken_string& tipidoc, TToken_string& statidoc,
 | 
				
			||||||
           const TDate& dd, const TDate& ad, 
 | 
					           const TDate& dd, const TDate& ad, 
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										306
									
								
								ve/velib06.cpp
									
									
									
									
									
								
							
							
						
						
									
										306
									
								
								ve/velib06.cpp
									
									
									
									
									
								
							@ -1,5 +1,6 @@
 | 
				
			|||||||
#include <automask.h>
 | 
					#include <automask.h>
 | 
				
			||||||
#include <dongle.h>
 | 
					#include <dongle.h>
 | 
				
			||||||
 | 
					#include <execp.h>
 | 
				
			||||||
#include <modaut.h>
 | 
					#include <modaut.h>
 | 
				
			||||||
#include <sheet.h>
 | 
					#include <sheet.h>
 | 
				
			||||||
#include <smartcard.h>
 | 
					#include <smartcard.h>
 | 
				
			||||||
@ -7,6 +8,7 @@
 | 
				
			|||||||
#include <tree.h>
 | 
					#include <tree.h>
 | 
				
			||||||
#include <postman.h>
 | 
					#include <postman.h>
 | 
				
			||||||
#include <urldefid.h>
 | 
					#include <urldefid.h>
 | 
				
			||||||
 | 
					#include <utility.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "velib04.h"
 | 
					#include "velib04.h"
 | 
				
			||||||
#include "vepriv.h"
 | 
					#include "vepriv.h"
 | 
				
			||||||
@ -81,8 +83,9 @@ TDocumento_mask::TDocumento_mask(const char* td)
 | 
				
			|||||||
  listbox.replace_items(keys, descrs);
 | 
					  listbox.replace_items(keys, descrs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Controlla se deve generare la pagina di analitica
 | 
					  // Controlla se deve generare la pagina di analitica
 | 
				
			||||||
  if (dongle().active(CAAUT) || dongle().active(CMAUT))
 | 
					   if (dongle().active(CAAUT) || dongle().active(CMAUT))
 | 
				
			||||||
    insert_anal_page();
 | 
					    insert_anal_page();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  configura_sheet(*_sheet);
 | 
					  configura_sheet(*_sheet);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -1017,9 +1020,15 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga)
 | 
				
			|||||||
      row_set_handler( *m, riga.get_int( 0 ), riga.get_int( 1 ) );
 | 
					      row_set_handler( *m, riga.get_int( 0 ), riga.get_int( 1 ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
                  
 | 
					                  
 | 
				
			||||||
    m->set_handler( FR_QTA, qta_handler );
 | 
					 		m->set_handler(FR_TIPORIGA, tipo_riga_handler);
 | 
				
			||||||
 | 
							m->set_handler( FR_QTA, qta_handler );
 | 
				
			||||||
    m->set_handler( FR_UMQTA, um_handler );
 | 
					    m->set_handler( FR_UMQTA, um_handler );
 | 
				
			||||||
    m->set_handler( FR_DATACONS, dcons_handler);
 | 
					    m->set_handler( FR_DATACONS, dcons_handler);
 | 
				
			||||||
 | 
							TList_field & htr = lfield(F_LBTIPORIGA);
 | 
				
			||||||
 | 
							const TString codes(htr.get_codes());
 | 
				
			||||||
 | 
							const TString values(htr.get_values());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  m->lfield(FR_TIPORIGA).replace_items(codes, values);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    const int pos = m->id2pos(FR_CODART);
 | 
					    const int pos = m->id2pos(FR_CODART);
 | 
				
			||||||
    if (pos >= 0)
 | 
					    if (pos >= 0)
 | 
				
			||||||
@ -1162,7 +1171,7 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga)
 | 
				
			|||||||
    f.reset_driver();
 | 
					    f.reset_driver();
 | 
				
			||||||
    f.add_driver(-F_CODVAL);
 | 
					    f.add_driver(-F_CODVAL);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  return m;
 | 
					  return m;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1569,6 +1578,10 @@ class TDocument_tree : public TBidirectional_tree
 | 
				
			|||||||
  TRelation* _relation;
 | 
					  TRelation* _relation;
 | 
				
			||||||
  TCursor* _cursor;
 | 
					  TCursor* _cursor;
 | 
				
			||||||
  TToken_string _curnode;
 | 
					  TToken_string _curnode;
 | 
				
			||||||
 | 
						bool _multiple_selection;
 | 
				
			||||||
 | 
						TAssoc_array _selected_docs;
 | 
				
			||||||
 | 
						TString _selected;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
protected:         
 | 
					protected:         
 | 
				
			||||||
  virtual void node2id(const TObject* node, TString& id) const;
 | 
					  virtual void node2id(const TObject* node, TString& id) const;
 | 
				
			||||||
@ -1579,6 +1592,13 @@ protected:
 | 
				
			|||||||
  void append_custom_fields(const TTipo_documento& tipo, const TRectype& rec, TString& str) const;
 | 
					  void append_custom_fields(const TTipo_documento& tipo, const TRectype& rec, TString& str) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:  
 | 
					public:  
 | 
				
			||||||
 | 
						void multiple_selection(bool on);
 | 
				
			||||||
 | 
						bool multiple_selection() const { return _multiple_selection;}
 | 
				
			||||||
 | 
						bool node_selected(const TObject* node = NULL) const;
 | 
				
			||||||
 | 
						void select_node(const TObject* node = NULL, bool on = true);
 | 
				
			||||||
 | 
						real select_doc(long numdoc);
 | 
				
			||||||
 | 
						void build_doc_list(TLista_documenti & docs);
 | 
				
			||||||
 | 
						void unselect_node(const TObject* node) { select_node(node, false);}
 | 
				
			||||||
  virtual bool goto_root();
 | 
					  virtual bool goto_root();
 | 
				
			||||||
  virtual bool goto_firstson();
 | 
					  virtual bool goto_firstson();
 | 
				
			||||||
  virtual bool goto_rbrother(); 
 | 
					  virtual bool goto_rbrother(); 
 | 
				
			||||||
@ -1592,10 +1612,14 @@ public:
 | 
				
			|||||||
  virtual TObject* curr_node() const { return &(TToken_string&)_curnode; }
 | 
					  virtual TObject* curr_node() const { return &(TToken_string&)_curnode; }
 | 
				
			||||||
  virtual bool get_description(TString& str) const;
 | 
					  virtual bool get_description(TString& str) const;
 | 
				
			||||||
  virtual TImage* image(bool selected) const;
 | 
					  virtual TImage* image(bool selected) const;
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
 | 
					 	void select(TString & id) { _selected = id;}
 | 
				
			||||||
 | 
					 	const TString & selected() const { return _selected;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const TRectype& testata() const;
 | 
					  const TRectype& testata() const;
 | 
				
			||||||
  const TRectype& riga() const;
 | 
					  const TRectype& riga() const;
 | 
				
			||||||
  const TRectype& record() const;
 | 
					  const TRectype& record() const;
 | 
				
			||||||
 | 
						const real totale_doc() const { TDocumento d(testata()); return d.totale_doc();}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void set_cursor(char tipocf, long codcf, int anno, const char* filter, FILTERFUNCTION ff = NULL);
 | 
					  void set_cursor(char tipocf, long codcf, int anno, const char* filter, FILTERFUNCTION ff = NULL);
 | 
				
			||||||
  TCursor* get_cursor() { return _cursor; }
 | 
					  TCursor* get_cursor() { return _cursor; }
 | 
				
			||||||
@ -1648,6 +1672,83 @@ bool TDocument_tree::on_row() const
 | 
				
			|||||||
  return me._curnode.get_int(1) > 0;
 | 
					  return me._curnode.get_int(1) > 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TDocument_tree::multiple_selection(bool on)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						_multiple_selection = on;
 | 
				
			||||||
 | 
						if (!_multiple_selection)
 | 
				
			||||||
 | 
							_selected_docs.destroy();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TDocument_tree::node_selected(const TObject* node) const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TToken_string id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (node == NULL)
 | 
				
			||||||
 | 
							node = curr_node();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						node2id(node, id);
 | 
				
			||||||
 | 
						id = id.get(0);
 | 
				
			||||||
 | 
						return _selected_docs.is_key(id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TDocument_tree::select_node(const TObject* node, bool on)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TToken_string id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (node == NULL)
 | 
				
			||||||
 | 
							node = curr_node();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						node2id(node, id);
 | 
				
			||||||
 | 
						id = id.get(0);
 | 
				
			||||||
 | 
						if (on)
 | 
				
			||||||
 | 
							_selected_docs.add(id);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							_selected_docs.remove(id);
 | 
				
			||||||
 | 
						select(id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool find_doc(TTree& tree, void* jolly, word flags)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TDocument_tree & t = (TDocument_tree &) tree;
 | 
				
			||||||
 | 
						if (!t.node_selected())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							t.select_node();
 | 
				
			||||||
 | 
							real & val = *((real *) jolly);
 | 
				
			||||||
 | 
							val = t.totale_doc();
 | 
				
			||||||
 | 
							return true;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					real TDocument_tree::select_doc(long numdoc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						real val;
 | 
				
			||||||
 | 
						if (goto_root())
 | 
				
			||||||
 | 
							scan_depth_first(find_doc, (void *) &val, SCAN_PRE_ORDER | SCAN_IGNORING_LEAVES);
 | 
				
			||||||
 | 
						return val;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool add_to_list(TTree& tree, void* jolly, word flags)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TDocument_tree & t = (TDocument_tree &) tree;
 | 
				
			||||||
 | 
						if (t.node_selected())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							TLista_documenti & docs = *((TLista_documenti *) jolly);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							docs.add(new TDocumento(t.testata()));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TDocument_tree::build_doc_list(TLista_documenti & docs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (goto_root())
 | 
				
			||||||
 | 
							scan_depth_first(add_to_list, (void *) &docs, SCAN_PRE_ORDER | SCAN_IGNORING_LEAVES);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TDocument_tree::goto_root()
 | 
					bool TDocument_tree::goto_root()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const bool ok = _cursor != NULL && _cursor->items()>0;
 | 
					  const bool ok = _cursor != NULL && _cursor->items()>0;
 | 
				
			||||||
@ -1817,6 +1918,19 @@ TImage* TDocument_tree::image(bool selected) const
 | 
				
			|||||||
    if (rec.get_bool(RDOC_RIGAEVASA))
 | 
					    if (rec.get_bool(RDOC_RIGAEVASA))
 | 
				
			||||||
      return get_res_image(BMP_STOP);
 | 
					      return get_res_image(BMP_STOP);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							if (multiple_selection())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								const bool sel = node_selected();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (sel)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (selected)
 | 
				
			||||||
 | 
										return get_res_image(BMP_DIRDNSEL);
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										return get_res_image(BMP_DIRSEL);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
  return TTree::image(selected);
 | 
					  return TTree::image(selected);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1902,7 +2016,8 @@ void TDocument_tree::set_cursor(char tipocf, long codcf, int anno, const char* f
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TDocument_tree::TDocument_tree() 
 | 
					TDocument_tree::TDocument_tree() 
 | 
				
			||||||
              : _relation(NULL), _cursor(NULL)
 | 
					              : _relation(NULL), _cursor(NULL), _multiple_selection(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@ -1923,6 +2038,7 @@ class TElabora_mask : public TAutomask
 | 
				
			|||||||
  TDocumento_mask* _main;
 | 
					  TDocumento_mask* _main;
 | 
				
			||||||
  TLista_elaborazioni _elab;
 | 
					  TLista_elaborazioni _elab;
 | 
				
			||||||
  TDocument_tree _tree;
 | 
					  TDocument_tree _tree;
 | 
				
			||||||
 | 
						int _check_fld;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TElaborazione* _last_elab;
 | 
					  TElaborazione* _last_elab;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -1962,6 +2078,22 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
 | 
				
			|||||||
    if (e == fe_modify)
 | 
					    if (e == fe_modify)
 | 
				
			||||||
      update_ndoc_filter();
 | 
					      update_ndoc_filter();
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case F_NDOC_ELAB:
 | 
				
			||||||
 | 
					    if (e == fe_init || e == fe_modify)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								const long ndoc = atol(o.get());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (ndoc > 0L)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									real val = _tree.select_doc(ndoc);
 | 
				
			||||||
 | 
									if (val != ZERO)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										val += o.mask().get_real(F_TOTSEL);
 | 
				
			||||||
 | 
										o.mask().set(F_TOTSEL, val);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
  case F_TYPE:
 | 
					  case F_TYPE:
 | 
				
			||||||
    if (e == fe_init || e == fe_modify)
 | 
					    if (e == fe_init || e == fe_modify)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -1974,8 +2106,34 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
 | 
				
			|||||||
          set(F_TYPE, "");
 | 
					          set(F_TYPE, "");
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      update_ndoc_filter(TRUE);
 | 
					      update_ndoc_filter(TRUE);
 | 
				
			||||||
      const bool is_search = o.get().empty() || field(F_CODCF_ELAB).empty();
 | 
								const bool add_to_doc = o.get().not_empty();
 | 
				
			||||||
      o.mask().field(F_NDOC_ELAB).check_type(is_search ? CHECK_SEARCH : CHECK_REQUIRED);
 | 
					      const bool is_search = !add_to_doc || field(F_CODCF_ELAB).empty();
 | 
				
			||||||
 | 
					      o.mask().field(F_NDOC_ELAB).check_type(is_search ? CHECK_SEARCH : CHECK_NORMAL);
 | 
				
			||||||
 | 
								_tree.multiple_selection(add_to_doc);
 | 
				
			||||||
 | 
								bool check_tot = false;
 | 
				
			||||||
 | 
								if (add_to_doc)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_check_fld < -1)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										_check_fld = -1;
 | 
				
			||||||
 | 
									  const TString_array& handlers = _main->doc().tipo().handlers();
 | 
				
			||||||
 | 
										const int items = handlers.items();
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
										for (int i = 0; i < items; i ++ )
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											TToken_string& riga = (TToken_string&) handlers[i];
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
											if (riga.get_int(1) == 2)
 | 
				
			||||||
 | 
												_check_fld = riga.get_int(0);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									check_tot = _check_fld >= 0;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if (!add_to_doc)
 | 
				
			||||||
 | 
									o.mask().set(F_TOTSEL, "");
 | 
				
			||||||
 | 
								o.mask().show(-GRP_CHK, check_tot);
 | 
				
			||||||
 | 
								if (check_tot)
 | 
				
			||||||
 | 
									o.mask().set(F_TOTVAL, _main->get(_check_fld));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    break;    
 | 
					    break;    
 | 
				
			||||||
  case F_STATODOC_ELAB:
 | 
					  case F_STATODOC_ELAB:
 | 
				
			||||||
@ -1998,38 +2156,83 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
 | 
				
			|||||||
    if (e == fe_button) 
 | 
					    if (e == fe_button) 
 | 
				
			||||||
      docrif_search();
 | 
					      docrif_search();
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case F_NDOC_ELAB:
 | 
					 | 
				
			||||||
    if ((e == fe_modify || e == fe_close) && o.check_type() == CHECK_SEARCH && !o.empty()) 
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TToken_string key; 
 | 
					 | 
				
			||||||
      key.add("D"); key.add(get(F_ANNO_ELAB));
 | 
					 | 
				
			||||||
      key.add(get(F_CODNUM_ELAB)); key.add(o.get());
 | 
					 | 
				
			||||||
      const TRectype& rec = cache().get(LF_DOC, key);
 | 
					 | 
				
			||||||
      bool ok = !rec.empty(); // Verifica esistenza documento
 | 
					 | 
				
			||||||
      if (ok)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        TCursor* c = _tree.get_cursor();
 | 
					 | 
				
			||||||
        c->curr() = rec;
 | 
					 | 
				
			||||||
        ok = c->test(_isequal) == NOERR; // Verifica compatibilità documento
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (!ok)
 | 
					 | 
				
			||||||
        return error_box(((TEdit_field&)o).get_warning());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    break;
 | 
					 | 
				
			||||||
  case F_ROWS:
 | 
					  case F_ROWS:
 | 
				
			||||||
    if (e == fe_modify && is_running()) 
 | 
					    if (e == fe_modify) 
 | 
				
			||||||
    {                
 | 
					    {                
 | 
				
			||||||
      TCursor* c = _tree.get_cursor();
 | 
								TString id;
 | 
				
			||||||
      if (c != NULL && c->items() > 0)
 | 
					
 | 
				
			||||||
      {
 | 
								_tree.curr_id(id);
 | 
				
			||||||
        const TRectype& head = _tree.testata();
 | 
								_tree.select(id);
 | 
				
			||||||
        set(F_DATADOC_ELAB, head.get(DOC_DATADOC)); // Anch'essa nella chiave 2!
 | 
								if (is_running() && !_tree.multiple_selection())
 | 
				
			||||||
        set(F_ANNO_ELAB, head.get(DOC_ANNO));
 | 
								{
 | 
				
			||||||
        set(F_CODNUM_ELAB, head.get(DOC_CODNUM), 2); // Check but not hit
 | 
									TCursor* c = _tree.get_cursor();
 | 
				
			||||||
        set(F_NDOC_ELAB, head.get(DOC_NDOC));
 | 
									if (c != NULL && c->items() > 0)
 | 
				
			||||||
      }
 | 
									{
 | 
				
			||||||
 | 
										const TRectype& head = _tree.testata();
 | 
				
			||||||
 | 
										set(F_DATADOC_ELAB, head.get(DOC_DATADOC)); // Anch'essa nella chiave 2!
 | 
				
			||||||
 | 
										set(F_ANNO_ELAB, head.get(DOC_ANNO));
 | 
				
			||||||
 | 
										set(F_CODNUM_ELAB, head.get(DOC_CODNUM), 2); // Check but not hit
 | 
				
			||||||
 | 
										set(F_NDOC_ELAB, head.get(DOC_NDOC));
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								if (e == fe_select)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_tree.multiple_selection())
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										const bool on = !_tree.node_selected();
 | 
				
			||||||
 | 
										_tree.select_node(NULL, on);
 | 
				
			||||||
 | 
										if (_check_fld >= 0)
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											real val = get_real(F_TOTSEL);
 | 
				
			||||||
 | 
											if (on)
 | 
				
			||||||
 | 
												val += _tree.totale_doc();
 | 
				
			||||||
 | 
											else
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												val -= _tree.totale_doc();
 | 
				
			||||||
 | 
												if (_tree.testata().get_long(DOC_NDOC) == o.mask().get_long(F_NDOC_ELAB))
 | 
				
			||||||
 | 
													o.mask().set(F_NDOC_ELAB, "");
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											set(F_TOTSEL, val);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
						case DLG_LINK:
 | 
				
			||||||
 | 
							if (e == fe_button)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								_tree.goto_node(_tree.selected());
 | 
				
			||||||
 | 
								const TRectype & rec = _tree.testata();
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								if (!rec.empty())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									TFilename tempfile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									tempfile.temp("ve0");
 | 
				
			||||||
 | 
									tempfile.ext("ini");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TConfig configfile(tempfile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										configfile.set("Action", "Modify", "Transaction");
 | 
				
			||||||
 | 
										configfile.set("NDOC", rec.get(DOC_NDOC), "33");
 | 
				
			||||||
 | 
										configfile.set(DOC_PROVV, rec.get(DOC_PROVV), "33");
 | 
				
			||||||
 | 
										configfile.set(DOC_ANNO, rec.get(DOC_ANNO), "33");
 | 
				
			||||||
 | 
										configfile.set(DOC_CODNUM, rec.get(DOC_CODNUM), "33");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									TString commandline;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									commandline.format("ve0 -0 /i%s",(const char*)tempfile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									TExternal_app ve(commandline);
 | 
				
			||||||
 | 
									ve.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									remove_file(tempfile);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
  default:
 | 
					  default:
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -2046,15 +2249,10 @@ int TElabora_mask::update_list()
 | 
				
			|||||||
  const bool from_elab = !get_bool(F_TYPE);   
 | 
					  const bool from_elab = !get_bool(F_TYPE);   
 | 
				
			||||||
  int items = 0;
 | 
					  int items = 0;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  bool agg_test = FALSE;  
 | 
					 | 
				
			||||||
  if (from_elab)
 | 
					  if (from_elab)
 | 
				
			||||||
    items = _elab.select(elabs, tipo, stato,"","") ;
 | 
					    items = _elab.select(elabs, tipo, stato,"","") ;
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    items = _elab.select(elabs, tipo_elab, stato_elab, tipo, stato);
 | 
					    items = _elab.select(elabs, tipo_elab, stato_elab, tipo, stato);
 | 
				
			||||||
    agg_test = _main->sfield(F_SHEET).items() == 0;
 | 
					 | 
				
			||||||
  }  
 | 
					 | 
				
			||||||
  set(F_UPDATE_HEADER, agg_test ? "X" : "");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TList_field & f = (TList_field &) field(F_ELAB);
 | 
					  TList_field & f = (TList_field &) field(F_ELAB);
 | 
				
			||||||
  TToken_string codes;
 | 
					  TToken_string codes;
 | 
				
			||||||
@ -2179,17 +2377,27 @@ bool TElabora_mask::elabora()
 | 
				
			|||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    out.add(app_doc);
 | 
					    out.add(app_doc);
 | 
				
			||||||
    in.add(d);
 | 
							_tree.build_doc_list(in);
 | 
				
			||||||
 | 
							char provv = get(F_PROVV_ELAB)[0];
 | 
				
			||||||
 | 
							int anno = get_int(F_ANNO_ELAB);
 | 
				
			||||||
 | 
							TString16 codnum(get(F_CODNUM_ELAB));
 | 
				
			||||||
 | 
							long ndoc = get_long(F_NDOC_ELAB);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (ndoc > 0L && !in.find(provv, anno, codnum, ndoc))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								TDocumento* d = new TDocumento(provv, anno, codnum, ndoc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								in.add(d);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
    if (e->elabora(in, out, TDate(TODAY), TRUE))
 | 
					    if (e->elabora(in, out, TDate(TODAY), TRUE))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (out[0] != app_doc)
 | 
					      if (out[0] != app_doc)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        out.rewrite();
 | 
					        out.rewrite();
 | 
				
			||||||
        app_doc = out[0];
 | 
					        app_doc.read(out[0].head());
 | 
				
			||||||
        update_mask = TRUE;
 | 
					        update_mask = TRUE;
 | 
				
			||||||
      }            
 | 
					      }
 | 
				
			||||||
      if (d != in[0])
 | 
								in.rewrite();
 | 
				
			||||||
        in.rewrite();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    const TString8 num_in = e->codice_numerazione_iniziale();
 | 
					    const TString8 num_in = e->codice_numerazione_iniziale();
 | 
				
			||||||
    set(F_CODNUM_ELAB, num_in);
 | 
					    set(F_CODNUM_ELAB, num_in);
 | 
				
			||||||
@ -2297,6 +2505,8 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    if (aggiungi_doc_att)
 | 
					    if (aggiungi_doc_att)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
								const bool agg_test = e->aggiorna_testata_se_vuoto() && _main->sfield(F_SHEET).items() == 0;
 | 
				
			||||||
 | 
								set(F_UPDATE_HEADER, agg_test ? "X" : "");
 | 
				
			||||||
      const TString8 num_in = e->codice_numerazione_iniziale(); 
 | 
					      const TString8 num_in = e->codice_numerazione_iniziale(); 
 | 
				
			||||||
      if (elab_changed)
 | 
					      if (elab_changed)
 | 
				
			||||||
      { 
 | 
					      { 
 | 
				
			||||||
@ -2382,6 +2592,7 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
 | 
				
			|||||||
      const TString4 tipo_fin(e->tipo_finale());
 | 
					      const TString4 tipo_fin(e->tipo_finale());
 | 
				
			||||||
      const TString4 stato_fin(e->stato_finale());
 | 
					      const TString4 stato_fin(e->stato_finale());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								set(F_UPDATE_HEADER, "");
 | 
				
			||||||
      filter << "&&";
 | 
					      filter << "&&";
 | 
				
			||||||
      if (stato_fin != "0")
 | 
					      if (stato_fin != "0")
 | 
				
			||||||
        filter << '(';
 | 
					        filter << '(';
 | 
				
			||||||
@ -2502,7 +2713,7 @@ void TElabora_mask::docrif_search()
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TElabora_mask::TElabora_mask(TDocumento_mask& main_mask)
 | 
					TElabora_mask::TElabora_mask(TDocumento_mask& main_mask)
 | 
				
			||||||
             : TAutomask("ve0100b"), _main(&main_mask), _last_elab(NULL)
 | 
					             : TAutomask("ve0100b"), _main(&main_mask), _last_elab(NULL), _check_fld(-883)
 | 
				
			||||||
{                                            
 | 
					{                                            
 | 
				
			||||||
  _myself = this;
 | 
					  _myself = this;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -2543,6 +2754,8 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key )
 | 
				
			|||||||
            m.ss_notify(ss,i,K_ENTER); 
 | 
					            m.ss_notify(ss,i,K_ENTER); 
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }  
 | 
					        }  
 | 
				
			||||||
 | 
									if (!m.get_bool(F_TYPE)) // non aggiunge al documento attuale
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if (update_mask)
 | 
					      if (update_mask)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
@ -2555,7 +2768,6 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key )
 | 
				
			|||||||
          f.check(STARTING_CHECK);
 | 
					          f.check(STARTING_CHECK);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
				for (int i = m.fields() - 1; i >= 0; i--)
 | 
									for (int i = m.fields() - 1; i >= 0; i--)
 | 
				
			||||||
 | 
					 | 
				
			||||||
			    m.fld(i).set_dirty(FALSE);
 | 
								    m.fld(i).set_dirty(FALSE);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      delete selection;     
 | 
					      delete selection;     
 | 
				
			||||||
 | 
				
			|||||||
@ -91,7 +91,7 @@ bool totdoc_hndl( TMask_field& field, KEY key )
 | 
				
			|||||||
    const real totdoc_check(field.get()); 
 | 
					    const real totdoc_check(field.get()); 
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (totdoc != totdoc_check)
 | 
					    if (m.doc().physical_rows() > 0 && totdoc != totdoc_check)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      const TString16 tchk(totdoc_check.string());
 | 
					      const TString16 tchk(totdoc_check.string());
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
@ -505,7 +505,48 @@ bool dcons_handler( TMask_field& f, KEY key )
 | 
				
			|||||||
	return TRUE;
 | 
						return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                       
 | 
					bool tipo_riga_handler(TMask_field& f, KEY key)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (key == K_SPACE && f.focusdirty())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    TMask & row_mask = f.mask();    
 | 
				
			||||||
 | 
							TVariable_sheet_field * sf = (TVariable_sheet_field *) row_mask.get_sheet();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (sf != NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								TDocumento_mask & docmask = (TDocumento_mask&)sf->mask();
 | 
				
			||||||
 | 
								if (docmask.is_running())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									const int curr_row = sf->selected();
 | 
				
			||||||
 | 
									TToken_string & row = sf->row(curr_row);
 | 
				
			||||||
 | 
									const int col = sf->cid2index(FR_TIPORIGA);
 | 
				
			||||||
 | 
									const TString16 old_tipo_riga = row.get(col);
 | 
				
			||||||
 | 
									const TString16 tipo_riga = f.get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if (!row_mask.is_running())
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										if (old_tipo_riga != tipo_riga)
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											row.add(tipo_riga, col);
 | 
				
			||||||
 | 
											docmask.doc()[curr_row + 1].set_tipo(tipo_riga);
 | 
				
			||||||
 | 
					  					TMask * rm = docmask.riga_mask(curr_row);
 | 
				
			||||||
 | 
											sf->post_insert(curr_row);
 | 
				
			||||||
 | 
											sf->check_row(curr_row);
 | 
				
			||||||
 | 
											sf->force_update(curr_row);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										if (old_tipo_riga != tipo_riga)
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											f.set(old_tipo_riga);
 | 
				
			||||||
 | 
											return error_box("Impossibile cambiare il tipo nella maschera di riga");
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					                                                   
 | 
				
			||||||
bool codmag_handler( TMask_field& f, KEY key )
 | 
					bool codmag_handler( TMask_field& f, KEY key )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
//  if (f.to_check(key, TRUE))
 | 
					//  if (f.to_check(key, TRUE))
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@ bool dcons_handler( TMask_field& f, KEY key );
 | 
				
			|||||||
bool iva_handler( TMask_field& f, KEY key );
 | 
					bool iva_handler( TMask_field& f, KEY key );
 | 
				
			||||||
void sppr_calc(const TRectype& rec, const TString& valuta_doc, const real& cambio, real& prezzo, exchange_type controeuro);
 | 
					void sppr_calc(const TRectype& rec, const TString& valuta_doc, const real& cambio, real& prezzo, exchange_type controeuro);
 | 
				
			||||||
void row_set_handler(TMask& m, const int field, const int index);
 | 
					void row_set_handler(TMask& m, const int field, const int index);
 | 
				
			||||||
 | 
					bool tipo_riga_handler(TMask_field& f, KEY key);
 | 
				
			||||||
bool codmag_handler(TMask_field& f, KEY key);
 | 
					bool codmag_handler(TMask_field& f, KEY key);
 | 
				
			||||||
bool codmag_coll_handler(TMask_field& f, KEY key);
 | 
					bool codmag_coll_handler(TMask_field& f, KEY key);
 | 
				
			||||||
bool codart_handler(TMask_field& f, KEY key);
 | 
					bool codart_handler(TMask_field& f, KEY key);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								ve/verig.uml
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ve/verig.uml
									
									
									
									
									
								
							@ -46,27 +46,12 @@ BEGIN
 | 
				
			|||||||
  PROMPT 2 1 "Lordo  "
 | 
					  PROMPT 2 1 "Lordo  "
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING FR_TIPORIGA 2
 | 
					LIST FR_TIPORIGA 2 50
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 2 "Tipo riga   "
 | 
					  PROMPT 2 2 "Tipo riga   "
 | 
				
			||||||
  USE %TRI
 | 
					 | 
				
			||||||
  IN CODTAB FR_TIPORIGA
 | 
					 | 
				
			||||||
  OU FR_DESTIPORIGA S0
 | 
					 | 
				
			||||||
  CHECKTYPE REQUIRED
 | 
					 | 
				
			||||||
  FLAGS "DG"
 | 
					 | 
				
			||||||
  FIELD TIPORIGA
 | 
					  FIELD TIPORIGA
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef FULL_SCREEN
 | 
					 | 
				
			||||||
STRING FR_DESTIPORIGA 50
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
STRING FR_DESTIPORIGA 25
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 22 2 ""
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IFDEF(FLD_CODMAG)
 | 
					IFDEF(FLD_CODMAG)
 | 
				
			||||||
STRING FR_CODMAG 3
 | 
					STRING FR_CODMAG 3
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user