Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
iniziata stampa fatturato


git-svn-id: svn://10.65.10.50/trunk@19506 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-10-23 14:36:49 +00:00
parent 60824e543f
commit 273fd9ce31
10 changed files with 387 additions and 881 deletions

View File

@ -8,9 +8,9 @@ int main(int argc, char **argv)
switch (r)
{
case 1: ve3200(argc, argv); break; // antichissima stampa 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
//case 8: ve3900(argc, argv); break; // stampe varie delle vendite (a=fatturato)
default: ve3100(argc, argv); break; // stampa tabelle sconti (di riga/di documento/incondizionati)
}
return 0;

View File

@ -3,9 +3,9 @@
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
//int ve3900(int argc, char* argv[]); //stampe varie vendite
#endif

View File

@ -1,268 +0,0 @@
// Stampa Listini/Contratti/Offerte in modo sintetico
// sarebbe da intendere come la vera ed unica stampa condizioni di vendita.
// Quella precedente realizzata in ve3200.cpp viene cmq mantenuta anke per motivi storici
#include <applicat.h>
#include <form.h>
#include <mask.h>
#include <printer.h>
#include "veconf.h"
#include "ve3.h"
#include "ve3300.h"
//////////////////////////////////////////////////////////
// Form
//////////////////////////////////////////////////////////
class TLCO_form : public TForm
{
protected:
virtual bool validate(TForm_item &, TToken_string &); // gestione dei messaggi estesi nei campi
public:
TLCO_form(const char* name) ;
virtual ~TLCO_form() {}
};
bool TLCO_form::validate(TForm_item &cf, TToken_string &s)
{
const TString code(s.get(0));
TString valore;
const TRelation* rel = cf.form().relation();
TLocalisamfile& rcondv = rel->lfile(LF_RCONDV);
TLocalisamfile& condv = rel->lfile(LF_CONDV);
const int ndec = condv.get_int("DECIMALI");
if (code == "_DESCRIZIONE")
{
const char tiporiga = rcondv.get_char("TIPORIGA");
TLocalisamfile& anamag = rel->lfile(LF_ANAMAG);
TLocalisamfile& gmc = rel->lfile(-101);
TLocalisamfile& rfa = rel->lfile(-102);
if (tiporiga == 'A')
valore = anamag.get("DESCR");
else
if (tiporiga == 'R')
valore = rfa.get("S0");
else
valore = gmc.get("S0");
}
else
if (code == "_QTAFROM")
{
// Legge la riga precedente, controllando che sia dello scaglione
// precedente a questo. Se si prende la sua qta limite e vi aggiunge un
// decimale specificato da LF_CONDV->DECIMALI (funziona anche per le unita')
// Se non esiste la riga prec vale 0
TRectype rec(rcondv.curr());
rcondv.prev();
real r = rcondv.good() && rcondv.curr().same_key(rec, 1, 1) ? rcondv.get_real("QLIM") : ZERO;
if (r != ZERO)
r += exp10(((real)-ndec));
valore = r.string(15,ndec);
rcondv.next();
}
else
if (code == "_QTATO")
valore = rcondv.get_real("QLIM").string(15,ndec);
cf.set(valore);
return TForm::validate(cf, s);
}
TLCO_form::TLCO_form(const char* name) : TForm(name)
{
set_magic_currency(TRUE);
}
//////////////////////////////////////////////////////////
// Applicazione
//////////////////////////////////////////////////////////
class TStampa_LCO_sintetica : public TSkeleton_application
{
TMask* _mask;
TLCO_form* _form;
TString16 _condven,
_tipocf,
_cod,
_catven;
long _codcf;
bool _codlis_catven, // booleano di abilitazione della categoria di vendita nella chiave dei listini
_codcon_codcf, // booleano di abilitazione del codice cliente/fornitore nella chiave dei contratti
_gest_um,
_gest_sca,
_extended;
protected:
virtual bool create(void);
virtual bool destroy(void);
virtual void main_loop() ;
public:
TStampa_LCO_sintetica() {}
virtual ~TStampa_LCO_sintetica() {}
};
bool TStampa_LCO_sintetica::create()
{
_mask = new TMask("ve3300a");
_form = new TLCO_form("ve3300a");
bool gotcha = FALSE;
int indice = 0;
_condven= "*";
if (argc()>2)
_condven= argv(2);
else
{
TMask choose("ve3200");
if (choose.run() == K_ENTER)
_condven = choose.get(F_TIPOCV);
}
_condven.upper();
TConfig prassid(CONFIG_DITTA, "ve");
_mask->set(F_TIPO, _condven); // settaggio del campo di tipo archivio
switch (_condven[0])
{
case 'L': // listini
indice = A_LISTINI;
if (!(prassid.get_bool("GES", NULL, indice)))
error_box("L'archivio Listini non è abilitato");
else
{
_codlis_catven= prassid.get_bool("GESLISCV");
gotcha= TRUE;
}
_mask->set_caption("Stampa Listini");
_mask->hide(F_C_COD);
_mask->hide(F_C_TIPOCF);
_mask->hide(F_C_CODCF);
_mask->hide(F_O_COD);
if (!_codlis_catven)
_mask->disable(F_L_CATVEN); // disabilita condizionalmente le categorie di vendita
break;
case 'C': // contratti
indice= A_CONTRATTI;
if (!(prassid.get_bool("GES", NULL, indice)))
error_box("L'archivio Contratti non è abilitato");
else
{
_codcon_codcf= prassid.get_bool("GESCONCC");
gotcha= TRUE;
}
_mask->set_caption("Stampa Contratti");
_mask->hide(F_L_COD);
_mask->hide(F_L_CATVEN);
_mask->hide(F_O_COD);
if (!_codcon_codcf)
{ // disabilita condizionalmente i clienti/fornitori
_mask->disable(F_C_TIPOCF);
_mask->disable(F_C_CODCF);
}
break;
case 'O': // offerte
indice= A_OFFERTE;
if (!(prassid.get_bool("GES", NULL, indice)))
error_box("L'archivio Offerte non è abilitato");
else
gotcha= TRUE;
_mask->set_caption("Stampa Offerte");
_mask->hide(F_L_COD); // settaggio dei campi da eliminare
_mask->hide(F_L_CATVEN);
_mask->hide(F_C_TIPOCF);
_mask->hide(F_C_CODCF);
_mask->hide(F_C_COD);
break;
default:
error_box("Indicare l'archivio sulla linea di comando (L, C o O) oppure selezionarla dalla maschera di partenza");
break;
}
if (gotcha)
{
_gest_um = prassid.get_bool("GESUM", NULL, indice);
_gest_sca = prassid.get_bool("GESSCA", NULL, indice);
}
return (gotcha && TSkeleton_application::create());
}
bool TStampa_LCO_sintetica::destroy()
{
delete _form;
delete _mask;
return TSkeleton_application::destroy();
}
void TStampa_LCO_sintetica::main_loop()
{
while (_mask->run()!=K_QUIT)
{
_extended = _mask->get_bool(F_EXTENDED);
_catven = _mask->get(F_L_CATVEN);
_tipocf = _condven[0] == 'C' ? _mask->get(F_C_TIPOCF) : "";
_codcf = _mask->get_long(F_C_CODCF);
const char cv = _condven[0];
if (cv == 'L')
_cod = _mask->get(F_L_COD);
else
if (cv == 'C')
_cod = _mask->get(F_C_COD);
else
_cod = _mask->get( F_O_COD);
TCursor* cur = _form->cursor();
TRectype from (LF_CONDV);
from.put("TIPO", _condven);
from.put("CATVEN", _catven);
from.put("TIPOCF", _tipocf);
from.put("CODCF", _codcf);
from.put("COD", _cod);
TRectype to(from);
cur->setregion(from, to);
// Spengi la luz...
_form->find_field('H', odd_page, 5).show(cv == 'L');
_form->find_field('H', odd_page, 6).show(cv == 'C');
_form->find_field('H', odd_page, 7).show(cv == 'C');
_form->find_field('B', odd_page, 9).show(_extended);
_form->find_field('B', odd_page, 10).show(_extended);
_form->find_field('B', odd_page, 11).show(_extended);
_form->find_field('B', odd_page, 109).show(_extended);
_form->find_field('B', odd_page, 110).show(_extended);
_form->find_field('B', odd_page, 111).show(_extended);
_form->find_field('B', odd_page, 3).show(_gest_um);
_form->find_field('B', odd_page, 103).show(_gest_um);
_form->find_field('B', odd_page, 4).show(_gest_sca);
_form->find_field('B', odd_page, 5).show(_gest_sca);
_form->find_field('B', odd_page, 104).show(_gest_sca);
_form->find_field('B', odd_page, 105).show(_gest_sca);
const int hh = 7;
const int fl = printer().formlen();
int rows[4]; // Righe orizzontali
rows[0] = hh-2;
rows[1] = hh;
rows[2] = fl-1;
rows[3] = 0;
_form->genera_intestazioni(odd_page, hh-1);
_form->genera_fincatura(odd_page, hh-2, fl-1, rows);
// stampa
if (_form->cursor()->items() > 0)
_form->print();
}
}
int ve3300(int argc, char **argv)
{
TStampa_LCO_sintetica a;
a.run(argc, argv, "Stampa condizioni vendita");
return 0;
}

View File

@ -1,17 +0,0 @@
// ve3200.uml
#define F_TIPOCV 101
// ve3300a.uml
#define F_TIPO 102
#define F_L_CATVEN 103
#define F_L_COD 104
#define F_C_TIPOCF 105
#define F_C_CODCF 106
#define F_C_COD 107
#define F_O_COD 108
#define F_DESCR 109
#define F_EXTENDED 110

View File

@ -1,132 +0,0 @@
#include "ve3300.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Archivio sconti incondizionati " 0 0 0 0
LISTBOX F_TIPO 1
BEGIN
PROMPT 0 0 ""
ITEM "I|"
FLAG "H"
END
STRING F_CODCAT 2
BEGIN
PROMPT 3 2 "Categoria vendita "
USE CVE
FLAG "U"
INPUT CODTAB F_CODCAT
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_CODCAT CODTAB
OUTPUT F_CODCAT1 S0
END
STRING F_CODCAT1 40
BEGIN
PROMPT 30 2 ""
USE CVE KEY 2
FLAG "U"
INPUT S0 F_CODCAT1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_CODCAT CODTAB
OUTPUT F_CODCAT1 S0
END
STRING F_SCONTOC 2
BEGIN
PROMPT 3 4 "Sconto cliente "
// FIELD LF_SCONTI->CODART[4,5]
USE %SCC // CATEGORIE VENDITA
FLAG "U"
INPUT CODTAB F_SCONTOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_SCONTOC CODTAB
OUTPUT F_SCONTOC1 S0
END
STRING F_SCONTOC1 40
BEGIN
PROMPT 25 4 ""
USE %SCC KEY 2
FLAG "U"
INPUT S0 F_SCONTOC1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_SCONTOC CODTAB
OUTPUT F_SCONTOC1 S0
END
STRING F_ZONA 2
BEGIN
PROMPT 3 6 "Zona "
// FIELD LF_SCONTI->CODART[7,8]
USE %ZON // ZONE
FLAG "U"
INPUT CODTAB F_ZONA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_ZONA CODTAB
OUTPUT F_ZONA1 S0
END
STRING F_ZONA1 40
BEGIN
PROMPT 20 6 ""
USE %SCC KEY 2
FLAG "U"
INPUT S0 F_ZONA1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT F_ZONA CODTAB
OUTPUT F_ZONA1 S0
END
STRING F_CODPAG 4
BEGIN
PROMPT 3 8 "Codice pagamento "
// FIELD LF_SCONTI->CODART[10,13]
END
STRING F_CODPAG1 40
BEGIN
PROMPT 25 8 ""
FLAG "D"
END
STRING F_SCONTO 25
BEGIN
PROMPT 3 10 "Sconto incondizionato "
// FIELD LF_SCONTI->SCONTO
END
GROUPBOX DLG_NULL 70 13
BEGIN
PROMPT 0 0 ""
FLAG "R"
END
ENDPAGE
ENDMASK

View File

@ -1,337 +0,0 @@
// Form per la stampa delle condizioni di vendita,
// Listini/Contratti/Offerte
USE LF_CONDV
JOIN LF_RCONDV INTO TIPO==TIPO CATVEN==CATVEN TIPOCF==TIPOCF CODCF==CODCF COD==COD
JOIN LF_ANAMAG TO LF_RCONDV INTO CODART==CODRIGA
JOIN GMC TO LF_RCONDV ALIAS 101 INTO CODTAB==CODRIGA
JOIN RFA TO LF_RCONDV ALIAS 102 INTO CODTAB==CODRIGA
END
DESCRIPTION
BEGIN
LF_CONDV->* "Archivio Condizioni di Vendita"
LF_RCONDV->* "Archivio Righe Condizioni di Vendita"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION HEADER ODD 7
STRINGA 1 40 1
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
MESSAGE _DITTA, !RAGSOC
END
STRINGA 2 10
BEGIN
KEY "Data"
PROMPT 100 1 "Data "
MESSAGE _TODAY
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 120 1 "Pagina "
MESSAGE _PAGENO
END
LISTA 4 15
BEGIN
KEY "Intestazione stampa"
PROMPT 65 2 ""
FIELD LF_CONDV->TIPO
ITEM "L|Stampa listino"
ITEM "C|Stampa contratto"
ITEM "O|Stampa offerta"
END
STRINGA 5 12
BEGIN
KEY "Cat. vendita"
PROMPT 1 3 "Cat. ven: "
FIELD LF_CONDV->CATVEN
FLAGS "H"
END
LISTA 6 10
BEGIN
KEY "Tipo C/F"
PROMPT 1 3 ""
ITEM "|"
ITEM "C|Cliente"
ITEM "F|Fornitore"
FIELD LF_CONDV->TIPOCF
FLAGS "H"
END
NUMBER 7 6
BEGIN
KEY "Codice C/F"
PROMPT 11 3 ""
FIELD LF_CONDV->CODCF
FLAGS "H"
END
STRINGA 8 11
BEGIN
KEY "Codice Listino/Contratto/Offerta"
PROMPT 20 3 "@BCodice: "
FIELD LF_CONDV->COD
END
STRINGA 9 50
BEGIN
KEY "Descrizione"
PROMPT 34 3 ""
FIELD LF_CONDV->DESCR
END
STRINGA 10 12
BEGIN
KEY "Cod. Valuta"
PROMPT 1 4 "Valuta: "
FIELD LF_CONDV->CODVAL
END
DATA 11 23
BEGIN
KEY "Inizio validita"
PROMPT 15 4 "Inizio val.: "
FIELD LF_CONDV->VALIN
END
DATA 13 23
BEGIN
KEY "Fine validita"
PROMPT 40 4 "Fine val.: "
FIELD LF_CONDV->VALFIN
END
LISTA 14 20
BEGIN
KEY "Importi Lordi"
PROMPT 65 4 ""
FIELD LF_CONDV->IMPLORDI
ITEM "|Listino senza IVA"
ITEM "X|Listino con IVA"
END
END // HEADER
SECTION BODY ODD 2 COLUMNWISE
// Intestazioni colonne
STRINGA 1 20
BEGIN
SPECIAL STRINGA INTESTAZIONE "Codice" "Codice"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Codice riga"
PROMPT 1 1 ""
END
STRINGA 2 25
BEGIN
SPECIAL STRINGA INTESTAZIONE "Descrizione" "Descrizione"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Descrizione"
PROMPT 2 1 ""
END
STRINGA 3 4
BEGIN
SPECIAL STRINGA INTESTAZIONE "UM" "UM"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Unita' di misura"
PROMPT 3 1 ""
END
STRINGA 4 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CDa qta" "Da qta"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Qta lim da"
PROMPT 4 1 ""
END
STRINGA 5 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CA qta" "A qta"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Qta lim a"
PROMPT 5 1 ""
END
STRINGA 6 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CPrezzo" "Prezzo"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Prezzo"
PROMPT 6 1 ""
END
STRINGA 7 25
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CSconto" "Sconto"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Sconto"
PROMPT 7 1 ""
END
STRINGA 8 4
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CIVA" "IVA"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Codice IVA"
PROMPT 8 1 ""
END
STRINGA 9 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CQta base" "Qta base"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Qta base per calcolo sconto"
PROMPT 9 1 ""
END
STRINGA 10 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CQta omaggio" "Qta omaggio"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Qta Omaggio"
PROMPT 10 1 ""
END
STRINGA 11 20
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CCod. art. Omaggio" "Cod. Art. Omaggio"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Cod. articolo omaggio"
PROMPT 11 1 ""
END
// Sezione di stampa righe
SECTION RIGHE 1 1 1 FILE LF_RCONDV
SECTION H_RIGHE 1 1 1 GROUP
STRINGA 101 20
BEGIN
KEY "Codice riga"
PROMPT 1 1 "@B"
FIELD LF_RCONDV->CODRIGA
END
STRINGA 102 25 2
BEGIN
KEY "Descrizione"
PROMPT 2 1 ""
MESSAGE _DESCRIZIONE
END
END
SECTION GR_RIGHE 1 1 1 FILE LF_RCONDV GROUP TIPORIGA+CODRIGA
STRINGA 201 20
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRINGA 202 25
BEGIN
PROMPT 2 1 ""
FLAGS "D"
END
STRINGA 103 4
BEGIN
KEY "UM"
PROMPT 3 1 ""
FIELD LF_RCONDV->UM
END
NUMERO 104 15
BEGIN
KEY "Qta lim da"
PROMPT 4 1 ""
MESSAGE _QTAFROM
END
NUMERO 105 15
BEGIN
KEY "Qta lim a"
PROMPT 5 1 ""
MESSAGE _QTATO
END
NUMERO 106 15
BEGIN
KEY "Prezzo"
PROMPT 6 1 ""
FIELD LF_RCONDV->PREZZO
END
STRINGA 107 25
BEGIN
KEY "Sconto"
PROMPT 7 1 ""
FIELD LF_RCONDV->SCONTO
END
STRINGA 108 4
BEGIN
KEY "Cod. IVA"
PROMPT 8 1 ""
FIELD LF_RCONDV->CODIVA
END
NUMERO 109 15
BEGIN
KEY "Qta base per calcolo sconto"
PROMPT 9 1 ""
FIELD LF_RCONDV->QBASE
PICTURE "#########@,@@@@@"
END
NUMERO 110 15
BEGIN
KEY "Qta omaggio"
PROMPT 10 1 ""
FIELD LF_RCONDV->QOM
PICTURE "#########@,@@@@@"
END
STRINGA 111 20
BEGIN
KEY "Cod. articolo Omaggio"
PROMPT 11 1 ""
FIELD LF_RCONDV->CODARTOM
END
END // SECTION
END // SECTION
END // BODY
END // FORM

View File

@ -1,125 +0,0 @@
#include "ve3300.h"
PAGE "Stampa condizioni di vendita" -1 -1 64 10
GROUPBOX DLG_NULL 62 5 // groupbox attorno agli elementi di selezione della chiave
BEGIN
PROMPT 1 0 "Selezione"
END
STRING F_TIPO 1 // tipo di archivio
BEGIN
PROMPT 100 100 ""
FLAG "DU"
END
STRING F_L_CATVEN 2 // categoria di vendita, solo listini
BEGIN
PROMPT 2 1 "Cat. vendita "
FLAG "U"
USE CVE
INPUT CODTAB F_L_CATVEN
DISPLAY "Cat." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_L_CATVEN CODTAB
END
LIST F_C_TIPOCF 9 // tipo cliente/fornitore, solo contratti
BEGIN
PROMPT 2 1 "Tipo "
ITEM "C|Cliente"
ITEM "F|Fornitore"
END
NUMBER F_C_CODCF 6 // codice cliente/fornitore, solo contratti
BEGIN
PROMPT 30 1 "Codice "
FLAG "U"
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_TIPOCF TIPOCF
OUTPUT F_C_CODCF CODCF
END
STRING F_L_COD 3 // codice listino, solo listini
BEGIN
PROMPT 2 2 "Codice listino "
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_TIPO TIPO
OUTPUT F_L_CATVEN CATVEN
OUTPUT F_L_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE NORMAL
END
STRING F_C_COD 3 // codice contratto, solo contratti
BEGIN
PROMPT 2 2 "Nr. contratto "
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_TIPOCF TIPOCF
OUTPUT F_C_CODCF CODCF
OUTPUT F_C_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE NORMAL
END
STRING F_O_COD 3 // codice offerta, solo offerte
BEGIN
PROMPT 2 2 "Codice offerta "
FLAG "U"
USE LF_CONDV
INPUT TIPO F_TIPO SELECT
INPUT COD F_O_COD
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT F_TIPO TIPO
OUTPUT F_O_COD COD
OUTPUT F_DESCR DESCR
CHECKTYPE NORMAL
END
STRING F_DESCR 40
BEGIN
PROMTP 2 3 "Descrizione "
FLAGS "D"
END
BOOLEAN F_EXTENDED
BEGIN
PROMPT 2 6 "Stampa estesa"
END
BUTTON DLG_PRINT 9 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

18
ve/ve3900a.h Executable file
View File

@ -0,0 +1,18 @@
//campi maschera ve3900a.h (stampa fatturato)
#define F_ANNO 201
#define F_CODNUM 202
#define F_DESNUM 203
#define F_TIPO 204
#define F_DESTIPO 205
#define F_DASTATO 206
#define F_DADESTATO 207
#define F_ASTATO 208
#define F_ADESTATO 209
#define F_DADATA 210
#define F_ADATA 211
#define F_DACLIFO 212
#define F_DARAGSOC 213
#define F_ACLIFO 214
#define F_ARAGSOC 215
#define F_PROFILO 220

155
ve/ve3900a.rep Executable file
View File

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="ve3900a" lpi="6">
<description>Stampa fatturato</description>
<font face="Courier New" size="10" />
<section type="Head">
<field x="0.12" y="0.5" type="Rettangolo" bg_color="#C0C0C0" width="90" height="0.2" />
</section>
<section type="Head" level="1">
<font face="Arial" bold="1" size="8" />
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.100|RESET,F1.110|RESET,F1.120|RESET,F1.130|RESET,F1.140</prescript>
<field border="2" radius="200" x="24" y="0.5" type="Rettangolo" width="32" height="3" pattern="1" />
<field x="25" y="1.5" type="Testo" align="center" width="30" height="1.5" pattern="1" text="STAMPA FATTURATO">
<font face="Arial" size="12" />
</field>
<field x="2" y="4" type="Stringa" width="20" pattern="1" text="dalla data: ">
<font face="Arial" size="10" />
<source>#DADATA</source>
</field>
<field x="24" y="4" type="Stringa" width="18.5" pattern="1" text="alla data: ">
<font face="Arial" size="10" />
<source>#ADATA</source>
</field>
</section>
<section repeat="1" keep_with_next="1" type="Head" level="2" height="3">
<groupby>CODCF</groupby>
<font face="Arial" bold="1" size="10" />
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.100|RESET,F2.110|RESET,F2.120|RESET,F2.130|RESET,F2.140
MESSAGE RESET,B1</prescript>
<field x="0.5" type="Testo" width="8" pattern="1" text="Cliente" />
<field x="2" y="1.75" type="Testo" width="4" height="0.75" pattern="1" text="Tipo">
<font italic="1" face="Arial" size="8" />
</field>
<field x="6" y="1.75" type="Testo" align="right" width="7" height="0.75" pattern="1" text="Numero">
<font italic="1" face="Arial" size="8" />
</field>
<field x="14" y="1.75" type="Testo" align="center" width="10" height="0.75" pattern="1" text="Data">
<font italic="1" face="Arial" size="8" />
</field>
<field x="29" y="1.75" type="Testo" align="right" width="13" height="0.75" pattern="1" text="Imp. Netto non Sc.">
<font italic="1" face="Arial" size="8" />
</field>
<field x="48" y="1.75" type="Testo" align="right" width="5" height="0.75" pattern="1" text="Sconto ">
<font italic="1" face="Arial" size="8" />
</field>
<field x="56.5" y="1.75" type="Testo" align="right" width="10" height="0.75" pattern="1" text="Imp. Netto Scon.">
<font italic="1" face="Arial" size="8" />
</field>
<field x="68" y="1.75" type="Testo" align="right" width="10" height="0.75" pattern="1" text="Imposta">
<font italic="1" face="Arial" size="8" />
</field>
<field x="25.75" y="1.8" type="Testo" width="2" height="0.75" pattern="1" text="St">
<font italic="1" face="Arial" size="8" />
</field>
<field x="80.87" y="1.81" type="Testo" align="right" width="10" height="0.75" pattern="1" text="Tot. Documento">
<font italic="1" face="Arial" size="8" />
</field>
<field border="1" y="2.75" type="Linea" width="92" height="0" pattern="1" />
<field x="8" type="Stringa" width="7" id="101" pattern="1">
<source>CODCF</source>
</field>
<field x="16" type="Stringa" width="50" id="102" pattern="1">
<prescript description="H2.102 PRESCRIPT">MESSAGE ISAMREAD,20,TIPOCF=C!CODCF=#101,RAGSOC</prescript>
</field>
</section>
<section type="Body" />
<section type="Body" level="1">
<font face="Arial" size="8" />
<postscript description="B1 POSTSCRIPT">MESSAGE RESET,B1</postscript>
<field x="26" type="Stringa" width="1" pattern="1">
<source>DOC.STATO</source>
</field>
<field x="106" type="Stringa" hidden="1" width="10" pattern="1">
<source>CODNUM</source>
</field>
<field x="2" type="Stringa" width="4" id="50" pattern="1">
<source>TIPODOC</source>
</field>
<field x="92" type="Stringa" hidden="1" width="4" id="55" pattern="1">
<source>ANNO</source>
</field>
<field x="6" type="Numero" align="right" link="NDOC" width="7" id="60" pattern="1">
<source>NDOC</source>
</field>
<field x="14" type="Data" width="10" id="65" pattern="1">
<source>DATADOC</source>
</field>
<field x="96" type="Stringa" hidden="1" width="10" id="68" pattern="1">
<source>IF(TIPODOC='NAC',-1,1)</source>
</field>
<field x="31" type="Valuta" align="right" width="11" id="70" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>#68*33.TOTLORDO</source>
<prescript description="B1.70 PRESCRIPT">MESSAGE ADD,F2.100|ADD,F1.100</prescript>
</field>
<field x="43" type="Valuta" align="right" width="10" id="75" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>#68*33.SCONTOD</source>
<prescript description="B1.75 PRESCRIPT">MESSAGE ADD,F2.110|ADD,F1.110</prescript>
</field>
<field x="54" type="Valuta" align="right" width="13" id="80" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>#68*33.IMPONIBILI</source>
<prescript description="B1.80 PRESCRIPT">MESSAGE ADD,F2.120|ADD,F1.120</prescript>
</field>
<field x="68" type="Valuta" align="right" width="10" id="85" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>#68*33.IMPOSTE</source>
<prescript description="B1.85 PRESCRIPT">MESSAGE ADD,F2.130|ADD,F1.130</prescript>
</field>
<field x="78.5" type="Valuta" align="right" width="13" id="90" pattern="1" text="###.###.###,@@">
<source>#68*33.TOTDOC</source>
<prescript description="B1.90 PRESCRIPT">MESSAGE ADD,F2.140|ADD,F1.140</prescript>
</field>
</section>
<section type="Foot">
<font italic="1" face="Arial" size="10" />
<field x="-0.13" y="0.18" type="Rettangolo" bg_color="#C0C0C0" width="92" height="0.2" />
<field y="0.75" type="Stringa" width="20" pattern="1" text="Data: ">
<source>#SYSTEM.DATE</source>
</field>
<field x="82.87" y="0.75" type="Stringa" width="7.5" pattern="1" text="Pag.">
<source>#PAGE</source>
</field>
</section>
<section type="Foot" level="1">
<font face="Arial" bold="1" size="11" />
<field border="2" type="Linea" width="92" height="0" pattern="1" />
<field x="0.5" y="0.25" type="Testo" width="21.5" pattern="1" text="TOTALE GENERALE" />
<field x="29" y="0.25" type="Valuta" align="right" width="13" id="100" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
</field>
<field x="43" y="0.25" type="Valuta" align="right" width="10" id="110" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
</field>
<field x="54" y="0.25" type="Valuta" align="right" width="13" id="120" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
</field>
<field x="68" y="0.25" type="Valuta" align="right" width="10" id="130" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
</field>
<field x="78.5" y="0.25" type="Valuta" align="right" width="13" id="140" pattern="1" hide_zero="1" text="###.###.###,@@">
<font face="Arial" bold="1" size="10" />
</field>
</section>
<section type="Foot" level="2" height="3">
<field border="1" y="0.25" type="Rettangolo" shade_offset="50" width="92" height="1.5" />
<field x="11" y="0.5" type="Testo" width="16.5" pattern="1" text="Totale Cliente" />
<field x="29" y="0.5" type="Valuta" align="right" width="13" id="100" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="43" y="0.5" type="Valuta" align="right" width="10" id="110" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="54" y="0.5" type="Valuta" align="right" width="13" id="120" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="68" y="0.5" type="Valuta" align="right" width="10" id="130" pattern="1" hide_zero="1" text="###.###.###,@@" />
<field x="78.5" y="0.5" type="Valuta" align="right" width="13" id="140" pattern="1" hide_zero="1" text="###.###.###,@@" />
</section>
<sql>USE DOC KEY 3
SELECT (BETWEEN(STATO,#DASTATO,#ASTATO))&#26;&#26;(CODNUM=#CODNUM)&#26;&#26;(TIPODOC=#TIPODOC)&#26;&#26;(BETWEEN(CODCF,#DACLIFO,#ACLIFO))
BY CODCF NDOC
FROM DATADOC=#DADATA PROVV='D' ANNO=#ANNO
TO DATADOC=#ADATA PROVV='D' ANNO=#ANNO </sql>
</report>

212
ve/ve3900a.uml Executable file
View File

@ -0,0 +1,212 @@
#include "ve3900a.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 fatturato" 0 2 0 0
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 1 1 "@bDocumenti da considerare"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 2 "Anno "
USE ESC
INPUT CODTAB F_ANNO
DISPLAY "Codice" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
OUTPUT F_DADATA D0
OUTPUT F_ADATA D1
FLAGS "Z"
FIELD #ANNO
CHECKTYPE REQUIRED
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 3 "Numer. "
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
FLAGS "UPA"
FIELD #CODNUM
CHECKTYPE REQUIRED
END
STRING F_DESNUM 50
BEGIN
PROMPT 20 3 ""
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM
CHECKTYPE NORMAL
END
STRING F_TIPO 4
BEGIN
PROMPT 2 4 "Tipo "
USE %TIP
INPUT CODTAB F_TIPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPO CODTAB
OUTPUT F_DESTIPO S0
FLAGS "UPA"
FIELD #TIPODOC
CHECKTYPE NORMAL
END
STRING F_DESTIPO 50
BEGIN
PROMPT 20 4 ""
USE %TIP KEY 2
INPUT S0 F_DESTIPO
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPO
CHECKTYPE NORMAL
END
NUMBER F_DASTATO 1
BEGIN
PROMPT 2 5 "Da stato "
USE %STD
INPUT CODTAB F_DASTATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DASTATO CODTAB
OUTPUT F_DADESTATO S0
FLAGS "U"
FIELD #DASTATO
CHECKTYPE NORMAL
END
STRING F_DADESTATO 50
BEGIN
PROMPT 20 5 ""
USE %STD KEY 2
INPUT S0 F_DADESTATO
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DASTATO
CHECKTYPE NORMAL
END
NUMBER F_ASTATO 1
BEGIN
PROMPT 2 6 "A stato "
USE %STD
INPUT CODTAB F_ASTATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_ASTATO CODTAB
OUTPUT F_ADESTATO S0
FLAGS "U"
FIELD #ASTATO
CHECKTYPE NORMAL
END
STRING F_ADESTATO 50
BEGIN
PROMPT 20 6 ""
USE %STD KEY 2
INPUT S0 F_ADESTATO
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_ASTATO
CHECKTYPE NORMAL
END
DATE F_DADATA
BEGIN
PROMPT 2 7 "Da data "
FIELD #DADATA
END
DATE F_ADATA
BEGIN
PROMPT 2 8 "A data "
FIELD #ADATA
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 10 "@bFiltri secondari"
END
NUMBER F_DACLIFO 6
BEGIN
PROMPT 2 11 "Da Cliente "
USE 20
INPUT TIPOCF "C"
INPUT CODCF F_DACLIFO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_DACLIFO CODCF
OUTPUT F_DARAGSOC RAGSOC
FLAGS "R"
FIELD #DACLIFO
CHECKTYPE NORMAL
END
STRING F_DARAGSOC 50
BEGIN
PROMPT 25 11 ""
USE 20 KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC F_DARAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_DACLIFO
CHECKTYPE NORMAL
END
NUMBER F_ACLIFO 6
BEGIN
PROMPT 2 12 "A Cliente "
USE 20
INPUT TIPOCF "C"
INPUT CODCF F_ACLIFO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_ACLIFO CODCF
OUTPUT F_ARAGSOC RAGSOC
FLAGS "R"
FIELD #ACLIFO
CHECKTYPE NORMAL
END
STRING F_ARAGSOC 50
BEGIN
PROMPT 25 12 ""
USE 20 KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC F_ARAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_ACLIFO
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK