Aggiunto modulo SAL

git-svn-id: svn://10.65.10.50/branches/R_10_00@23025 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-12-10 16:16:57 +00:00
parent 7a1fb797cf
commit 4eb316df66
13 changed files with 4992 additions and 0 deletions

18
sl/sl0.cpp Normal file
View File

@ -0,0 +1,18 @@
#include <xvt.h>
#include "sl0.h"
int main(int argc, char** argv)
{
int rt = -1;
const int r = (argc > 1) ? atoi( &argv[1][1] ) : 0;
switch (r)
{
case 0:
default:
rt = sl0100(argc, argv);
break;
}
return rt;
}

7
sl/sl0.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef __SL0_H
#define __SL0_H
int sl0100(int argc, char* argv[]); // SAL
#endif // __SL0_H

1547
sl/sl0100.cpp Normal file

File diff suppressed because it is too large Load Diff

102
sl/sl0100a.h Normal file
View File

@ -0,0 +1,102 @@
#define F_PROVV 201
#define F_ANNO 202
#define F_CODNUM 203
#define F_DESNUM 204
#define F_TIPODOC 205
#define F_DESTIPO 206
#define F_NDOC 207
#define F_STATO 208
#define F_DATADOC 209
#define F_CLIFO 210
#define F_RAGSOC 211
#define F_RICALT 212
#define F_STATOPAIV 213
#define F_PAIV 214
#define F_COFI 215
#define F_NSAL 216
#define F_TIPOCF 217
#define F_DATACONS 218
#define F_ANNO_ORD 220
#define F_CODNUM_ORD 221
#define F_DESNUM_ORD 222
#define F_NDOC_ORD 223
#define F_DATA_ORD 224
#define F_CODRESP 228
#define F_DESRESP 229
#define F_PANTICIPO 230
#define F_PGARANZIA 231
#define F_CODPAG 232
#define F_DESPAG 233
#define F_CODLIS 234
#define F_DESLIS 235
#define F_SAL_LOR 311
#define F_SAL_SIC 312
#define F_SAL_IDR 313
#define F_SAL_RIB 314
#define F_SAL_IRB 315
#define F_SAL_SIC2 316
#define F_SAL_SAL 317
#define F_SAL_GAR 318
#define F_SAL_ANT 319
#define F_SAL_NET 320
#define F_SAL_IVA 321
#define F_SAL_TOT 322
#define F_SAL_ESC 323
#define F_SAL_PRIB 324
#define F_SAL_PGAR 328
#define F_SAL_PANT 329
#define F_SAL_PIVA 331
#define F_P_SAL_LOR 411
#define F_P_SAL_SIC 412
#define F_P_SAL_IDR 413
#define F_P_SAL_RIB 414
#define F_P_SAL_IRB 415
#define F_P_SAL_SIC2 416
#define F_P_SAL_SAL 417
#define F_P_SAL_GAR 418
#define F_P_SAL_ANT 419
#define F_P_SAL_NET 420
#define F_P_SAL_IVA 421
#define F_P_SAL_TOT 422
#define F_P_SAL_ESC 423
#define F_P_SAL_PRIB 424
#define F_P_SAL_PGAR 428
#define F_P_SAL_PANT 429
#define F_P_SAL_PIVA 431
//#define F_FASENEW 240
//#define F_FASEDIT 241
#define B_PRINT_LIB 242
#define B_PRINT_REG 243
#define F_CDC0 250
#define F_FASI 400
#define F_DISTINTE 401
#define F_MISURE 403
#define S_CODART 101
#define S_DESCR 102
#define S_UMART 103
#define S_QTA 104
#define S_QTAORD 105
#define S_QTAPRG 106
#define S_QTARES 107
#define S_PREZZO 108
#define S_CODIVA 109
#define S_TOTALE 110
#define S_INIATT 111
#define S_FINATT 112
#define S_ID 113
#define S_DATALAV 114
#define S_LEGAME 115
#define S_TIPOLEG 116
#define S_TIPOLAV 117
#define RSAL_COSTO "QTAGG5"

233
sl/sl0100a.uml Normal file
View File

@ -0,0 +1,233 @@
#include "sl0100a.h"
TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "S.A.L." 0 0 0 0
GROUPBOX F_CDC0 78 6
BEGIN
PROMPT 1 1 "@bCommessa"
END
LIST F_TIPOCF 1 10
BEGIN
PROMPT 2 5 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
END
NUMBER F_CLIFO 6
BEGIN
PROMPT 16 5 ""
USE LF_CLIFO
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CLIFO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice Fiscale@16" COFI
OUTPUT F_CLIFO CODCF
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE NORMAL
ADD RUN cg0 -1
END
STRING F_RAGSOC 50 47
BEGIN
PROMPT 27 5 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice Fiscale@16" COFI
COPY OUTPUT F_CLIFO
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 7 "@bOrdine di riferimento"
END
NUMBER F_ANNO_ORD 4
BEGIN
PROMPT 2 8 "Anno "
FLAGS "AU"
CHECKTYPE REQUIRED
END
STRING F_CODNUM_ORD 4
BEGIN
PROMPT 2 9 "Numerazione "
USE %NUM SELECT I1=3
FLAGS "UP"
INPUT CODTAB F_CODNUM_ORD
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM_ORD CODTAB
OUTPUT F_DESNUM_ORD S0
CHECKTYPE REQUIRED
END
STRING F_DESNUM_ORD 50
BEGIN
PROMPT 24 9 ""
USE %NUM KEY 2 SELECT I0>0
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice Num." CODTAB
COPY OUTPUT F_CODNUM_ORD
CHECKTYPE REQUIRED
END
NUMBER F_NDOC_ORD 7
BEGIN
PROMPT 2 10 "Numero "
USE LF_DOC SELECT (BETWEEN(CODCF,#F_CLIFO,#F_CLIFO))
JOIN LF_CLIFO INTO TIPOCF=TIPOCF CODCF==CODCF
INPUT PROVV "D"
INPUT ANNO F_ANNO_ORD SELECT
INPUT CODNUM F_CODNUM_ORD SELECT
INPUT NDOC F_NDOC_ORD
DISPLAY "Anno" ANNO
DISPLAY "Numerazione" CODNUM
DISPLAY "Numero" NDOC
DISPLAY "Stato" STATO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT F_NDOC_ORD NDOC
OUTPUT F_CLIFO CODCF
OUTPUT F_DATA_ORD DATADOC
CHECKTYPE FORCED
NUM_EXPR #THIS_FIELD>0
WARNING "Inserire un numero d'ordine"
FIELD NUMDOCRIF
ADD RUN ve0 -0
END
DATE F_DATA_ORD
BEGIN
PROMPT 25 10 "del "
FIELD DATADOCRIF
FLAGS "D"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 12 "@bStato Avanzamento Lavori"
END
LIST F_PROVV 1 12
BEGIN
PROMPT 69 69 ""
ITEM "D|Definitivi"
ITEM "P|Provvisori"
FIELD PROVV
FLAGS "D"
KEY 1
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 13 "Anno "
FLAGS "AU"
CHECKTYPE REQUIRED
KEY 1
FIELD ANNO
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 14 "Numerazione "
USE %NUM SELECT I1=1
FLAGS "UP"
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FIELD CODNUM
KEY 1
STR_EXPR #THIS_FIELD!=""
WARNING "Inserire un una numerazione di tipo SAL"
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 14 ""
USE %NUM KEY 2 SELECT I1=1
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice Num." CODTAB
COPY OUTPUT F_CODNUM
CHECKTYPE REQUIRED
END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 15 "Tipo docum. "
USE %TIP SELECT I1=1
FLAGS "UP"
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPO S0
CHECKTYPE FORCED
FIELD CODNUM
STR_EXPR #THIS_FIELD!=""
WARNING "Inserire un tipo documento SAL"
END
STRING F_DESTIPO 50
BEGIN
PROMPT 24 15 ""
USE %TIP KEY 2 SELECT I1=1
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice Num." CODTAB
COPY OUTPUT F_TIPODOC
CHECKTYPE REQUIRED
END
NUMBER F_NSAL 3
BEGIN
PROMPT 2 16 "S.A.L. "
USE LF_DOC KEY 4 SELECT NUMDOCRIF=#F_NDOC_ORD
JOIN LF_CLIFO INTO TIPOCF=TIPOCF CODCF==CODCF
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CLIFO SELECT
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_NDOC
DISPLAY "Anno" ANNO
DISPLAY "Num." CODNUM
DISPLAY "SAL" NUMANT
DISPLAY "Stato" STATO
DISPLAY "Num. int. " NDOC
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT F_NSAL NUMANT
OUTPUT F_NDOC NDOC
CHECKTYPE REQUIRED
END
NUMBER F_NDOC 7
BEGIN
PROMPT 52 16 "Numero interno "
COPY ALL F_NSAL
CHECKTYPE REQUIRED
FIELD NDOC
KEY 1
END
ENDPAGE
ENDMASK

971
sl/sl0100b.uml Normal file
View File

@ -0,0 +1,971 @@
#include "sl0100a.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_NEWREC 2 2
BEGIN
PROMPT 1 1 "~Nuovo"
MESSAGE EXIT,K_INS
PICTURE TOOL_NEWREC
END
BUTTON DLG_SAVEREC 2 2
BEGIN
PROMPT 2 1 "~Registra"
MESSAGE EXIT,K_SAVE
PICTURE TOOL_SAVEREC
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 3 1 "~Elimina"
MESSAGE EXIT,K_DEL
PICTURE TOOL_DELREC
END
BUTTON DLG_NULL 2 2
BEGIN
PROMPT -1 1 ""
PICTURE 0
END
BUTTON B_PRINT_LIB 2 2
BEGIN
PROMPT 1 3 "Misure"
PICTURE TOOL_PRINT
END
BUTTON DLG_PRINT 2 2
BEGIN
PROMPT 1 3 "S.A.L."
PICTURE TOOL_PRINT
END
BUTTON B_PRINT_REG 2 2
BEGIN
PROMPT 1 3 "Registro"
PICTURE TOOL_PRINT
END
BUTTON DLG_ELABORA 2 2
BEGIN
PROMPT 1 4 "Certificato"
PICTURE TOOL_ELABORA
END
BUTTON DLG_NULL 2 2
BEGIN
PROMPT -1 1 ""
PICTURE 0
END
#include <navbar.h>
#include <cancelbar.h>
ENDPAGE
PAGE "S.A.L." 0 2 0 0
GROUPBOX -1 78 6
BEGIN
PROMPT 1 0 "@bS.A.L."
END
LIST F_PROVV 1 12
BEGIN
PROMPT 69 69 ""
ITEM "D|Definitivi"
ITEM "P|Provvisori"
FIELD PROVV
FLAGS "D"
KEY 1
END
NUMBER F_NDOC_ORD 7
BEGIN
PROMPT 2 1 "Ordine numero "
FIELD NUMDOCRIF
FLAGS "D"
END
DATE F_DATA_ORD
BEGIN
PROMPT 26 1 "del "
FIELD DATADOCRIF
FLAGS "D"
END
NUMBER F_NDOC 7
BEGIN
PROMPT 2 2 "Numero int. "
FLAGS "DG"
CHECKTYPE REQUIRED
FIELD NDOC
KEY 1
END
NUMBER F_ANNO 4
BEGIN
PROMPT 26 2 "Anno "
FLAGS "D"
CHECKTYPE REQUIRED
FIELD ANNO
KEY 1
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 3 "Numerazione "
USE %NUM
FLAGS "DGU"
INPUT CODTAB F_CODNUM
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE REQUIRED
FIELD CODNUM
KEY 1
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 3 ""
FLAGS "D"
END
STRING F_STATO 1
BEGIN
PROMPT 53 2 "Stato "
USE %STD
INPUT CODTAB F_STATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_STATO CODTAB
CHECKTYPE NORMAL
FIELD STATO
FLAGS "DG"
END
NUMBER F_NSAL 3
BEGIN
PROMPT 2 4 "Numero S.A.L. "
FLAGS "D"
FIELD NUMANT
END
STRING 205 4
BEGIN
PROMPT 2 4 "Tipo "
FLAGS "H"
FIELD TIPODOC
USE %TIP
INPUT CODTAB 205
OUTPUT 206 S0
CHEKCTYPE NORMAL
END
STRING 206 50
BEGIN
PROMPT 24 4 ""
FLAGS "H"
END
DATE F_DATADOC
BEGIN
PROMPT 23 4 "Data "
FLAGS "A"
FIELD DATADOC
CHECKTYPE REQUIRED
MESSAGE COPY,F_DATACONS
END
DATE F_DATACONS
BEGIN
PROMPT 42 4 "Competenza "
FLAGS "D"
FIELD DATACONS
END
GOLEM 238 10 2
BEGIN
PROMPT 64 1 ""
FIELD COLL_GOLEM
FLAGS "M"
END
GR -1 78 7
BEGIN
PROMPT 1 6 "@bCliente/Fornitore"
END
LISTBOX F_TIPOCF 1 10
BEGIN
PROMPT 2 7 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
FLAGS "D"
FIELD TIPOCF
END
NUMBER F_CLIFO 7
BEGIN
PROMPT 16 7 ""
USE LF_CLIFO
INPUT TIPOCF F_TIPOCF
INPUT CODCF F_CLIFO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Sospeso@C" SOSPESO
OUTPUT F_CLIFO CODCF
OUTPUT F_RAGSOC RAGSOC
OUTPUT F_PAIV PAIV
OUTPUT F_COFI COFI
CHECKTYPE NORMAL
ADD RU cg0 -1 C
MESSAGE COPY,10@
FIELD CODCF
FLAGS "DG"
END
STRING F_RAGSOC 50 49
BEGIN
PROMPT 25 7 ""
FLAGS "D"
END
STRING F_COFI 16
BEGIN
PROMPT 2 8 "Codice fiscale "
FLAGS "DU"
END
STRING F_PAIV 12
BEGIN
PROMPT 50 8 "Partita IVA "
FLAGS "D"
END
STRING F_CODRESP 5
BEGIN
PROMPT 2 11 "Responsabile"
FLAGS "UZ"
CHECKTYPE NORMAL
FIELD CODAG
USE 122
INPUT CODAGE F_CODRESP
DISPLAY "Codice" CODAGE
DISPLAY "Descrizione@50" RAGSOC
OUTPUT F_CODRESP CODAGE
OUTPUT F_DESRESP RAGSOC
CHECKTYPE NORMAL
ADD RU pr0 -4
END
STRING F_DESRESP 50
BEGIN
PROMPT 24 11 ""
FLAGS ""
CHECKTYPE NORMAL
USE 122 KEY 2
INPUT RAGSOC F_DESRESP
DISPLAY "Descrizione@50" RAGSOC
DISPLAY "Codice" CODAGE
COPY OUTPUT F_CODRESP
ADD RUN pr0 -4
END
GROUPBOX -1 78 7
BEGIN
PROMPT 1 13 "@bDati Commerciali"
END
ZOOM 226 62
BEGIN
PROMPT 2 14 "Oggetto "
FIELD NOTE
END
STRING F_CODPAG 4
BEGIN
PROMPT 2 15 "Pagamento "
USE %CPG
INPUT CODTAB F_CODPAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODPAG CODTAB
OUTPUT F_DESPAG S0
CHECKTYPE NORMAL
FIELD CODPAG
END
STRING F_DESPAG 50
BEGIN
PROMPT 24 15 ""
USE %CPG KEY 2
INPUT S0 F_DESPAG
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
CO OUTPUT F_CODPAG
CHECKTYPE NORMAL
END
STRING F_CODLIS 4
BEGIN
PROMPT 2 16 "Listino "
FLAGS "U"
USE 52
INPUT TIPO "L"
INPUT CATVEN ""
INPUT COD F_CODLIS
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
DISPLAY "Inizio@10" VALIN
DISPLAY "Fine@10" VALFIN
OUTPUT F_CODLIS COD
OUTPUT F_DESLIS DESCR
ADD RUN ve2 -1 L
CHECKTYPE NORMAL
FIELD CODLIST
END
STRING F_DESLIS 50
BEGIN
PROMPT 24 16 ""
USE 52 KEY 2
INPUT TIPO "L"
INPUT CATVEN ""
INPUT DESCR F_DESLIS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" COD
DISPLAY "Inizio@10" VALIN
DISPLAY "Fine@10" VALFIN
COPY OUTPUT F_CODLIS
CHECKTYPE NORMAL
ADD RU ve2 -1 L
END
STRING F_PGARANZIA 10 25
BEGIN
PROMPT 2 17 "% Ritenuta a garanzia "
FIELD SCONTOPERC
END
NUMBER F_PANTICIPO 6 2
BEGIN
PROMPT 57 17 "% Anticipo "
FIELD PERCSPINC
END
GROUPBOX F_CDC0 78 3
BEGIN
PROMPT 1 20 "@bIndutriale"
END
ENDPAGE
PAGE "Righe" 0 2 0 0
TLIST F_FASI 50 -1
BEGIN
PROMPT 0 0 ""
DISPLAY "Fasi@15" CODART
DISPLAY "Prezzo@10R" PREZZO
DISPLAY "Descrizione@35" DESCR
END
/*
BUTTON F_FASENEW 8 2
BEGIN
PROMPT 1 0 "Nuovo"
PICTURE BMP_NEWREC
PICTURE BMP_NEWRECDN
END
BUTTON F_FASEDIT 8 2
BEGIN
PROMPT 12 0 "Modifica"
PICTURE BMP_EDIT
FLAGS "D"
END
*/
SPREADSHEET F_DISTINTE 0 16
BEGIN
PROMPT 53 0 ""
IT "Voce Elenco Prezzi@20"
IT "Descrizione@50"
IT "U.M."
IT "Quantità@10"
IT "Qtà Ord.@10"
IT "Qtà Progr.@9"
IT "Residuo@10"
IT "Prezzo@16R"
IT "IVA"
IT "Totale@16"
IT "Data inizio@10"
IT "Data fine@10"
IT "ID@6"
IT "Data\nlavori@10"
IT "Legame@6"
IT "Tipo\nlegame@6"
IT "Tipo\nlavoro@6"
END
SPREADSHEET F_MISURE
BEGIN
PROMPT 53 17 ""
ITEM "Descrizione@50"
ITEM "Numero@9"
ITEM "Lunghezza@9"
ITEM "Larghezza@9"
ITEM "Altezza@9"
ITEM "Totale@9"
ITEM "Data@10"
END
ENDPAGE
PAGE "Totali" 0 2 0 0
GROUPBOX DLG_NULL 60 18
BEGIN
PROMPT 1 0 "@bCalcolo totali"
END
TEXT DLG_NULL
BEGIN
PROMPT 25 1 "@bParziale"
END
TEXT DLG_NULL
BEGIN
PROMPT 43 1 "@bProgressivo"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 2 "SAL Lordo"
END
CURRENCY F_SAL_LOR 15
BEGIN
PROMPT 24 2 " "
FLAGS "D"
FIELD G1:SAL_LOR
END
CURRENCY F_P_SAL_LOR 15
BEGIN
PROMPT 42 2 " "
FLAGS "D"
FIELD G1:P_SAL_LOR
END
TEXT DLG_NULL
BEGIN
PROMPT 2 3 "Sicurezza"
END
CURRENCY F_SAL_SIC 15
BEGIN
PROMPT 24 3 "-"
FLAGS "D"
FIELD G1:SAL_SIC
END
CURRENCY F_P_SAL_SIC 15
BEGIN
PROMPT 42 3 " "
FLAGS "D"
FIELD G1:P_SAL_SIC
END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "Esclusi da ribasso"
END
CURRENCY F_SAL_ESC 15
BEGIN
PROMPT 24 4 "-"
FLAGS "D"
FIELD G1:SAL_ESC
END
CURRENCY F_P_SAL_ESC 15
BEGIN
PROMPT 42 4 " "
FLAGS "D"
FIELD G1:P_SAL_ESC
END
TEXT DLG_NULL
BEGIN
PROMPT 2 5 "Importo da ribassare"
END
CURRENCY F_SAL_IDR 15
BEGIN
PROMPT 24 5 "="
FLAGS "D"
FIELD G1:SAL_IDR
END
CURRENCY F_P_SAL_IDR 15
BEGIN
PROMPT 42 5 " "
FLAGS "D"
FIELD G1:P_SAL_IDR
END
NUMBER F_SAL_PRIB 6 2
BEGIN
PROMPT 2 6 "Ribasso %"
FLAGS "D"
FIELD G1:SAL_PRIB
END
CURRENCY F_SAL_RIB 15
BEGIN
PROMPT 24 6 "-"
FLAGS "D"
FIELD G1:SAL_RIB
END
CURRENCY F_P_SAL_RIB 15
BEGIN
PROMPT 42 6 " "
FLAGS "D"
FIELD G1:P_SAL_RIB
END
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "Importo ribassato"
END
CURRENCY F_SAL_IRB 15
BEGIN
PROMPT 24 7 "="
FLAGS "D"
FIELD G1:SAL_IRB
END
CURRENCY F_P_SAL_IRB 15
BEGIN
PROMPT 42 7 " "
FLAGS "D"
FIELD G1:P_SAL_IRB
END
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "Sicurezza ed Esclusi"
END
CURRENCY F_SAL_SIC2 15
BEGIN
PROMPT 24 8 "+"
FLAGS "DG"
END
CURRENCY F_P_SAL_SIC2 15
BEGIN
PROMPT 42 8 " "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "@bImporto SAL"
END
CURRENCY F_SAL_SAL 15
BEGIN
PROMPT 24 10 "="
FLAGS "D"
FIELD G1:SAL_SAL
END
CURRENCY F_P_SAL_SAL 15
BEGIN
PROMPT 42 10 " "
FLAGS "D"
FIELD G1:P_SAL_SAL
END
NUMBER F_SAL_PGAR 6 2
BEGIN
PROMPT 2 11 "Garanzia %"
FLAGS "D"
FIELD G1:SAL_PGAR
END
CURRENCY F_SAL_GAR 15
BEGIN
PROMPT 24 11 "-"
FIELD G1:SAL_GAR
FLAGS "D"
END
CURRENCY F_P_SAL_GAR 15
BEGIN
PROMPT 42 11 " "
FLAGS "D"
FIELD G1:P_SAL_GAR
END
NUMBER F_SAL_PANT 6 2
BEGIN
PROMPT 2 12 "Anticipo %"
FLAGS "D"
FIELD G1:SAL_PANT
END
CURRENCY F_SAL_ANT 15
BEGIN
PROMPT 24 12 "-"
FIELD G1:SAL_ANT
FLAGS "D"
END
CURRENCY F_P_SAL_ANT 15
BEGIN
PROMPT 42 12 " "
FLAGS "D"
FIELD G1:P_SAL_ANT
END
TEXT DLG_NULL
BEGIN
PROMPT 2 14 "@bImporto netto"
END
CURRENCY F_SAL_NET 15
BEGIN
PROMPT 24 14 "="
FLAGS "D"
FIELD G1:SAL_NET
END
CURRENCY F_P_SAL_NET 15
BEGIN
PROMPT 42 14 " "
FLAGS "D"
FIELD G1:P_SAL_NET
END
NUMBER F_SAL_PIVA 6 2
BEGIN
PROMPT 2 15 "Imposta %"
FLAGS "D"
FIELD G1:SAL_PIVA
END
CURRENCY F_SAL_IVA 15
BEGIN
PROMPT 24 15 "+"
FLAGS "D"
FIELD G1:SAL_IVA
END
CURRENCY F_P_SAL_IVA 15
BEGIN
PROMPT 42 15 " "
FLAGS "D"
FIELD G1:P_SAL_IVA
END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "@bTotale SAL"
END
CURRENCY F_SAL_TOT 15
BEGIN
PROMPT 24 16 "="
FLAGS "DG"
FIELD G1:SAL_TOT
END
CURRENCY F_P_SAL_TOT 15
BEGIN
PROMPT 42 16 " "
FLAGS "D"
FIELD G1:P_SAL_TOT
END
ENDPAGE
ENDMASK
PAGE "Distinta" -1 -1 78 10
STRING S_CODART 20
BEGIN
PROMPT 1 0 "Distinta "
USE LF_DIST
INPUT CODDIST S_CODART
DISPLAY "Codice@20" CODDIST
DISPLAY "Descrizione@50" DESCR
DISPLAY "U.M." UM
DISPLAY "Prezzo@14V" PREZZO
OUTPUT S_CODART CODDIST
OUTPUT S_DESCR DESCR
OUTPUT S_UMART UM
CHEKTYPE SEARCH
ADD RUN db0 -4
FLAGS "U"
FIELD CODART
END
ZOOM S_DESCR 50 39
BEGIN
PROMPT 35 0 ""
USE LF_DIST KEY 2
INPUT DESCR S_DESCR
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODDIST
DISPLAY "U.M." UM
DISPLAY "Prezzo@14V" PREZZO
COPY OUTPUT S_CODART
CHEKTYPE SEARCH
FIELD DESCR
END
STRING S_UMART 2
BEGIN
PROMPT 1 1 "U.M. "
USE %UMS
INPUT CODTAB S_UMART
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_UMART CODTAB
CHECKTYPE NORMAL
FIELD UMQTA
END
STRING S_CODIVA 4
BEGIN
PROMPT 13 1 "IVA "
USE %IVA
INPUT CODTAB S_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_CODIVA CODTAB
CHECKTYPE NORMAL
FIELD CODIVA
END
CURRENCY S_PREZZO 16
BEGIN
PROMPT 26 1 "Prezzo "
FIELD PREZZO
END
NUMBER S_TOTALE 16 2
BEGIN
PROMPT 51 1 "Totale "
PICTURE ".2"
FLAGS "DG"
VALIDATE 14 1 #S_QTA*#S_PREZZO
DRIVENBY S_QTA S_PREZZO
END
TEXT DLG_NULL
BEGIN
PROMPT 1 2 "Qtà SAL"
END
NUMBER S_QTA 12 3
BEGIN
PROMPT 1 3 ""
PICTURE ".3"
FIELD QTA
END
TEXT DLG_NULL
BEGIN
PROMPT 16 2 "Qtà Ord."
END
NUMBER S_QTAORD 12 3
BEGIN
PROMPT 16 3 ""
PICTURE ".3"
FIELD QTAGG1
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 31 2 "Qtà Progr."
END
NUMBER S_QTAPRG 12 3
BEGIN
PROMPT 31 3 ""
PICTURE ".3"
FIELD QTAGG2
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 46 2 "Qtà residua"
END
NUMBER S_QTARES 12 3
BEGIN
PROMPT 46 3 ""
PICTURE ".3"
FIELD QTAGG3
FLAGS "D"
END
DATE S_INIATT
BEGIN
PROMPT 1 6 "Inizio attività "
FIELD DATAINIATT
END
DATE S_FINATT
BEGIN
PROMPT 35 6 "Fine attività "
FIELD DATAFINATT
END
DATE S_DATALAV
BEGIN
PROMPT 35 7 "Data lavori "
FIELD DATACONS
END
NUMBER S_ID 6
BEGIN
PROMPT 1 7 "ID "
FIELD IDRIGA
FLAGS "D"
END
NUMBER S_LEGAME 6
BEGIN
PROMPT 1 8 "Legame "
FIELD IDRIGACOLL
END
LIST S_TIPOLEG 1 15
BEGIN
PROMPT 35 8 "Tipo legame "
ITEM "0|Nessuno"
ITEM "1|Fine-Inizio"
ITEM "2|Fine-Fine"
ITEM "3|Inizio-Inizio"
ITEM "4|Inizio-Fine"
FIELD TIPOCOLL
END
LIST S_TIPOLAV 1 30
BEGIN
PROMPT 1 9 "Tipo lavoro "
ITEM "0|Lavori e somministrazioni"
ITEM "1|Lavori aggiuntivi"
ITEM "2|Economie"
ITEM "3|Sicurezza"
ITEM "4|Escluso da ribasso"
FIELD TIPODET
END
ENDPAGE
TOOLBAR "" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 ""
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 ""
END
ENDPAGE
ENDMASK
PAGE "Misura" -1 -1 60 8
STRING 101 50 45
BEGIN
PROMPT 1 1 "Descriz. "
FIELD DESCR
END
NUMBER 102 9 3
BEGIN
PROMPT 1 2 "Numero "
FIELD QTAGG1
END
NUMBER 103 9 3
BEGIN
PROMPT 1 3 "Lunghezza "
FIELD QTAGG2
END
NUMBER 104 9 3
BEGIN
PROMPT 1 4 "Larghezza "
FIELD QTAGG3
END
NUMBER 105 9 3
BEGIN
PROMPT 1 5 "Altezza "
FIELD QTAGG4
END
NUMBER 106 9 3
BEGIN
PROMPT 1 6 "Totale "
FLAGS "DG"
DRIVENBY 102 103 104 105
NUM_CALC IF(#102,#102,1)*IF(#103,#103,1)*IF(#104,#104,1)*IF(#105,#105,1)
FIELD QTA
END
DATE 107
BEGIN
PROMPT 1 7 "Data "
FIELD DATACONS
END
ENDPAGE
TOOLBAR "" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 ""
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 ""
END
ENDPAGE
ENDMASK

593
sl/sl0101.cpp Normal file
View File

@ -0,0 +1,593 @@
#include "sl0100a.h"
#include "sl0101.h"
#include <diction.h>
#include <mask.h>
#include <reputils.h>
#include <urldefid.h>
#include "../ca/calib01.h"
#include "../ca/fasi.h"
#include "../ve/velib.h"
//#include <doc.h>
//#include <rdoc.h>
static bool cmscpy(TRectype& dst, const TRectype& src)
{
const TString& cms_in = src.get(RDOC_CODCMS);
if (cms_in.blank())
{
NFCHECK("Commessa nulla");
return false;
}
const TString& cms_out = dst.get(RDOC_CODCMS);
if (cms_in == cms_out)
return true;
if (!cms_out.blank())
NFCHECK("Commessa incoerente");
dst.put(RDOC_CODCMS, cms_in);
return true;
}
bool TSAL_tree::add_lastson(TObject* obj)
{
CHECK(obj != NULL && obj->is_kind_of(CLASS_RECTYPE), "Record non valido per SAL");
TRectype& rec = *(TRectype*)obj;
CHECK(rec.get(RDOC_TIPORIGA).full(), "TIPORIGA vuoto");
cmscpy(rec, *curr_row());
bool done = false;
if (goto_firstson()) // Se ha almeno un figlio ...
{
while (goto_rbrother()); // ... allora vai all'ultimo fratello
done = add_rbrother(obj); // ed aggiungi ultimo fratello
}
else
done = add_son(obj); // Aggiungi primogenito
return done;
}
TSAL_level TSAL_tree::last_fase_level() const
{
return (TSAL_level)_picture_fasi.items();
}
bool TSAL_tree::goto_last_fase(TSAL_level sublevel)
{
bool ok = goto_root() && goto_firstson();
if (ok)
{
while (goto_rbrother()); // goto last son
if (sublevel > sl_fase1)
{
//TSAL_level max_lev = last_fase_level();
//if (sublevel < max_lev)
// max_lev = sublevel;
while (level() < sublevel)
{
if (goto_firstson())
while (goto_rbrother());
else
break;
}
ok = level() == sublevel;
}
}
return ok;
}
bool TSAL_tree::goto_last_dist()
{
bool ok = goto_last_fase(sl_distinta); // sl_distinta = dummy value for maximum depth
if (ok)
while (goto_rbrother());
return ok;
}
TRectype* TSAL_tree::new_row(TSAL_level level) const
{
const TMask& m = owner().mask();
TRectype* rec = new TRectype(level == sl_documento ? LF_DOC : LF_RIGHEDOC);
rec->put(RDOC_PROVV, 'D');
rec->put(RDOC_ANNO, m.get(F_ANNO));
rec->put(RDOC_CODNUM, m.get(F_CODNUM));
rec->put(RDOC_NDOC, m.get(F_NDOC));
TString cantiere;
for (short id = F_CDC0+1; m.id2pos(id) > 0; id++)
cantiere << m.get(id);
rec->put(RDOC_CODCMS, cantiere);
switch (level)
{
case sl_documento:
rec->put(DOC_NUMANT, m.get(F_NSAL));
break;
case sl_distinta:
rec->put(RDOC_TIPORIGA, tipo_dist());
rec->put(RDOC_DESCR, TR("Nuova distinta"));
cmscpy(*rec, *curr_row());
break;
case sl_misura:
rec->put(RDOC_TIPORIGA, tipo_misu());
rec->put(RDOC_DESCR, TR("Nuova misura"));
cmscpy(*rec, *curr_row());
break;
default:
rec->put(RDOC_TIPORIGA, tipo_fasi());
rec->put(RDOC_DESCR, TR("Nuova fase"));
rec->put(RSAL_LEVEL, level-sl_fase1);
break;
}
return rec;
}
static bool find_fase_cb(TTree& node, void* jolly, word /*when*/)
{
const TSAL_tree& tree = (TSAL_tree&)node;
const TSAL_level lev = tree.level();
if (lev < sl_fase1 || lev >= sl_distinta)
return false;
const TString& fascms = *((TString*)jolly);
const TRectype& rec = *tree.curr_row();
const TString& fase = rec.get(RDOC_FASCMS);
return fase == fascms;
}
TRectype* TSAL_tree::fase(const TString& fase, bool create)
{
TRectype* rec = NULL;
if (goto_root() && scan_breadth_first(find_fase_cb, (void*)&fase))
rec = curr_row();
else if (create)
{
if (goto_root())
{
rec = new_row(sl_fase1);
rec->put(RDOC_FASCMS, fase);
TToken_string key; key = rec->get(RDOC_CODCMS); key.add(fase);
TString80 descr = cache().get(LF_FASI, key, FASI_DESCRIZ);
if (descr.empty())
{
key.add(" ", 0);
descr = cache().get(LF_FASI, key, FASI_DESCRIZ);
}
if (descr.full())
rec->put(RDOC_DESCR, descr);
add_lastson(rec);
}
}
return rec;
}
TRectype* TSAL_tree::dist(const TString& fase, int n, bool create)
{
TRectype* rec = NULL;
if (goto_node(fase))
{
if (goto_firstson())
{
int i = 0;
for (; i < n && goto_rbrother(); i++);
if (i < n)
{
if (create)
add_rbrother(rec = new_row(sl_distinta));
}
else
rec = curr_row();
}
else
{
if (create)
add_son(rec = new_row(sl_distinta));
}
}
return rec;
}
TRectype* TSAL_tree::misu(const TString& dist, int n, bool create)
{
TRectype* rec = NULL;
if (goto_node(dist))
{
CHECKS(level() == sl_distinta, "Distinta non valida", (const char*)dist);
if (goto_firstson())
{
int i = level() == sl_misura ? 0 : -1;
while (i < n && goto_rbrother())
if (level() == sl_misura) i++;
if (i < n)
{
if (create)
add_rbrother(rec = new_row(sl_misura));
}
else
rec = curr_row();
}
else
{
if (create && n == 0)
add_son(rec = new_row(sl_misura));
}
}
return rec;
}
TSAL_level TSAL_tree::level(const TRectype& rec) const
{
TSAL_level lev = sl_documento;
if (rec.num() == LF_RIGHEDOC)
{
const TString& t = rec.get(RDOC_TIPORIGA);
if (t.full())
{
lev = sl_fase1;
if (t == _strFasi)
lev = TSAL_level(lev + rec.get_int(RSAL_LEVEL)); else
if (t == _strDist)
lev = sl_distinta; else
if (t == _strMisu)
lev = sl_misura;
}
}
return lev;
}
TSAL_level TSAL_tree::level() const
{
TSAL_level lev = sl_documento;
TRectype* rec = curr_row();
if (rec != NULL)
lev = level(*rec);
return lev;
}
bool TSAL_tree::could_have_son() const
{ return level() < sl_distinta; }
bool TSAL_tree::get_description(TString& str) const
{
const TRectype* rec = curr_row();
bool ok = rec != NULL && !rec->empty();
if (ok)
{
if (rec->num() == LF_DOC)
{
const TMask& m = owner().mask();
str.cut(0) << TR("SAL ") << m.get(F_NSAL) << TR(" del ") << m.get(F_DATADOC);
} else
if (rec->num() == LF_RIGHEDOC)
{
str = rec->get(RDOC_DESCR);
if (str.blank())
str = rec->get(RDOC_CODCMS);
}
else
NFCHECK("Bad tree record");
}
else
NFCHECK("NULL tree record");
return ok;
}
TFieldtypes TSAL_tree::get_var(const TString& name, TVariant& var) const
{
TFieldtypes ft = _nullfld;
const TRectype* rec = curr_row();
if (rec != NULL && !rec->empty())
{
if (rec->num() == LF_DOC)
{
const TMask& m = owner().mask();
if (name == RDOC_CODART)
{
var = m.get(F_NDOC);
ft = _alfafld;
} else
if (name == RDOC_DESCR)
{
TString str; get_description(str);
const int spc = str.find('\n');
if (spc > 0) str.cut(spc);
var = str;
ft = _alfafld;
} else
if (name == RDOC_PREZZO || name == RSAL_COSTO)
{
real c, p; ((TSAL_tree*)this)->ricalcola(c, p);
if (name == RDOC_PREZZO )
var = p.stringa(0,2);
else
var = c.stringa(0,2);
ft = _realfld;
}
}
else
{
ft = rec->type(name);
if (ft > _nullfld)
{
const TSAL_level livello = level(*rec);
if (ft == _realfld)
{
if ((name == RDOC_PREZZO || name == RSAL_COSTO) && livello == sl_distinta)
{
real c, p; ((TSAL_tree*)this)->ricalcola(c, p);
if (name == RDOC_PREZZO )
var = p.stringa(0,2);
else
var = c.stringa(0,2);
}
else
var = rec->get_real(name).stringa(0, 2);
}
else
{
if (name == RDOC_CODART && livello < sl_distinta)
{
TString16 fase = rec->get(RDOC_FASCMS);
if (fase.blank())
{
fase = rec->get(RDOC_CODART);
if (livello < _picture_fasi.items())
{
const TString& pic = _picture_fasi.row(livello-1);
const int len = pic.len();
if (pic[0] == '0')
fase.right_just(len, '0');
else
fase.left_just(len, ' ');
}
((TRectype*)rec)->put(RDOC_FASCMS, fase);
}
var = fase;
}
else
var = rec->get(name);
}
}
}
}
return ft;
}
TImage* TSAL_tree::image(bool sel) const
{
const TSAL_level pl = level();
if (pl <= sl_distinta)
{
const bool ex = expanded();
if (has_son())
return get_res_image(ex ? BMP_DIRDNSEL : BMP_DIRSEL);
else
return get_res_image(ex ? BMP_DIRDN : BMP_DIR);
}
return TObject_tree::image(sel);
}
// Aggiunge un record alla fine dell'albero in base al tipo della riga (usato solo in lettura iniziale)
bool TSAL_tree::append_row(const TRectype& rec)
{
const TSAL_level pl = level(rec);
if (pl == sl_documento)
{
// Se aggiungo un documento allora svuoto albero e ricreo radice
if (goto_root())
kill_node();
return add_son(rec);
} else
if (pl == sl_distinta)
{
const TString16 fascms = rec.get(RDOC_FASCMS);
bool ok = false;
if (fascms.full())
ok = fase(fascms, true) != NULL;
else
ok = goto_last_dist();
return ok && add_lastson(rec);
} else
if (pl == sl_misura)
{
if (goto_last_dist())
return add_lastson(rec);
}
else
{
goto_root();
while (level() < pl)
{
if (goto_firstson())
while (goto_rbrother());
else
break;
}
if (level() < pl)
return add_lastson(rec);
else
return add_rbrother(rec);
}
return false;
}
bool TSAL_tree::ricalcola(real& costo, real& prezzo)
{
bool ok = false;
const TSAL_level lev = level();
costo = prezzo = ZERO;
if (lev < sl_distinta && has_son())
{
TString16 id; curr_id(id);
for (bool go = goto_firstson(); go; go = goto_rbrother())
{
real c, p;
if (ricalcola(c, p))
{
costo += c;
prezzo += p;
}
}
ok = goto_node(id);
if (lev >= sl_fase1)
{
TRectype& rec = *curr_row();
rec.put(RDOC_QTA, 1);
rec.put(RSAL_COSTO, costo);
rec.put(RDOC_PREZZO, prezzo);
}
}
else
{
ok = lev == sl_distinta;
if (ok)
{
const TRectype& rec = *curr_row();
const real qta = rec.get_real(RDOC_QTA);
if (!qta.is_zero())
{
costo = qta * rec.get_real(RSAL_COSTO);
prezzo = qta * rec.get_real(RDOC_PREZZO);
}
}
}
return ok;
}
bool TSAL_tree::load(const TRectype& doc, int nsal)
{
TLog_report log;
// Lettura righe documento
TToken_string keytok;
keytok.add(doc.get(DOC_CODNUM));
keytok.add(doc.get(DOC_ANNO));
keytok.add(doc.get(DOC_PROVV));
keytok.add(doc.get(DOC_NDOC));
TRecord_array rdoc(keytok, LF_RIGHEDOC);
// Svuota automaticamente albero e crea documento radice
bool done = append_row(doc);
if (done)
{
// Caricamento righe nell'albero
const int last_row = rdoc.last_row();
TString16 curr_fase;
for (int r = rdoc.first_row(); r > 0 && r <= last_row; r = rdoc.succ_row(r))
{
TRectype& rr = rdoc[r];
const TSAL_level sl = level(rr);
const TString& fase = rr.get(RDOC_FASCMS);
if (fase.blank())
{
if (sl < sl_distinta)
curr_fase = rr.get(RDOC_CODART);
rr.put(RDOC_FASCMS, curr_fase);
}
else
curr_fase = fase;
// Gestione copia da ordine o SAL precedente
if (nsal > 0 && sl >= sl_distinta)
{
if (sl >= sl_misura)
continue; // Non copiare le misure!
const real qta = rr.get(RDOC_QTA);
if (nsal == 1) // nsal=1 -> copia da ordine
{
rr.put(RDOC_DAIDRIGA, rr.get(RDOC_IDRIGA));
rr.put(RDOC_QTAGG1, qta); // Inizializza totale riga ordine
rr.put(RDOC_QTAGG2, ZERO); // Totale SAL precedenti (nessuno nel primo SAL)
rr.put(RDOC_QTAGG3, qta); // Residuo (nel primo SAL è uguale alla qta)
const TString& sconto = rr.get(RDOC_SCONTO);
if (sconto.full())
{
const real impns = prezzo_scontato(rr.get_real(RDOC_PREZZO), sconto);
if (!impns.is_zero())
rr.put(RDOC_PREZZO, impns);
}
}
else
{
rr.add(RDOC_QTAGG2, qta); // Aggiorna totale precedente quando copi da SAL
rr.add(RDOC_QTAGG3,-qta); // Aggiorna residuo quando copi da SAL
}
rr.zero(RDOC_QTA); // Azzera quantità sempre
}
if (!append_row(rr))
{
TString msg;
msg.format("Impossibile caricare la riga %d di tipo %s:\n%s",
rr.get_int(RDOC_NRIGA), (const char*)rr.get(RDOC_TIPORIGA),
(const char*)rr.get(RDOC_DESCR));
log.log(2, msg);
done = false;
}
} // fine caricamento riga
TMask& m = owner().mask();
if (nsal > 1) // A partire dal secondo sal aggiorno i progressivi di testata P_SAL_*
{
const TDocumento prec(doc);
FOR_EACH_MASK_FIELD(m, i, f)
{
const TFieldref* ref = f->field();
if (ref != NULL && ref->name().starts_with("G1:P_SAL_"))
{
const real p_val = ref->read(prec);
TString16 name = ref->name(); name.ltrim(5);
const real val = prec.get(name);
const real progr = p_val + val;
f->set(progr.string());
}
}
}
const real p_sic2 = m.get_real(F_P_SAL_SIC) + m.get_real(F_P_SAL_ESC);
m.set(F_P_SAL_SIC2, p_sic2);
}
else
{
TString msg; msg.format("Impossibile caricare il documento %s", (const char*)keytok);
log.log(2, msg);
}
// Espansione della sola radice
shrink_all(); goto_root(); expand();
owner().force_update();
if (!done)
log.preview();
return done;
}
TSAL_tree::TSAL_tree(TTree_field& owner) : _owner(owner)
{
// Legge i tipi riga standard per determinare i nodi dell'albero
_strFasi = ini_get_string(CONFIG_DITTA, "pe", "TipoRigaFase", "05");
_strDist = ini_get_string(CONFIG_DITTA, "pe", "TipoRigaDist", "P1");
_strMisu = ini_get_string(CONFIG_DITTA, "pe", "TipoRigaMisu", "P2");
TConfig& cfg = ca_config();
for (int i = 1; i <= 4; i++)
{
const TString& pic = cfg.get("Fsc", "ca", i);
if (pic.full())
_picture_fasi.add(pic);
else
break;
}
}

69
sl/sl0101.h Normal file
View File

@ -0,0 +1,69 @@
#ifndef __SL0101_H
#define __SL0101_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __TREE_H
#include <tree.h>
#endif
#ifndef __TREECTRL_H
#include <treectrl.h>
#endif
///////////////////////////////////////////////////////////
// TSAL_tree
///////////////////////////////////////////////////////////
enum TSAL_level { sl_documento, sl_fase1, sl_fase2, sl_fase3, sl_fase4, sl_distinta, sl_misura };
class TSAL_tree : public TObject_tree
{
TTree_field& _owner;
TString4 _strFasi, _strDist, _strMisu;
TString_array _picture_fasi;
private:
bool add_lastson(TObject* obj);
bool add_lastson(const TObject& obj) { return add_lastson(obj.dup()); }
protected:
bool goto_last_fase();
bool goto_last_dist();
TSAL_level last_fase_level() const;
bool goto_last_fase(TSAL_level sublevel);
public:
virtual bool could_have_son() const;
virtual bool get_description(TString& str) const;
virtual TFieldtypes get_var(const TString& name, TVariant& var) const;
virtual TImage* image(bool sel) const;
const TString& tipo_fasi() const { return _strFasi; }
const TString& tipo_dist() const { return _strDist; }
const TString& tipo_misu() const { return _strMisu; }
TSAL_level level(const TRectype& rec) const;
TSAL_level level() const;
TRectype* new_row(TSAL_level level) const;
TRectype* curr_row() const { return (TRectype*)curr_node(); }
TTree_field& owner() const { return _owner; }
TRectype* fase(const TString& fase, bool create = false);
TRectype* dist(const TString& fase, int n, bool create = false);
TRectype* misu(const TString& dist, int n, bool create = false);
bool ricalcola(real& costo, real& prezzo);
bool load(const TRectype& doc, int nsal = 0);
TSAL_tree(TTree_field& owner);
bool append_row(const TRectype& rec);
};
#define RSAL_LEVEL RDOC_PRIORITY
#endif

322
sl/sl0200.cpp Normal file
View File

@ -0,0 +1,322 @@
#include "sl0200.h"
#include "../ve/velib04.h"
#include "../ca/commesse.h"
///////////////////////////////////////////////////////////
// TCertificazione
///////////////////////////////////////////////////////////
class TCertificazione : public TElaborazione_esterna
{
protected:
const TRectype& find_cert(const TDocumento& doc);
void set_codiva(TRiga_documento& rdoc) const;
public:
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo = false);
TCertificazione(const TString& cod);
};
const TRectype& TCertificazione::find_cert(const TDocumento& doc)
{
const TString& codnum = codice_numerazione_finale();
TString query, limit;
limit << RDOC_DAPROVV << '=' << doc.get(DOC_PROVV) << ' '
<< RDOC_DAANNO << '=' << doc.get_int(DOC_ANNO) << ' '
<< RDOC_DACODNUM << '=' << doc.get(DOC_CODNUM) << ' '
<< RDOC_DANDOC << '=' << doc.get_long(DOC_NDOC);
query << "USE 34 KEY 4"
<< "\nSELECT CODNUM=\"" << codnum << '"'
<< "\nFROM " << limit << "\nTO " << limit;
TISAM_recordset recset(query);
const TRectype& rdoc = recset.cursor()->curr();
TToken_string key;
if (recset.move_first())
{
key = rdoc.get(RDOC_PROVV);
key.add(rdoc.get(RDOC_ANNO));
key.add(rdoc.get(RDOC_CODNUM));
key.add(rdoc.get(RDOC_NDOC));
}
return cache().get(LF_DOC, key);
}
void TCertificazione::set_codiva(TRiga_documento& rdoc) const
{
TString4 codiva;
const TString80 codcms = rdoc.doc().get(DOC_CODCMS);
if (codcms.full())
{
const TRectype& cms = cache().get(LF_COMMESSE, codcms);
if (!cms.empty())
{
rdoc.put(RDOC_CODCMS, codcms);
codiva = cms.get(COMMESSE_CODIVA);
}
}
const TString80 codart = rdoc.get(RDOC_CODART);
if (codart.full())
{
const TRectype& ana = cache().get(LF_ANAMAG, codart);
if (!ana.empty())
{
rdoc.put(RDOC_CODARTMAG, codart);
rdoc.put(RDOC_CHECKED, true);
TToken_string key; key.add(codart); key.add(1);
const TString& um = cache().get(LF_UMART, key, UMART_UM);
rdoc.put(RDOC_UMQTA, um);
if (codiva.blank())
codiva = ana.get(ANAMAG_CODIVA);
}
}
rdoc.put(RDOC_CODIVA, codiva);
rdoc.importo(true, false); // Ricalcola IMPNS
}
bool TCertificazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo)
{
for (int i = 0; i < doc_in.items(); i++)
{
TDocumento& din = doc_in[i];
// Mi assicuro che ad ogni documento in ingresso ne corrisponda uno in uscita
if (i >= doc_out.items())
{
const TRectype& cert = find_cert(din);
if (!cert.empty())
{
if (interattivo)
warning_box("Il documento S.A.L. aggiornerà il certificato %s %d/%ld",
(const char*)cert.get(DOC_CODNUM), cert.get_int(DOC_ANNO), cert.get_long(DOC_NDOC));
}
TDocumento* doc = NULL;
if (cert.empty())
{
doc = new TDocumento('D', data_elab.year(), codice_numerazione_finale(), 0L);
doc->put(DOC_TIPODOC, tipo_finale());
}
else
{
doc = new TDocumento(cert);
doc->destroy_rows();
}
doc_out.add(doc);
}
TDocumento& don = doc_out[i];
din.put(DOC_STATO, stato_finale_doc_iniziale());
don.put(DOC_NUMANT, din.get(DOC_NUMANT));
don.put(DOC_TIPOCF, din.get(DOC_TIPOCF));
don.put(DOC_CODCF, din.get(DOC_CODCF));
don.put(DOC_DATADOC, data_elab);
don.put(DOC_NOTE, din.get(DOC_NOTE));
don.put(DOC_CODCMS, din.get(DOC_CODCMS));
don.put(DOC_STATO, stato_finale());
don.put(DOC_NUMDOCRIF, din.get(DOC_NDOC));
don.put(DOC_DATADOCRIF, din.get(DOC_DATADOC));
// don.put(DOC_G1, din.get(DOC_G1));
TToken_string g1(din.get(DOC_G1), '\n');
FOR_EACH_TOKEN(g1, tok)
{
TToken_string fld(tok, '=');
const char* name = fld.get(0);
const char* value = fld.get();
don.put(name, value);
}
const bool is_cli = don.get_char(DOC_TIPOCF) != 'F';
const real sal_sal = din.get("SAL_SAL");
if (sal_sal > ZERO)
{
TRiga_documento& rdoc = don.new_row("01");
rdoc.put(RDOC_CODART, ini_get_string(CONFIG_DITTA, "ci", is_cli ? "CODARTLC" : "CODARTLF"));
rdoc.put(RDOC_QTA, UNO);
rdoc.put(RDOC_DESCR, TR("Lavori eseguiti"));
rdoc.put(RDOC_PREZZO, sal_sal);
rdoc.set_original_rdoc_key(din[1]);
set_codiva(rdoc);
}
const real sal_gar = din.get("SAL_GAR");
if (sal_gar > ZERO)
{
TRiga_documento& rdoc = don.new_row("01");
rdoc.put(RDOC_CODART, ini_get_string(CONFIG_DITTA, "ci", is_cli ? "CODARTGC" : "CODARTGF"));
rdoc.put(RDOC_QTA, -UNO);
rdoc.put(RDOC_DESCR, TR("Ritenuta a garanzia"));
rdoc.put(RDOC_PREZZO, sal_gar);
rdoc.set_original_rdoc_key(din[1]);
set_codiva(rdoc);
}
const real sal_ant = din.get("SAL_ANT");
if (sal_ant > ZERO)
{
TRiga_documento& rdoc = don.new_row("01");
rdoc.put(RDOC_CODART, ini_get_string(CONFIG_DITTA, "ci", is_cli ? "CODARTAC" : "CODARTAF"));
rdoc.put(RDOC_QTA, -UNO);
rdoc.put(RDOC_DESCR, TR("Anticipi"));
rdoc.put(RDOC_PREZZO, sal_ant);
rdoc.set_original_rdoc_key(din[1]);
set_codiva(rdoc);
}
din.rewrite(); // Aggiorna codici fase nelle righe
don.write(); // Salva ordine
}
return true;
}
TCertificazione::TCertificazione(const TString& cod) : TElaborazione_esterna(cod)
{
}
///////////////////////////////////////////////////////////
// Utility pubbliche
///////////////////////////////////////////////////////////
const TString& sl_trova_elaborazione(const TRectype& doc)
{
const TString& codnum = doc.get(DOC_CODNUM); // SAL
TString str;
str << "USE %ELD SELECT (STR(I0=\"0\"))&&(S3=\"sl0 -1\")&&(S5=\"" << codnum << "\")";
TRecordset* eld = create_recordset(str);
if (eld != NULL)
{
TString16 cod;
for (bool ok = eld->move_first(); ok; ok = eld->move_next())
{
const TString& c = eld->get("CODTAB").as_string();
const TElaborazione e(c);
if (e.is_document_ok(doc))
{
cod = c;
break;
}
}
delete eld;
return get_tmp_string() = cod;
}
return EMPTY_STRING;
}
const TString& sl_trova_elaborazione(const TMask& m)
{
TRectype doc(LF_DOC);
doc.put(DOC_PROVV, 'D');
doc.put(DOC_ANNO, m.get(DOC_ANNO));
doc.put(DOC_CODNUM, m.get(DOC_CODNUM));
doc.put(DOC_NDOC, m.get(DOC_NDOC));
doc.put(DOC_TIPODOC, m.get(DOC_TIPODOC));
doc.put(DOC_STATO, m.get(DOC_STATO));
return sl_trova_elaborazione(doc);
}
bool sl_genera_documento(TRectype& doc, const TString& cod)
{
TString16 codelab = cod;
if (codelab.blank())
codelab = sl_trova_elaborazione(doc);
TCertificazione e(codelab);
const TDate oggi(TODAY);
TLista_documenti doc_in, doc_out;
doc_in.add(new TDocumento(doc));
bool ok = e.elabora(doc_in, doc_out, oggi, true);
if (ok)
{
int err = doc_in.rewrite();
if (err == NOERR)
{
const TRectype& idoc = doc_in[0];
for (int i = 0; i < idoc.items(); i++)
{
const char* fld = idoc.fieldname(i);
const TString& val = idoc.get(fld);
if (val.full())
doc.put(fld, val);
}
err = doc_out.write();
if (err == NOERR)
message_box(FR("E' stato generato il certificato %ld"), doc.get_long(DOC_NUMANT));
else
error_box(TR("Errore %d in scrittura del certificato"), err);
}
}
return ok;
}
///////////////////////////////////////////////////////////
// TCertificazione_app
///////////////////////////////////////////////////////////
class TCertificazione_app : public TSkeleton_application
{
protected:
virtual void main_loop();
};
void TCertificazione_app::main_loop()
{
TFilename ininame;
if (argc() >= 2)
{
const TFixed_string arg = argv(2);
ininame = arg.starts_with("-i", true) ? arg.mid(2) : arg;
}
TConfig ini(ininame, "Transaction");
const TString8 codelab = ini.get("Action");
ini.set_paragraph("33");
TRectype doc(LF_DOC);
doc.put(DOC_PROVV, ini.get(DOC_PROVV));
doc.put(DOC_ANNO, ini.get(DOC_ANNO));
doc.put(DOC_CODNUM, ini.get(DOC_CODNUM));
doc.put(DOC_NDOC, ini.get(DOC_NDOC));
if (sl_genera_documento(doc, codelab))
{
ini.set_paragraph("Transaction");
ini.set("Result", "OK");
ini.set("Error", "0");
ini.set_paragraph("33");
for (int i = 0; i < doc.items(); i++)
{
const char* fld = doc.fieldname(i);
const TString& val = doc.get(fld);
if (val.full())
ini.set(fld, val);
}
}
}
int sl0200(int argc, char* argv[])
{
TCertificazione_app a;
a.run(argc, argv, TR("Certificazione di pagamento"));
return 0;
}

16
sl/sl0200.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef __SL1100_H
#define __SL1100_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __MASK_H
#include <mask.h>
#endif
const TString& sl_trova_elaborazione(const TRectype& sal);
const TString& sl_trova_elaborazione(const TMask& sal_msk);
bool sl_genera_documento(TRectype& sal, const TString& codelab);
#endif

313
sl/sl1400.rep Normal file
View File

@ -0,0 +1,313 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="sl1400" orientation="1" lpi="6">
<description>Libretto delle misure</description>
<font face="Courier New" size="10" />
<section type="Head" height="5" pattern="1">
<font face="Arial" size="10" />
<field x="86.5" y="1.5" type="Stringa" width="6" pattern="1">
<source>33.NUMANT</source>
</field>
<field y="1.55" type="Stringa" width="50" pattern="1">
<source>214@.DESCRAGG</source>
</field>
<field x="68" y="1.5" type="Testo" width="18.5" id="31" pattern="1" text="Libretto delle misure n&#B0;">
<source>210@.S0</source>
</field>
</section>
<section type="Head" level="1" height="66" pattern="1">
<field x="0.5" type="Immagine" width="45.5" height="9.5" pattern="1">
<source>"omnia1_logo.jpg"</source>
</field>
<field x="0.5" y="10" type="Testo" width="27" height="1.25" pattern="1" text="COSTRUZIONI XXX S.r.l.">
<font face="Arial" bold="1" size="10" />
</field>
<field x="0.5" y="11.18" type="Testo" width="35" pattern="1" text="Via F.Miniscalchi 6&#2F;q">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="12" type="Testo" width="42" pattern="1" text="37060 - Mozzecane - (VR) - C.F. e P.Iva 01234567890">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="13" type="Testo" width="46" pattern="1" text="Tel. 045&#2F;4680981 - Fax 045&#2F;4680981">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="14" type="Testo" width="44" pattern="1" text="E-Mail: info@XXXX.it - www.XXXX.it">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="15" type="Testo" width="46" pattern="1" text="Iscritta Reg. Impr.VR n. 012254444 - R.E.A. n.VR- 123456">
<font face="Arial" size="10" />
</field>
<field x="48.5" y="26.25" type="Testo" width="4.5" pattern="1" text="P.iva:" />
<field x="55.5" y="26.25" type="Stringa" width="12" pattern="1">
<source>20.PAIV</source>
</field>
<field x="71" y="26.25" type="Testo" width="4.5" pattern="1" text="C.F.:" />
<field x="75.5" y="26.25" type="Stringa" width="12" pattern="1">
<source>20.PAIV</source>
</field>
<field x="48.5" y="27.5" type="Testo" width="7" pattern="1" text="Alla c.a.: " />
<field x="55.5" y="27.5" type="Stringa" width="36.5" pattern="1">
<source>20.REFERENTE</source>
</field>
<field x="0.5" y="35.75" type="Testo" valign="center" align="center" width="92" height="5" pattern="1" text="Libretto delle Misure">
<font italic="1" face="Arial" bold="1" size="20" />
<source>33.NOTE</source>
</field>
<field x="1" y="55.75" type="Testo" valign="center" width="13" height="1.25" pattern="1" text="Lavori di:">
<font face="Arial" bold="1" size="10" />
<source>33.NOTE</source>
</field>
<field x="9" y="56" type="Stringa" width="81" height="2" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>214@.DESCRAGG</source>
</field>
<field x="1" y="59.75" type="Testo" width="4" pattern="1" text="Data">
<font face="Arial" bold="1" size="10" />
</field>
<field x="1" y="60.75" type="Testo" valign="center" width="13" height="1.25" pattern="1" text="Responsabile:">
<source>33.NOTE</source>
</field>
<field x="17" y="61" type="Stringa" width="27" pattern="1">
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,122,CODAGE=#10,RAGSOC</prescript>
</field>
<field x="48.5" y="19.5" type="Stringa" width="50" height="2" id="1" pattern="1">
<font face="Arial" bold="1" size="9" />
<source>20.RAGSOC</source>
</field>
<field x="33" y="21.5" type="Stringa" hidden="1" width="5" id="2" pattern="1">
<source>20.INDCF</source>
<prescript description="H1.2 PRESCRIPT">MESSAGE COPY,4</prescript>
</field>
<field x="38" y="21.5" type="Stringa" hidden="1" width="5" id="3" pattern="1">
<source>20.CIVCF</source>
<prescript description="H1.3 PRESCRIPT">MESSAGE APPEND,4</prescript>
</field>
<field x="48.5" y="21.5" type="Stringa" width="35" id="4" pattern="1" />
<field x="48.5" y="22.5" type="Stringa" width="35" id="5" pattern="1">
<source>20.LOCALITACF</source>
</field>
<field x="48.5" y="23.5" type="Stringa" width="5" id="6" pattern="1">
<source>20.CAPCF</source>
</field>
<field x="20.5" y="58.5" type="Stringa" width="3.5" id="7" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>33.NUMANT</source>
</field>
<field x="92.5" y="23.5" type="Stringa" width="5" id="8" pattern="1">
<source>13.PROVCOM</source>
</field>
<field x="5" y="59.75" type="Data" width="10" id="9" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>33.DATADOC</source>
</field>
<field x="11.5" y="61" type="Stringa" width="5" id="10" pattern="1">
<source>33.CODAG</source>
</field>
<field x="53.5" y="23.5" type="Stringa" width="38" height="2" id="20" pattern="1">
<source>13.DENCOM</source>
</field>
<field x="1" y="58.5" type="Testo" width="19" id="31" pattern="1" text="Libretto delle misure n&#B0; ">
<font face="Arial" bold="1" size="10" />
<source>210@.S0</source>
</field>
<field x="53" y="26.25" type="Stringa" width="2" id="33" pattern="1">
<source>20.STATOPAIV</source>
</field>
</section>
<section type="Body" pattern="1">
<prescript description="B0 PRESCRIPT">#REPORT.PAGE @ 1 = IF
"B0" HIDE
ELSE
"B0" SHOW
THEN</prescript>
<field border="1" radius="100" x="0.5" y="3" type="Rettangolo" shade_offset="50" width="92" height="60.5" pattern="2" />
<field border="1" x="0.5" y="5" type="Linea" width="92" height="0" pattern="1" />
<field y="3.25" type="Testo" align="center" width="12" height="1.75" id="202" pattern="1" text="Data &#2F; codice">
<font face="Arial" bold="1" size="8" />
</field>
<field x="12" y="3.25" type="Testo" align="center" width="47" id="203" pattern="1" text="Indicazione dei lavori e delle somministrazioni">
<font face="Arial" bold="1" size="8" />
</field>
<field x="59.25" y="3.25" type="Testo" align="center" width="4.5" id="204" pattern="1" text="N&#B0;.">
<font face="Arial" bold="1" size="8" />
</field>
<field x="64.25" y="3.25" type="Testo" align="center" width="4.5" id="204" pattern="1" text="Lungh.">
<font face="Arial" bold="1" size="8" />
</field>
<field x="69.25" y="3.25" type="Testo" align="center" width="4.5" id="204" pattern="1" text="Largh.">
<font face="Arial" bold="1" size="8" />
</field>
<field x="74.25" y="3.25" type="Testo" align="center" width="4.5" id="204" pattern="1" text="Alt.">
<font face="Arial" bold="1" size="8" />
</field>
<field x="79.25" y="3.25" type="Testo" align="center" width="3" id="204" pattern="1" text="UM">
<font face="Arial" bold="1" size="8" />
</field>
<field x="82.5" y="3.25" type="Testo" align="center" width="10" id="209" pattern="1" text="Quantit&#E0;">
<font face="Arial" bold="1" size="8" />
</field>
<field border="1" x="12" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="59" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="64" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="69" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="74" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="79" y="3" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="82.25" y="3" type="Linea" height="60" id="500" pattern="1" />
</section>
<section type="Body" level="1" pattern="1">
<condition>34.TIPORIGA='P1'</condition>
<font face="Arial" size="10" />
<field x="1.2" type="Stringa" width="11" pattern="1">
<font face="Arial" size="8" />
<source>34.CODART</source>
</field>
<field x="1.2" y="1.25" type="Stringa" width="11" pattern="1">
<font face="Arial" size="8" />
<source>33.DATADOC</source>
</field>
<field x="13" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="48" height="22" id="52" pattern="1">
<font face="Arial" size="8" />
<source>34.DESCR + 34.DESCEST</source>
</field>
<field x="79.25" type="Stringa" align="center" bg_color="#C0C0C0" width="3" id="53" pattern="1">
<font face="Arial" size="8" />
<source>34.UMQTA</source>
<prescript description="B1.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="82.5" type="Numero" align="right" bg_color="#00FFFF" width="10" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="8" />
<groups>30</groups>
<source>34.QTA</source>
<prescript description="B1.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="97.3" type="Numero" hidden="1" align="right" bg_color="#FF80C0" width="9" codval="33.CODVAL" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>34.PREZZO</source>
<prescript description="B1.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="96" type="Numero" hidden="1" align="right" bg_color="#00FFFF" width="9" codval="33.CODVAL" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>34.QTA*34.PREZZO</source>
<prescript description="B1.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="94.5" type="Prezzo" hidden="1" align="right" bg_color="#E1E1E1" width="15" codval="33.CODVAL" id="59" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>29</groups>
<source>34.PREZZONS</source>
<prescript description="B1.59 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="109.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="60" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.PROVVR</source>
<prescript description="B1.60 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="124.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="61" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.IMPOSTA</source>
<prescript description="B1.61 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
</section>
<section type="Body" level="2" pattern="1">
<condition>(34.TIPORIGA='05')&#26;&#26;(STR(34.PREZZO!=0))</condition>
<field border="1" x="0.5" type="Linea" width="92" height="0" pattern="1" />
<field x="64" y="0.25" type="Stringa" hidden="1" bg_color="#FFFF80" width="11" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>34.PREZZO</source>
<prescript description="B2.0 PRESCRIPT">1 "34.PRIORITY" @
+
2 *
0
#THIS_FIELD SET_POS</prescript>
</field>
<field x="1.2" y="0.25" type="Stringa" bg_color="#FFFF80" width="11" id="51" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>34.CODART</source>
<prescript description="B2.51 PRESCRIPT">1 "34.PRIORITY" @
+
2 *
0
#THIS_FIELD SET_POS</prescript>
</field>
<field x="13" y="0.25" type="Stringa" bg_color="#00FF80" dynamic_height="1" width="49" height="22" id="52" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>34.DESCR</source>
</field>
</section>
<section type="Body" level="3" pattern="1">
<condition>34.TIPORIGA='P2'</condition>
<field x="13" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45.5" height="22" id="52" pattern="1">
<font face="Arial" size="7" />
<source>34.DESCR</source>
</field>
<field x="59.25" type="Numero" align="right" bg_color="#00FFFF" width="4.5" id="53" pattern="1" hide_zero="1">
<font face="Arial" size="7" />
<source>34.QTAGG1</source>
<prescript description="B3.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="64.25" type="Numero" align="right" bg_color="#00FFFF" width="4.5" id="54" pattern="1" hide_zero="1">
<font face="Courier New" size="7" />
<source>34.QTAGG2</source>
<prescript description="B3.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="69.25" type="Numero" align="right" bg_color="#00FFFF" width="4.5" id="55" pattern="1" hide_zero="1">
<font face="Courier New" size="7" />
<source>34.QTAGG3</source>
<prescript description="B3.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="74.25" type="Numero" align="right" bg_color="#00FFFF" width="4.5" id="56" pattern="1" hide_zero="1">
<font face="Courier New" size="7" />
<source>34.QTAGG4</source>
<prescript description="B3.56 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
</section>
<section y="64" type="Foot" pattern="1">
<field border="2" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field border="2" x="62.5" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field x="77.5" y="2" type="Testo" width="6.5" pattern="1" text="Pagina">
<font face="Arial" size="10" />
</field>
<field x="83.5" y="2" type="Stringa" align="center" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#PAGE</source>
</field>
<field x="86.5" y="2" type="Testo" align="center" width="2.5" pattern="1" text="di">
<font face="Arial" size="10" />
</field>
<field x="89" y="2" type="Numero" align="right" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#BOOKPAGES</source>
</field>
<field type="Testo" align="center" width="30.5" id="31" pattern="1" text="L'impresa">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
<field x="61.5" type="Testo" align="center" width="30.5" id="31" pattern="1" text="Il Direttore dei Lavori">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
</section>
<section type="Foot" level="1" height="3" pattern="1">
<font face="Arial" size="9" />
<field border="1" type="Linea" width="92" height="0" pattern="1" />
<field border="1" y="0.25" type="Linea" width="92" height="0" pattern="1" />
<field x="13" y="0.75" type="Stringa" width="27.5" pattern="1" text="Emesso lo stato di avanzamento n. ">
<source>33.NUMANT</source>
</field>
<field x="41" y="0.75" type="Testo" width="29" pattern="1" text=" per lavori eseguiti a tutto" />
<field x="13" y="1.75" type="Data" width="33.5" pattern="1" text="il ">
<source>33.DATADOC</source>
</field>
</section>
<sql>USE 34 KEY 4 SELECT (QTA!=0)
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 13 TO 20 INTO STATO=STATOCF COM=COMCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN 147 TO 33 ALIAS 214 INTO CODCMS==CODCMS
FROM DAPROVV=#DAPROVV DAANNO=#DAANNO DACODNUM=#DACODNUM DANDOC=#DANDOC
TO DAPROVV=#DAPROVV DAANNO=#DAANNO DACODNUM=#DACODNUM DANDOC=#DANDOC
</sql>
</report>

344
sl/sl1500.rep Normal file
View File

@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="SL1500" orientation="1" lpi="6">
<description>Registro di Contabilit&#E0;</description>
<font face="Courier New" size="10" />
<section type="Head" height="6" pattern="1">
<font face="Arial" size="10" />
<field x="86.5" y="1.5" type="Stringa" width="6" pattern="1">
<source>33.NUMANT</source>
</field>
<field y="1.55" type="Stringa" width="50" pattern="1">
<source>214@.DESCRAGG</source>
</field>
<field x="68" y="1.5" type="Testo" width="18.5" id="31" pattern="1" text="Registro di Contabilit&#E0; n&#B0;">
<source>210@.S0</source>
</field>
</section>
<section type="Head" level="1" height="70" pattern="1">
<field x="0.5" type="Immagine" width="45.5" height="9.5" pattern="1">
<source>"omnia1_logo.jpg"</source>
</field>
<field x="0.5" y="10" type="Testo" width="27" height="1.25" pattern="1" text="COSTRUZIONI XXX S.r.l.">
<font face="Arial" bold="1" size="10" />
</field>
<field x="0.5" y="11.18" type="Testo" width="35" pattern="1" text="Via F.Miniscalchi 6&#2F;q">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="12" type="Testo" width="42" pattern="1" text="37060 - Mozzecane - (VR) - C.F. e P.Iva 01234567890">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="13" type="Testo" width="46" pattern="1" text="Tel. 045&#2F;4680981 - Fax 045&#2F;4680981">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="14" type="Testo" width="44" pattern="1" text="E-Mail: info@XXXX.it - www.XXXX.it">
<font face="Arial" size="10" />
</field>
<field x="0.5" y="15" type="Testo" width="46" pattern="1" text="Iscritta Reg. Impr.VR n. 012254444 - R.E.A. n.VR- 123456">
<font face="Arial" size="10" />
</field>
<field x="48" y="26.75" type="Testo" width="4.5" pattern="1" text="P.iva:" />
<field x="55" y="26.75" type="Stringa" width="12" pattern="1">
<source>20.PAIV</source>
</field>
<field x="70.5" y="26.75" type="Testo" width="4.5" pattern="1" text="C.F.:" />
<field x="75" y="26.75" type="Stringa" width="12" pattern="1">
<source>20.PAIV</source>
</field>
<field x="48" y="28" type="Testo" width="7" pattern="1" text="Alla c.a.: " />
<field x="55" y="28" type="Stringa" width="36.5" pattern="1">
<source>20.REFERENTE</source>
</field>
<field x="0.5" y="35.75" type="Testo" valign="center" align="center" width="92" height="5" pattern="1" text="Registro di Contabilit&#E0;">
<font italic="1" face="Arial" bold="1" size="20" />
<source>33.NOTE</source>
</field>
<field x="1" y="55.75" type="Testo" valign="center" width="13" height="1.25" pattern="1" text="Lavori di:">
<font face="Arial" bold="1" size="10" />
<source>33.NOTE</source>
</field>
<field x="9" y="56" type="Stringa" width="81" height="2" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>214@.DESCRAGG</source>
</field>
<field x="1" y="59.75" type="Testo" width="4" pattern="1" text="Data">
<font face="Arial" bold="1" size="10" />
</field>
<field x="1" y="60.75" type="Testo" valign="center" width="13" height="1.25" pattern="1" text="Responsabile:">
<source>33.NOTE</source>
</field>
<field x="17" y="61" type="Stringa" width="27" pattern="1">
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,122,CODAGE=#10,RAGSOC</prescript>
</field>
<field x="48" y="20" type="Stringa" width="50" height="2" id="1" pattern="1">
<font face="Arial" bold="1" size="9" />
<source>20.RAGSOC</source>
</field>
<field x="32.5" y="22" type="Stringa" hidden="1" width="5" id="2" pattern="1">
<source>20.INDCF</source>
<prescript>MESSAGE COPY,4</prescript>
</field>
<field x="37.5" y="22" type="Stringa" hidden="1" width="5" id="3" pattern="1">
<source>20.CIVCF</source>
<prescript>MESSAGE APPEND,4</prescript>
</field>
<field x="48" y="22" type="Stringa" width="35" id="4" pattern="1" />
<field x="48" y="23" type="Stringa" width="35" id="5" pattern="1">
<source>20.LOCALITACF</source>
</field>
<field x="48" y="24" type="Stringa" width="5" id="6" pattern="1">
<source>20.CAPCF</source>
</field>
<field x="10" y="58.5" type="Stringa" width="3.5" id="7" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>33.NUMANT</source>
</field>
<field x="92" y="24" type="Stringa" width="5" id="8" pattern="1">
<source>13.PROVCOM</source>
</field>
<field x="5" y="59.75" type="Data" width="10" id="9" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>33.DATADOC</source>
</field>
<field x="11.5" y="61" type="Stringa" width="5" id="10" pattern="1">
<source>33.CODAG</source>
</field>
<field x="53" y="24" type="Stringa" width="38" height="2" id="20" pattern="1">
<source>13.DENCOM</source>
</field>
<field x="1" y="58.5" type="Testo" width="11.5" id="31" pattern="1" text="Registro n&#B0; ">
<font face="Arial" bold="1" size="10" />
<source>210@.S0</source>
</field>
<field x="52.5" y="26.75" type="Stringa" width="2" id="33" pattern="1">
<source>20.STATOPAIV</source>
</field>
</section>
<section type="Head" level="2" pattern="1">
<groupby>34.FASCMS</groupby>
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2</prescript>
<field border="1" x="0.5" type="Linea" width="92" height="0" pattern="1" />
<field x="1.2" y="0.25" type="Stringa" bg_color="#FFFF80" width="11" id="51" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>148.CODFASE</source>
<prescript description="H2.51 PRESCRIPT">1 "34.PRIORITY" @
+
2 *
0
#THIS_FIELD SET_POS</prescript>
</field>
<field x="13" y="0.25" type="Stringa" bg_color="#00FF80" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>148.DESCRIZ</source>
</field>
</section>
<section type="Head" level="3" pattern="1">
<groupby>34.CODART</groupby>
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3</prescript>
<field x="1.2" type="Stringa" width="11" pattern="1">
<font face="Arial" size="9" />
<source>34.DATACONS</source>
</field>
<field x="1.2" type="Stringa" hidden="1" width="11" id="51" pattern="1">
<font face="Arial" size="9" />
<source>34.CODART</source>
</field>
<field x="13" type="Stringa" hidden="1" bg_color="#D4D4D4" width="45" id="52" pattern="1">
<font face="Arial" size="9" />
<source>34.DESCR + 34.DESCEST</source>
</field>
<field x="58.75" type="Stringa" hidden="1" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>34.UMQTA</source>
<prescript description="H3.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="63" type="Numero" hidden="1" align="right" bg_color="#00FFFF" width="9" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>34.QTA</source>
<prescript description="H3.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="72" type="Prezzo" hidden="1" align="right" bg_color="#FF80C0" width="9" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>34.PREZZO</source>
<prescript description="H3.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="81" type="Prezzo" hidden="1" align="right" bg_color="#00FFFF" width="10" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>34.QTA*34.PREZZO</source>
<prescript description="H3.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F1.1000</prescript>
</field>
<field x="93" type="Prezzo" hidden="1" align="right" bg_color="#E1E1E1" width="15" id="59" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>34.PREZZONS</source>
<prescript>MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
</section>
<section type="Body" pattern="1">
<prescript description="B0 PRESCRIPT">#REPORT.PAGE @ 1 = IF
"B0" HIDE
ELSE
"B0" SHOW
THEN</prescript>
<field border="1" radius="100" x="0.5" y="4" type="Rettangolo" shade_offset="50" width="92" height="60.5" pattern="2" />
<field border="1" x="0.5" y="6" type="Linea" width="92" height="0" pattern="1" />
<field y="4.25" type="Testo" align="center" width="12" height="1.75" id="202" pattern="1" text="Data &#2F; codice">
<font face="Arial" bold="1" size="8" />
</field>
<field x="12" y="4.25" type="Testo" align="center" width="47" id="203" pattern="1" text="Indicazione dei lavori e delle somministrazioni">
<font face="Arial" bold="1" size="8" />
</field>
<field x="58.75" y="4.25" type="Testo" align="center" width="4" id="204" pattern="1" text="UM">
<font face="Arial" bold="1" size="8" />
</field>
<field x="63" y="4.25" type="Testo" align="center" width="9.5" id="209" pattern="1" text="Quantit&#E0;">
<font face="Arial" bold="1" size="8" />
</field>
<field x="72" y="4.25" type="Testo" align="center" width="9.5" id="209" pattern="1" text="Prezzo">
<font face="Arial" bold="1" size="8" />
</field>
<field x="81" y="4.25" type="Testo" align="center" width="11.5" id="209" pattern="1" text="Importo Debito">
<font face="Arial" bold="1" size="8" />
</field>
<field border="1" x="12" y="4" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="59" y="4" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="63" y="4" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="72" y="4" type="Linea" height="60" id="500" pattern="1" />
<field border="1" x="81.25" y="4" type="Linea" height="60" id="500" pattern="1" />
</section>
<section type="Body" level="1" hidden="1" pattern="1">
<font face="Arial" size="10" />
<field x="1.2" type="Stringa" width="11" pattern="1">
<font face="Arial" size="9" />
<source>34.CODART</source>
</field>
<field x="1.2" y="1.25" type="Stringa" width="11" pattern="1">
<font face="Arial" size="9" />
<source>33.DATADOC</source>
</field>
<field x="13" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" size="9" />
<source>34.DESCR + 34.DESCEST</source>
</field>
<field x="58.75" type="Stringa" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>34.UMQTA</source>
<prescript description="B1.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="63" type="Numero" align="right" bg_color="#00FFFF" width="9" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>30</groups>
<source>34.QTA</source>
<prescript description="B1.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F3.54</prescript>
</field>
<field x="72" type="Prezzo" align="right" bg_color="#FF80C0" width="9" codval="33.CODVAL" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>34.PREZZO</source>
<prescript description="B1.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="81" type="Prezzo" align="right" bg_color="#00FFFF" width="10" codval="33.CODVAL" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>ROUND(RDOC.QTA*RDOC.PREZZO,2)</source>
<prescript description="B1.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F3.57</prescript>
</field>
<field x="93" type="Prezzo" hidden="1" align="right" bg_color="#E1E1E1" width="15" codval="33.CODVAL" id="59" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>29</groups>
<source>34.PREZZONS</source>
<prescript description="B1.59 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="109.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="60" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.PROVVR</source>
<prescript description="B1.60 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="124.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="61" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.IMPOSTA</source>
<prescript description="B1.61 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
</section>
<section y="65" type="Foot" pattern="1">
<field border="2" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field border="2" x="62.5" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field x="77.5" y="2" type="Testo" width="6.5" pattern="1" text="Pagina">
<font face="Arial" size="10" />
</field>
<field x="83.5" y="2" type="Stringa" align="center" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#PAGE</source>
</field>
<field x="86.5" y="2" type="Testo" align="center" width="2.5" pattern="1" text="di">
<font face="Arial" size="10" />
</field>
<field x="89" y="2" type="Numero" align="right" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#BOOKPAGES</source>
</field>
<field type="Testo" align="center" width="30.5" id="31" pattern="1" text="L'impresa">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
<field x="61.5" type="Testo" align="center" width="30.5" id="31" pattern="1" text="Il responsabile del procedimento">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
</section>
<section type="Foot" level="1" height="3" pattern="1">
<font face="Arial" size="9" />
<field border="1" x="0.5" type="Linea" width="92" height="0" pattern="1" />
<field border="1" x="0.5" y="0.25" type="Linea" width="92" height="0" pattern="1" />
<field x="13" y="1" type="Data" width="45" pattern="1" text="Sommano i lavori a tutto il ">
<font face="Arial" bold="1" size="9" />
<source>33.DATADOC</source>
</field>
<field x="81" y="1" type="Numero" align="right" bg_color="#00FFFF" width="10" id="1000" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
</field>
</section>
<section type="Foot" level="2" pattern="1" />
<section type="Foot" level="3" pattern="1">
<field x="1.2" type="Stringa" bg_color="#FFFF80" width="12.5" id="51" pattern="1">
<font face="Arial" size="9" />
<source>H3.51</source>
</field>
<field x="14.3" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" size="9" />
<source>H3.52</source>
</field>
<field x="59.25" type="Stringa" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>H3.53</source>
<prescript>MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="63" type="Numero" align="right" bg_color="#00FFFF" width="9" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<prescript description="F3.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="72" type="Prezzo" align="right" bg_color="#FF80C0" width="9" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>H3.55</source>
<prescript description="F3.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="81.5" type="Prezzo" align="right" bg_color="#00FFFF" width="10" codval="33.CODVAL" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<prescript description="F3.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F1.1000</prescript>
</field>
</section>
<sql>USE 34 KEY 4 SELECT (((DAPROVV=#DAPROVV)&#26;&#26;(DAANNO=#DAANNO)&#26;&#26;(DACODNUM=#DACODNUM)&#26;&#26;(DANDOC=#DANDOC))&#26;&#26;(33.NUMANT&#3C;=#NUMANT)&#26;&#26;(STR(34.QTA!=0))&#26;&#26;(34.TIPORIGA='P1'))
BY 34.FASCMS 34.CODART
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 13 TO 20 INTO STATO=STATOCF COM=COMCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN 147 TO 33 ALIAS 214 INTO CODCMS==CODCMS
JOIN 148 TO 34 ALIAS 215 INTO CODCMSFAS==CODCMS CODFASE==FASCMS</sql>
</report>

457
sl/sl1600.rep Normal file
View File

@ -0,0 +1,457 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report libraries="ve1300" name="SL1600" orientation="1" lpi="6">
<description>Stato Avanzamento Lavori</description>
<font face="Courier New" size="10" />
<section type="Head" height="7" pattern="1">
<font face="Arial" size="10" />
<field x="61.5" y="1.5" type="Stringa" align="right" width="31" pattern="1" text="Stato Avanzamento Lavori n&#B0; ">
<source>#NUMANT</source>
</field>
<field x="0.5" y="1.55" type="Stringa" width="37.5" height="2" pattern="1">
<source>214@.DESCRAGG</source>
</field>
</section>
<section type="Head" level="1" height="70" pattern="1">
<field x="1" y="1" type="Testo" width="47" height="3" pattern="1" text="TINAZZO STEFANO">
<font face="Arial Narrow" bold="1" size="18" />
</field>
<field x="1" y="3.5" type="Testo" width="20" pattern="1" text="Via Giuseppe Verdi, 69">
<font face="Arial" size="10" />
</field>
<field x="1" y="4.5" type="Testo" width="33" pattern="1" text="37046 Minerbe (VR)">
<font face="Arial" size="10" />
</field>
<field x="1" y="5.5" type="Testo" width="35" pattern="1" text="Tel. +39 0442 640765 Fax +39 0442 640765">
<font face="Arial" size="10" />
</field>
<field x="1" y="6.5" type="Testo" width="47" pattern="1" text="P.IVA 03095650234 - Cod. Fisc. TNZSFN76M15E512Q">
<font face="Arial" size="10" />
</field>
<field x="1" y="7.5" type="Testo" width="33" pattern="1" text="e-mail: impresaediletinazzo@gmail.com">
<font face="Arial" size="10" />
</field>
<field x="55.5" y="27.75" type="Stringa" width="12" pattern="1">
<font face="Arial" size="8" />
<source>20.PAIV</source>
</field>
<field x="71" y="27.75" type="Testo" width="4.5" pattern="1" text="C.F.:">
<font face="Arial" size="8" />
</field>
<field x="75.5" y="27.75" type="Stringa" width="12" pattern="1">
<font face="Arial" size="8" />
<source>20.PAIV</source>
</field>
<field x="48.5" y="28" type="Testo" width="4.5" pattern="1" text="P.iva:">
<font face="Arial" size="8" />
</field>
<field x="48.5" y="28.75" type="Testo" width="7" pattern="1" text="Alla c.a.: ">
<font face="Arial" size="8" />
</field>
<field x="55.5" y="28.75" type="Stringa" width="33" pattern="1">
<font face="Arial" size="8" />
<source>20.REFERENTE</source>
</field>
<field x="1" y="34" type="Testo" valign="center" width="13" height="1.25" pattern="1" text="Lavori di:">
<font face="Arial" bold="1" size="10" />
<source>33.NOTE</source>
</field>
<field x="9" y="34.25" type="Stringa" width="81" height="2" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>214@.DESCRAGG</source>
</field>
<field y="39.5" type="Numero" valign="center" align="right" width="7" height="2.25" pattern="1">
<font italic="1" face="Arial" bold="1" size="16" />
<source>#NUMANT</source>
</field>
<field x="6.5" y="39.5" type="Stringa" valign="center" width="85.5" height="2.25" pattern="1" text="&#B0; Stato di Avanzamento dei lavori eseguiti a tutto il ">
<font italic="1" face="Arial" bold="1" size="16" />
<source>#DATADOC</source>
</field>
<field x="1" y="44.5" type="Testo" valign="center" width="20" height="1.5" pattern="1" text="Importo di progetto:">
<source>33.NOTE</source>
</field>
<field x="50" y="44.5" type="Testo" valign="center" width="21" height="1.5" pattern="1" text="Data consegna lavori:">
<source>33.NOTE</source>
</field>
<field x="23" y="45" type="Prezzo" align="right" width="18" pattern="1" text="###.###.###,@@">
<source>214@.IMPORTOB</source>
</field>
<field x="80" y="45" type="Data" align="right" width="10" pattern="1">
<source>214@.DATAFINE</source>
</field>
<field x="1" y="46.75" type="Testo" valign="center" width="20" height="1.25" pattern="1" text="% Ribasso:">
<source>33.NOTE</source>
</field>
<field x="50" y="46.75" type="Testo" valign="center" width="20" height="1.25" pattern="1" text="Data inizio lavori:">
<source>33.NOTE</source>
</field>
<field x="36" y="47" type="Numero" align="right" width="5" pattern="1" text="###.###.###,@@">
<source>214@.RIBASSO</source>
</field>
<field x="80" y="47" type="Data" align="right" width="10" pattern="1">
<source>214@.DATAINIZIO</source>
</field>
<field x="1" y="48.75" type="Testo" valign="center" width="28" height="1.25" pattern="1" text="Prezzo offerto contrattuale:">
<source>33.NOTE</source>
</field>
<field x="50" y="48.75" type="Testo" valign="center" width="33" height="1.25" pattern="1" text="Data prevista ultimazione lavori:">
<source>33.NOTE</source>
</field>
<field x="23" y="49" type="Prezzo" align="right" width="18" pattern="1" text="###.###.###,@@">
<source>214@.IMPORTOB</source>
</field>
<field x="80" y="49" type="Data" align="right" width="10" pattern="1">
<source>214@.DATAPREV</source>
</field>
<field x="1" y="49.75" type="Testo" valign="center" width="28" height="1.25" pattern="1" text="Importo per la sicurezza:">
<source>33.NOTE</source>
</field>
<field x="23" y="50" type="Prezzo" align="right" width="18" pattern="1" text="###.###.###,@@">
<source>214@.SICUREZZA</source>
</field>
<field x="1" y="50.75" type="Testo" valign="center" width="28" height="1.25" pattern="1" text="Importo totale di contratto:">
<source>33.NOTE</source>
</field>
<field x="50" y="50.75" type="Testo" valign="center" width="28" height="1.5" pattern="1" text="Giorni di proroga:">
<source>33.NOTE</source>
</field>
<field x="23" y="51" type="Prezzo" align="right" width="18" pattern="1" text="###.###.###,@@">
<source>214@.IMPORTOB</source>
</field>
<field x="85" y="51" type="Numero" align="right" width="5" pattern="1" text="###.###.###,@@">
<source>214@.PROROGA</source>
</field>
<field x="50" y="52" type="Testo" width="28" height="1.25" pattern="1" text="Nuova data di ultimazione:">
<source>33.NOTE</source>
</field>
<field x="80" y="52" type="Data" align="right" width="10" pattern="1">
<source>214@.DATAPROR</source>
</field>
<field x="1" y="52.5" type="Testo" valign="center" width="28" height="1.5" pattern="1" text="Totale somma impegnata:">
<font face="Arial" bold="1" size="10" />
<source>33.NOTE</source>
</field>
<field x="23" y="53" type="Prezzo" align="right" width="18" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
<source>214@.IMPORTOB</source>
</field>
<field x="48.5" y="23.75" type="Stringa" width="40" id="1" pattern="1">
<font face="Arial" bold="1" size="9" />
<source>20.RAGSOC</source>
</field>
<field x="33" y="22" type="Stringa" hidden="1" width="5" id="2" pattern="1">
<source>20.INDCF</source>
<prescript>MESSAGE COPY,4</prescript>
</field>
<field x="38" y="22" type="Stringa" hidden="1" width="5" id="3" pattern="1">
<source>20.CIVCF</source>
<prescript>MESSAGE APPEND,4</prescript>
</field>
<field x="48.5" y="25" type="Stringa" width="35" id="4" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="48.5" y="25.75" type="Stringa" width="35" id="5" pattern="1">
<font face="Arial" size="9" />
<source>20.LOCALITACF</source>
</field>
<field x="48.5" y="26.75" type="Stringa" width="5" id="6" pattern="1">
<font face="Arial" size="8" />
<source>20.CAPCF</source>
</field>
<field x="53.5" y="26.75" type="Stringa" width="35.5" id="20" pattern="1">
<font face="Arial" size="8" />
<source>13.DENCOM+" ("+13.PROVCOM+")"</source>
</field>
<field x="53" y="27.75" type="Stringa" width="2" id="33" pattern="1">
<font face="Arial" size="8" />
<source>20.STATOPAIV</source>
</field>
</section>
<section type="Head" level="2" pattern="1">
<groupby>34.FASCMS</groupby>
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2</prescript>
<field border="1" x="0.5" type="Linea" width="92" height="0" pattern="1" />
<field x="0.7" y="0.25" type="Stringa" bg_color="#80FFFF" width="11" id="51" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>148.CODFASE</source>
<prescript description="H2.51 PRESCRIPT">1 "34.PRIORITY" @
+
2 *
0
#THIS_FIELD SET_POS</prescript>
</field>
<field x="12.5" y="0.25" type="Stringa" bg_color="#00FF80" width="49" id="52" pattern="1">
<font face="Arial" bold="1" size="10" />
<source>148.DESCRIZ</source>
</field>
</section>
<section type="Head" level="3" hidden="1" pattern="1">
<groupby>34.CODART</groupby>
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3</prescript>
<field x="1" type="Stringa" width="11" id="51" pattern="1">
<font face="Arial" size="9" />
<source>34.CODART</source>
</field>
<field x="12.8" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" size="9" />
<source>34.DESCR + 34.DESCEST</source>
</field>
<field x="60.25" type="Stringa" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>34.UMQTA</source>
<prescript description="H3.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="73.5" type="Numero" align="right" bg_color="#FF80C0" width="9" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>34.PREZZO</source>
<prescript description="H3.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
</section>
<section type="Body" pattern="1">
<prescript description="B0 PRESCRIPT">#REPORT.PAGE @ 1 = IF
"B0" HIDE
ELSE
"B0" SHOW
THEN</prescript>
<field border="1" radius="100" x="0.5" y="5" type="Rettangolo" shade_offset="50" width="92" height="58" pattern="2" />
<field border="1" x="0.5" y="7" type="Linea" width="92" height="0" pattern="1" />
<field y="5.25" type="Testo" align="center" width="12" height="1.75" id="202" pattern="1" text="Codice">
<font face="Arial" bold="1" size="8" />
</field>
<field x="12" y="5.25" type="Testo" align="center" width="47" id="203" pattern="1" text="Indicazione dei lavori e delle somministrazioni">
<font face="Arial" bold="1" size="8" />
</field>
<field x="58.75" y="5.25" type="Testo" align="center" width="4" id="204" pattern="1" text="UM">
<font face="Arial" bold="1" size="8" />
</field>
<field x="63" y="5.25" type="Testo" align="center" width="9.5" id="209" pattern="1" text="Quantit&#E0;">
<font face="Arial" bold="1" size="8" />
</field>
<field x="72" y="5.25" type="Testo" align="center" width="9.5" id="209" pattern="1" text="Prezzo">
<font face="Arial" bold="1" size="8" />
</field>
<field x="81" y="5.25" type="Testo" align="center" width="11.5" id="209" pattern="1" text="Importo">
<font face="Arial" bold="1" size="8" />
</field>
<field border="1" x="12" y="5" type="Linea" height="58" id="500" pattern="1" />
<field border="1" x="59" y="5" type="Linea" height="58" id="500" pattern="1" />
<field border="1" x="63" y="5" type="Linea" height="58" id="500" pattern="1" />
<field border="1" x="72" y="5" type="Linea" height="58" id="500" pattern="1" />
<field border="1" x="81.25" y="5" type="Linea" height="58" id="500" pattern="1" />
</section>
<section type="Body" level="1" hidden="1" pattern="1">
<font face="Arial" size="10" />
<field x="1.2" type="Stringa" width="11" id="51" pattern="1">
<font face="Arial" size="9" />
<source>34.CODART</source>
</field>
<field x="13" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" size="9" />
<source>34.DESCR + 34.DESCEST</source>
<prescript description="B1.52 PRESCRIPT">MESSAGE COPY,F3.52</prescript>
</field>
<field x="58.75" type="Stringa" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>34.UMQTA</source>
</field>
<field x="63" type="Numero" align="right" bg_color="#00FFFF" width="9" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>30</groups>
<source>34.QTA</source>
<prescript description="B1.54 PRESCRIPT">MESSAGE ADD,F3.54</prescript>
</field>
<field x="72" type="Numero" align="right" bg_color="#FF80C0" width="9" codval="33.CODVAL" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>34.PREZZO</source>
</field>
<field x="81" type="Numero" align="right" bg_color="#00FFFF" width="10" codval="33.CODVAL" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<groups>29</groups>
<source>34.QTA*34.PREZZO</source>
<prescript description="B1.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F3.57</prescript>
</field>
<field x="93" type="Prezzo" hidden="1" align="right" bg_color="#E1E1E1" width="15" codval="33.CODVAL" id="59" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>29</groups>
<source>34.PREZZONS</source>
<prescript description="B1.59 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="109.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="60" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.PROVVR</source>
<prescript description="B1.60 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
<field x="124.5" type="Valuta" hidden="1" align="right" width="15" codval="33.CODVAL" id="61" pattern="1" hide_zero="1" text="###.###.###,@@">
<groups>31</groups>
<source>34.IMPOSTA</source>
<prescript description="B1.61 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM</prescript>
</field>
</section>
<section type="Foot" pattern="1">
<prescript description="F0 PRESCRIPT">#REPORT.PAGE @
1 = IF
"F0" HIDE
ELSE
"F0" SHOW
THEN</prescript>
<field border="2" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field border="2" x="62" y="1.75" type="Linea" width="30" height="0" pattern="1" />
<field x="79" y="2" type="Testo" width="6.5" pattern="1" text="Pagina">
<font face="Arial" size="10" />
</field>
<field x="85" y="2" type="Stringa" align="center" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#PAGE</source>
</field>
<field x="87.5" y="2" type="Testo" align="center" width="2.5" pattern="1" text="di">
<font face="Arial" size="10" />
</field>
<field x="89.5" y="2" type="Numero" align="right" width="3" pattern="1">
<font face="Arial" size="10" />
<source>#BOOKPAGES</source>
</field>
<field type="Testo" align="center" width="30.5" id="31" pattern="1" text="L'impresa">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
<field x="61.5" type="Testo" align="center" width="30.5" id="31" pattern="1" text="Il Direttore dei Lavori">
<font face="Arial" size="10" />
<source>210@.S0</source>
</field>
</section>
<section type="Foot" level="1" height="16" pattern="1">
<font face="Arial" size="9" />
<field border="1" x="0.5" type="Linea" width="92" height="0" pattern="1" />
<field border="1" x="0.5" y="0.25" type="Linea" width="92" height="0" pattern="1" />
<field x="13" y="0.5" type="Testo" width="45" pattern="1" text="Importo totale lavori">
<font face="Arial" bold="1" size="9" />
</field>
<field x="13" y="1.75" type="Testo" width="23" pattern="1" text="- sicurezza" />
<field x="13" y="5.5" type="Testo" width="45" pattern="1" text="Importo Ribassato">
<font face="Arial" bold="1" size="9" />
</field>
<field x="13" y="6.75" type="Testo" width="45" pattern="1" text="+ sicurezza" />
<field x="13" y="8" type="Testo" width="45" pattern="1" text="Importo SAL">
<font face="Arial" bold="1" size="9" />
</field>
<field x="13" y="9.25" type="Stringa" width="30" pattern="1" text="- Ritenute a garanzia del ">
<source>214@.GARANZIA+" %"</source>
</field>
<field x="13" y="10.5" type="Stringa" width="30" pattern="1" text="- Anticipo del ">
<source>214@.ANTICIPO+" %"</source>
</field>
<field border="1" x="0.5" y="12" type="Linea" width="92" height="0" pattern="1" />
<field x="13" y="12.25" type="Stringa" width="45" pattern="1" text="TOTALE NETTO DEI LAVORI ESEGUITI FINO AL ">
<font face="Arial" bold="1" size="9" />
<source>#DATADOC</source>
</field>
<field x="13" y="13.5" type="Testo" width="30" height="1.25" pattern="1" text="Riporto dei S.A.L. precedenti">
<font face="Arial" bold="1" size="9" />
</field>
<field x="13" y="14.75" type="Stringa" width="30" pattern="1" text="Totale del S.A.L. n&#B0;">
<font face="Arial" bold="1" size="9" />
<source>#NUMANT</source>
</field>
<field x="81.5" y="0.5" type="Numero" align="right" width="10" id="1000" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
</field>
<field x="38" y="1.75" type="Numero" hidden="1" align="right" bg_color="#00FFFF" width="7.5" id="1001" pattern="1" text="###.###.###,@@">
<source>214@.IMPORTOB</source>
</field>
<field x="46.5" y="1.75" type="Numero" hidden="1" align="right" bg_color="#00FFFF" width="7" id="1002" pattern="1" text="###.###.###,@@">
<source>214@.SICUREZZA</source>
</field>
<field x="56" y="1.75" type="Numero" hidden="1" align="right" bg_color="#00FFFF" width="7" id="1003" pattern="1" text="###.###.###,@@">
<source>(100*#1002)&#2F;#1001</source>
</field>
<field x="81.5" y="1.75" type="Numero" align="right" bg_color="#00FFFF" width="10" id="1005" pattern="1" text="###.###.###,@@">
<source>#1000&#2F;100*#1003</source>
</field>
<field x="13" y="3" type="Stringa" bg_color="#00FFFF" width="30" id="1006" pattern="1" text="Totale esente sicurezza" />
<field x="81.5" y="3" type="Numero" align="right" bg_color="#00FFFF" width="10" id="1007" pattern="1" text="###.###.###,@@">
<source>#1000-#1005</source>
</field>
<field x="81.5" y="6.75" type="Numero" align="right" width="10" id="1008" pattern="1" text="###.###.###,@@">
<source>#1000&#2F;100*#1003</source>
</field>
<field x="81.5" y="8" type="Numero" align="right" width="10" id="1009" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
<source>((#1000-(#1000&#2F;100*#1003))-((#1000-(#1000&#2F;100*#1003))&#2F;100*214@.RIBASSO))+(#1000&#2F;100*#1003)</source>
</field>
<field x="81.5" y="9.25" type="Numero" align="right" bg_color="#00FFFF" width="10" id="1011" pattern="1" text="###.###.###,@@">
<source>(((#1000-(#1000&#2F;100*#1003))-((#1000-(#1000&#2F;100*#1003))&#2F;100*214@.RIBASSO))+(#1000&#2F;100*#1003))*(214@.GARANZIA&#2F;100)</source>
</field>
<field x="81.5" y="10.5" type="Numero" align="right" bg_color="#00FFFF" width="10" id="1013" pattern="1" text="###.###.###,@@">
<source>(((#1000-(#1000&#2F;100*#1003))-((#1000-(#1000&#2F;100*#1003))&#2F;100*214@.RIBASSO))+(#1000&#2F;100*#1003))*(214@.ANTICIPO&#2F;100)</source>
</field>
<field x="13" y="4.25" type="Stringa" bg_color="#00FFFF" width="30" id="2001" pattern="1" text="- Ribasso Contrattuale del ">
<source>214@.RIBASSO+" % pari ad &#80;. "</source>
</field>
<field x="81.5" y="4.25" type="Numero" align="right" bg_color="#00FFFF" width="10" id="2002" pattern="1" text="###.###.###,@@">
<source>((#1000-(#1000&#2F;100*#1003))&#2F;100*214@.RIBASSO)</source>
</field>
<field x="81.5" y="5.5" type="Numero" align="right" bg_color="#00FFFF" width="10" id="2003" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
<source>(#1000-(#1000&#2F;100*#1003))-((#1000-(#1000&#2F;100*#1003))&#2F;100*214@.RIBASSO)</source>
</field>
<field x="81.5" y="12.25" type="Numero" align="right" bg_color="#00FFFF" width="10" id="2020" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
<source>#1009-#1011-#1013</source>
</field>
<field x="43" y="14.75" type="Numero" align="right" width="10" id="2021" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
<source>#G1:SAL_NET</source>
</field>
<field x="43" y="13.5" type="Numero" align="right" width="10" id="2022" pattern="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="9" />
<source>#2020-#2021</source>
</field>
</section>
<section type="Foot" level="2" pattern="1" />
<section type="Foot" level="3" pattern="1">
<field x="0.7" type="Stringa" bg_color="#FFFF80" width="12.5" id="51" pattern="1">
<font face="Arial" size="9" />
<source>H3.51</source>
</field>
<field x="13.8" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="45" height="22" id="52" pattern="1">
<font face="Arial" size="9" />
<source>H3.52</source>
</field>
<field x="59.25" type="Stringa" align="center" bg_color="#C0C0C0" width="4" id="53" pattern="1">
<font face="Arial" size="9" />
<source>H3.53</source>
<prescript description="F3.53 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="63" type="Numero" align="right" bg_color="#00FFFF" width="9" id="54" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<prescript description="F3.54 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="72" type="Numero" align="right" bg_color="#FF80C0" width="9" id="55" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<source>H3.55</source>
<prescript description="F3.55 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
</prescript>
</field>
<field x="81.5" type="Numero" align="right" bg_color="#00FFFF" width="10" id="57" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" size="9" />
<prescript description="F3.57 PRESCRIPT">MESSAGE _ALIGN,#52,BOTTOM
MESSAGE ADD,F1.1000</prescript>
</field>
</section>
<sql>USE 34 KEY 4 SELECT (((DAPROVV=#DAPROVV)&#26;&#26;(DAANNO=#DAANNO)&#26;&#26;(DACODNUM=#DACODNUM)&#26;&#26;(DANDOC=#DANDOC))&#26;&#26;(33.NUMANT&#3C;=#NUMANT)&#26;&#26;(STR(34.QTA!=0))&#26;&#26;(34.TIPORIGA='P1'))
BY 34.FASCMS 34.CODART
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 13 TO 20 INTO STATO=STATOCF COM=COMCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 TO 34 INTO CODART==CODART
JOIN 147 TO 33 ALIAS 214 INTO CODCMS==CODCMS
JOIN 148 TO 34 ALIAS 215 INTO CODCMSFAS==CODCMS CODFASE==FASCMS</sql>
</report>