Patch level :R_02_01 06

Files correlati     :or1.exe + mask & forms
Ricompilazione Demo : [ ]
Commento            :
riportata correzione dalla D_02_00 riguardo la stampa livelli di giacenza


git-svn-id: svn://10.65.10.50/trunk@11790 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2004-03-01 11:29:19 +00:00
parent a2b823ccf7
commit d10d437540
7 changed files with 2257 additions and 1508 deletions

@ -72,8 +72,10 @@ protected:
void filter_for_clifo_agent();
void filter_for_articolo();
void show_body_field_for_clifo_agent(short id, bool on);
void show_body_field_for_articolo(short id, bool on);
void show_giac_levels();
void show_body_field_for_number(short id, bool on, int from = 0, int to = 0);
void show_body_field_for_clifo_agent(short id, bool on, int from = 0, int to = 0);
void show_body_field_for_articolo(short id, bool on, int from = 0, int to = 0);
public:
TStampa_ordini() {};
@ -122,11 +124,13 @@ bool TStampa_ordini::detail_handler(TMask_field& f, KEY k)
m.enable(-GR_MAG,b);
m.enable(-GR_PRINT, b);
m.enable(F_STATORORD,b);
m.enable(F_DETAIL_BY_DOC, b);
}
m.enable(F_STATOORD,!b);
if (tipo != articolo)
m.set(F_DETAIL_BY_DOC, !b ? "" : "X");
const bool enable_field = !b && (tipo != articolo);
m.enable(F_DETAIL_BY_DOC, enable_field);
m.set(F_DETAIL_BY_DOC, enable_field ? "" : "X");
if (!b)
{
m.reset(F_FORCE_EVASE);
@ -140,7 +144,6 @@ bool TStampa_ordini::create()
{
open_files(LF_OCCAS, LF_CLIFO, LF_INDSP, LF_CFVEN, LF_UMART, LF_MAG, LF_STOMAG, LF_MOVMAG, LF_RMOVMAG, LF_RIGHEDOC, 0);
_m = new TMask ("or1100a");
//_m->set_handler(F_STATOORD, stato_handler);
_m->set_handler(F_DETTAGLIO, detail_handler);
_codgiac = new TCodgiac_livelli;
if (!_codgiac->enabled())
@ -251,6 +254,40 @@ bool TStampa_ordini::document_filter(const TRelation* rel)
return FALSE;
}
//********************SEZIONI DEDICATE ALLE 4 TIPOLOGIE DI STAMPA PRINCIPALI*******************
//Per Numero Documento
//********************
void TStampa_ordini::show_body_field_for_number(short id, bool on, int from, int to)
{
TForm_item* i = _frm->exist_field('B', odd_page, id);
if (i != NULL)
{
i->enable(on);
if (on && (to > from))
i->width() = to - from;
//aggiunto in prova da qui...
{
const short offset1 = 300;
TForm_subsection& ssec1 = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHEART"); // Sottosezione padre
TForm_string& fld1 = (TForm_string&)ssec1.printsection().find_field(id + offset1);
fld1.show(on);
fld1.width() = to - from;
}
//...a qui
const short offset = !_detail_doc && _detail_rows ? 400 : 100;
TForm_subsection& ssec = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHE"); // Sottosezione padre
TForm_string& fld = (TForm_string&)ssec.printsection().find_field(id + offset);
fld.show(on);
if (on && (to > from))
{
fld.width() = to - from;
fld.field(0).set_from(from);
fld.field(0).set_to(to);
}
}
}
void TStampa_ordini::filter_for_number()
{
CHECK(_frm, "Form non valido");
@ -352,7 +389,7 @@ void TStampa_ordini::filter_for_number()
if (_detail_rows)
{
for (short i = BODY_COL_7; i<=BODY_COL_12; i++)
for (short i = BODY_COL_UM; i<=BODY_COL_LAST; i++)
_frm->find_field('B', odd_page, i).show();
_frm->find_field('B', odd_page, "DET").show(); // Visualizza la sottosezione
TForm_subsection& ssec = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHE"); // Sottosezione padre
@ -478,38 +515,87 @@ void TStampa_ordini::filter_for_number()
{
TForm_subsection& ss = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHE");
TPrint_section& ps = ss.printsection();
for (short j = BODY_COL_1; j <= BODY_COL_12; j++)
for (short j = BODY_COL_FIRST; j <= BODY_COL_LAST; j++)
{
ps.find_field(j + 100).disable();
ps.find_field(j + 400).enable();
}
}
}
// Abilitazione intestazioni di colonna
_frm->find_field('B', odd_page, BODY_COL_5).show(_opz_valore);
_frm->find_field('B', odd_page, BODY_COL_6).show(_opz_valore);
_frm->find_field('F', last_page, BODY_COL_5+200).show(_opz_valore);
_frm->find_field('F', last_page, BODY_COL_6+200).show(_opz_valore);
_frm->find_field('B', odd_page, BODY_COL_10).show(_opz_prezzo);
_frm->find_field('B', odd_page, BODY_COL_11).show(_opz_residuo);
_frm->find_field('B', odd_page, BODY_COL_12).show(_opz_giacenza);
// Abilitazione delle righe
const short id = !_detail_doc && _detail_rows ? 400 : 100;
TForm_subsection& ssec = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHE"); // Sottosezione padre
ssec.printsection().find_field(BODY_COL_5 + id).show(_opz_valore);
ssec.printsection().find_field(BODY_COL_6 + id).show(_opz_valore);
ssec.printsection().find_field(BODY_COL_10 + id).show(_opz_prezzo);
ssec.printsection().find_field(BODY_COL_11 + id).show(_opz_residuo);
ssec.printsection().find_field(BODY_COL_12 + id).show(_opz_giacenza);
// Abilitazione intestazioni di colonna
show_body_field_for_number(BODY_COL_VALORE, _opz_valore);
show_body_field_for_number(BODY_COL_VALRES, _opz_valore);
show_body_field_for_number(BODY_COL_PRZSCON, _opz_prezzo);
show_body_field_for_number(BODY_COL_INTEST, _opz_residuo);
show_body_field_for_number(BODY_COL_GIACATT, _opz_giacenza);
_frm->find_field('F', last_page, BODY_COL_VALORE+200).show(_opz_valore);
_frm->find_field('F', last_page, BODY_COL_VALRES+200).show(_opz_valore);
show_giac_levels();
}
void TStampa_ordini::show_body_field_for_clifo_agent(short id, bool on)
//Per Cliente/Fornitore o per Agente
//**********************************
void TStampa_ordini::show_body_field_for_clifo_agent(short id, bool on, int from, int to)
{
TForm_item* i = _frm->exist_field('B', odd_page, id);
if (i != NULL)
i->enable(on);
{
i->show(on);
if (on && (to > from))
i->width() = to - from;
{
const short offset1 = 100;
TForm_subsection& ssec1 = (TForm_subsection&)_frm->find_field('B', odd_page, "DOCUMENTI"); // Sottosezione padre
TForm_string * fld1 = (TForm_string *) ssec1.printsection().exist_field(id + offset1);
if (fld1 != NULL)
{
fld1->show(on);
if (on && to > from)
fld1->width() = to - from;
}
}
/* {
const short offset1 = 300;
TForm_subsection& ssec1 = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHEART"); // Sottosezione padre
TForm_string& fld1 = (TForm_string&)ssec1.printsection().find_field(id + offset1);
fld1.show(on);
fld1.width() = to - from;
} */
{
const short offset1 = 400;
TString16 subsection;
if (_tipo == clifo)
subsection << "DOCUMENTI";
else
subsection << "ARTCLI";
TForm_subsection& ssec1 = (TForm_subsection&)_frm->find_field('B', odd_page, subsection); // Sottosezione padre
TForm_string& fld1 = (TForm_string&)ssec1.printsection().find_field(id + offset1);
fld1.show(on);
if (to > from)
{
fld1.width() = to - from;
fld1.field(0).set_from(from);
fld1.field(0).set_to(to);
}
}
const short offset2 = 200;
TForm_subsection& ssec2 = (TForm_subsection&)_frm->find_field('B', odd_page, "RIGHEDOC"); // Sottosezione padre
TForm_string& fld2 = (TForm_string&)ssec2.printsection().find_field(id + offset2);
fld2.show(on);
if (on && to > from)
{
fld2.width() = to - from;
fld2.field(0).set_from(from);
fld2.field(0).set_to(to);
}
}
}
void TStampa_ordini::filter_for_clifo_agent()
@ -725,8 +811,8 @@ void TStampa_ordini::filter_for_clifo_agent()
ssec.enable(); // Se stampa per agenti e dettaglia documenti per cliente abilita la sezione
else
{ // Se stampa per cli/fo abilita i campi corrispondenti al distinguo per documento (valuta, residuo evaso ecc...)
ssec.printsection().find_field(BODY_COL_1 + 100).show();
for (short id = BODY_COL_2 + 100; id <= (BODY_COL_6 + 100); id++)
ssec.printsection().find_field(BODY_COL_CODART + 100).show();
for (short id = BODY_COL_DESART + 100; id <= (BODY_COL_VALRES + 100); id++)
ssec.printsection().find_field(id).enable();
}
// Deve essere abilitata ma nascosta, per eseguire i raggruppamenti sulle righe
@ -738,12 +824,12 @@ void TStampa_ordini::filter_for_clifo_agent()
// In qualsiasi caso va fatta questa abilitazione
bool is_art = _detail_rows && !_detail_doc;
((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_5 + 100).enable(_opz_valore && !is_art);
((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_6 + 100).enable(_opz_valore && !is_art);
((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_VALORE + 100).enable(_opz_valore && !is_art);
((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_VALRES + 100).enable(_opz_valore && !is_art);
if (_detail_rows) // Stampa dettaglio righe...
{
for (short i = BODY_COL_7; i<=BODY_COL_12; i++)
for (short i = BODY_COL_UM; i<=BODY_COL_LAST; i++)
_frm->find_field('B', odd_page, i).show(); // Aggiunge le colonne di dettaglio
// dulcis in fundo (Dulcinea mia adorata), si abilita la sezione RIGHEART
// anziche' RIGHEDOC nel qual caso sia stato specificato il raggruppamento per Articoli (e sotto-opzioni)
@ -757,11 +843,11 @@ void TStampa_ordini::filter_for_clifo_agent()
{
TForm_subsection& ssec = (TForm_subsection&) _frm->find_field('B', odd_page, "ARTCLI");
ssec.enable();
ssec.printsection().find_field(BODY_COL_5 + 400).enable(_opz_valore);
ssec.printsection().find_field(BODY_COL_6 + 400).enable(_opz_valore);
ssec.printsection().find_field(BODY_COL_10 + 400).enable(_opz_prezzo);
ssec.printsection().find_field(BODY_COL_11 + 400).enable(_opz_residuo);
ssec.printsection().find_field(BODY_COL_12 + 400).enable(_opz_giacenza);
ssec.printsection().find_field(BODY_COL_VALORE + 400).enable(_opz_valore);
ssec.printsection().find_field(BODY_COL_VALRES + 400).enable(_opz_valore);
ssec.printsection().find_field(BODY_COL_PRZSCON + 400).enable(_opz_prezzo);
ssec.printsection().find_field(BODY_COL_INTEST + 400).enable(_opz_residuo);
ssec.printsection().find_field(BODY_COL_GIACATT + 400).enable(_opz_giacenza);
if (_detail_cli) // Se e' abilitata la distinzione per clienti setta l'espressione di raggruppamento
{
@ -784,51 +870,73 @@ void TStampa_ordini::filter_for_clifo_agent()
if (is_for_cli)
{ // I seguenti campi non necessitano di abilitazione se la stampa e' per agente
TForm_subsection& dsec = (TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI");
for (short id = BODY_COL_1 + 400; id <= (BODY_COL_12 + 400); id++)
for (short id = BODY_COL_FIRST + 400; id <= (BODY_COL_LAST + 400); id++)
dsec.printsection().find_field(id).enable();
dsec.printsection().find_field(BODY_COL_5 + 400).enable(_opz_valore);
dsec.printsection().find_field(BODY_COL_6 + 400).enable(_opz_valore);
dsec.printsection().find_field(BODY_COL_10 + 400).enable(_opz_prezzo);
dsec.printsection().find_field(BODY_COL_11 + 400).enable(_opz_residuo);
dsec.printsection().find_field(BODY_COL_12 + 400).enable(_opz_giacenza);
dsec.printsection().find_field(BODY_COL_VALORE + 400).enable(_opz_valore);
dsec.printsection().find_field(BODY_COL_VALRES + 400).enable(_opz_valore);
dsec.printsection().find_field(BODY_COL_PRZSCON + 400).enable(_opz_prezzo);
dsec.printsection().find_field(BODY_COL_INTEST + 400).enable(_opz_residuo);
dsec.printsection().find_field(BODY_COL_GIACATT + 400).enable(_opz_giacenza);
}
}
else
{
_frm->find_field('B', odd_page, "RIGHEDOC").enable(); // Abilita la sezione di dettaglio righe PER DOCUMENTO
TForm_subsection& rd = (TForm_subsection&) _frm->find_field('B', odd_page, "RIGHEDOC");
rd.printsection().find_field(BODY_COL_5 + 200).enable(_opz_valore);
rd.printsection().find_field(BODY_COL_6 + 200).enable(_opz_valore);
rd.printsection().find_field(BODY_COL_10 + 200).enable(_opz_prezzo);
rd.printsection().find_field(BODY_COL_11 + 200).enable(_opz_residuo);
rd.printsection().find_field(BODY_COL_12 + 200).enable(_opz_giacenza);
rd.printsection().find_field(BODY_COL_VALORE + 200).enable(_opz_valore);
rd.printsection().find_field(BODY_COL_VALRES + 200).enable(_opz_valore);
rd.printsection().find_field(BODY_COL_PRZSCON + 200).enable(_opz_prezzo);
rd.printsection().find_field(BODY_COL_INTEST + 200).enable(_opz_residuo);
rd.printsection().find_field(BODY_COL_GIACATT + 200).enable(_opz_giacenza);
}
}
// Abilitazione intestazioni di colonna
show_body_field_for_clifo_agent(BODY_COL_5, _opz_valore);
show_body_field_for_clifo_agent(BODY_COL_6, _opz_valore);
show_body_field_for_clifo_agent(BODY_COL_10, _opz_prezzo);
show_body_field_for_clifo_agent(BODY_COL_11, _opz_residuo);
show_body_field_for_clifo_agent(BODY_COL_12, _opz_giacenza);
show_body_field_for_clifo_agent(BODY_COL_VALORE, _opz_valore);
show_body_field_for_clifo_agent(BODY_COL_VALRES, _opz_valore);
show_body_field_for_clifo_agent(BODY_COL_PRZSCON, _opz_prezzo);
show_body_field_for_clifo_agent(BODY_COL_INTEST, _opz_residuo);
show_body_field_for_clifo_agent(BODY_COL_GIACATT, _opz_giacenza);
show_giac_levels();
set_totvaluta_items();
}
void TStampa_ordini::show_body_field_for_articolo(short id, bool on)
//Per Articolo
//************
void TStampa_ordini::show_body_field_for_articolo(short id, bool on, int from, int to)
{
TForm_item* i = _frm->exist_field('B', odd_page, id);
if (i != NULL)
{
i->enable(on);
if (on && (to > from))
i->width() = to - from;
i = _frm->exist_field('B', odd_page, id+400);
if (i != NULL)
{
i->enable(on);
if (on && (to > from))
{
TForm_string& fld = (TForm_string&) _frm->find_field('B', odd_page, id+300);
i->width() = to - from;
fld.width() = to - from;
fld.field(0).set_from(from);
fld.field(0).set_to(to);
}
}
TForm_subsection& asec = (TForm_subsection&)_frm->find_field('B', odd_page, "TOTVAL1");
i = asec.printsection().exist_field(id+500);
if (i != NULL)
{
i->enable(on);
if (on && (to > from))
i->width() = to - from;
}
}
}
@ -874,7 +982,7 @@ void TStampa_ordini::filter_for_articolo()
t = f;
t.put(RDOC_CODART, _to_art);
cur->setkey(2); // Questa chiave rende piu' veloce la costruzione se indicato un range di articoli
cur->setregion(f,t); // This is the region...
cur->setregion(f,t,0x2); // This is the region...
s.format("(%d->TIPOCF==\"",LF_DOC);
filter_expr << s << _tipocf << "\")"; // Nel caso di stampa per agenti e' sempre "C"
@ -987,19 +1095,51 @@ void TStampa_ordini::filter_for_articolo()
s << "+" << mag_str;
ssec.setcondition(s, _strexpr);
for (short id = BODY_COL_1 + 400; id <= (BODY_COL_12 + 400); id++)
for (short id = BODY_COL_FIRST + 400; id <= (BODY_COL_LAST + 400); id++)
_frm->find_field('B',odd_page,id).enable();
// Abilitazione intestazioni di colonna
show_body_field_for_articolo(BODY_COL_5,_opz_valore);
show_body_field_for_articolo(BODY_COL_6,_opz_valore);
show_body_field_for_articolo(BODY_COL_10,_opz_prezzo);
show_body_field_for_articolo(BODY_COL_11,_opz_residuo);
show_body_field_for_articolo(BODY_COL_12,_opz_giacenza);
show_body_field_for_articolo(BODY_COL_VALORE,_opz_valore);
show_body_field_for_articolo(BODY_COL_VALRES,_opz_valore);
show_body_field_for_articolo(BODY_COL_PRZSCON,_opz_prezzo);
show_body_field_for_articolo(BODY_COL_INTEST,_opz_residuo);
show_body_field_for_articolo(BODY_COL_GIACATT,_opz_giacenza);
//Abilitazione di eventuali colonne livelli di giacenza
show_giac_levels();
set_totvaluta_items();
}
//Parte comune
//************
void TStampa_ordini::show_giac_levels()
{
//accende le colonne con i livelli di giacenza esistenti ;
for (int l = 1; l <= _codgiac->max_levels(); l++)
{
const int level_fld = BODY_COL_LIVGIAC1 + l -1;
const bool on = (l <= _detail_level) && _codgiac->enabled(l);
const int from = _codgiac->code_start(l)-1;
const int len = _codgiac->code_length(l);
const int to = from + len;
switch (_tipo)
{
case clifo:
case agente:
show_body_field_for_clifo_agent(level_fld, on, from, to);
break;
case articolo:
show_body_field_for_articolo(level_fld, on, from, to);
break;
default:
show_body_field_for_number(level_fld, on, from, to);
break;
}
}
}
void TStampa_ordini::main_loop()
{
TString form_name;
@ -1057,7 +1197,11 @@ void TStampa_ordini::main_loop()
_detail_cli = _m->get_bool(F_DETAIL_BY_CLI);
_detail_mag = _m->get_bool(F_DETAIL_MAG);
_detail_dep = _m->get_bool(F_DETAIL_DEP);
_detail_level = _m->get_int(F_DETAIL_LEV);
if (_m->field(F_DETAIL_LEV).active())
_detail_level = _m->get_int(F_DETAIL_LEV);
else
_detail_level = _detail_rows ? _codgiac->last_level() : 0;
_pr_spese = _m->get_bool(F_PRINTSPESE);
_pr_prest = _m->get_bool(F_PRINTPREST);

@ -52,133 +52,171 @@ END //HEADER
SECTION BODY ODD 2 COLUMNWISE
STRING BODY_COL_1 22
STRINGA BODY_COL_CODART 22
BEGIN
SPECIAL STRINGA INTESTAZIONE "Documento" "Documento"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Descrizione documento"
PROMPT 1 1 ""
PROMPT 1 1 "@b"
MESSAGE _STREXPR,CODNUM+"/"+NDOC+" del "+DATADOC
END
STRING BODY_COL_2 40
STRINGA BODY_COL_LIVGIAC1 10
BEGIN
SPECIAL STRINGA INTESTAZIONE "@C1" "Livello giacenza 1"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Livello giacenza 1" // Solo intestazione
PROMPT 2 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_LIVGIAC2 10
BEGIN
SPECIAL STRINGA INTESTAZIONE "@C2" "Livello giacenza 2"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Livello giacenza 2" // Solo intestazione
PROMPT 3 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_LIVGIAC3 5
BEGIN
SPECIAL STRINGA INTESTAZIONE "@C3" "Livello giacenza 3"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Livello giacenza 3" // Solo intestazione
PROMPT 4 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_LIVGIAC4 5
BEGIN
SPECIAL STRINGA INTESTAZIONE "@C4" "Livello giacenza 4"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Livello giacenza 4" // Solo intestazione
PROMPT 5 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_DESART 40
BEGIN
SPECIAL STRINGA INTESTAZIONE "Cod./Descrizione" "Cod./Descrizione"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Cod./Descrizione"
PROMPT 2 1 ""
PROMPT 6 1 ""
MESSAGE _ORDINE,RAGSOC,1
END
STRINGA BODY_COL_3 4
STRINGA BODY_COL_CODVAL 4
BEGIN
SPECIAL STRINGA INTESTAZIONE "Val." "Val."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Codice Valuta"
PROMPT 3 1 ""
PROMPT 7 1 ""
FIELD CODVAL
END
DATA BODY_COL_4 10
DATA BODY_COL_DATACONS 10
BEGIN
SPECIAL STRINGA INTESTAZIONE "Data cons." "Data cons."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Data consegna documento"
PROMPT 4 1 ""
PROMPT 8 1 ""
FIELD DATACONS
END
VALUTA BODY_COL_5 15
VALUTA BODY_COL_VALORE 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CValore" "Valore"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Valore"
PROMPT 5 1 ""
PROMPT 9 1 ""
FIELD TOTVALORE
DRIVENBY BODY_COL_3
// PICTURE "."
DRIVENBY BODY_COL_CODVAL
END
VALUTA BODY_COL_6 15
VALUTA BODY_COL_VALRES 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CVal.Residuo" "Val.Residuo"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Valore Residuo"
PROMPT 6 1 ""
PROMPT 10 1 ""
FIELD TOTVALRES
DRIVENBY BODY_COL_3
// PICTURE "."
DRIVENBY BODY_COL_CODVAL
END
STRINGA BODY_COL_7 4
STRINGA BODY_COL_UM 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" // Solo intestazione
FLAGS "H"
PROMPT 7 1 ""
PROMPT 11 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_8 15
STRINGA BODY_COL_QTAORD 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "Q.ta Ordinata" "Q.ta Ordinata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Q.ta Ordinata" // Solo intestazione
FLAGS "H"
PROMPT 8 1 ""
PROMPT 12 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_9 15
STRINGA BODY_COL_QTAEVA 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CQ.ta Evasa" "Q.ta Evasa"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Q.ta Evasa" // Solo intestazione
FLAGS "H"
PROMPT 9 1 ""
PROMPT 13 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_10 13
STRINGA BODY_COL_PRZSCON 13
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CPr. scontato" "Prezzo un. scontato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Prezzo un. scontato" // Solo intestazione
FLAGS "H"
PROMPT 10 1 ""
PROMPT 14 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_11 15
STRINGA BODY_COL_INTEST 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CResiduo" "Residuo"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Residuo" // Solo intestazione
FLAGS "H"
PROMPT 11 1 ""
PROMPT 15 1 ""
GROUP G_DETTAGLIO
END
STRINGA BODY_COL_12 15
STRINGA BODY_COL_GIACATT 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CGiac. Att." "Giacenza attuale"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Giacenza attuale" // Solo intestazione
FLAGS "H"
PROMPT 12 1 ""
PROMPT 16 1 ""
GROUP G_DETTAGLIO
END
@ -186,279 +224,375 @@ END
// Sezione di dettaglio righe / raggruppamento articoli per ordine corrente
SECTION DET 2 0 0 FILE LF_RIGHEDOC
FLAGS "H" // Abilitata solo se dettaglio righe
FLAGS "H" // Abilitata solo se dettaglio righe
SECTION RIGHE 1 1 1 GROUP // Viene cambiata in STREXPR da programma
SECTION RIGHE 1 1 1 GROUP // Viene cambiata in STREXPR da programma
STRINGA 101 22
BEGIN
PROMPT 1 1 ""
END
STRINGA 101 22
BEGIN
PROMPT 1 1 ""
END
STRINGA 102 40
BEGIN
PROMPT 2 1 ""
MESSAGE _STREXPR, LF_RIGHEDOC->CODART+" "+LF_RIGHEDOC->DESCR
END
STRINGA 113 10
BEGIN
PROMPT 2 1 ""
FIELD LF_RIGHEDOC->LIVELLO
END
STRING 103 4
BEGIN
KEY "Codice Valuta"
PROMPT 3 1 ""
END
STRINGA 114 10
BEGIN
PROMPT 3 1 ""
FIELD LF_RIGHEDOC->LIVELLO
END
DATA 104 10
BEGIN
PROMPT 4 1 ""
FIELD LF_RIGHEDOC->DATACONS
END
STRINGA 115 5
BEGIN
PROMPT 4 1 ""
FIELD LF_RIGHEDOC->LIVELLO
END
VALUTA 105 15
BEGIN
PROMPT 5 1 "" // valore
MESSAGE _ORDINE,VALORE|ADD,FL->205
DRIVENBY 103
// PICTURE "."
END
STRINGA 116 5
BEGIN
PROMPT 5 1 ""
FIELD LF_RIGHEDOC->LIVELLO
END
VALUTA 106 15
BEGIN
PROMPT 6 1 "" // Val residuo riga
MESSAGE _ORDINE,VALRES|ADD,FL->206
DRIVENBY 103
// PICTURE "."
END
STRINGA 102 40
BEGIN
PROMPT 6 1 ""
MESSAGE _STREXPR, LF_RIGHEDOC->CODART+" "+LF_RIGHEDOC->DESCR
END
STRINGA 107 4
BEGIN
PROMPT 7 1 "" // Unita' di misura
FIELD LF_RIGHEDOC->UMQTA
END
STRINGA 103 4
BEGIN
KEY "Codice Valuta"
PROMPT 7 1 ""
END
NUMBER 108 15
BEGIN
PROMPT 8 1 "" // Q.ta Ordinata
MESSAGE _ORDINE,QTA
PICTURE "########@,@@@@@"
END
DATA 104 10
BEGIN
PROMPT 8 1 ""
FIELD LF_RIGHEDOC->DATACONS
END
NUMBER 109 15
BEGIN
PROMPT 9 1 "" // Q.ta Evasa
MESSAGE _ORDINE,QTAEVASA
PICTURE "########@,@@@@@"
END
VALUTA 105 15
BEGIN
PROMPT 9 1 "" // valore
MESSAGE _ORDINE,VALORE|ADD,FL->205
DRIVENBY 103
END
VALUTA 110 13
BEGIN
KEY "Prezzo un scontato"
PROMPT 10 1 ""
MESSAGE _ORDINE,PREZZONS
// PICTURE "."
FLAGS "U"
DRIVENBY 103
END
VALUTA 106 15
BEGIN
PROMPT 10 1 "" // Val residuo riga
MESSAGE _ORDINE,VALRES|ADD,FL->206
DRIVENBY 103
END
NUMBER 111 15
BEGIN
KEY "Residuo"
PROMPT 11 1 ""
PICTURE "########@,@@@@@"
MESSAGE _ORDINE,RESIDUO
END
STRINGA 107 4
BEGIN
PROMPT 11 1 "" // Unita' di misura
FIELD LF_RIGHEDOC->UMQTA
END
NUMBER 112 15
BEGIN
KEY "Giacenza attuale"
PROMPT 12 1 ""
PICTURE "########@,@@@@@"
MESSAGE _ORDINE,GIACENZA
END
NUMERO 108 15
BEGIN
PROMPT 12 1 "" // Q.ta Ordinata
MESSAGE _ORDINE,QTA
PICTURE "########@,@@@@@"
END
SECTION RIGHEART 1 0 0 FILE LF_RIGHEDOC GROUP CODART+DATACONS
FLAGS "D"
NUMBER 301 22
BEGIN
PROMPT 1 1 ""
FLAGS "H"
END
STRING 302 40 2
BEGIN
KEY "Descrizione"
PROMPT 2 1 ""
MESSAGE _ORDINE,DESCRIZIONE|COPY,402
FLAGS "H"
END
STRING 303 4
BEGIN
KEY "Codice Valuta"
PROMPT 3 1 ""
FLAGS "H"
END
DATA 304 10
BEGIN
KEY "Data consegna articolo"
PROMPT 4 1 ""
FIELD LF_RIGHEDOC->DATACONS
MESSAGE COPY,404
FLAGS "H"
END
VALUTA 305 15
BEGIN
KEY "Valore Ordinato"
PROMPT 5 1 ""
MESSAGE _ORDINE,VALORE
// PICTURE "."
DRIVENBY 303
FLAGS "H"
END
VALUTA 306 15
BEGIN
KEY "Valore Residuo"
PROMPT 6 1 ""
MESSAGE _ORDINE,VALRES
// PICTURE "."
DRIVENBY 303
FLAGS "H"
END
STRINGA 307 4
BEGIN
KEY "Unita' di misura"
PROMPT 7 1 ""
FIELD LF_RIGHEDOC->UMQTA
MESSAGE _ORDINE,SELECTUM|COPY,407
FLAGS "H"
END
NUMBER 308 15
BEGIN
KEY "Q.ta Ordinata"
PROMPT 8 1 ""
MESSAGE _ORDINE,QTA|_ORDINE,CONVUM|ADD,408
FLAGS "H"
END
NUMBER 309 15
BEGIN
KEY "Q.ta Evasa"
PROMPT 9 1 ""
MESSAGE _ORDINE,QTAEVASA|_ORDINE,CONVUM|ADD,409
FLAGS "H"
END
VALUTA 310 13
BEGIN
KEY "Prezzo non scontato"
PROMPT 10 1 ""
MESSAGE _ORDINE,PREZZONS|COPY,410
DRIVENBY 303
FLAGS "HU"
END
NUMBER 311 15
BEGIN
KEY " Residuo"
PROMPT 11 1 ""
MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411
FLAGS "H"
END
NUMBER 312 15
BEGIN
KEY "Giacenza attuale"
PROMPT 12 1 ""
MESSAGE _ORDINE,GIACENZA|COPY,412
FLAGS "H"
END
END // END SECTION RIGHEART
NUMERO 109 15
BEGIN
PROMPT 13 1 "" // Q.ta Evasa
MESSAGE _ORDINE,QTAEVASA
PICTURE "########@,@@@@@"
END
END //SECTION RIGHE
VALUTA 110 13
BEGIN
KEY "Prezzo un scontato"
PROMPT 14 1 ""
MESSAGE _ORDINE,PREZZONS
FLAGS "U"
DRIVENBY 103
END
NUMERO 111 15
BEGIN
KEY "Residuo"
PROMPT 15 1 ""
PICTURE "########@,@@@@@"
MESSAGE _ORDINE,RESIDUO
END
NUMERO 112 15
BEGIN
KEY "Giacenza attuale"
PROMPT 16 1 ""
PICTURE "########@,@@@@@"
MESSAGE _ORDINE,GIACENZA
END
SECTION RIGHEART 1 0 0 FILE LF_RIGHEDOC GROUP CODART+DATACONS
FLAGS "D"
NUMERO 301 22
BEGIN
PROMPT 1 1 ""
FLAGS "H"
END
STRINGA 313 10
BEGIN
PROMPT 2 1 ""
FLAGS "H"
END
STRINGA 314 10
BEGIN
PROMPT 3 1 ""
FLAGS "H"
END
STRINGA 315 5
BEGIN
PROMPT 4 1 ""
FLAGS "H"
END
STRINGA 316 5
BEGIN
PROMPT 5 1 ""
FLAGS "H"
END
STRINGA 302 40 2
BEGIN
KEY "Descrizione"
PROMPT 6 1 ""
MESSAGE _ORDINE,DESCRIZIONE|COPY,402
FLAGS "H"
END
STRINGA 303 4
BEGIN
KEY "Codice Valuta"
PROMPT 7 1 ""
FLAGS "H"
END
DATA 304 10
BEGIN
KEY "Data consegna articolo"
PROMPT 8 1 ""
FIELD LF_RIGHEDOC->DATACONS
MESSAGE COPY,404
FLAGS "H"
END
VALUTA 305 15
BEGIN
KEY "Valore Ordinato"
PROMPT 9 1 ""
MESSAGE _ORDINE,VALORE
DRIVENBY 303
FLAGS "H"
END
VALUTA 306 15
BEGIN
KEY "Valore Residuo"
PROMPT 10 1 ""
MESSAGE _ORDINE,VALRES
DRIVENBY 303
FLAGS "H"
END
STRINGA 307 4
BEGIN
KEY "Unita' di misura"
PROMPT 11 1 ""
FIELD LF_RIGHEDOC->UMQTA
MESSAGE _ORDINE,SELECTUM|COPY,407
FLAGS "H"
END
NUMERO 308 15
BEGIN
KEY "Q.ta Ordinata"
PROMPT 12 1 ""
MESSAGE _ORDINE,QTA|_ORDINE,CONVUM|ADD,408
FLAGS "H"
END
NUMERO 309 15
BEGIN
KEY "Q.ta Evasa"
PROMPT 13 1 ""
MESSAGE _ORDINE,QTAEVASA|_ORDINE,CONVUM|ADD,409
FLAGS "H"
END
VALUTA 310 13
BEGIN
KEY "Prezzo non scontato"
PROMPT 14 1 ""
MESSAGE _ORDINE,PREZZONS|COPY,410
DRIVENBY 303
FLAGS "HU"
END
NUMERO 311 15
BEGIN
KEY " Residuo"
PROMPT 15 1 ""
MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411
FLAGS "H"
END
NUMERO 312 15
BEGIN
KEY "Giacenza attuale"
PROMPT 16 1 ""
MESSAGE _ORDINE,GIACENZA|COPY,412
FLAGS "H"
END
END // END SECTION RIGHEART
END //SECTION RIGHE
// Totalizers for section RIGHEART
NUMBER 401 22
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING 402 40 2
BEGIN
KEY "Descrizione"
PROMPT 2 1 ""
FLAGS "D"
END
STRING 403 4
BEGIN
KEY "Codice Valuta"
PROMPT 3 1 ""
FLAGS "D"
END
DATA 404 10
BEGIN
KEY "Data consegna articolo"
PROMPT 4 1 ""
FLAGS "D"
END
VALUTA 405 15
BEGIN
KEY "Valore Ordinato"
PROMPT 5 1 ""
// PICTURE "."
FLAGS "D"
DRIVENBY 403
GROUP G_TOTALEART
END
VALUTA 406 15
BEGIN
KEY "Valore Residuo"
PROMPT 6 1 ""
// PICTURE "."
FLAGS "D"
DRIVENBY 403
GROUP G_TOTALEART
END
STRINGA 407 4
BEGIN
KEY "Unita' di misura"
PROMPT 7 1 ""
FLAGS "D"
GROUP G_TOTALEART
END
NUMBER 408 15
BEGIN
KEY "Q.ta Ordinata"
PROMPT 8 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
NUMBER 409 15
BEGIN
KEY "Q.ta Evasa"
PROMPT 9 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
VALUTA 410 13
BEGIN
KEY "Pr. non scontato"
PROMPT 10 1 ""
// PICTURE "."
FLAGS "DU"
DRIVENBY 403
GROUP G_TOTALEART
END
NUMBER 411 15
BEGIN
KEY "Residuo"
PROMPT 11 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
NUMBER 412 15
BEGIN
KEY "Giac. attuale"
PROMPT 12 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
NUMERO 401 22
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRINGA 413 10
BEGIN
KEY ""
PROMPT 2 1 ""
FLAGS "H"
FIELD LF_RIGHEDOC->LIVELLO
END
STRINGA 414 10
BEGIN
KEY ""
PROMPT 3 1 ""
FLAGS "H"
FIELD LF_RIGHEDOC->LIVELLO
END
STRINGA 415 5
BEGIN
KEY ""
PROMPT 4 1 ""
FLAGS "H"
FIELD LF_RIGHEDOC->LIVELLO
END
STRINGA 416 5
BEGIN
KEY ""
PROMPT 5 1 ""
FLAGS "H"
FIELD LF_RIGHEDOC->LIVELLO
END
STRINGA 402 40 2
BEGIN
KEY "Descrizione"
PROMPT 6 1 ""
FLAGS "D"
END
STRINGA 403 4
BEGIN
KEY "Codice Valuta"
PROMPT 7 1 ""
FLAGS "D"
END
DATA 404 10
BEGIN
KEY "Data consegna articolo"
PROMPT 8 1 ""
FLAGS "D"
END
VALUTA 405 15
BEGIN
KEY "Valore Ordinato"
PROMPT 9 1 ""
FLAGS "D"
DRIVENBY 403
GROUP G_TOTALEART
END
VALUTA 406 15
BEGIN
KEY "Valore Residuo"
PROMPT 10 1 ""
FLAGS "D"
DRIVENBY 403
GROUP G_TOTALEART
END
STRINGA 407 4
BEGIN
KEY "Unita' di misura"
PROMPT 11 1 ""
FLAGS "D"
GROUP G_TOTALEART
END
NUMERO 408 15
BEGIN
KEY "Q.ta Ordinata"
PROMPT 12 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
NUMERO 409 15
BEGIN
KEY "Q.ta Evasa"
PROMPT 13 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
VALUTA 410 13
BEGIN
KEY "Pr. non scontato"
PROMPT 14 1 ""
FLAGS "DU"
DRIVENBY 403
GROUP G_TOTALEART
END
NUMERO 411 15
BEGIN
KEY "Residuo"
PROMPT 15 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
NUMERO 412 15
BEGIN
KEY "Giac. attuale"
PROMPT 16 1 ""
PICTURE "########@,@@@@@"
FLAGS "D"
GROUP G_TOTALEART
END
END // SECTION DET
@ -468,36 +602,34 @@ SECTION FOOTER LAST 5 COLUMNWISE
STRINGA 201 22
BEGIN
PROMPT 1 1 ""
PROMPT 1 1 ""
END
STRINGA 202 40
BEGIN
PROMPT 2 1 "@BTotale:"
PROMPT 2 1 "@BTotale:"
END
STRINGA 203 4
BEGIN
PROMPT 3 1 ""
PROMPT 3 1 ""
END
DATA 204 10
BEGIN
PROMPT 4 1 ""
PROMPT 4 1 ""
END
VALUTA 205 15
BEGIN
PROMPT 5 1 "" // valore
DRIVENBY 203
// PICTURE "."
PROMPT 5 1 "" // valore
DRIVENBY 203
END
VALUTA 206 15
BEGIN
PROMPT 6 1 "" // Val residuo
DRIVENBY 203
// PICTURE "."
PROMPT 6 1 "" // Val residuo
DRIVENBY 203
END
END //FOOTER

@ -78,18 +78,26 @@
#define G_TOTALE 2
#define G_TOTALEART 3
#define BODY_COL_1 1
#define BODY_COL_2 2
#define BODY_COL_3 3
#define BODY_COL_4 4
#define BODY_COL_5 5
#define BODY_COL_6 6
#define BODY_COL_7 7
#define BODY_COL_8 8
#define BODY_COL_9 9
#define BODY_COL_10 10
#define BODY_COL_11 11
#define BODY_COL_12 12
#define BODY_COL_CODART 1
#define BODY_COL_DESART 2
#define BODY_COL_CODVAL 3
#define BODY_COL_DATACONS 4
#define BODY_COL_VALORE 5
#define BODY_COL_VALRES 6
#define BODY_COL_UM 7
#define BODY_COL_QTAORD 8
#define BODY_COL_QTAEVA 9
#define BODY_COL_PRZSCON 10
#define BODY_COL_INTEST 11
#define BODY_COL_GIACATT 12
#define BODY_COL_LIVGIAC1 13
#define BODY_COL_LIVGIAC2 14
#define BODY_COL_LIVGIAC3 15
#define BODY_COL_LIVGIAC4 16
//numeri utili per i cicli all'interno del programma (x non impazzire con le definizioni..)
#define BODY_COL_FIRST 1
#define BODY_COL_LAST 16
#define BODY_CODVAL 53
#define BODY_TOTVALORD 55

@ -226,9 +226,9 @@ END
BOOLEAN F_DETAIL_BY_DOC
BEGIN
PROMPT 37 12 "Dettaglio per documento"
FLAGS "D"
MESSAGE TRUE DISABLE,GR_DETAILART@
MESSAGE FALSE ENABLE,GR_DETAILART@
// FLAGS "D"
// MESSAGE TRUE DISABLE,GR_DETAILART@
// MESSAGE FALSE ENABLE,GR_DETAILART@
GROUP GR_DETAIL
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff