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
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRINF F_DENUFFIVA 50 48
 | 
			
		||||
STRING F_DENUFFIVA 50 48
 | 
			
		||||
BEGIN
 | 
			
		||||
PROMPT 23 10 " "
 | 
			
		||||
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 usage1 "Errore - uso : bacnv 23 profilo"
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
// 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_clifo_privati(); 
 | 
			
		||||
	void convert_pcon_ivd();
 | 
			
		||||
	void convert_profile(const char * profile_name);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
 | 
			
		||||
@ -360,6 +362,8 @@ bool TConversione_archivi::menu(MENU_TAG)
 | 
			
		||||
    break;
 | 
			
		||||
  case 22:
 | 
			
		||||
		convert_pcon_ivd(); 
 | 
			
		||||
  case 23:
 | 
			
		||||
		convert_profile(argv(2)); 
 | 
			
		||||
  default:
 | 
			
		||||
    break;  
 | 
			
		||||
}
 | 
			
		||||
@ -1930,6 +1934,58 @@ void TConversione_archivi::convert_pcon_ivd()
 | 
			
		||||
		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
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
@ -1938,7 +1994,7 @@ int main(int argc,char** argv)
 | 
			
		||||
{
 | 
			
		||||
  const int r = (argc > 1) ? abs(atoi(argv[1])) : 0;
 | 
			
		||||
  
 | 
			
		||||
  if (r < 0 || r > 22)
 | 
			
		||||
  if (r < 0 || r > 23)
 | 
			
		||||
  {
 | 
			
		||||
    error_box(usage);
 | 
			
		||||
    return 100;
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,8 @@
 | 
			
		||||
#define BMP_FILE      169
 | 
			
		||||
#define BMP_STOP      170
 | 
			
		||||
#define BMP_FILECHK   171
 | 
			
		||||
#define BMP_DIRSEL    172
 | 
			
		||||
#define BMP_DIRDNSEL  173
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* @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
 | 
			
		||||
170=stop.bmp
 | 
			
		||||
171=filechk.bmp
 | 
			
		||||
172=dirsel.bmp
 | 
			
		||||
173=dirdnsel.bmp
 | 
			
		||||
 | 
			
		||||
1661=check.bmp
 | 
			
		||||
1662=darrowu.bmp
 | 
			
		||||
 | 
			
		||||
@ -157,40 +157,36 @@ DESCRCMS        = S_NORMALE                     //3000
 | 
			
		||||
FASCMS          = S_NORMALE                     //3000
 | 
			
		||||
DESCRFAS        = S_NORMALE                     //3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=22
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_PREZZO
 | 
			
		||||
12=FR_SCONTO
 | 
			
		||||
13=FR_PERCPROV
 | 
			
		||||
14=FR_IMPFISUN
 | 
			
		||||
15=FR_IMPFISSO
 | 
			
		||||
16=FR_CODIVA
 | 
			
		||||
17=FR_ADDIVA
 | 
			
		||||
18=FR_CAUS
 | 
			
		||||
19=FR_CODMAGC
 | 
			
		||||
20=FR_CODDEPC
 | 
			
		||||
21=FR_CODCMS
 | 
			
		||||
22=FR_FASCMS
 | 
			
		||||
Col(1)=FR_CODMAG
 | 
			
		||||
Col(2)=FR_CODDEP
 | 
			
		||||
Col(3)=FR_CODART
 | 
			
		||||
Col(4)=FR_LIV1
 | 
			
		||||
Col(5)=FR_LIV2
 | 
			
		||||
Col(6)=FR_LIV3
 | 
			
		||||
Col(7)=FR_LIV4
 | 
			
		||||
Col(8)=FR_DESCR
 | 
			
		||||
Col(9)=FR_UMQTA
 | 
			
		||||
Col(10)=FR_QTA
 | 
			
		||||
Col(11)=FR_PREZZO
 | 
			
		||||
Col(12)=FR_SCONTO
 | 
			
		||||
Col(13)=FR_PERCPROV
 | 
			
		||||
Col(14)=FR_IMPFISUN
 | 
			
		||||
Col(15)=FR_IMPFISSO
 | 
			
		||||
Col(16)=FR_CODIVA
 | 
			
		||||
Col(17)=FR_ADDIVA
 | 
			
		||||
Col(18)=FR_CAUS
 | 
			
		||||
Col(19)=FR_CODMAGC
 | 
			
		||||
Col(20)=FR_CODDEPC
 | 
			
		||||
Col(21)=FR_CODCMS
 | 
			
		||||
Col(22)=FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
1 = F_ORAPART|1
 | 
			
		||||
// Handler(0)=F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
@ -239,3 +235,4 @@ NGROUPS=11
 | 
			
		||||
9=2400
 | 
			
		||||
10=2900
 | 
			
		||||
11=3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -155,44 +155,40 @@ BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
CODNOTE         = S_NORMALE                     //2500
 | 
			
		||||
NOTECLI         = S_NOCHECK                     //2500
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
Default(0)=F_CAUSTRASP|VEN
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=25
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_PREZZO
 | 
			
		||||
12=FR_SCONTO
 | 
			
		||||
13=FR_PERCPROV
 | 
			
		||||
14=FR_IMPFISUN
 | 
			
		||||
15=FR_IMPFISSO
 | 
			
		||||
16=FR_CODIVA
 | 
			
		||||
17=FR_ADDIVA
 | 
			
		||||
18=FR_NCOLLI
 | 
			
		||||
19=FR_PNETTO
 | 
			
		||||
20=FR_TARA
 | 
			
		||||
21=FR_CAUS
 | 
			
		||||
22=FR_CODMAGC
 | 
			
		||||
23=FR_CODDEPC
 | 
			
		||||
24=FR_CODCMS
 | 
			
		||||
25=FR_FASCMS
 | 
			
		||||
Col(1)=FR_CODMAG
 | 
			
		||||
Col(2)=FR_CODDEP
 | 
			
		||||
Col(3)=FR_CODART
 | 
			
		||||
Col(4)=FR_LIV1
 | 
			
		||||
Col(5)=FR_LIV2
 | 
			
		||||
Col(6)=FR_LIV3
 | 
			
		||||
Col(7)=FR_LIV4
 | 
			
		||||
Col(8)=FR_DESCR
 | 
			
		||||
Col(9)=FR_UMQTA
 | 
			
		||||
Col(10)=FR_QTA
 | 
			
		||||
Col(11)=FR_PREZZO
 | 
			
		||||
Col(12)=FR_SCONTO
 | 
			
		||||
Col(13)=FR_PERCPROV
 | 
			
		||||
Col(14)=FR_IMPFISUN
 | 
			
		||||
Col(15)=FR_IMPFISSO
 | 
			
		||||
Col(16)=FR_CODIVA
 | 
			
		||||
Col(17)=FR_ADDIVA
 | 
			
		||||
Col(18)=FR_NCOLLI
 | 
			
		||||
Col(19)=FR_PNETTO
 | 
			
		||||
Col(20)=FR_TARA
 | 
			
		||||
Col(21)=FR_CAUS
 | 
			
		||||
Col(22)=FR_CODMAGC
 | 
			
		||||
Col(23)=FR_CODDEPC
 | 
			
		||||
Col(24)=FR_CODCMS
 | 
			
		||||
Col(25)=FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
1 = F_ORAPART|1
 | 
			
		||||
// Handler(0) = F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
@ -264,3 +260,4 @@ NGROUPS=30
 | 
			
		||||
28=1000
 | 
			
		||||
29=2900
 | 
			
		||||
30=3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -109,37 +109,33 @@ DESCRCMS        = S_NORMALE                     //3000
 | 
			
		||||
FASCMS          = S_NORMALE                     //3000
 | 
			
		||||
DESCRFAS        = S_NORMALE                     //3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
Default(0)=F_CAUSTRASP|RES
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=18
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_LORDO
 | 
			
		||||
12=FR_PREZZO
 | 
			
		||||
13=FR_CODIVA
 | 
			
		||||
14=FR_CAUS
 | 
			
		||||
15=FR_CODMAGC
 | 
			
		||||
16=FR_CODDEPC
 | 
			
		||||
17=FR_CODCMS
 | 
			
		||||
18=FR_FASCMS
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_LORDO
 | 
			
		||||
Col(11) = FR_PREZZO
 | 
			
		||||
Col(12) = FR_CODIVA
 | 
			
		||||
Col(13) = FR_CAUS
 | 
			
		||||
Col(14) = FR_CODMAGC
 | 
			
		||||
Col(15) = FR_CODDEPC
 | 
			
		||||
Col(16) = FR_CODCMS
 | 
			
		||||
Col(17) = FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
1 = F_ORAPART|1
 | 
			
		||||
// Handler(0) = F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
100     = S_NORMALE
 | 
			
		||||
@ -185,3 +181,4 @@ NGROUPS=20
 | 
			
		||||
18=1500
 | 
			
		||||
19=1600
 | 
			
		||||
20=3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -120,35 +120,32 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=22
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_PREZZO
 | 
			
		||||
12=FR_SCONTO
 | 
			
		||||
13=FR_PERCPROV
 | 
			
		||||
14=FR_IMPFISUN
 | 
			
		||||
15=FR_IMPFISSO
 | 
			
		||||
16=FR_CODIVA
 | 
			
		||||
17=FR_ADDIVA
 | 
			
		||||
18=FR_CAUS
 | 
			
		||||
19=FR_CODMAGC
 | 
			
		||||
20=FR_CODDEPC
 | 
			
		||||
21=FR_CODCMS
 | 
			
		||||
22=FR_FASCMS
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_PREZZO
 | 
			
		||||
Col(11) = FR_SCONTO
 | 
			
		||||
Col(12) = FR_PERCPROV
 | 
			
		||||
Col(13) = FR_IMPFISUN
 | 
			
		||||
Col(14) = FR_IMPFISSO
 | 
			
		||||
Col(15) = FR_CODIVA
 | 
			
		||||
Col(16) = FR_ADDIVA
 | 
			
		||||
Col(17) = FR_CAUS
 | 
			
		||||
Col(18) = FR_CODMAGC
 | 
			
		||||
Col(19) = FR_CODDEPC
 | 
			
		||||
Col(20) = FR_CODCMS
 | 
			
		||||
Col(21) = FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
 | 
			
		||||
@ -158,40 +158,37 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
			
		||||
Default(0)=F_CAUSTRASP|VEN
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=26
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_LORDO
 | 
			
		||||
12=FR_PREZZO
 | 
			
		||||
13=FR_SCONTO
 | 
			
		||||
14=FR_PERCPROV
 | 
			
		||||
15=FR_IMPFISUN
 | 
			
		||||
16=FR_IMPFISSO
 | 
			
		||||
17=FR_CODIVA
 | 
			
		||||
18=FR_ADDIVA
 | 
			
		||||
19=FR_NCOLLI
 | 
			
		||||
20=FR_PNETTO
 | 
			
		||||
21=FR_TARA
 | 
			
		||||
22=FR_CAUS
 | 
			
		||||
23=FR_CODMAGC
 | 
			
		||||
24=FR_CODDEPC
 | 
			
		||||
25=FR_CODCMS
 | 
			
		||||
26=FR_FASCMS
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_LORDO
 | 
			
		||||
Col(11) = FR_PREZZO
 | 
			
		||||
Col(12) = FR_SCONTO
 | 
			
		||||
Col(13) = FR_PERCPROV
 | 
			
		||||
Col(14) = FR_IMPFISUN
 | 
			
		||||
Col(15) = FR_IMPFISSO
 | 
			
		||||
Col(16) = FR_CODIVA
 | 
			
		||||
Col(17) = FR_ADDIVA
 | 
			
		||||
Col(18) = FR_NCOLLI
 | 
			
		||||
Col(19) = FR_PNETTO
 | 
			
		||||
Col(20) = FR_TARA
 | 
			
		||||
Col(21) = FR_CAUS
 | 
			
		||||
Col(22) = FR_CODMAGC
 | 
			
		||||
Col(23) = FR_CODDEPC
 | 
			
		||||
Col(24) = FR_CODCMS
 | 
			
		||||
Col(25) = FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
1 = F_ORAPART|1
 | 
			
		||||
// Handler(0)=F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
@ -262,3 +259,4 @@ NGROUPS=30
 | 
			
		||||
28=1000
 | 
			
		||||
29=2900
 | 
			
		||||
30=3000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -132,33 +132,30 @@ BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=20
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_PREZZO
 | 
			
		||||
12=FR_SCONTO
 | 
			
		||||
13=FR_PERCPROV
 | 
			
		||||
14=FR_IMPFISUN
 | 
			
		||||
15=FR_IMPFISSO
 | 
			
		||||
16=FR_CODIVA
 | 
			
		||||
17=FR_ADDIVA
 | 
			
		||||
18=FR_CAUS
 | 
			
		||||
19=FR_CODMAGC
 | 
			
		||||
20=FR_CODDEPC
 | 
			
		||||
Col(1)=FR_CODMAG
 | 
			
		||||
Col(2)=FR_CODDEP
 | 
			
		||||
Col(3)=FR_CODART
 | 
			
		||||
Col(4)=FR_LIV1
 | 
			
		||||
Col(5)=FR_LIV2
 | 
			
		||||
Col(6)=FR_LIV3
 | 
			
		||||
Col(7)=FR_LIV4
 | 
			
		||||
Col(8)=FR_DESCR
 | 
			
		||||
Col(9)=FR_UMQTA
 | 
			
		||||
Col(10)=FR_QTA
 | 
			
		||||
Col(11)=FR_PREZZO
 | 
			
		||||
Col(12)=FR_SCONTO
 | 
			
		||||
Col(13)=FR_PERCPROV
 | 
			
		||||
Col(14)=FR_IMPFISUN
 | 
			
		||||
Col(15)=FR_IMPFISSO
 | 
			
		||||
Col(16)=FR_CODIVA
 | 
			
		||||
Col(17)=FR_ADDIVA
 | 
			
		||||
Col(18)=FR_CAUS
 | 
			
		||||
Col(19)=FR_CODMAGC
 | 
			
		||||
Col(20)=FR_CODDEPC
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
 | 
			
		||||
@ -153,38 +153,34 @@ BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
CODNOTE         = S_NORMALE                     //2500
 | 
			
		||||
NOTECLI         = S_NOCHECK                     //2500
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=20
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_PREZZO
 | 
			
		||||
12=FR_SCONTO
 | 
			
		||||
13=FR_PERCPROV
 | 
			
		||||
14=FR_IMPFISUN
 | 
			
		||||
15=FR_IMPFISSO
 | 
			
		||||
16=FR_CODIVA
 | 
			
		||||
17=FR_ADDIVA
 | 
			
		||||
18=FR_CAUS
 | 
			
		||||
19=FR_CODMAGC
 | 
			
		||||
20=FR_CODDEPC
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_PREZZO
 | 
			
		||||
Col(11) = FR_SCONTO
 | 
			
		||||
Col(12) = FR_PERCPROV
 | 
			
		||||
Col(13) = FR_IMPFISUN
 | 
			
		||||
Col(14) = FR_IMPFISSO
 | 
			
		||||
Col(15) = FR_CODIVA
 | 
			
		||||
Col(16) = FR_ADDIVA
 | 
			
		||||
Col(17) = FR_CAUS
 | 
			
		||||
Col(18) = FR_CODMAGC
 | 
			
		||||
Col(19) = FR_CODDEPC
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
1 = F_ORAPART|1
 | 
			
		||||
// Handler(0)=F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
 | 
			
		||||
@ -153,41 +153,36 @@ BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=26
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_LORDO
 | 
			
		||||
12=FR_QTAEVASA
 | 
			
		||||
13=FR_RIGAEVASA
 | 
			
		||||
14=FR_DATACONS
 | 
			
		||||
15=FR_PREZZO
 | 
			
		||||
16=FR_SCONTO
 | 
			
		||||
17=FR_PERCPROV
 | 
			
		||||
18=FR_IMPFISUN
 | 
			
		||||
19=FR_IMPFISSO
 | 
			
		||||
20=FR_CODIVA
 | 
			
		||||
21=FR_ADDIVA
 | 
			
		||||
22=FR_CAUS
 | 
			
		||||
23=FR_CODMAGC
 | 
			
		||||
24=FR_CODDEPC
 | 
			
		||||
25=FR_CODCMS
 | 
			
		||||
26=FR_FASCMS
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_LORDO
 | 
			
		||||
Col(11) = FR_QTAEVASA
 | 
			
		||||
Col(12) = FR_RIGAEVASA
 | 
			
		||||
Col(13) = FR_DATACONS
 | 
			
		||||
Col(14) = FR_PREZZO
 | 
			
		||||
Col(15) = FR_SCONTO
 | 
			
		||||
Col(16) = FR_PERCPROV
 | 
			
		||||
Col(17) = FR_IMPFISUN
 | 
			
		||||
Col(18) = FR_IMPFISSO
 | 
			
		||||
Col(19) = FR_CODIVA
 | 
			
		||||
Col(20) = FR_ADDIVA
 | 
			
		||||
Col(21) = FR_CAUS
 | 
			
		||||
Col(22) = FR_CODMAGC
 | 
			
		||||
Col(23) = FR_CODDEPC
 | 
			
		||||
Col(24) = FR_CODCMS
 | 
			
		||||
Col(25) = FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
 | 
			
		||||
// #include <VEUML.H>
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
// S_DISABILITATO = F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
 | 
			
		||||
@ -157,40 +157,37 @@ DESCRFAS        = S_NORMALE                     //3000
 | 
			
		||||
BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=25
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_QTAEVASA
 | 
			
		||||
12=FR_RIGAEVASA
 | 
			
		||||
13=FR_DATACONS
 | 
			
		||||
14=FR_PREZZO
 | 
			
		||||
15=FR_SCONTO
 | 
			
		||||
16=FR_PERCPROV
 | 
			
		||||
17=FR_IMPFISUN
 | 
			
		||||
18=FR_IMPFISSO
 | 
			
		||||
19=FR_CODIVA
 | 
			
		||||
20=FR_ADDIVA
 | 
			
		||||
21=FR_CAUS
 | 
			
		||||
22=FR_CODMAGC
 | 
			
		||||
23=FR_CODDEPC
 | 
			
		||||
24=FR_CODCMS
 | 
			
		||||
25=FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=*
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_QTAEVASA
 | 
			
		||||
Col(11) = FR_RIGAEVASA
 | 
			
		||||
Col(12) = FR_DATACONS
 | 
			
		||||
Col(13) = FR_PREZZO
 | 
			
		||||
Col(14) = FR_SCONTO
 | 
			
		||||
Col(15) = FR_PERCPROV
 | 
			
		||||
Col(16) = FR_IMPFISUN
 | 
			
		||||
Col(17) = FR_IMPFISSO
 | 
			
		||||
Col(18) = FR_CODIVA
 | 
			
		||||
Col(19) = FR_ADDIVA
 | 
			
		||||
Col(20) = FR_CAUS
 | 
			
		||||
Col(21) = FR_CODMAGC
 | 
			
		||||
Col(22) = FR_CODDEPC
 | 
			
		||||
Col(23) = FR_CODCMS
 | 
			
		||||
Col(24) = FR_FASCMS
 | 
			
		||||
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
@ -266,3 +263,4 @@ NGROUPS=33
 | 
			
		||||
31=1600
 | 
			
		||||
32=2000
 | 
			
		||||
33=2900
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										62
									
								
								ve/ordp.src
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								ve/ordp.src
									
									
									
									
									
								
							@ -141,43 +141,38 @@ BLANK           = S_DISABILITATO                //4000
 | 
			
		||||
[DEFAULT]
 | 
			
		||||
 | 
			
		||||
[SHEET]
 | 
			
		||||
NCOLS=19
 | 
			
		||||
1=FR_CODMAG
 | 
			
		||||
2=FR_CODDEP
 | 
			
		||||
3=FR_CODART
 | 
			
		||||
4=FR_LIV1
 | 
			
		||||
5=FR_LIV2
 | 
			
		||||
6=FR_LIV3
 | 
			
		||||
7=FR_LIV4
 | 
			
		||||
8=FR_DESCR
 | 
			
		||||
9=FR_UMQTA
 | 
			
		||||
10=FR_QTA
 | 
			
		||||
11=FR_LORDO
 | 
			
		||||
12=FR_QTAEVASA
 | 
			
		||||
13=FR_RIGAEVASA
 | 
			
		||||
14=FR_DATACONS
 | 
			
		||||
15=FR_CAUS
 | 
			
		||||
16=FR_CODMAGC
 | 
			
		||||
17=FR_CODDEPC
 | 
			
		||||
18=FR_IMPIANTO
 | 
			
		||||
19=FR_LINEA
 | 
			
		||||
Col(0) = FR_CODMAG
 | 
			
		||||
Col(1) = FR_CODDEP
 | 
			
		||||
Col(2) = FR_CODART
 | 
			
		||||
Col(3) = FR_LIV1
 | 
			
		||||
Col(4) = FR_LIV2
 | 
			
		||||
Col(5) = FR_LIV3
 | 
			
		||||
Col(6) = FR_LIV4
 | 
			
		||||
Col(7) = FR_DESCR
 | 
			
		||||
Col(8) = FR_UMQTA
 | 
			
		||||
Col(9) = FR_QTA
 | 
			
		||||
Col(10) = FR_LORDO
 | 
			
		||||
Col(11) = FR_QTAEVASA
 | 
			
		||||
Col(12) = FR_RIGAEVASA
 | 
			
		||||
Col(13) = FR_DATACONS
 | 
			
		||||
Col(14) = FR_CAUS
 | 
			
		||||
Col(15) = FR_CODMAGC
 | 
			
		||||
Col(16) = FR_CODDEPC
 | 
			
		||||
Col(17) = FR_IMPIANTO
 | 
			
		||||
Col(18) = FR_LINEA
 | 
			
		||||
 | 
			
		||||
[RIGHE]
 | 
			
		||||
NTIPIRIGA=9
 | 
			
		||||
1=01
 | 
			
		||||
2=02
 | 
			
		||||
3=03
 | 
			
		||||
4=04
 | 
			
		||||
5=05
 | 
			
		||||
6=06
 | 
			
		||||
7=07
 | 
			
		||||
8=08
 | 
			
		||||
9=09
 | 
			
		||||
Tipo(0) = 01
 | 
			
		||||
Tipo(1) = 02
 | 
			
		||||
Tipo(2) = 03
 | 
			
		||||
Tipo(3) = 04
 | 
			
		||||
Tipo(4) = 05
 | 
			
		||||
Tipo(5) = 06
 | 
			
		||||
Tipo(6) = 07
 | 
			
		||||
Tipo(7) = 08
 | 
			
		||||
Tipo(8) = 09
 | 
			
		||||
 | 
			
		||||
// #include <VEUML.H>
 | 
			
		||||
[HANDLERS]
 | 
			
		||||
NHANDLER=0
 | 
			
		||||
// S_DISABILITATO = F_ORAPART|1
 | 
			
		||||
 | 
			
		||||
[PROFILOGRUPPO]
 | 
			
		||||
101     = S_NASCOSTO
 | 
			
		||||
@ -242,4 +237,3 @@ NGROUPS=27
 | 
			
		||||
26=2900
 | 
			
		||||
27=2000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,12 +4,18 @@ TOOLBAR "" 0 -2 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
  PROMPT -13 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_LINK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -23 -1 "Colle~ga"
 | 
			
		||||
	PICTURE BMP_LINK
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
  PROMPT -33 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
@ -33,7 +39,7 @@ BEGIN
 | 
			
		||||
  PROMPT 1 1 "@bDestinazione"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX F_GROUP_S 77 9
 | 
			
		||||
GROUPBOX F_GROUP_S 77 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "@bSorgente"
 | 
			
		||||
END
 | 
			
		||||
@ -151,13 +157,12 @@ END
 | 
			
		||||
NUMBER F_NDOC_ELAB 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  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 
 | 
			
		||||
  INPUT TIPOCF F_TIPOCF_ELAB SELECT 
 | 
			
		||||
  INPUT CODCF F_CODCF_ELAB SELECT 
 | 
			
		||||
  INPUT PROVV F_PROVV_ELAB SELECT 
 | 
			
		||||
  INPUT ANNO F_ANNO_ELAB SELECT   
 | 
			
		||||
  INPUT DATADOC F_DATADOC_ELAB
 | 
			
		||||
  INPUT CODNUM F_CODNUM_ELAB
 | 
			
		||||
  INPUT NDOC F_NDOC_ELAB
 | 
			
		||||
  DISPLAY "Num." CODNUM
 | 
			
		||||
@ -247,9 +252,23 @@ BEGIN
 | 
			
		||||
  GROUP GRP_ART
 | 
			
		||||
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
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 10 ""
 | 
			
		||||
  PROMPT 0 11 ""
 | 
			
		||||
  GROUP GRP_DOC
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -20,10 +20,13 @@
 | 
			
		||||
#define F_QTA                220
 | 
			
		||||
#define F_NUMDOCRIF_ELAB     227
 | 
			
		||||
#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_DOC              3
 | 
			
		||||
#define GRP_CHK              4
 | 
			
		||||
 | 
			
		||||
#define S_RIGACONSEGNATA 101
 | 
			
		||||
#define S_QTARESIDUA     102
 | 
			
		||||
 | 
			
		||||
@ -245,7 +245,7 @@ public:
 | 
			
		||||
  void  set_defaults(TMask& m) const;
 | 
			
		||||
  const TString_array& keys_descrs();
 | 
			
		||||
  const TString_array& sheet_columns();
 | 
			
		||||
  const TString_array& handlers();
 | 
			
		||||
  const TString_array& handlers() const;
 | 
			
		||||
  
 | 
			
		||||
  const TString& mask_name() const { return get("S4");}
 | 
			
		||||
  const TString& causale() const { return get("S6"); } 
 | 
			
		||||
@ -694,6 +694,7 @@ public:
 | 
			
		||||
  bool provvisorio() const { return get_char("PROVV") == 'P'; }
 | 
			
		||||
  char stato() const { return get_char("STATO"); }
 | 
			
		||||
  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 & fase_commessa() const { return get(DOC_FASCMS);}
 | 
			
		||||
  bool modificabile() const;
 | 
			
		||||
@ -811,7 +812,6 @@ protected:
 | 
			
		||||
  static bool codlist_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 controeuro_handler( TMask_field& f, KEY key );
 | 
			
		||||
  static bool datacambio_handler( TMask_field& f, KEY key );
 | 
			
		||||
  static bool codval_handler( TMask_field& f, KEY key );
 | 
			
		||||
  void user_set_handler( int fieldid, int index);
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
#include "velib.h"
 | 
			
		||||
#include "vepriv.h"
 | 
			
		||||
#include "verig.h"
 | 
			
		||||
 | 
			
		||||
#include "../mg/mglib.h"
 | 
			
		||||
 | 
			
		||||
@ -103,26 +104,28 @@ const TString_array& TTipo_documento::keys_descrs()
 | 
			
		||||
    TString16 var, tiporiga;
 | 
			
		||||
    TFilename pn; profile_name(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("");
 | 
			
		||||
    TToken_string& k = (TToken_string&)_keys_descrs[0];
 | 
			
		||||
    TToken_string& d = (TToken_string&)_keys_descrs[1];
 | 
			
		||||
		int i;
 | 
			
		||||
 | 
			
		||||
    if (numtr > 0)            
 | 
			
		||||
    {
 | 
			
		||||
      for ( int i = 1; i <= numtr; i ++ )
 | 
			
		||||
      {
 | 
			
		||||
        var.format("%d", i);
 | 
			
		||||
        tiporiga = prof.get(var, "RIGHE");
 | 
			
		||||
        tr.read(tiporiga);
 | 
			
		||||
        k.add(tr.codice());
 | 
			
		||||
        d.add(tr.descrizione());
 | 
			
		||||
      }
 | 
			
		||||
		for (i = 0; ; i++)
 | 
			
		||||
		{
 | 
			
		||||
			const TString16 tiporiga(prof.get("Tipo", "RIGHE", i));
 | 
			
		||||
 | 
			
		||||
			if (tiporiga.empty())
 | 
			
		||||
				break;
 | 
			
		||||
            
 | 
			
		||||
      tr.read(tiporiga);
 | 
			
		||||
      k.add(tr.codice());
 | 
			
		||||
      d.add(tr.descrizione());
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
    if (i == 0)
 | 
			
		||||
		{
 | 
			
		||||
      TTable tri("%TRI");
 | 
			
		||||
      
 | 
			
		||||
      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)
 | 
			
		||||
  {
 | 
			
		||||
    TString16 col;
 | 
			
		||||
    TFilename pn; profile_name(pn);
 | 
			
		||||
    TConfig prof(pn, "SHEET");
 | 
			
		||||
    int ncols = prof.get_int( "NCOLS", "SHEET" );
 | 
			
		||||
    for (int i = 1; i <= ncols; i++)
 | 
			
		||||
    for (int i = 0; i < MAX_COLUMNS; i++)
 | 
			
		||||
    {
 | 
			
		||||
      col.format( "%d", i );
 | 
			
		||||
      _sheet_columns.add(prof.get(col, "SHEET"));
 | 
			
		||||
			const TString & id = prof.get("Col", NULL, i);
 | 
			
		||||
			if (atoi(id) == 0)
 | 
			
		||||
				break;
 | 
			
		||||
      _sheet_columns.add(id);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return _sheet_columns;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const TString_array&  TTipo_documento::handlers()
 | 
			
		||||
const TString_array&  TTipo_documento::handlers() const 
 | 
			
		||||
{
 | 
			
		||||
  if (_handlers.items() == 0)
 | 
			
		||||
  {
 | 
			
		||||
    TString16 chiave;
 | 
			
		||||
    TFilename pn; profile_name(pn);
 | 
			
		||||
    TConfig prof(pn);
 | 
			
		||||
    TConfig prof(pn, "HANDLERS");
 | 
			
		||||
 | 
			
		||||
    int numhandler = prof.get_int( "NHANDLER", "HANDLERS" ); // prof
 | 
			
		||||
  
 | 
			
		||||
    for (int i = 1; i <= numhandler; i++)
 | 
			
		||||
    for (int i = 0; ; i++)
 | 
			
		||||
    {
 | 
			
		||||
      chiave.format("%d", i);
 | 
			
		||||
      _handlers.add(prof.get(chiave, "HANDLERS"));
 | 
			
		||||
			const TString & h = prof.get("Handler", NULL, i);
 | 
			
		||||
			if (h.empty())
 | 
			
		||||
				break;
 | 
			
		||||
			((TString_array &)_handlers).add(h);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return _handlers;
 | 
			
		||||
 | 
			
		||||
@ -18,6 +18,25 @@ TDate TLista_documenti::num2date(char provv, int anno, const char* codnum, long
 | 
			
		||||
  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, 
 | 
			
		||||
                           TToken_string& tipidoc, TToken_string& statidoc,
 | 
			
		||||
                           const TDate& dd, const TDate& ad,
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ protected:
 | 
			
		||||
  TDate num2date(char provv, int anno, const char* codnum, long num) const;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	bool find(char provv, int anno, const char * codnum, long ndoc) const;
 | 
			
		||||
  int read(char provv, char tipo, long clifo, int anno, 
 | 
			
		||||
           TToken_string& tipidoc, TToken_string& statidoc,
 | 
			
		||||
           const TDate& dd, const TDate& ad, 
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										300
									
								
								ve/velib06.cpp
									
									
									
									
									
								
							
							
						
						
									
										300
									
								
								ve/velib06.cpp
									
									
									
									
									
								
							@ -1,5 +1,6 @@
 | 
			
		||||
#include <automask.h>
 | 
			
		||||
#include <dongle.h>
 | 
			
		||||
#include <execp.h>
 | 
			
		||||
#include <modaut.h>
 | 
			
		||||
#include <sheet.h>
 | 
			
		||||
#include <smartcard.h>
 | 
			
		||||
@ -7,6 +8,7 @@
 | 
			
		||||
#include <tree.h>
 | 
			
		||||
#include <postman.h>
 | 
			
		||||
#include <urldefid.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
 | 
			
		||||
#include "velib04.h"
 | 
			
		||||
#include "vepriv.h"
 | 
			
		||||
@ -81,9 +83,10 @@ TDocumento_mask::TDocumento_mask(const char* td)
 | 
			
		||||
  listbox.replace_items(keys, descrs);
 | 
			
		||||
 | 
			
		||||
  // 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();
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  configura_sheet(*_sheet);
 | 
			
		||||
  
 | 
			
		||||
  ((TVariable_sheet_field*)_sheet)->set_getmask( ss_getmask );
 | 
			
		||||
@ -1017,9 +1020,15 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga)
 | 
			
		||||
      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_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);
 | 
			
		||||
    if (pos >= 0)
 | 
			
		||||
@ -1569,6 +1578,10 @@ class TDocument_tree : public TBidirectional_tree
 | 
			
		||||
  TRelation* _relation;
 | 
			
		||||
  TCursor* _cursor;
 | 
			
		||||
  TToken_string _curnode;
 | 
			
		||||
	bool _multiple_selection;
 | 
			
		||||
	TAssoc_array _selected_docs;
 | 
			
		||||
	TString _selected;
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
protected:         
 | 
			
		||||
  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;
 | 
			
		||||
 | 
			
		||||
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_firstson();
 | 
			
		||||
  virtual bool goto_rbrother(); 
 | 
			
		||||
@ -1593,9 +1613,13 @@ public:
 | 
			
		||||
  virtual bool get_description(TString& str) 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& riga() 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);
 | 
			
		||||
  TCursor* get_cursor() { return _cursor; }
 | 
			
		||||
@ -1648,6 +1672,83 @@ bool TDocument_tree::on_row() const
 | 
			
		||||
  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()
 | 
			
		||||
{
 | 
			
		||||
  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))
 | 
			
		||||
      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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1902,7 +2016,8 @@ void TDocument_tree::set_cursor(char tipocf, long codcf, int anno, const char* f
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
  TLista_elaborazioni _elab;
 | 
			
		||||
  TDocument_tree _tree;
 | 
			
		||||
	int _check_fld;
 | 
			
		||||
 | 
			
		||||
  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)
 | 
			
		||||
      update_ndoc_filter();
 | 
			
		||||
    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:
 | 
			
		||||
    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, "");
 | 
			
		||||
      }
 | 
			
		||||
      update_ndoc_filter(TRUE);
 | 
			
		||||
      const bool is_search = o.get().empty() || field(F_CODCF_ELAB).empty();
 | 
			
		||||
      o.mask().field(F_NDOC_ELAB).check_type(is_search ? CHECK_SEARCH : CHECK_REQUIRED);
 | 
			
		||||
			const bool add_to_doc = o.get().not_empty();
 | 
			
		||||
      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;    
 | 
			
		||||
  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) 
 | 
			
		||||
      docrif_search();
 | 
			
		||||
    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:
 | 
			
		||||
    if (e == fe_modify && is_running()) 
 | 
			
		||||
    if (e == fe_modify) 
 | 
			
		||||
    {                
 | 
			
		||||
      TCursor* c = _tree.get_cursor();
 | 
			
		||||
      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));
 | 
			
		||||
      }
 | 
			
		||||
			TString id;
 | 
			
		||||
 | 
			
		||||
			_tree.curr_id(id);
 | 
			
		||||
			_tree.select(id);
 | 
			
		||||
			if (is_running() && !_tree.multiple_selection())
 | 
			
		||||
			{
 | 
			
		||||
				TCursor* c = _tree.get_cursor();
 | 
			
		||||
				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;
 | 
			
		||||
	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:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
@ -2046,15 +2249,10 @@ int TElabora_mask::update_list()
 | 
			
		||||
  const bool from_elab = !get_bool(F_TYPE);   
 | 
			
		||||
  int items = 0;
 | 
			
		||||
  
 | 
			
		||||
  bool agg_test = FALSE;  
 | 
			
		||||
  if (from_elab)
 | 
			
		||||
    items = _elab.select(elabs, tipo, stato,"","") ;
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    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);
 | 
			
		||||
  TToken_string codes;
 | 
			
		||||
@ -2179,17 +2377,27 @@ bool TElabora_mask::elabora()
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    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 (out[0] != app_doc)
 | 
			
		||||
      {
 | 
			
		||||
        out.rewrite();
 | 
			
		||||
        app_doc = out[0];
 | 
			
		||||
        app_doc.read(out[0].head());
 | 
			
		||||
        update_mask = TRUE;
 | 
			
		||||
      }
 | 
			
		||||
      if (d != in[0])
 | 
			
		||||
        in.rewrite();
 | 
			
		||||
			in.rewrite();
 | 
			
		||||
    }
 | 
			
		||||
    const TString8 num_in = e->codice_numerazione_iniziale();
 | 
			
		||||
    set(F_CODNUM_ELAB, num_in);
 | 
			
		||||
@ -2297,6 +2505,8 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
 | 
			
		||||
  {
 | 
			
		||||
    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(); 
 | 
			
		||||
      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 stato_fin(e->stato_finale());
 | 
			
		||||
 | 
			
		||||
			set(F_UPDATE_HEADER, "");
 | 
			
		||||
      filter << "&&";
 | 
			
		||||
      if (stato_fin != "0")
 | 
			
		||||
        filter << '(';
 | 
			
		||||
@ -2502,7 +2713,7 @@ void TElabora_mask::docrif_search()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
  
 | 
			
		||||
@ -2543,6 +2754,8 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key )
 | 
			
		||||
            m.ss_notify(ss,i,K_ENTER); 
 | 
			
		||||
          }
 | 
			
		||||
        }  
 | 
			
		||||
				if (!m.get_bool(F_TYPE)) // non aggiunge al documento attuale
 | 
			
		||||
					break;
 | 
			
		||||
      }
 | 
			
		||||
      if (update_mask)
 | 
			
		||||
      {
 | 
			
		||||
@ -2555,7 +2768,6 @@ bool TDocumento_mask::elabora_handler( TMask_field& f, KEY key )
 | 
			
		||||
          f.check(STARTING_CHECK);
 | 
			
		||||
        }
 | 
			
		||||
				for (int i = m.fields() - 1; i >= 0; i--)
 | 
			
		||||
 | 
			
		||||
			    m.fld(i).set_dirty(FALSE);
 | 
			
		||||
      }
 | 
			
		||||
      delete selection;     
 | 
			
		||||
 | 
			
		||||
@ -91,7 +91,7 @@ bool totdoc_hndl( TMask_field& field, KEY key )
 | 
			
		||||
    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());
 | 
			
		||||
      
 | 
			
		||||
@ -505,6 +505,47 @@ bool dcons_handler( TMask_field& f, KEY key )
 | 
			
		||||
	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 )
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ bool dcons_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 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_coll_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  "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FR_TIPORIGA 2
 | 
			
		||||
LIST FR_TIPORIGA 2 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Tipo riga   "
 | 
			
		||||
  USE %TRI
 | 
			
		||||
  IN CODTAB FR_TIPORIGA
 | 
			
		||||
  OU FR_DESTIPORIGA S0
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FLAGS "DG"
 | 
			
		||||
  FIELD TIPORIGA
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#ifdef FULL_SCREEN
 | 
			
		||||
STRING FR_DESTIPORIGA 50
 | 
			
		||||
#else
 | 
			
		||||
STRING FR_DESTIPORIGA 25
 | 
			
		||||
#endif
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 22 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
IFDEF(FLD_CODMAG)
 | 
			
		||||
STRING FR_CODMAG 3
 | 
			
		||||
BEGIN
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user