Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
iniziate stampe listini moderne


git-svn-id: svn://10.65.10.50/trunk@19482 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-10-21 13:31:44 +00:00
parent 9ac8f6eb8e
commit 8158156a49
10 changed files with 802 additions and 39 deletions

@ -1,34 +1,22 @@
#include <checks.h>
#include <xvt.h>
extern int ve3100(int argc, char **argv); // stampa tabelle sconti (di riga/di documento/incondizionati)
extern int ve3200(int argc, char **argv); // stampa testate listini/contratti/offerte
extern int ve3300(int argc, char **argv); // stampa listini/contratti/offerte in modo sintetico & leggibile
extern int ve3400(int argc, char **argv); // stampa anagrafica di magazzino
#include "ve3.h"
int main(int argc, char **argv)
{
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
int main(int argc, char **argv) {
int rt= -1;
const int r= (argc>1)?(atoi(&argv[1][1])):(-1);
switch (r) {
case 0:
rt= ve3100(argc, argv);
break;
case 1:
rt= ve3200(argc, argv);
break;
case 2:
rt= ve3300(argc, argv);
break;
case 3:
rt= ve3400(argc, argv);
break;
switch (r)
{
case 0: ve3100(argc, argv); break; // stampa tabelle sconti (di riga/di documento/incondizionati)
case 1: ve3200(argc, argv); break; // antichissima stampa testate listini/contratti/offerte
case 2: ve3300(argc, argv); break; // antica stampa listini/contratti/offerte in modo sintetico & leggibile
case 3: ve3400(argc, argv); break; // stampa anagrafica di magazzino
case 4: ve3500(argc, argv); break; // moderna stampa condizioni di vendita
default:
error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 2 [L|C|O] | 3]", argv[0]);
error_box("Sintassi: %s -[0 [R|D|I] | 1 [L|C|O] | 2 [L|C|O] | 3 | 4 [L|C|O]]", argv[0]);
break;
}
return (rt);
return 0;
}

@ -1,17 +1,11 @@
#ifndef __VE2_H
#define __VE2_H
#ifndef __VE3_H
#define __VE3_H
#ifdef MAIN
#define extern
#endif
int ve2100(int argc, char* argv[]); // Tabella testate listini e righe listini
int ve2200(int argc, char* argv[]); // Archivio contratti e righe contratti
int ve2300(int argc, char* argv[]); // Archivio indirizzo clienti
#ifdef MAIN
#undef extern
#endif
int ve3100(int argc, char* argv[]); // stampa tabelle sconti (di riga/di documento/incondizionati)
int ve3200(int argc, char* argv[]); // antichissima stampa testate listini/contratti/offerte
int ve3300(int argc, char* argv[]); // antica stampa listini/contratti/offerte in modo sintetico & leggibile
int ve3400(int argc, char* argv[]); // stampa anagrafica di magazzino
int ve3500(int argc, char* argv[]); // moderna stampa condizioni di vendita
#endif

@ -8,6 +8,8 @@
#include <tabutil.h>
#include <nditte.h>
#include "ve3.h"
#include "ve3100.h"
#define KILL(x) { ((TEditable_field &)mask->field(x)).reset_key(1); mask->disable(x); }

@ -4,6 +4,8 @@
#include <config.h>
#include "veconf.h"
#include "ve3.h"
#include "ve3200.h"
#define RCONDV_APP "ve2 -2"

@ -7,9 +7,11 @@
#include <mask.h>
#include <printer.h>
#include "ve3300.h"
#include "veconf.h"
#include "ve3.h"
#include "ve3300.h"
//////////////////////////////////////////////////////////
// Form
//////////////////////////////////////////////////////////

@ -2,6 +2,7 @@
#include <mask.h>
#include <recarray.h>
#include "ve3.h"
#include "ve3400.h"
#define GMC 101

164
ve/ve3500.cpp Executable file

@ -0,0 +1,164 @@
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <defmask.h>
#include <recset.h>
#include <reprint.h>
#include "ve3500a.h"
////////////////////////////////////////////////////////
// MASCHERA
////////////////////////////////////////////////////////
class TPrint_condven_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TPrint_condven_mask();
};
TPrint_condven_mask::TPrint_condven_mask() : TAutomask("ve3500a")
{
//legge il parametro con cui è stato chiamato il programma ('C'ontratti,'L'istini,'O'fferte..
//..ed in base a questo setta il valore del campo F_TIPO sulla maschera che fa apparire/scomparire..
//..campi
const char* tipo = main_app().argv(2);
set(F_TIPO, tipo);
if (tipo[0] == 'L')
{
//il costruttore abilita/disabilita i campi delle categorie di vendita in base alla configurazione
const bool gesliscv = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
enable(F_L_CATVEN, gesliscv);
enable(F_L_DESVEN, gesliscv);
//attenzione!!! il campo CATVEN è in chiave 1! per disabilitarlo ci vuole questo trucco!
if (!gesliscv)
efield(F_L_CATVEN).reset_key(1);
}
}
bool TPrint_condven_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch(o.dlg())
{
case DLG_PRINT:
if (e == fe_button)
{
main_app().print();
return false;
}
break;
case DLG_PREVIEW:
if (e == fe_button)
{
main_app().preview();
return false;
}
break;
default:
break;
}
return true;
}
////////////////////////////////////////////////////////
// REPORT
////////////////////////////////////////////////////////
//i report in questione (sono 3, per Contratti, Listini, Offerte) hanno la query inside..
//..e non necessitano di altro che i FIELD #... dei campi della maschera per avere i valori..
//..delle set_var interne
class TPrint_condven_report : public TReport
{
protected:
virtual bool use_mask() { return false; } //questo ci vuole perchè la maschera ha un nome != dai report
public:
TPrint_condven_report() {}
};
////////////////////////////////////////////////////////
// APPLICAZIONE
////////////////////////////////////////////////////////
class TPrint_condven : public TSkeleton_application
{
TPrint_condven_mask* _mask;
protected:
virtual bool create();
virtual void print();
virtual void preview();
virtual void print_or_preview(const bool stampa);
public:
virtual void main_loop();
};
//fantastico metodo per gestire stampa o anteprima
void TPrint_condven::print_or_preview(const bool stampa)
{
if (_mask->check_fields())
{
TString rep_name;
const char tipo = _mask->get(F_TIPO)[0];
switch (tipo)
{
case 'C': rep_name = "ve3500c.rep"; break;
case 'L': rep_name = "ve3500l.rep"; break;
case 'O': rep_name = "ve3500o.rep"; break;
default: break;
}
TPrint_condven_report rep;
rep.load(rep_name);
rep.mask2report(*_mask); //setta i valori della maschera sul report
TReport_book book;
book.add(rep);
book.print_or_preview();
}
}
void TPrint_condven::print()
{
print_or_preview(true);
}
void TPrint_condven::preview()
{
print_or_preview(false);
}
void TPrint_condven::main_loop()
{
_mask = new TPrint_condven_mask;
_mask->run();
delete _mask;
_mask = NULL;
}
bool TPrint_condven::create()
{
//controlla che solo il producer AGA possa usare questo programma
const int oem = ini_get_int(CONFIG_OEM, "MAIN", "OEM", -1);
if (oem != 0)
{
error_box(TR("Programma non autorizzato!"));
return false;
//se non paghi ti stronco!!!
const TDate oggi(TODAY);
if (oggi >= 20091120)
return false;
}
return TSkeleton_application::create();
}
int ve3500(int argc, char* argv[])
{
TPrint_condven a;
a.run(argc, argv, TR("Stampa condizioni di vendita"));
return 0;
}

27
ve/ve3500a.h Executable file

@ -0,0 +1,27 @@
//campi maschera ve3500a.uml (stampa condizioni di vendita)
#define F_TIPO 201
#define F_L_CATVEN 202
#define F_L_DESVEN 203
#define F_C_TIPOCF 204
#define F_C_CODCF 205
#define F_C_RAGSOC 206
#define F_L_COD 207
#define F_C_COD 208
#define F_O_COD 209
#define F_COD 210
#define F_DESCR 211
#define F_DACODART 220
#define F_DADESART 221
#define F_ACODART 222
#define F_ADESART 223
#define F_DAGRMERC 224
#define F_DASOTGRMERC 225
#define F_DADESGRMERC 226
#define F_AGRMERC 227
#define F_ASOTGRMERC 228
#define F_ADESGRMERC 229
#define F_DARAGFIS 230
#define F_DADESRAGFIS 231
#define F_ARAGFIS 232
#define F_ADESRAGFIS 233

408
ve/ve3500a.uml Executable file

@ -0,0 +1,408 @@
#include "ve3500a.h"
TOOLBAR "Topbar" 0 0 0 2
BUTTON DLG_PREVIEW 2 2
BEGIN
PROMPT 1 1 "~Anteprima"
PICTURE TOOL_PREVIEW
END
#include <printbar.h>
ENDPAGE
PAGE "Stampa condizioni di vendita" 0 2 0 0
RADIOBUTTON F_TIPO 12
BEGIN
PROMPT 1 40 "Tipo stampa"
ITEM "C|Contratti"
MESSAGE HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|SHOW,2@
ITEM "L|Listini"
MESSAGE HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|SHOW,1@
ITEM "O|Offerte"
MESSAGE HIDE,1@|RESET,1@|HIDE,2@|RESET,2@|SHOW,3@
FLAGS "HG"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 0 1 "@bDati listino"
GROUP 1
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 0 1 "@bDati contratto"
GROUP 2
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 0 1 "@bDati offerta"
GROUP 3
END
TEXT DLG_NULL
BEGIN
PROMPT 1 2 "Categoria vendita"
GROUP 1
END
STRING F_L_CATVEN 2
BEGIN
PROMPT 1 3 ""
FLAGS "U"
KEY 1
USE CVE
INPUT CODTAB F_L_CATVEN
DISPLAY "Cat." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_L_CATVEN CODTAB
OUTPUT F_L_DESVEN S0
CHECKTYPE REQUIRED
GROUP 1
FIELD #CATVEN
END
STRING F_L_DESVEN 50
BEGIN
PROMPT 8 3 ""
USE CVE KEY 2
INPUT S0 F_L_DESVEN
DISPLAY "Descrizione@50" S0
DISPLAY "Cat." CODTAB
COPY OUTPUT F_L_CATVEN
CHECKTYPE NORMAL
GROUP 1
FIELD #DESVEN
END
TEXT DLG_NULL
BEGIN
PROMPT 1 2 "Cliente/Fornitore"
GROUP 2
END
LIST F_C_TIPOCF 1 12
BEGIN
PROMPT 1 3 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
GROUP 2
FIELD #TIPOCF
END
NUMBER F_C_CODCF 6
BEGIN
PROMPT 17 3 ""
FLAGS "GR"
USE LF_CLIFO
INPUT TIPOCF F_C_TIPOCF
INPUT CODCF F_C_CODCF
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_C_CODCF CODCF
OUTPUT F_C_RAGSOC RAGSOC
CHECKTYPE REQUIRED
GROUP 2
FIELD #CODCF
END
STRING F_C_RAGSOC 50 47
BEGIN
PROMPT 27 3 ""
FLAGS "U"
USE LF_CLIFO KEY 2
INPUT TIPOCF F_C_TIPOCF
INPUT RAGSOC F_C_RAGSOC
DISPLAY "C/F" TIPOCF
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_C_CODCF
CHECKTYPE NORMAL
GROUP 2
FIELD #RAGSOC
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Listino"
GROUP 1
END
STRING F_L_COD 3
BEGIN
PROMPT 1 5 ""
FLAG "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT CATVEN F_L_CATVEN SELECT
INPUT COD F_L_COD
DISPLAY "C.V." CATVEN
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT F_L_CATVEN CATVEN
OUTPUT F_L_COD COD
OUTPUT F_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE REQUIRED
GROUP 1
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Contratto"
GROUP 2
END
STRING F_C_COD 3
BEGIN
PROMPT 1 5 ""
FLAGS "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT TIPOCF F_C_TIPOCF
INPUT CODCF F_C_CODCF
INPUT COD F_C_COD
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Numero" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT F_TIPO TIPO
OUTPUT F_C_CODCF CODCF
OUTPUT F_C_COD COD
OUTPUT F_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE REQUIRED
GROUP 2
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Offerta"
GROUP 3
END
STRING F_O_COD 3
BEGIN
PROMPT 1 5 ""
FLAG "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT F_O_COD COD
OUTPUT F_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE NORMAL
GROUP 3
END
STRING F_COD 3 //è il codice condv che viene riempito e tenuto nascosto (usato dal programma)
BEGIN
PROMPT 1 8 ""
FLAG "HUG"
FIELD #COD
END
STRING F_DESCR 50
BEGIN
PROMPT 8 5 ""
FLAGS "D"
FIELD #DESCR
END
GROUPBOX DLG_NULL 78 8
BEGIN
PROMPT 0 7 "@bFiltri"
END
STRING F_DACODART 20
BEGIN
PROMPT 2 8 "Da articolo "
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_DACODART
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_DACODART CODART
OUTPUT F_DADESART DESCR
CHECKTYPE NORMAL
FIELD #DACODART
END
STRING F_DADESART 50 33
BEGIN
PROMPT 41 8 ""
USE LF_ANAMAG KEY 2
INPUT DESCR F_DADESART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Articolo@20" CODART
COPY OUTPUT F_DACODART
CHECKTYPE NORMAL
END
STRING F_ACODART 20
BEGIN
PROMPT 2 9 "A articolo "
FLAGS "U"
USE LF_ANAMAG
INPUT CODART F_ACODART
COPY DISPLAY F_DACODART
OUTPUT F_ACODART CODART
OUTPUT F_ADESART DESCR
CHECKTYPE NORMAL
FIELD #ACODART
END
STRING F_ADESART 50 33
BEGIN
PROMPT 41 9 ""
USE LF_ANAMAG KEY 2
INPUT DESCR F_ADESART
COPY DISPLAY F_DADESART
COPY OUTPUT F_ACODART
CHECKTYPE NORMAL
END
STRING F_DAGRMERC 3
BEGIN
PROMPT 2 10 "Da Gr. merc. "
FLAGS "U"
USE GMC SELECT CODTAB[4,5] == ""
INPUT CODTAB[1,3] F_DAGRMERC
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_DAGRMERC CODTAB[1,3]
OUTPUT F_DADESGRMERC S0
CHECKTYPE NORMAL
FIELD #DAGRMERC
END
STRING F_DASOTGRMERC 2
BEGIN
PROMPT 24 10 ""
FLAGS "U"
USE GMC
COPY INPUT F_DAGRMERC
INPUT CODTAB[4,5] F_DASOTGRMERC
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Sottogruppo" CODTAB[4,5]
DISPLAY "Descrizione@50" S0
COPY OUTPUT F_DAGRMERC
OUTPUT F_DASOTGRMERC CODTAB[4,5]
CHECKTYPE NORMAL
FIELD #DASOTGRMERC
END
STRING F_DADESGRMERC 50 44
BEGIN
PROMPT 30 10 ""
USE GMC KEY 2
INPUT S0 F_DADESGRMERC
DISPLAY "Descrizione@50" S0
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Sottogruppo" CODTAB[4,5]
COPY OUTPUT F_DASOTGRMERC
CHECKTYPE NORMAL
END
STRING F_AGRMERC 3
BEGIN
PROMPT 2 11 "A Gr. merc. "
FLAGS "U"
USE GMC SELECT CODTAB[4,5] == ""
INPUT CODTAB[1,3] F_AGRMERC
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_AGRMERC CODTAB[1,3]
OUTPUT F_ADESGRMERC S0
CHECKTYPE NORMAL
FIELD #AGRMERC
END
STRING F_ASOTGRMERC 2
BEGIN
PROMPT 24 11 ""
FLAGS "U"
USE GMC
COPY INPUT F_AGRMERC
INPUT CODTAB[4,5] F_ASOTGRMERC
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Sottogruppo" CODTAB[4,5]
DISPLAY "Descrizione@50" S0
COPY OUTPUT F_AGRMERC
OUTPUT F_ASOTGRMERC CODTAB[4,5]
CHECKTYPE NORMAL
FIELD #ASOTGRMERC
END
STRING F_ADESGRMERC 50 44
BEGIN
PROMPT 30 11 ""
USE GMC KEY 2
INPUT S0 F_ADESGRMERC
DISPLAY "Descrizione@50" S0
DISPLAY "Gruppo" CODTAB[1,3]
DISPLAY "Sottogruppo" CODTAB[4,5]
COPY OUTPUT F_ASOTGRMERC
CHECKTYPE NORMAL
END
STRING F_DARAGFIS 5
BEGIN
PROMPT 2 12 "Da Raggr. fis. "
FLAGS "U"
USE RFA
INPUT CODTAB F_DARAGFIS
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DARAGFIS CODTAB
OUTPUT F_DADESRAGFIS S0
CHECKTYPE NORMAL
FIELD #DARAGFIS
END
STRING F_DADESRAGFIS 50 48
BEGIN
PROMPT 26 12 ""
USE RFA KEY 2
INPUT S0 F_DADESRAGFIS
DISPLAY "Descrizione@50" S0
DISPLAY "Ragg. fisc." CODTAB
COPY OUTPUT F_DARAGFIS
CHECKTYPE NORMAL
END
STRING F_ARAGFIS 5
BEGIN
PROMPT 2 13 "A Raggr. fis. "
FLAGS "U"
USE RFA
INPUT CODTAB F_ARAGFIS
DISPLAY "Ragg. fisc." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_ARAGFIS CODTAB
OUTPUT F_ADESRAGFIS S0
CHECKTYPE NORMAL
FIELD #ARAGFIS
END
STRING F_ADESRAGFIS 50 48
BEGIN
PROMPT 26 13 ""
USE RFA KEY 2
INPUT S0 F_ADESRAGFIS
DISPLAY "Descrizione@50" S0
DISPLAY "Ragg. fisc." CODTAB
COPY OUTPUT F_ARAGFIS
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

175
ve/ve3500l.rep Executable file

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="ve3500l" lpi="6">
<description>Stampa listini</description>
<font face="Arial" size="8" />
<section type="Head">
<font face="Arial" bold="1" size="8" />
<field x="81" type="Testo" align="center" width="12" pattern="1" text="Sconti" />
<field x="95" type="Testo" align="center" width="15" pattern="1" text="Omaggi" />
<field x="1" y="0.5" type="Testo" width="20" pattern="1" text="Codice" />
<field x="22" y="0.5" type="Testo" width="35" pattern="1" text="Descrizione" />
<field x="57" y="0.5" type="Testo" width="2" pattern="1" text="UM" />
<field x="59.5" y="0.5" type="Testo" align="right" width="11" pattern="1" text="Prezzo" />
<field x="72" y="0.5" type="Testo" align="center" width="3" pattern="1" text="IVA" />
<field x="76" y="0.5" type="Testo" width="4" pattern="1" text="%Prv" />
<field x="81.5" y="0.75" type="Testo" align="center" width="12" pattern="1" text="Formula - Qta base">
<font face="Arial Narrow" size="8" />
</field>
<field x="95" y="0.75" type="Testo" align="center" width="15" pattern="1" text="Qta base - Prezzo - UM">
<font face="Arial Narrow" size="8" />
</field>
<field border="1" x="1" y="1.5" type="Linea" width="116" height="0" pattern="1" />
</section>
<section type="Head" level="1">
<font face="Arial" bold="1" size="8" />
<field border="2" radius="200" x="23" y="0.75" type="Rettangolo" width="75" height="3" pattern="1" />
<field x="24" y="1.75" type="Testo" width="10" pattern="1" text="LISTINO">
<font face="Arial" bold="1" size="12" />
</field>
<field x="36" y="1.75" type="Stringa" width="4" pattern="1">
<font face="Arial" bold="1" size="12" />
<source>CATVEN</source>
<prescript description="H1.0 PRESCRIPT">MESSAGE COPY,F0.99</prescript>
</field>
<field x="41" y="1.75" type="Stringa" width="5" pattern="1">
<font face="Arial" bold="1" size="12" />
<source>COD</source>
<prescript description="H1.0 PRESCRIPT">MESSAGE ISAMREAD,52,TIPO=L!CATVEN=CATVEN!COD=COD,101=DESCR!102=VALIN!103=VALFIN!104=CODLISSUCC!105=FATHCATVEN!106=FATHCOD!201=IMPLORDI!202=GESTUM!203=GESTSCAGL!204=GESTSCO
</prescript>
<postscript description="H1.0 POSTSCRIPT">MESSAGE COPY,F0.100</postscript>
</field>
<field x="1" y="5" type="Testo" width="12" pattern="1" text="Inizio validit&#E0;:" />
<field x="26" y="5" type="Testo" width="10" pattern="1" text="Fine validit&#E0;:" />
<field x="50" y="5" type="Testo" width="17" pattern="1" text="Listino successivo:" />
<field x="73" y="5" type="Testo" width="13" pattern="1" text="Listino padre:" />
<field x="1" y="6.5" type="Testo" width="12" pattern="1" text="Importi lordi:" />
<field x="16" y="6.5" type="Testo" width="12" pattern="1" text="Gest. UM:" />
<field x="29" y="6.5" type="Testo" width="13" pattern="1" text="Gest. scaglioni:" />
<field x="47" y="6.5" type="Testo" width="11" pattern="1" text="Gest. sconti:" />
<field border="2" y="7.5" type="Linea" width="117" height="0" pattern="1" />
<field x="47" y="1.75" type="Stringa" width="50" id="101" pattern="1">
<font face="Arial" bold="1" size="12" />
<prescript description="H1.101 PRESCRIPT">MESSAGE COPY,F0.101</prescript>
</field>
<field x="13" y="5" type="Data" width="10" id="102" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="37" y="5" type="Data" width="10" id="103" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="67" y="5" type="Stringa" width="4" id="104" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="86" y="5" type="Stringa" width="3" id="105" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="90" y="5" type="Stringa" width="4" id="106" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="12" y="6.5" type="Stringa" width="2" id="201" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="24" y="6.5" type="Stringa" width="2" id="202" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="42" y="6.5" type="Stringa" width="2" id="203" pattern="1">
<font face="Arial" size="8" />
</field>
<field x="57.5" y="6.5" type="Stringa" width="2" id="204" pattern="1">
<font face="Arial" size="8" />
</field>
</section>
<section type="Head" level="2">
<groupby>TIPORIGA="A"</groupby>
<font face="Arial" bold="1" size="8" />
<field border="1" x="1" y="1.5" type="Linea" width="116" height="0" pattern="1" />
<field x="1" y="0.25" type="Array" width="25" id="101" pattern="1">
<font italic="1" face="Arial" bold="1" size="8" />
<source>TIPORIGA</source>
<list>
<li Value="Articoli" Code="A" />
<li Value="Gruppi Merceologici" Code="G" />
<li Value="Raggruppamenti fiscali" Code="R" />
</list>
</field>
</section>
<section type="Body" />
<section type="Body" level="1">
<field x="57.5" type="Stringa" width="2" pattern="1">
<source>UM</source>
</field>
<field x="59.5" type="Prezzo" align="right" width="11" pattern="1" text="#########,@@">
<source>PREZZO</source>
</field>
<field x="73" type="Stringa" width="3" pattern="1">
<font face="Arial Narrow" size="8" />
<source>CODIVA</source>
</field>
<field x="77" type="Numero" align="right" width="3" pattern="1" hide_zero="1">
<font face="Arial Narrow" size="8" />
<source>PERCPROVV</source>
</field>
<field x="81" type="Stringa" width="8" pattern="1">
<font face="Arial Narrow" size="7" />
<source>SCONTO</source>
</field>
<field x="89" type="Numero" align="right" width="5" pattern="1" hide_zero="1">
<font face="Arial Narrow" size="7" />
<source>QBASE</source>
</field>
<field x="95" type="Numero" align="right" width="5" pattern="1" hide_zero="1">
<font face="Arial Narrow" size="7" />
<source>QOM</source>
</field>
<field x="100" type="Prezzo" align="right" width="8" pattern="1" hide_zero="1" text="#########,@@">
<font face="Arial Narrow" size="7" />
<source>PROMAGGIO</source>
</field>
<field x="108.5" type="Stringa" width="2" pattern="1">
<font face="Arial Narrow" size="7" />
<source>UMOM</source>
</field>
<field type="Array" hidden="1" width="1" id="101" pattern="1">
<source>TIPORIGA</source>
<list>
<li Value="Articolo" Code="A">MESSAGE HIDE,203|HIDE,303|SHOW,103</li>
<li Value="Gr.Merc." Code="G">MESSAGE HIDE,103|HIDE,303|SHOW,203</li>
<li Value="Ragg. fisc." Code="R">MESSAGE HIDE,103|HIDE,203|SHOW,303</li>
</list>
</field>
<field x="1.5" type="Stringa" width="20" id="102" pattern="1">
<source>CODRIGA</source>
</field>
<field x="22" type="Stringa" width="35" id="103" pattern="1">
<font face="Arial Narrow" size="7" />
<prescript description="B1.103 PRESCRIPT">MESSAGE ISAMREAD,47,CODART=#102,DESCR</prescript>
</field>
<field x="22" type="Stringa" width="35" id="203" pattern="1">
<font face="Arial Narrow" size="7" />
<prescript description="B1.203 PRESCRIPT">MESSAGE TABLEREAD,GMC,#102,S0</prescript>
</field>
<field x="22" type="Stringa" width="35" id="303" pattern="1">
<font face="Arial Narrow" size="7" />
<prescript description="B1.303 PRESCRIPT">MESSAGE TABLEREAD,RFA,#102,S0</prescript>
</field>
</section>
<section type="Foot">
<field border="1" x="1" y="0.5" type="Linea" width="116" height="0" pattern="1" />
<field x="5" y="1" type="Testo" width="10" pattern="1" text="Listino:" />
<field x="104" y="1" type="Testo" width="5" pattern="1" text="Pag." />
<field x="110" y="1" type="Numero" align="right" width="4" pattern="1">
<source>#REPORT.PAGE</source>
</field>
<field x="15" y="1" type="Stringa" width="3" id="99" pattern="1" />
<field x="19" y="1" type="Stringa" width="4" id="100" pattern="1" />
<field x="24" y="1" type="Stringa" width="50" id="101" pattern="1" />
</section>
<section type="Foot" level="1" />
<section type="Foot" level="2" />
<sql>USE RCONDV
SELECT ((TIPORIGA="A")&#26;&#26;(BETWEEN(CODRIGA,#DACODART,#ACODART))&#26;&#26;(BETWEEN(ANAMAG.GRMERC,#DAGRMERC,#AGRMERC))&#26;&#26;(BETWEEN(ANAMAG.RAGGFIS,#DARAGFIS,#ARAGFIS)))||((TIPORIGA="G")&#26;&#26;(BETWEEN(CODRIGA,#DAGRMERC,#AGRMERC)))||((TIPORIGA="R")&#26;&#26;(BETWEEN(CODRIGA,#DARAGFIS,#ARAGFIS)))
JOIN ANAMAG INTO CODART=CODRIGA
FROM TIPO=L CATVEN=#CATVEN COD=#COD
TO TIPO=L CATVEN=#CATVEN COD=#COD
</sql>
</report>