Riportata la versione 98.01.01CD sul main trunk

git-svn-id: svn://10.65.10.50/trunk@5991 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1998-01-20 16:01:01 +00:00
parent 132728e7d1
commit cff622ac94
12 changed files with 1048 additions and 65 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -1,5 +1,342 @@
#include <applicat.h>
#include <mask.h>
#include <form.h>
#include <tabutil.h>
#include "pr1200a.h"
#include "percprov.h"
static word __lenfields[4];
class TPercprovv_form : public TForm
{
TString _conf;
protected:
virtual bool validate(TForm_item &, TToken_string &);
public:
void set_conf(const char* s) { _conf = s;}
TPercprovv_form(const char *);
virtual ~TPercprovv_form(){};
};
TPercprovv_form::TPercprovv_form(const char* name): TForm()
{
read(name);
}
bool TPercprovv_form::validate(TForm_item &cf, TToken_string &s)
{
const TString code(s.get(0));
TString valore;
if (code == "_FILLFIELDS")
{
TString value(cf.get()), x;
const int l = _conf.len();
short flid = 0;
for (int i = 0; i < l; i++)
{
switch (_conf[i])
{
case 'C':
flid = FRM_CLI;
break;
case 'V':
flid = FRM_CVE;
break;
case 'A':
flid = FRM_AGE;
break;
case 'P':
flid = FRM_PAG;
break;
case 'S':
flid = FRM_SCO;
break;
case 'Z':
flid = FRM_ZON;
break;
case 'M':
flid = FRM_ART;
break;
case 'E':
flid = FRM_GMC;
break;
case 'R':
flid = FRM_SMC;
break;
case 'F':
flid = FRM_RFA;
break;
default:
flid = 0;
break;
}
if (flid == 0)
break;
// Estrae il valore da value in x tramite __lenfields[]
x = value.left(__lenfields[i]);
value.ltrim(__lenfields[i]);
// Setta il TForm_item corrispondente
TForm_item& fi = find_field('B', odd_page, flid);
fi.set(x);
}
}
return TForm::validate(cf, s);
}
class TStampa_percprovv : public TSkeleton_application
{
TLocalisamfile *_percprov;
TTable *_apr;
TMask * _m;
protected:
void compose_ranges(const TString& k, TString& s1, TString& s2);
static bool codarc_handler(TMask_field& fld, KEY k);
virtual bool create();
virtual bool destroy();
virtual void main_loop();
};
inline TStampa_percprovv& app() { return (TStampa_percprovv&) main_app();}
bool TStampa_percprovv::codarc_handler(TMask_field& fld, KEY k)
{
if (fld.to_check(k) && k == K_TAB)
{
TMask& m = fld.mask();
TTable* apr = app()._apr;
apr->put("CODTAB", fld.get());
if (apr->read() == NOERR)
{
TString s3(apr->get("S3"));
const int len = s3.len();
m.hide(-G_ALL);
m.reset(-G_ALL);
for (int i = 0; i<len; i++)
switch (s3[i])
{
case 'C':
m.show(-G_CLI);
break;
case 'V':
m.show(-G_CATV);
break;
case 'A':
m.show(-G_AGE);
break;
case 'P':
m.show(-G_PAG);
break;
case 'S':
m.show(-G_SCONTO);
break;
case 'Z':
m.show(-G_ZONA);
break;
case 'M':
m.show(-G_ART);
break;
case 'E':
m.show(-G_GMC);
break;
case 'R':
m.show(-G_SMC);
break;
case 'F':
m.show(-G_RFA);
break;
default:
break;
}
}
}
return TRUE;
}
void TStampa_percprovv::compose_ranges(const TString& k, TString& s1, TString& s2)
{
const int len = k.len();
TString formato,ws;
short id_from, id_to;
s1 = "";
s2 = "";
for (int i=0; i<len; i++)
{
switch(k[i])
{
case 'C':
id_from = F_FROMCLIENTE;
id_to = F_TOCLIENTE;
break;
case 'V':
id_from = F_FROMCATVEN;
id_to = F_TOCATVEN;
break;
case 'A':
id_from = F_FROMCODAGE;
id_to = F_TOCODAGE;
break;
case 'P':
id_from = F_FROMCODPAG;
id_to = F_TOCODPAG;
break;
case 'S':
id_from = F_FROMCODSCONTO;
id_to = F_TOCODSCONTO;
break;
case 'Z':
id_from = F_FROMCODZONA;
id_to = F_TOCODZONA;
break;
case 'M':
id_from = F_FROMCODART;
id_to = F_TOCODART;
break;
case 'E':
id_from = F_FROMCODGMC;
id_to = F_TOCODGMC;
break;
case 'R':
id_from = F_FROMCODSMC;
id_to = F_TOCODSMC;
break;
case 'F':
id_from = F_FROMCODRFA;
id_to = F_TOCODRFA;
break;
default:
id_from = id_to = 0;
break;
}
if (id_from == 0)
break;
__lenfields[i] = _m->field(id_from).size();
if (id_from == F_FROMCLIENTE) // I codici clienti vanno allineati a destra!
formato.format("%%%ds",__lenfields[i]);
else
formato.format("%%-%ds",__lenfields[i]); // Gli altri a sinistra
ws.format(formato,(const char*)_m->get(id_from));
s1 << ws;
ws.format(formato,(const char*)_m->get(id_to));
s2 << ws;
}
}
void TStampa_percprovv::main_loop()
{
TPercprovv_form frm("pr1200a");
TRectype from(LF_PERCPROV), to(LF_PERCPROV);
TString codpr, s1,s2, s3;
_m->hide(-G_ALL);
while (_m->run() == K_ENTER)
{
codpr = _m->get(F_CODPR); // Codice archivio
_apr->put("CODTAB", codpr);
if (_apr->read() == NOERR) // legge la stringa di definizione dei campi
s3 = _apr->get("S3");
else
s3 = "----";
// Compone le stringhe per from e to
compose_ranges(s3, s1, s2);
from.zero();
from.put(PER_CODPR, codpr);
from.put(PER_KEYORD,s1);
to = from;
to.put(PER_KEYORD, s2);
TCursor* cur = frm.cursor();
cur->setregion(from, to);
if (cur->items() == 0L)
{
warning_box("Non vi sono elementi da stampare nell'intervallo indicato.");
continue;
}
for (short k = FRM_CLI; k <= FRM_RFA; k++) // Nasconde tutti gli items del cazzo
{
TForm_item& fi = frm.find_field('B', odd_page, k);
fi.hide();
}
// Ripristina solo quelli necessari cambiandogli la coordinata y in sequenza (tanto al massimo
// sono 4)
const int l = s3.len();
short flid = 0;
for (int i=0; i < l; i++)
{
switch (s3[i])
{
case 'C':
flid = FRM_CLI;
break;
case 'V':
flid = FRM_CVE;
break;
case 'A':
flid = FRM_AGE;
break;
case 'P':
flid = FRM_PAG;
break;
case 'S':
flid = FRM_SCO;
break;
case 'Z':
flid = FRM_ZON;
break;
case 'M':
flid = FRM_ART;
break;
case 'E':
flid = FRM_GMC;
break;
case 'R':
flid = FRM_SMC;
break;
case 'F':
flid = FRM_RFA;
break;
default:
flid = 0;
break;
}
if (flid == 0)
break;
TForm_item& fi = frm.find_field('B', odd_page, flid);
fi.show();
fi.y() = i+1;
}
frm.set_conf(s3);
frm.print();
}
}
bool TStampa_percprovv::create()
{
_m = new TMask ("pr1200a");
_m->set_handler(F_CODPR, codarc_handler);
_apr = new TTable("APR");
_percprov = new TLocalisamfile(LF_PERCPROV);
return TSkeleton_application::create();
}
bool TStampa_percprovv::destroy()
{
delete _m;
delete _apr;
delete _percprov;
return TSkeleton_application::destroy();
}
int pr1200(int argc, char** argv)
{
TStampa_percprovv a;
a.run(argc,argv,"Stampa % di provvigione");
return 0;
}

207
pr/pr1200a.frm Executable file
View File

@ -0,0 +1,207 @@
// Form di stampa archivio percentuali di provvigione
#include "pr1200a.h"
USE LF_PERCPROV KEY 1
JOIN APR ALIAS 201 INTO CODTAB==CODPR
END
DESCRIPTION
BEGIN
END
GENERAL
BEGIN
OFFSET 0 0
FONT "Courier New"
SIZE 10
END
SECTION GRAPHICS FIRST 67
LINEA 1 80 1
BEGIN
KEY "Riga di separazione titolo/sottotitolo"
PROMPT 1 3 "@B"
END
LINEA 2 80 1
BEGIN
KEY "Riga di separazione titolo/corpo"
PROMPT 1 5 "@B"
END
END
SECTION HEADER ODD 5
STRINGA 1 40 1
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
MESSAGE _DITTA, !RAGSOC
END
STRINGA 2 10
BEGIN
KEY "Data"
PROMPT 50 1 "Data "
MESSAGE _TODAY
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 70 1 "Pagina "
MESSAGE _PAGENO
END
NUMERO 4 40
BEGIN
KEY "Intestazione stampa"
PROMPT 24 2 "Stampa percentuali di provvigione"
END
STRINGA 6 15
BEGIN
KEY "Codice Archivio"
PROMPT 2 4 "Archivio: "
FIELD CODPR
END
STRINGA 7 30
BEGIN
KEY "Codice Archivio"
PROMPT 16 4 ""
FIELD 201@->S0
END
STRINGA 8 6
BEGIN
KEY "Tipo provvigione (intestazione)"
PROMPT 40 4 "Tipo"
END
STRINGA 9 15
BEGIN
KEY "Percentuale provvigione (intestazione)"
PROMPT 53 4 "% Provvigione"
END
STRINGA 10 10
BEGIN
KEY "Provvigione ad importo(intestazione)"
PROMPT 68 4 "Importo"
END
END
SECTION BODY ODD 5
STRINGA 99 20
BEGIN
KEY "Chiave Ordinamento"
PROMPT 2 1 ""
FIELD KEYORD
MESSAGE _FILLFIELDS
FLAGS "H"
END
STRINGA FRM_CLI 20
BEGIN
KEY "Cod. cliente"
PROMPT 2 1 "Cod. Cliente: "
FLAGS "H"
END
STRINGA FRM_CVE 20
BEGIN
KEY "Cat. Vendita"
PROMPT 2 1 "Cat. Vendita: "
FLAGS "H"
END
STRINGA FRM_AGE 20
BEGIN
KEY "Cod. Agente"
PROMPT 2 1 "Cod. Agente: "
FLAGS "H"
END
STRINGA FRM_PAG 20
BEGIN
KEY "Cod. Pagamento"
PROMPT 2 1 "Cod. Pagamento "
FLAGS "H"
END
STRINGA FRM_SCO 20
BEGIN
KEY "Cod. Sconto"
PROMPT 2 1 "Cod. Sconto: "
FLAGS "H"
END
STRINGA FRM_ZON 20
BEGIN
KEY "Cod. Zona"
PROMPT 2 1 "Cod. Zona: "
FLAGS "H"
END
STRINGA FRM_ART 30
BEGIN
KEY "Cod. Articolo"
PROMPT 2 1 "Cod. Articolo: "
FLAGS "H"
END
STRINGA FRM_GMC 20
BEGIN
KEY "Cod. GMC"
PROMPT 2 1 "Cod. GMC: "
FLAGS "H"
END
STRINGA FRM_SMC 20
BEGIN
KEY "Cod. SMC"
PROMPT 2 1 "Cod. SMC: "
FLAGS "H"
END
STRINGA FRM_RFA 20
BEGIN
KEY "Cod. RFA"
PROMPT 2 1 "Cod. RFA: "
FLAGS "H"
END
LISTA 11 20
BEGIN
KEY "Tipo di provvigione"
PROMPT 40 4 "Tipo provvigione: "
FIELD TIPO
ITEM "P|Percentuale"
ITEM "I|Importo unitario"
ITEM "V|Valore complessivo"
END
NUMBER 12 6
BEGIN
PROMPT 54 4 ""
FIELD PERCPROVV
PICTURE "##@,@@"
END
NUMERO 13 18
BEGIN
KEY "Importo"
PROMPT 62 4 ""
FIELD IMPORTO
PICTURE "###.###.###.###"
END
END
END // Section body

48
pr/pr1200a.h Executable file
View File

@ -0,0 +1,48 @@
// campi maschera pr1200a.uml
#define F_CODPR 101
#define F_DESCR 102
#define F_FROMCLIENTE 103
#define F_TOCLIENTE 104
#define F_FROMCATVEN 105
#define F_TOCATVEN 106
#define F_FROMCODAGE 107
#define F_TOCODAGE 108
#define F_FROMCODPAG 109
#define F_TOCODPAG 110
#define F_FROMCODSCONTO 111
#define F_TOCODSCONTO 112
#define F_FROMCODZONA 113
#define F_TOCODZONA 114
#define F_FROMCODART 115
#define F_TOCODART 116
#define F_FROMCODGMC 117
#define F_TOCODGMC 118
#define F_FROMCODSMC 119
#define F_TOCODSMC 120
#define F_FROMCODRFA 121
#define F_TOCODRFA 122
#define G_ALL 1
#define G_CLI 5
#define G_CATV 6
#define G_AGE 7
#define G_PAG 8
#define G_SCONTO 9
#define G_ZONA 10
#define G_ART 11
#define G_GMC 12
#define G_SMC 13
#define G_RFA 14
#define FRM_CLI 1
#define FRM_CVE 2
#define FRM_AGE 3
#define FRM_PAG 4
#define FRM_SCO 5
#define FRM_ZON 6
#define FRM_ART 7
#define FRM_GMC 8
#define FRM_SMC 9
#define FRM_RFA 10

330
pr/pr1200a.uml Executable file
View File

@ -0,0 +1,330 @@
#include "pr1200a.h"
PAGE "Stampa % di provvigione" -1 -1 78 18
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 1 1 "Archivio"
FLAGS "R"
END
STRING F_CODPR 2
BEGIN
PROMPT 2 2 "Codice archivio "
FIELD CODPR
FLAGS "UZ"
USE APR
INPUT CODTAB F_CODPR
DISPLAY "Codice@10" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODPR CODTAB
OUTPUT F_DESCR S0
CHECKTYPE REQUIRED
WARNING "Codice archivio non presente"
END
STRING F_DESCR 50
BEGIN
PROMPT 2 3 "Descrizione "
FLAGS "D"
END
STRING F_FROMCLIENTE 6
BEGIN
PROMPT 2 6 "Da cod. cliente "
FLAGS "R"
KEY 1
USE LF_CLIFO KEY 1 SELECT TIPOCF=="C"
INPUT TIPOCF "C"
INPUT CODCF F_FROMCLIENTE
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_FROMCLIENTE CODCF
GROUP G_CLI G_ALL
END
STRING F_TOCLIENTE 6
BEGIN
PROMPT 40 6 "A cod. cliente "
FLAGS "R"
KEY 1
USE LF_CLIFO KEY 1 SELECT TIPOCF=="C"
INPUT TIPOCF "C"
INPUT CODCF F_TOCLIENTE
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_TOCLIENTE CODCF
NUM_EXPR #F_TOCLIENTE>=#F_FROMCLIENTE
GROUP G_CLI G_ALL
WARNING "Range codice cliente non corretto"
END
STRING F_FROMCATVEN 2
BEGIN
PROMPT 2 7 "Da cat. vendita "
FLAGS "U"
KEY 1
USE CVE
INPUT CODTAB F_FROMCATVEN
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCATVEN CODTAB
GROUP G_CATV G_ALL
END
STRING F_TOCATVEN 2
BEGIN
PROMPT 40 7 "A cat. vendita "
FLAGS "U"
KEY 1
USE CVE
INPUT CODTAB F_TOCATVEN
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCATVEN CODTAB
GROUP G_CATV G_ALL
STR_EXPR #F_TOCATVEN>=#F_FROMCATVEN
WARNING "Range codice categoria vendita non corretto"
END
STRING F_FROMCODAGE 5
BEGIN
PROMPT 2 8 "Da cod. agente "
FLAGS "UZ"
KEY 1
USE LF_AGENTI
INPUT CODAGE F_FROMCODAGE
DISPLAY "Codice" CODAGE
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_FROMCODAGE CODAGE
GROUP G_AGE G_ALL
END
STRING F_TOCODAGE 5
BEGIN
PROMPT 40 8 "A cod. agente "
FLAGS "UZ"
KEY 1
USE LF_AGENTI
INPUT CODAGE F_TOCODAGE
DISPLAY "Codice" CODAGE
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_TOCODAGE CODAGE
GROUP G_AGE G_ALL
STR_EXPR #F_TOCODAGE>=#F_FROMCODAGE
WARNING "Range codice agente non corretto"
END
STRING F_FROMCODPAG 4
BEGIN
PROMPT 2 9 "Da cod. pagamento "
FLAGS "UZ"
KEY 1
USE %CPG
INPUT CODTAB F_FROMCODPAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODPAG CODTAB
GROUP G_PAG G_ALL
END
STRING F_TOCODPAG 4
BEGIN
PROMPT 40 9 "A cod. pagamento "
FLAGS "UZ"
KEY 1
USE %CPG
INPUT CODTAB F_TOCODPAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODPAG CODTAB
GROUP G_PAG G_ALL
STR_EXPR #F_TOCODPAG>=#F_FROMCODPAG
WARNING "Range codice pagamento non corretto"
END
STRING F_FROMCODSCONTO 2
BEGIN
PROMPT 2 10 "Da cod. sconto "
FLAGS "U"
KEY 1
USE %SCC
INPUT CODTAB F_FROMCODSCONTO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODSCONTO CODTAB
GROUP G_SCONTO G_ALL
END
STRING F_TOCODSCONTO 2
BEGIN
PROMPT 40 10 "A cod. sconto "
FLAGS "U"
KEY 1
USE %SCC
INPUT CODTAB F_TOCODSCONTO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODSCONTO CODTAB
GROUP G_SCONTO G_ALL
STR_EXPR #F_TOCODSCONTO>=#F_FROMCODSCONTO
WARNING "Range codice sconto non corretto"
END
STRING F_FROMCODZONA 2
BEGIN
PROMPT 2 11 "Da cod. zona "
FLAGS "U"
KEY 1
USE ZON
INPUT CODTAB F_FROMCODZONA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODZONA CODTAB
GROUP G_ZONA G_ALL
END
STRING F_TOCODZONA 2
BEGIN
PROMPT 40 11 "A cod. zona "
FLAGS "U"
KEY 1
USE ZON
INPUT CODTAB F_TOCODZONA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODZONA CODTAB
GROUP G_ZONA G_ALL
STR_EXPR #F_TOCODZONA>=#F_FROMCODZONA
WARNING "Range codice zona non corretto"
END
STRING F_FROMCODART 20
BEGIN
PROMPT 2 12 "Da cod. art. "
FLAGS "U"
KEY 1
USE LF_ANAMAG
INPUT CODART F_FROMCODART
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_FROMCODART CODART
GROUP G_ART G_ALL
END
STRING F_TOCODART 20
BEGIN
PROMPT 40 12 "A cod. art. "
FLAGS "U"
KEY 1
USE LF_ANAMAG
INPUT CODART F_TOCODART
DISPLAY "Articolo@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_TOCODART CODART
GROUP G_ART G_ALL
STR_EXPR #F_TOCODART>=#F_FROMCODART
WARNING "Range codice articolo non corretto"
END
STRING F_FROMCODGMC 3
BEGIN
PROMPT 2 13 "Da cat. merc. "
FLAGS "U"
KEY 1
USE GMC SELECT CODTAB[4,5]==""
INPUT CODTAB F_FROMCODGMC
DISPLAY "Codice" CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODGMC CODTAB[1,3]
GROUP G_GMC G_ALL
END
STRING F_TOCODGMC 3
BEGIN
PROMPT 40 13 "A cat. merc. "
FLAGS "U"
KEY 1
USE GMC SELECT CODTAB[4,5]==""
INPUT CODTAB F_TOCODGMC
DISPLAY "Codice" CODTAB[1,3]
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODGMC CODTAB[1,3]
GROUP G_GMC G_ALL
STR_EXPR #F_TOCODGMC>=#F_FROMCODGMC
WARNING "Range categoria merceologica non corretto"
END
STRING F_FROMCODSMC 5
BEGIN
PROMPT 2 14 "Da sottocat. merc. "
FLAGS "U"
KEY 1
USE GMC //SELECT CODTAB[4,5]!=""
INPUT CODTAB F_FROMCODSMC
DISPLAY "Cat." CODTAB[1,3]
DISPLAY "Sotto cat." CODTAB[4,5]
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODSMC CODTAB
GROUP G_SMC G_ALL
END
STRING F_TOCODSMC 5
BEGIN
PROMPT 40 14 "A sottocat. merc. "
FLAGS "U"
KEY 1
USE GMC //SELECT CODTAB[4,5]!=""
INPUT CODTAB F_TOCODSMC
DISPLAY "Cat." CODTAB[1,3]
DISPLAY "Sotto cat." CODTAB[4,5]
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODSMC CODTAB
GROUP G_SMC G_ALL
STR_EXPR #F_TOCODSMC>=#F_FROMCODSMC
WARNING "Range sottocategoria merceologica non corretto"
END
STRING F_FROMCODRFA 5
BEGIN
PROMPT 2 15 "Da raggr. fiscale "
FLAGS "U"
KEY 1
USE RFA
INPUT CODTAB F_FROMCODRFA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_FROMCODRFA CODTAB
GROUP G_RFA G_ALL
END
STRING F_TOCODRFA 5
BEGIN
PROMPT 40 15 "A raggr. fiscale "
FLAGS "U"
KEY 1
USE RFA
INPUT CODTAB F_TOCODRFA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TOCODRFA CODTAB
GROUP G_RFA G_ALL
STR_EXPR #F_TOCODRFA>=#F_FROMCODRFA
WARNING "Range raggruppamento fiscale non corretto"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,6 +1,7 @@
#include <mask.h>
#include <applicat.h>
#include <form.h>
#include <printer.h>
#include <progind.h>
#include "provv.h"
@ -61,21 +62,18 @@ void TStampa_schedeprovv::main_loop()
{
TForm frm("pr1300a");
//const TPrint_section& head = frm.section('H', odd_page);
//const TPrint_section& foot = frm.section('F', odd_page);
const int hh = 3;//head.height();
const int fh = 1;//foot.height();
const int fl = frm.height();
const int hh = 7;
const int fh = 1;
const int fl = printer().formlen();
int rows[4]; // Righe orizzontali
rows[0] = hh-2; // Terzultima riga della testata
rows[1] = hh; // Ultima riga della testata
rows[2] = fl-fh+1; // Prima riga del footer
rows[0] = hh-3;
rows[1] = hh;
rows[2] = fl-1;
rows[3] = 0;
frm.genera_intestazioni(odd_page, rows[1]-1);
//frm.genera_fincatura(odd_page, rows[0], rows[1], rows);
frm.genera_intestazioni(odd_page, hh-2);
frm.genera_fincatura(odd_page, hh-3, fl-1, rows);
while (_m->run()!=K_QUIT)
{

View File

@ -24,7 +24,7 @@ BEGIN
END
SECTION HEADER ODD 4
SECTION HEADER ODD 7
STRINGA 1 40 1
BEGIN
@ -36,22 +36,30 @@ END
STRINGA 2 10
BEGIN
KEY "Data"
PROMPT 45 1 "Data "
PROMPT 126 1 "Data "
MESSAGE _TODAY
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 70 1 "Pagina "
PROMPT 145 1 "Pagina "
MESSAGE _PAGENO
END
STRINGA 4
BEGIN
KEY "TITOLO"
PROMPT 60 3 "Stampa schede di provvigione"
END
/*
STRINGA 5 146
BEGIN
KEY "Separatore (iniziale)"
PROMPT 1 4 "------------------------------------------------------------------------------------------------------------------------------------------------------"
END
*/
/*
STRINGA 3
@ -139,7 +147,7 @@ STRINGA 1 20
BEGIN
SPECIAL STRINGA INTESTAZIONE "Agente" "Agente"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
KEY "Descrizione"
PROMPT 1 1 "Agente "
MESSAGE RESET,G_TOTAGE@
@ -150,7 +158,7 @@ STRINGA 2 30
BEGIN
SPECIAL STRINGA INTESTAZIONE "Rag.Soc." "Ragione Sociale"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
KEY "RSoc"
PROMPT 2 1 ""
FIELD LF_AGENTI->RAGSOC
@ -230,10 +238,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
// Header clienti
SECTION HCLIENTI 1 1 1 GROUP
STRINGA 1 15
STRINGA 1 20
BEGIN
KEY "Descrizione"
PROMPT 1 1 " Cliente "
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
FIELD LF_PROVV->CODCLI
MESSAGE RESET,G_TOTCLI@
END
@ -242,6 +251,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
BEGIN
KEY "RSoc"
PROMPT 2 1 ""
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
FIELD LF_CLIFO->RAGSOC
MESSAGE COPY,302
END
@ -254,6 +264,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
STRINGA 1 20
BEGIN
KEY "ndoc"
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
PROMPT 1 1 " Documento"
MESSAGE RESET,G_TOTDOC@
END
@ -262,6 +273,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
BEGIN
KEY "DATADOC"
PROMPT 2 1 ""
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
MESSAGE _STREXPR,CODNUM+"/"+NDOC+" del "+DATADOC
MESSAGE COPY,202
END
@ -273,20 +285,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
BEGIN
KEY "FATTORE DI CONVERSIONE"
FLAGS "H"
MESSAGE _NUMEXPR,IF(CODVAL,1,CAMBIO)
MESSAGE _NUMEXPR,IF(CODVAL,CAMBIO,1)
END
SECTION RATA_DAPAGARE 1 1 1 STREXPR LF_PROVV->SALDATA!="X"
STRINGA 101 15
STRINGA 101 20
BEGIN
KEY "nrata"
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
PROMPT 1 1 " Rata "
FIELD LF_PROVV->NRATA
END
STRINGA 102 15
STRINGA 102 30
BEGIN
KEY "DATADOC"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
PROMPT 2 1 "del "
FIELD LF_PROVV->DATASCAD
END
@ -354,16 +368,18 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END // RATA
SECTION RATA_PAGATA 1 1 1 STREXPR LF_PROVV->SALDATA=="X"
STRINGA 101 15
STRINGA 101 20
BEGIN
KEY "nrata"
PROMPT 1 1 " Rata "
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
FIELD LF_PROVV->NRATA
END
STRINGA 102 15
STRINGA 102 30
BEGIN
KEY "DATADOC"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
PROMPT 2 1 "del "
FIELD LF_PROVV->DATASCAD
END
@ -426,13 +442,20 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
STRINGA 201 20
BEGIN
KEY "ndoc"
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
PROMPT 1 1 " Totale documento"
END
STRINGA 202 30
BEGIN
KEY "DESCR"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
PROMPT 2 1 ""
END
STRINGA 3 6
BEGIN
KEY "CODVAL"
PROMPT 3 1 ""
END
NUMBER 203 15
BEGIN
KEY "IMPORTO"
@ -497,13 +520,20 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
STRINGA 301 20
BEGIN
KEY "cli"
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
PROMPT 1 1 " Totale cliente "
END
STRINGA 302 30
BEGIN
KEY "DESCR"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
PROMPT 2 1 ""
END
STRINGA 3 6
BEGIN
KEY "CODVAL"
PROMPT 3 1 ""
END
NUMBER 303 15
BEGIN
KEY "IMPORTO"
@ -565,12 +595,14 @@ END // end clienti
NUMERO 401 20
BEGIN
SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
PROMPT 1 2 "Totale agente"
END
STRINGA 402 30
BEGIN
KEY "DESCR"
SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
PROMPT 2 2 ""
END
NUMBER 403 15
@ -627,7 +659,9 @@ END // end clienti
END // Fine body
/*
SECTION FOOTER ODD 3
END // Fine footer
END // Fine Form
*/

View File

@ -18,9 +18,9 @@ BEGIN
PROMPT 2 3 " all'agente "
FLAGS "U"
COPY USE F_DAAGE
INPUT CODART F_AAGE
INPUT CODAGE F_AAGE
COPY DISPLAY F_DAAGE
OUTPUT F_AAGE CODART
OUTPUT F_AAGE CODAGE
GROUP G_CODAGE
END

View File

@ -199,9 +199,11 @@ bool TStampa_statistiche_app::menu(MENU_TAG)
LF_PROVV, (const char*)ds1, LF_PROVV, (const char*) ds2, LF_PROVV);
ssec.setcondition(cond, _strexpr);
}
ds1 = date_from.string(ANSI);
ds2 = date_to.string(ANSI);
filter_expr.format("(ANSI(%d->DATADOC)>=\"%s\") && (ANSI(%d->DATADOC)<=\"%s\")",
LF_PROVV, (const char*)date_from.string(ANSI), LF_PROVV, (const char*) date_to.string(ANSI));
LF_PROVV, (const char*)ds1, LF_PROVV, (const char*) ds2);
// Setta il filtro sul cursore (attenzione se e' ordinato per ragione sociale)
TSorted_cursor* cur = normal_order ? cur1 : cur2;

View File

@ -10,7 +10,7 @@
USE LF_AGENTI
JOIN LF_PROVV KEY 3 INTO CODAGE==CODAGE
JOIN LF_PROVV KEY 3 INTO CODAGE=CODAGE
END
DESCRIPTION
@ -89,7 +89,7 @@ BEGIN
PROMPT 3 1 ""
END
NUMBER 4 14
NUMBER 4 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CFatturato" "Fatturato (1)"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -98,7 +98,7 @@ BEGIN
PROMPT 4 1 ""
END
NUMBER 5 14
NUMBER 5 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CProvvigione" "Provvigione (1)"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -116,7 +116,7 @@ BEGIN
PROMPT 6 1 ""
END
NUMBER 7 14
NUMBER 7 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CFatturato" "Fatturato (2)"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -125,9 +125,9 @@ BEGIN
PROMPT 7 1 ""
END
NUMBER 8 14
NUMBER 8 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "Provvigione" "Provvigione (2)"
SPECIAL STRINGA INTESTAZIONE "@CProvvigione" "Provvigione (2)"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Provvigione (2)"
@ -549,7 +549,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT1 14
NUMBER F_FAT1 15
BEING
KEY "Fatturato (1)"
PROMPT 4 1 ""
@ -557,7 +557,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO1 14
NUMBER F_PRO1 15
BEING
KEY "Provvigione (1)"
PROMPT 5 1 ""
@ -572,7 +572,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT2 14
NUMBER F_FAT2 15
BEING
KEY "Fatturato (2)"
PROMPT 7 1 ""
@ -580,7 +580,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO2 14
NUMBER F_PRO2 15
BEING
KEY "Provvigione (2)"
PROMPT 8 1 ""
@ -595,7 +595,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT3 14
NUMBER F_FAT3 15
BEING
KEY "Fatturato (3)"
PROMPT 4 2 ""
@ -603,7 +603,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO3 14
NUMBER F_PRO3 15
BEING
KEY "Provvigione (3)"
PROMPT 5 2 ""
@ -618,7 +618,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT4 14
NUMBER F_FAT4 15
BEING
KEY "Fatturato (4)"
PROMPT 7 2 ""
@ -626,7 +626,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO4 14
NUMBER F_PRO4 15
BEING
KEY "Provvigione (4)"
PROMPT 8 2 ""
@ -641,7 +641,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT5 14
NUMBER F_FAT5 15
BEING
KEY "Fatturato (5)"
PROMPT 4 3 ""
@ -649,7 +649,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO5 14
NUMBER F_PRO5 15
BEING
KEY "Provvigione (5)"
PROMPT 5 3 ""
@ -664,7 +664,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT6 14
NUMBER F_FAT6 15
BEING
KEY "Fatturato (6)"
PROMPT 7 3 ""
@ -672,7 +672,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO6 14
NUMBER F_PRO6 15
BEING
KEY "Provvigione (6)"
PROMPT 8 3 ""
@ -687,7 +687,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT7 14
NUMBER F_FAT7 15
BEING
KEY "Fatturato (7)"
PROMPT 4 4 ""
@ -695,7 +695,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO7 14
NUMBER F_PRO7 15
BEING
KEY "Provvigione (7)"
PROMPT 5 4 ""
@ -710,7 +710,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT8 14
NUMBER F_FAT8 15
BEING
KEY "Fatturato (8)"
PROMPT 7 4 ""
@ -718,7 +718,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO8 14
NUMBER F_PRO8 15
BEING
KEY "Provvigione (8)"
PROMPT 8 4 ""
@ -733,7 +733,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT9 14
NUMBER F_FAT9 15
BEING
KEY "Fatturato (9)"
PROMPT 4 5 ""
@ -741,7 +741,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO9 14
NUMBER F_PRO9 15
BEING
KEY "Provvigione (9)"
PROMPT 5 5 ""
@ -756,7 +756,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT10 14
NUMBER F_FAT10 15
BEING
KEY "Fatturato (10)"
PROMPT 7 5 ""
@ -764,7 +764,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO10 14
NUMBER F_PRO10 15
BEING
KEY "Provvigione (10)"
PROMPT 8 5 ""
@ -779,7 +779,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT11 14
NUMBER F_FAT11 15
BEING
KEY "Fatturato (11)"
PROMPT 4 6 ""
@ -787,7 +787,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO11 14
NUMBER F_PRO11 15
BEING
KEY "Provvigione (11)"
PROMPT 5 6 ""
@ -802,7 +802,7 @@ BEGIN
MESSAGE _MONTHRANGE
END
NUMBER F_FAT12 14
NUMBER F_FAT12 15
BEING
KEY "Fatturato (12)"
PROMPT 7 6 ""
@ -810,7 +810,7 @@ BEING
GROUP G_TOTAGE
END
NUMBER F_PRO12 14
NUMBER F_PRO12 15
BEING
KEY "Provvigione (12)"
PROMPT 8 6 ""

View File

@ -3,13 +3,40 @@ Caption = "Gestione agenti"
Picture = <pr01.bmp>
Module = 0
Flags = ""
Item_01 = "Tabella tipo percentuale", "pr0 -0 apr", ""
Item_02 = "Stampa tabella tipo percentuali", "pr0 -1 apr", ""
Item_01 = "Archivi e tabelle", [PRASSIPR_002]
Item_02 = "Stampa archivi e tabelle", [PRASSIPR_003]
Item_03 = "Provvigioni", "pr0 -6", ""
Item_04 = "Stampa provvigioni", [PRASSIPR_004]
Item_05 = "Configurazione modulo", [PRASSIPR_010]
[PRASSIPR_002]
Caption = "Archivi e tabelle"
Picture = <pr01.bmp>
Module = 0
Flags = ""
Item_03 = "Archivio agenti", "pr0 -4", ""
Item_04 = "Archivio percentuali", "pr0 -5", ""
Item_05 = "Archivio provvigioni", "pr0 -6", ""
[PRASSIPR_003]
Caption = "Stampe archivi e tabelle"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_06 = "Stampa archivio agenti", "pr1 -0", ""
Item_07 = "Stampa archivio percentuali", "pr1 -1", ""
Item_08 = "Stampa schede", "pr1 -2", ""
Item_09 = "Stampa statistiche", "pr1 -3", ""
[PRASSIPR_004]
Caption = "Stampe"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_04 = "Stampa schede", "pr1 -2", ""
Item_05 = "Stampa statistiche", "pr1 -3", ""
[PRASSIPR_010]
Caption = "Configurazione modulo agenti"
Picture = <ba04.bmp>
Module = 0
Flags = ""
Item_01 = "Struttura archivi percentuali", "pr0 -0 apr", ""

View File

@ -502,7 +502,7 @@ bool TStampa_stat::set_print(int i)
_numcol_dati = selmask().get_int(F_PERIODO);
_col_anno =min(_numcol_dati,printmask().get_int(F_COLANNO)); //numero di colonne che formano un "Anno"
_numcol = _numcol_dati+ (_st_tota ? int((_numcol_dati -1)/_col_anno+1) : 0);
_pagewidth=POS_PRIMACOL+int((FORMWIDTH-POS_PRIMACOL)/_largcol)*_largcol;
_pagewidth=POS_PRIMACOL+int((printer().formwidth()-POS_PRIMACOL)/_largcol)*_largcol;
// reset delle variabili per la gestione di gruppi ai vari livelli
_colpage=1;