Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 98.01.03pl058 sul main trunk git-svn-id: svn://10.65.10.50/trunk@6736 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7cfd681203
commit
1e106d3046
@ -479,6 +479,7 @@ bool TInstaller_mask::move_module(const TString& module, TInstall_ini& ini, bool
|
||||
|
||||
bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
{
|
||||
TInstall_ini *ini;
|
||||
bool ok = FALSE;
|
||||
TString16 lastrelease; // release che sto installando
|
||||
int lastpatch=patchlevel; // patchlevel che sto installando
|
||||
@ -498,15 +499,14 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
|
||||
if (fexist(ininame))
|
||||
{
|
||||
TInstall_ini ini(ininame);
|
||||
|
||||
ini.write_protect();
|
||||
lastpatch=ini.get_int("Patch",module);
|
||||
lastrelease=ini.get("Versione",module);
|
||||
if (!can_install(module, ini))
|
||||
ini = new TInstall_ini (ininame);
|
||||
ini->write_protect();
|
||||
lastpatch=ini->get_int("Patch",module);
|
||||
lastrelease=ini->get("Versione",module);
|
||||
if (!can_install(module, *ini))
|
||||
return FALSE;
|
||||
|
||||
const int dischi = ini.get_int("Dischi", module);
|
||||
const int dischi = ini->get_int("Dischi", module);
|
||||
ok = dischi > 0;
|
||||
if (!ok)
|
||||
{
|
||||
@ -514,7 +514,8 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
}
|
||||
else
|
||||
{
|
||||
ok = pre_process(ini, module);
|
||||
if (patchlevel==0)
|
||||
ok = pre_process(*ini, module);
|
||||
if (!ok) return FALSE;
|
||||
}
|
||||
|
||||
@ -544,7 +545,7 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
while (!ok)
|
||||
{
|
||||
message_box("Inserire il disco %d di %d del modulo\n'%s'",
|
||||
d, dischi, (const char*)ini.get("Descrizione"));
|
||||
d, dischi, (const char*)ini->get("Descrizione"));
|
||||
ok = fexist(cmdline);
|
||||
if (!ok)
|
||||
{
|
||||
@ -580,9 +581,9 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
msg.cut(0);
|
||||
msg << "Aggiornamento del modulo '" << module << "' in corso...";
|
||||
pi.set_text(msg);
|
||||
ok = move_module(module, ini, TRUE);
|
||||
ok = move_module(module, *ini, TRUE);
|
||||
|
||||
TAuto_token_string altri(ini.get("Moduli", module));
|
||||
TAuto_token_string altri(ini->get("Moduli", module));
|
||||
FOR_EACH_TOKEN(altri, mod)
|
||||
{
|
||||
const TString16 submod = mod;
|
||||
@ -594,18 +595,22 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
TInstall_ini curini;
|
||||
const TString16 curver = curini.version(submod);
|
||||
const int curpatch = curini.patch(submod);
|
||||
const TString16 reqver = ini.version(submod);
|
||||
const int reqpatch = ini.patch(submod);
|
||||
const TString16 reqver = ini->version(submod);
|
||||
const int reqpatch = ini->patch(submod);
|
||||
|
||||
int distance = compare_version(reqver, reqpatch, curver, curpatch);
|
||||
upd = distance > 0;
|
||||
}
|
||||
ok &= move_module(submod, ini, upd);
|
||||
ok &= move_module(submod, *ini, upd);
|
||||
if (upd && ok)
|
||||
ini->export_paragraph(submod, ini->default_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
ok = post_process(ini, module);
|
||||
{
|
||||
if (ok) ini->export_paragraph(module, ini->default_name());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -615,18 +620,19 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
ok = fexist(ininame);
|
||||
if (ok)
|
||||
{
|
||||
TInstall_ini ini(ininame);
|
||||
ini.write_protect();
|
||||
lastpatch=ini.get_int("Patch",module);
|
||||
lastrelease=ini.get("Versione",module);
|
||||
if (!can_install(module, ini))
|
||||
ini = new TInstall_ini(ininame);
|
||||
ini->write_protect();
|
||||
lastpatch=ini->get_int("Patch",module);
|
||||
lastrelease=ini->get("Versione",module);
|
||||
if (!can_install(module, *ini))
|
||||
return FALSE;
|
||||
|
||||
TString_array list;
|
||||
const int files = ini.build_complete_list(module, list);
|
||||
const int files = ini->build_complete_list(module, list);
|
||||
if (files > 0)
|
||||
{
|
||||
ok = pre_process(ini, module);
|
||||
if (patchlevel==0)
|
||||
ok = pre_process(*ini, module);
|
||||
|
||||
if (ok)
|
||||
{
|
||||
@ -644,8 +650,7 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
|
||||
if (ok)
|
||||
{
|
||||
ini.export_module_paragraphs(module, ini.default_name());
|
||||
ok = post_process(ini, module);
|
||||
if (ok) ini->export_module_paragraphs(module, ini->default_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -654,10 +659,10 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
if (ok)
|
||||
{
|
||||
{
|
||||
TInstall_ini ini;
|
||||
ini.set("DiskPath", path);
|
||||
ini.set("Data", TDate(TODAY), module);
|
||||
ini.update_prices(ininame);
|
||||
ini = new TInstall_ini();
|
||||
ini->set("DiskPath", path);
|
||||
ini->set("Data", TDate(TODAY), module);
|
||||
ini->update_prices(ininame);
|
||||
}
|
||||
// Non togliere le parentesi graffe soprastanti per permettere l'aggiornamento fisico del .ini (CON LA CHIAMATA DEL DISTRUTTORE)
|
||||
update_version();
|
||||
@ -668,6 +673,7 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
|
||||
{
|
||||
// ... installo DOPO tutte le patches successive
|
||||
install_patches(module, lastrelease, lastpatch);
|
||||
ok &= post_process(*ini, module);
|
||||
}
|
||||
|
||||
return ok;
|
||||
|
@ -7,7 +7,6 @@ Item_01 = "Anagrafiche di base", [PRASSI_001]
|
||||
Item_02 = "Amministrazione", <cgarea.men>
|
||||
Item_03 = "Acquisti e vendite", <vearea.men>
|
||||
Item_04 = "Magazzino e Produzione", <mgarea.men>
|
||||
Item_05 = "Dichiarazioni", <77area.men>
|
||||
Item_11 = "Comunicazione", [PRASSI_019]
|
||||
Item_11 = "Manutenzione", [PRASSI_015]
|
||||
|
||||
|
@ -5,6 +5,7 @@ Module = 0
|
||||
Item_01 = "Contabilita' semplificata", <csprassi.men>
|
||||
Item_02 = "Contabilita' generale", <cgprassi.men>
|
||||
Item_04 = "Gestione cespiti", "cesp -t /cPRAWIN.INI", ""
|
||||
Item_05 = "Contabilita analitica", <procomm.men>
|
||||
Item_06 = "Bilanci e Analisi", <abprassi.men>
|
||||
Item_07 = "Nota integrativa", <niprassi.men>
|
||||
Item_05 = "Gestione percipienti", <77prassi.men>
|
||||
Item_06 = "Contabilita analitica", <procomm.men>
|
||||
Item_07 = "Bilanci e Analisi", <abprassi.men>
|
||||
Item_08 = "Dichiarazione IVA", "miva -t", ""
|
||||
|
@ -68,7 +68,7 @@ FILE* TArchive::ask_disk(
|
||||
if (first)
|
||||
{
|
||||
message_box("Inserire il disco %d nel drive %c:\n"
|
||||
"File %s", disk, floppy, (const char*)name);
|
||||
"File '%s'", disk, floppy, (const char*)prev.name());
|
||||
first = FALSE;
|
||||
}
|
||||
else
|
||||
@ -213,7 +213,7 @@ bool TArchive::fsplit(
|
||||
|
||||
if (!os_test_disk_free_space(work, tot))
|
||||
{
|
||||
TString16 dev("A:/*.*"); dev[0] = floppy;
|
||||
TString16 dev("A:/*.*"); dev[0] = floppy; //
|
||||
TString_array dir;
|
||||
if (list_files(dev, dir) > 0)
|
||||
{
|
||||
@ -223,7 +223,6 @@ bool TArchive::fsplit(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int disk = 0;
|
||||
TString buffer(BUFSIZE);
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <stdlib.h>
|
||||
#define XVT_INCL_NATIVE
|
||||
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
@ -478,7 +479,6 @@ bool TDongle::login(bool test_all_keys)
|
||||
case _dongle_eutron:
|
||||
ok = eutron_login(test_all_keys);
|
||||
break;
|
||||
case _dongle_network:
|
||||
ok = network_login(test_all_keys);
|
||||
break;
|
||||
default:
|
||||
|
@ -936,6 +936,9 @@ public:
|
||||
// @cmember Cerca il campo identificato da <p id> !!!
|
||||
TForm_item& find_field(const TString& id) const;
|
||||
|
||||
// @cmember Setta il flag di pagina nuova
|
||||
void set_newpage(bool d = TRUE)
|
||||
{ _flag.newpage = d; }
|
||||
// @cmember Setta il flag di fincatura sinistra
|
||||
void set_finkl(bool d = TRUE)
|
||||
{ _flag.finkl = d; }
|
||||
|
@ -268,6 +268,30 @@ int TMultiple_rectype::loaded_rows(int logicnum) const
|
||||
return r->rows();
|
||||
}
|
||||
|
||||
// @mfunc confronta due record multipli
|
||||
int TMultiple_rectype::compare(const TSortable& s) const
|
||||
{
|
||||
int res = TRectype::compare(s);
|
||||
TMultiple_rectype & m = (TMultiple_rectype &) s;
|
||||
for (int i = 0 ; res == 0 && i < _nfiles; i++)
|
||||
{
|
||||
int logicnum = _logicnums[i];
|
||||
TRecord_array & r = body(logicnum);
|
||||
TRecord_array & r1 = m.body(logicnum);
|
||||
res = r.rows() - r1.rows();
|
||||
if (res == 0 && r.rows() > 0 && r1.rows() > 0)
|
||||
{
|
||||
for (int j = r.first_row(), k = r1.first_row(); res == 0 && j >= 0 && k >= 0; j = r.succ_row(j), k = r1.succ_row(k))
|
||||
{
|
||||
res = j - k;
|
||||
if (res == 0)
|
||||
res = r[j] != r1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
int TMultiple_rectype::remove(TBaseisamfile & f) const
|
||||
{
|
||||
int err = NOERR;
|
||||
|
@ -65,6 +65,8 @@ protected:
|
||||
|
||||
// @cmember restituisce il numero di record attualmente caricati nel corpo (da usare nella dirty fields)
|
||||
int loaded_rows(int logicnum = 0) const;
|
||||
// @cmember confronta due record multipli
|
||||
virtual int compare(const TSortable& s) const;
|
||||
|
||||
public:
|
||||
//***********************
|
||||
|
@ -1,18 +1,27 @@
|
||||
[PRASSI77_001]
|
||||
Caption = "Modello 770"
|
||||
Caption = "Gestione percipienti"
|
||||
Picture = <7701.bmp>
|
||||
Module = 4
|
||||
Flags = ""
|
||||
Item_01 = "Immissione dichiarazione", "776mod -1", ""
|
||||
Item_02 = "Manutenzione dichiarazione", "776mod -0", ""
|
||||
Item_03 = "Stampe", [PRASSI77_002]
|
||||
Item_04 = "Parametri di studio", "773mod -0", ""
|
||||
Item_05 = "Tabella C.A.A.F.", "773mod -3 %caf", ""
|
||||
Item_06 = "Tabella causali", "773mod -3 %ca7", ""
|
||||
Item_07 = "Tabella enti previdenziali", "773mod -3 %ent", ""
|
||||
Item_08 = "Selezione dichiarazione", "776mod -2", ""
|
||||
Item_09 = "Generazione versamenti", "774 -0", ""
|
||||
Item_10 = "Azzeramento archivi", "774 -2 T", ""
|
||||
Item_03 = "Selezione dichiarazione", "776mod -2", ""
|
||||
Item_04 = "Stampe", [PRASSI77_002]
|
||||
Item_05 = "Tabelle", [PRASSI77_003]
|
||||
Item_06 = "Generazione versamenti", "774 -0", ""
|
||||
Item_07 = "Azzeramento archivi", "774 -2 T", ""
|
||||
Item_08 = "Parametri di studio", "773mod -0", ""
|
||||
|
||||
|
||||
|
||||
[PRASSI77_003]
|
||||
Caption = "Tabelle"
|
||||
Picture = <7701.bmp>
|
||||
Module = 0
|
||||
Flags = ""
|
||||
Item_01 = "Tabella C.A.A.F.", "773mod -3 %caf", ""
|
||||
Item_02 = "Tabella causali", "773mod -3 %ca7", ""
|
||||
Item_03 = "Tabella enti previdenziali", "773mod -3 %ent", ""
|
||||
|
||||
[PRASSI77_002]
|
||||
Caption = "Stampe"
|
||||
|
@ -25,6 +25,8 @@ BEGIN
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg. @10" DATAREG
|
||||
DISPLAY "Data comp.@10" DATACOMP
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
DISPLAY "Causale" CODCAUS
|
||||
OUTPUT F_NUMREG NUMREG
|
||||
OUTPUT F_DATAREG DATAREG
|
||||
OUTPUT F_DATACOMP DATACOMP
|
||||
@ -48,10 +50,7 @@ BEGIN
|
||||
USE LF_MOVMAG KEY 3
|
||||
INPUT NUMREG F_NUMREG
|
||||
INPUT DATAREG F_DATAREG
|
||||
DISPLAY "N.reg." NUMREG
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg." DATAREG
|
||||
DISPLAY "Data comp." DATACOMP
|
||||
COPY DISPLAY F_NUMREG
|
||||
OUTPUT F_NUMREG NUMREG
|
||||
OUTPUT F_DATAREG DATAREG
|
||||
OUTPUT F_DATACOMP DATACOMP
|
||||
@ -68,7 +67,7 @@ BEGIN
|
||||
USE LF_MOVMAG KEY 4
|
||||
INPUT NUMREG F_NUMREG
|
||||
INPUT DATACOMP F_DATACOMP
|
||||
COPY DISPLAY F_DATAREG
|
||||
COPY DISPLAY F_NUMREG
|
||||
OUTPUT F_NUMREG NUMREG
|
||||
OUTPUT F_DATAREG DATAREG
|
||||
OUTPUT F_DATACOMP DATACOMP
|
||||
|
@ -91,7 +91,7 @@ BEGIN
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR ((#H_GESTGIA=="X")&&(#F_CODDEP!=""))||(#H_GESTGIA!="X")
|
||||
// WARNING "Indicare il deposito"
|
||||
WARNING "Indicare il deposito"
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
|
178
mg/mg3100.cpp
178
mg/mg3100.cpp
@ -1,4 +1,5 @@
|
||||
#include <applicat.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "..\ve\veconf.h"
|
||||
#include "mglib.h"
|
||||
@ -119,16 +120,18 @@ bool TStampadatist_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
break;
|
||||
case 'M':
|
||||
case 'D':
|
||||
fraggcod.set("X");
|
||||
fraggcod.disable();
|
||||
m.field(F_FROMLIVELLOART).set(m.artlev().last_level());
|
||||
m.disable(F_FROMLIVELLOART);
|
||||
m.field(F_TOLIVELLOART).set("0");
|
||||
m.disable(F_TOLIVELLOART);
|
||||
m.field(F_FROMLIVELLOGIAC).set("0");
|
||||
m.disable(F_FROMLIVELLOGIAC);
|
||||
m.field(F_TOLIVELLOGIAC).set("0");
|
||||
m.disable(F_TOLIVELLOGIAC);
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fraggcod.do_message(0);
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
fragggiac.do_message(0);
|
||||
//m.field(F_FROMLIVELLOART).set(m.artlev().last_level());
|
||||
//m.disable(F_FROMLIVELLOART);
|
||||
//m.field(F_TOLIVELLOART).set("0");
|
||||
//m.disable(F_TOLIVELLOART);
|
||||
//m.field(F_FROMLIVELLOGIAC).set("0");
|
||||
//m.disable(F_FROMLIVELLOGIAC);
|
||||
//m.field(F_TOLIVELLOGIAC).set("0");
|
||||
//m.disable(F_TOLIVELLOGIAC);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -141,8 +144,15 @@ bool TStampadatist_mask::handle_liv(TMask_field &fld, KEY k)
|
||||
{
|
||||
TOperable_field &ftotmag=(TOperable_field &)fld.mask().field(F_TOTALIMAGAZZINI);
|
||||
TOperable_field &fdettmag=(TOperable_field &)fld.mask().field(F_DETTAGLIOMAG);
|
||||
TOperable_field &fdettgiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
{
|
||||
if (fld.mask().get_int(F_TOLIVELLOART))
|
||||
{
|
||||
fdettgiac.reset();
|
||||
fdettgiac.disable();
|
||||
} else
|
||||
fdettgiac.enable();
|
||||
if (fld.mask().get_int(F_TOLIVELLOART) || fld.mask().get_int(F_TOLIVELLOGIAC))
|
||||
{
|
||||
// raggruppamenti prima del dettaglio magazzini
|
||||
@ -195,12 +205,13 @@ class TStampa_datistorici : public TSkeleton_application
|
||||
TCursor * _cur;
|
||||
TForm_giacprezzi * _form; // to be moved into TPrint_application
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void open_files(int logicnum, ...);
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void on_firm_change();
|
||||
|
||||
void setprint_permagazzini();
|
||||
void setprint_perarticoli();
|
||||
|
||||
@ -208,6 +219,24 @@ public:
|
||||
TStampa_datistorici() {}
|
||||
};
|
||||
|
||||
void TStampa_datistorici ::on_firm_change()
|
||||
{
|
||||
_mask->enable_livellicodice();
|
||||
}
|
||||
|
||||
void TStampa_datistorici::open_files(int logicnum, ...)
|
||||
{
|
||||
va_list marker;
|
||||
va_start(marker, logicnum);
|
||||
while (logicnum > 0)
|
||||
{
|
||||
CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
||||
_file.add(new TLocalisamfile(logicnum), logicnum);
|
||||
logicnum = va_arg(marker, int);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool TStampa_datistorici::create()
|
||||
{
|
||||
@ -229,36 +258,55 @@ void TStampa_datistorici::setprint_permagazzini()
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_form = new TForm_giacprezzi("mg3100b", "");
|
||||
_cur = _form->cursor();
|
||||
// ********************
|
||||
// setta il filtro sul cursore
|
||||
TForm_item & it_filtro=_form->find_field('H',odd_page,FF_FILTRO);
|
||||
TForm_item & rangea=_form->find_field('H',odd_page,FF_RANGEARTIC);
|
||||
TString srangea;
|
||||
if (*_mask->get(F_DAART))
|
||||
{
|
||||
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
}
|
||||
if (*_mask->get(F_AART))
|
||||
{
|
||||
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
srangea << "fino a " << _mask->get(F_AART) << "\" ";
|
||||
}
|
||||
rangea.set(srangea.empty() ? "Tutti gli articoli" : format("Articoli %s", (const char *)srangea));
|
||||
switch (*_mask->get(F_FILTRO)) {
|
||||
case '0': // non nulli
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC!=\"0\"))&&";
|
||||
it_filtro.set("non nulle");
|
||||
break;
|
||||
case 'P': // positivi
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC>\"0\"))&&";
|
||||
it_filtro.set("positive");
|
||||
break;
|
||||
case 'N': // negativi
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC<\"0\"))&&";
|
||||
it_filtro.set("negative");
|
||||
break;
|
||||
case 'S': // sottoscorta
|
||||
cfilter << "(STR(GIAC<SCORTAMIN))&&";
|
||||
it_filtro.set("sottoscorta");
|
||||
break;
|
||||
}
|
||||
if (cfilter.not_empty())
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
// abilita/disabilita le sezioni dei totali
|
||||
_form->setdett_permag(_mask->get_int(F_FROMLIVELLOART),
|
||||
_form->setdett_permag(
|
||||
_mask->get_bool(F_RAGGCODICE),
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
TRUE,
|
||||
_mask->get_bool(F_TOTALIDEPOSITI),
|
||||
_mask->get_bool(F_DETTAGLIODEP));
|
||||
_form->find_field('B',odd_page,FF_DIVDEPOSITI).enable(_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
|
||||
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
@ -274,6 +322,21 @@ void TStampa_datistorici::setprint_permagazzini()
|
||||
_form->find_field('B',odd_page,FF_FLAGVALMEDI).set(ena);
|
||||
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
|
||||
|
||||
// ********************
|
||||
// range di stampa magazzini
|
||||
TForm_item & rangem=_form->find_field('H',odd_page,FF_RANGEMAGAZ);
|
||||
TString srangem;
|
||||
if (!_mask->get(F_DAMAG).blank())
|
||||
{
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
srangem << "da \"" << _mask->get(F_DAMAG) << "\" ";
|
||||
}
|
||||
if (!_mask->get(F_AMAG).blank())
|
||||
{
|
||||
arec.put("CODMAG",_mask->get(F_AMAG));
|
||||
srangem << "fino a \"" << _mask->get(F_AMAG) << "\" ";
|
||||
}
|
||||
rangem.set(srangem.empty() ? "Tutti i magazzini" : format("Magazzini %s", (const char *)srangem));
|
||||
darec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
arec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
@ -287,31 +350,70 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
{
|
||||
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||
TString cfilter,filter,joinexp;
|
||||
TString sortexp("ANNOES|CODART|LIVELLO|CODMAG");
|
||||
|
||||
TString sortexp("ANNOES|CODART");
|
||||
if (_mask->get_bool(F_RAGGCODICE))
|
||||
{
|
||||
if (_mask->get_int(F_TOLIVELLOART))
|
||||
sortexp << "[" << _mask->artlev().packed_length(_mask->get_int(F_TOLIVELLOART)) << "]";
|
||||
}
|
||||
if (_mask->get_bool(F_RAGGLIVGIAC))
|
||||
{
|
||||
sortexp << "|LIVELLO" ;
|
||||
if (_mask->get_int(F_TOLIVELLOGIAC))
|
||||
sortexp << "[1," << _mask->artlev().packed_length(_mask->get_int(F_TOLIVELLOGIAC)) << "]";
|
||||
}
|
||||
sortexp << "|CODMAG";
|
||||
char filtro_articoli=*_mask->get(F_FILTRO);
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
_form = new TForm_giacprezzi("mg3100a", "");
|
||||
|
||||
_form = filtro_articoli == 'T' ?
|
||||
new TForm_giacprezzi("mg3100aa", "") :
|
||||
new TForm_giacprezzi("mg3100a", "");;
|
||||
// ********************
|
||||
// range di stampa magazzini
|
||||
TForm_item & rangem=_form->find_field('H',odd_page,FF_RANGEMAGAZ);
|
||||
TString srangem;
|
||||
_cur = _form->cursor();
|
||||
if (*_mask->get(F_DAMAG))
|
||||
filter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||
{
|
||||
filter << "(" << LF_MAG <<"->CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||
srangem << "da \"" << _mask->get(F_DAMAG) << "\" ";
|
||||
}
|
||||
if (*_mask->get(F_AMAG))
|
||||
filter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||
switch (*_mask->get(F_FILTRO)) {
|
||||
{
|
||||
filter << "(" << LF_MAG <<"->CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||
srangem << "fino a \"" << _mask->get(F_AMAG) << "\"";
|
||||
}
|
||||
rangem.set(srangem.blank()? "Tutti i magazzini" : format("Magazzini %s",(const char *)srangem));
|
||||
// ********************
|
||||
// filtro giacenze
|
||||
TForm_item & it_filtro=_form->find_field('H',odd_page,FF_FILTRO);
|
||||
switch (filtro_articoli) {
|
||||
case '0': // non nulli
|
||||
filter << "(STR(" << LF_MAG << "->GIAC!=\"0\"))&&";
|
||||
it_filtro.set("non nulle");
|
||||
break;
|
||||
case 'P': // positivi
|
||||
filter << "(STR(" << LF_MAG << "->GIAC>\"0\"))&&";
|
||||
it_filtro.set("positive");
|
||||
break;
|
||||
case 'N': // negativi
|
||||
filter << "(STR(" << LF_MAG << "->GIAC<\"0\"))&&";
|
||||
it_filtro.set("negative");
|
||||
break;
|
||||
case 'S': // sottoscorta
|
||||
filter << "(STR(GIAC<SCORTAMIN))&&";
|
||||
filter << "(STR("<< LF_MAG << "->GIAC < " <<LF_MAG << "->SCORTAMIN))&&";
|
||||
it_filtro.set("sottoscorta");
|
||||
break;
|
||||
}
|
||||
if (filter.not_empty())
|
||||
filter.cut(filter.len()-2);
|
||||
|
||||
// ******************
|
||||
// sotto-ordinamenti e range di stampa articoli
|
||||
TForm_item & rangecm=_form->find_field('H',odd_page,FF_RANGECATMER);
|
||||
TForm_item & rangea=_form->find_field('H',odd_page,FF_RANGEARTIC);
|
||||
TString srangea,srangecm;
|
||||
switch (subordine)
|
||||
{
|
||||
case 'C':
|
||||
@ -321,6 +423,10 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").hide();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
if (!_mask->get(F_AART).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
break;
|
||||
case 'D':
|
||||
_cur->setkey(2);
|
||||
@ -329,6 +435,10 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").disable();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
if (!_mask->get(F_DADES).blank())
|
||||
srangea << "da \"" << _mask->get(F_DADES) << "\" ";
|
||||
if (!_mask->get(F_ADES).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_ADES) << "\"";
|
||||
break;
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
@ -339,19 +449,28 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").show();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").show();
|
||||
_form->setcatmer(TRUE);
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
if (!_mask->get(F_AART).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
if (!_mask->get(F_DACATMER).blank())
|
||||
srangecm << "da \"" << _mask->get(F_DACATMER) << "\" ";
|
||||
if (!_mask->get(F_ACATMER).blank())
|
||||
srangecm << "fino a \"" << _mask->get(F_ACATMER) << "\"";
|
||||
rangecm.set(srangecm.empty() ? "Tutte le categorie merceologiche" : format("Categorie merc. %s", (const char *)srangecm));
|
||||
break;
|
||||
}
|
||||
_form->setdett_perart(
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),
|
||||
_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
rangea.set(srangea.empty() ? "Tutti gli articoli" : format("Articoli %s", (const char *)srangea));
|
||||
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S') ? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S') ? "1": "0");
|
||||
_form->find_field('B',odd_page,FF_FLAGVALMEDI).set(_mask->get_bool(F_VALMEDI) ? "1": "0");
|
||||
_form->setdett_perart(
|
||||
_mask->get_bool(F_RAGGCODICE),
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),
|
||||
_mask->get_bool(F_DETTAGLIOMAG));
|
||||
|
||||
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
@ -365,7 +484,6 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
ena=_mask->get_bool(F_VALMEDI) ? "1": "0";
|
||||
_form->find_field('H',odd_page,FF_FLAGVALMEDI).set(ena);
|
||||
_form->find_field('B',odd_page,FF_FLAGVALMEDI).set(ena);
|
||||
_form->find_field('B',odd_page,FF_FLAGTOTQTA).set("1");
|
||||
|
||||
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "mg3msk.h"
|
||||
#define F_ORDINE 101
|
||||
#define F_ORDINEART 102
|
||||
#define F_ORDINEMAG 103
|
||||
@ -12,18 +13,12 @@
|
||||
#define F_ADES 112
|
||||
#define F_VALMEDI 113
|
||||
#define F_STAMPAGIAC 114
|
||||
#define F_RAGGCODICE 115
|
||||
#define F_FROMLIVELLOART 116
|
||||
#define F_TOLIVELLOART 117
|
||||
#define F_RAGGLIVGIAC 118
|
||||
#define F_TOTALIMAGAZZINI 119
|
||||
#define F_TOTALIDEPOSITI 120
|
||||
|
||||
#define F_ENABLEMAGAZZINI 121
|
||||
#define F_DETTAGLIOMAG 122
|
||||
#define F_DETTAGLIODEP 123
|
||||
#define F_FROMLIVELLOGIAC 124
|
||||
#define F_TOLIVELLOGIAC 125
|
||||
#define F_FILTRO 126
|
||||
#define F_PREZZIVALORI 127
|
||||
#define F_CODLISTINO 128
|
||||
|
@ -207,9 +207,9 @@ END
|
||||
|
||||
BOOLEAN F_RAGGCODICE
|
||||
BEGIN
|
||||
PROMPT 2 14 "Raggruppo gli articoli"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
PROMPT 2 14 "Stampa totali livelli di codice"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
END
|
||||
|
||||
NUMBER F_FROMLIVELLOART 1
|
||||
|
379
mg/mg3100a.frm
379
mg/mg3100a.frm
@ -20,7 +20,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
@ -28,7 +28,7 @@ SECTION GRAPHIC
|
||||
BEGIN
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 6
|
||||
SECTION HEADER ODD 8
|
||||
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
@ -57,10 +57,35 @@ BEGIN
|
||||
PROMPT 45 2 "Stampa dati storici giacenze"
|
||||
END
|
||||
|
||||
STRINGA FF_FILTRO 20
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 74 2 ""
|
||||
END
|
||||
|
||||
STRINGA FF_RANGEARTIC 40
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 1 3 ""
|
||||
END
|
||||
|
||||
STRINGA FF_RANGEMAGAZ 40
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 1 4 ""
|
||||
END
|
||||
|
||||
STRINGA FF_RANGECATMER 40
|
||||
BEGIN
|
||||
KEY "RANGE"
|
||||
PROMPT 45 4 ""
|
||||
END
|
||||
|
||||
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "---------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
PROMPT 1 5 "---------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
|
||||
@ -103,117 +128,118 @@ END
|
||||
FLAG "H"
|
||||
KEY "FLAG VALORI MEDI"
|
||||
ITEM "0|N"
|
||||
// MESSAGE SHOW,FG_VALORI@|HIDE,FG_VALMEDI@
|
||||
MESSAGE HIDE,FG_VALMEDI@
|
||||
MESSAGE HIDE,FG_VALMEDI@
|
||||
ITEM "1|Y"
|
||||
// MESSAGE HIDE,FG_VALORI@|SHOW,FG_VALMEDI@
|
||||
MESSAGE SHOW,FG_VALMEDI@
|
||||
MESSAGE SHOW,FG_VALMEDI@
|
||||
END
|
||||
|
||||
STRINGA 6 20
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 2 4 "Codice"
|
||||
PROMPT 2 6 "Codice"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 24 4 "Descrizione"
|
||||
PROMPT 31 6 "Descrizione"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 45 4 "UM"
|
||||
PROMPT 54 6 "UM"
|
||||
END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 56 4 "Giac."
|
||||
PROMPT 68 6 "Giac."
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 57 4 "Acq."
|
||||
PROMPT 65 6 "Acq."
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
STRINGA 9 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 68 4 "Ult.costo"
|
||||
PROMPT 74 6 "Ult.costo"
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 9 12 2
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 67 4 "Val.Acq."
|
||||
GROUP FG_RIGAVALORI,FG_VALORI
|
||||
PROMPT 75 6 "Val.Acq."
|
||||
GROUP FG_RIGAVALORI FG_VALORI
|
||||
END
|
||||
STRINGA 9 12 2
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 67 5 "Medio"
|
||||
GROUP FG_RIGAVALORI,FG_VALMEDI
|
||||
FLAG "H"
|
||||
PROMPT 75 7 " Medio"
|
||||
GROUP FG_RIGAVALORI FG_VALMEDI
|
||||
END
|
||||
STRINGA 10 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 83 4 "Ven."
|
||||
PROMPT 91 6 "Ven."
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
STRINGA 10 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 81 4 "Prezzo"
|
||||
PROMPT 90 6 "Prezzo"
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 11 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 93 4 "Val.Ven."
|
||||
GROUP FG_RIGAVALORI,FG_VALORI
|
||||
PROMPT 101 6 "Val.Ven."
|
||||
GROUP FG_RIGAVALORI FG_VALORI
|
||||
END
|
||||
STRINGA 11 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 93 5 "Medio"
|
||||
GROUP FG_RIGAVALORI,FG_VALMEDI
|
||||
FLAG "H"
|
||||
PROMPT 101 7 " Medio"
|
||||
GROUP FG_RIGAVALORI FG_VALMEDI
|
||||
END
|
||||
STRINGA 12 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 109 4 "Rim."
|
||||
PROMPT 117 6 "Rim."
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
STRINGA 13 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 119 4 "Val.Rim."
|
||||
GROUP FG_RIGAVALORI,FG_VALORI
|
||||
PROMPT 127 6 "Val.Rim."
|
||||
GROUP FG_RIGAVALORI FG_VALORI
|
||||
END
|
||||
STRINGA 13 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 119 5 "Medio"
|
||||
GROUP FG_RIGAVALORI,FG_VALMEDI
|
||||
FLAG "H"
|
||||
PROMPT 127 7 " Medio"
|
||||
GROUP FG_RIGAVALORI FG_VALMEDI
|
||||
END
|
||||
STRINGA 14 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 131 4 "Giacenza"
|
||||
PROMPT 139 6 "Giacenza"
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 131 4 "Scorta-Giac."
|
||||
PROMPT 139 6 "Scorta-Giac."
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
|
||||
STRINGA 17 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 6 "---------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
KEY "Separatore (finale)"
|
||||
PROMPT 1 8 "---------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
END
|
||||
@ -264,14 +290,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE HIDE,FG_VALORI@|ENABLE,FG_VALMEDI@
|
||||
END
|
||||
|
||||
SECTION H_CATMER 1 1 2 GROUP
|
||||
STRINGA 11 12 2
|
||||
SECTION H_CATMER 1 1 1 GROUP
|
||||
STRINGA 11 20 1
|
||||
BEGIN
|
||||
KEY "Codice CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODCATMER
|
||||
PROMPT 2 1 "Cat. merc."
|
||||
MESSAGE _USER,CODCATMER|COPY,1551
|
||||
END
|
||||
STRINGA 12 30 2
|
||||
STRINGA 12 70 1
|
||||
BEGIN
|
||||
KEY "CATMER"
|
||||
PROMPT 3 1 ""
|
||||
@ -279,9 +305,9 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,15@|_USER,RESET_UM,1553
|
||||
@ -289,19 +315,19 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
SECTION GRUPPI_CATMER 1 0 0 FILE LF_ANAMAG GROUP GRMERC
|
||||
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,14@|_USER,RESET_UM,1453
|
||||
END
|
||||
SECTION H_GCODART1 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -311,20 +337,20 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART1 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
SECTION GRUPPI_CODART1 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,13@|_USER,RESET_UM,1353
|
||||
END
|
||||
SECTION H_GCODART2 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -337,18 +363,18 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART2 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,12@|_USER,RESET_UM,1253
|
||||
END
|
||||
|
||||
SECTION H_GCODART3 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -359,19 +385,19 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
|
||||
SECTION GRUPPI_CODART3 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 1 1 ""
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,11@|_USER,RESET_UM,1153
|
||||
END
|
||||
SECTION H_GCODART4 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -384,17 +410,17 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART4 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,10@|_USER,RESET_UM,1053
|
||||
END
|
||||
SECTION H_GCODART5 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -407,17 +433,17 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART5 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,9@|_USER,RESET_UM,953
|
||||
END
|
||||
SECTION H_GCODART6 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -430,17 +456,17 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART6 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,8@|_USER,RESET_UM,853
|
||||
END
|
||||
SECTION H_GCODART7 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -453,18 +479,18 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART7 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,7@|_USER,RESET_UM,753
|
||||
END
|
||||
|
||||
SECTION H_GCODART8 1 1 1 HEADER
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
BEGIN
|
||||
@ -477,17 +503,18 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
SECTION GRUPPI_CODART8 1 0 0 FILE LF_ANAMAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,6@|_USER,RESET_UM,653
|
||||
END
|
||||
SECTION H_ARTICOLO 1 1 1 HEADER
|
||||
STRINGA 2020 12 2
|
||||
STRINGA 2020 20 1
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
BEGIN
|
||||
@ -499,7 +526,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
NUMERO 22 12
|
||||
BEGIN
|
||||
KEY "ULC"
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
PROMPT 7 2 ""
|
||||
FIELD LF_ANAMAG->ULTCOS1
|
||||
MESSAGE COPY,648
|
||||
@ -507,108 +534,158 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
NUMERO 23 12
|
||||
BEGIN
|
||||
KEY "PREZZO"
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
PROMPT 7 2 ""
|
||||
MESSAGE _USER,PREZZO|COPY,649
|
||||
END
|
||||
END
|
||||
|
||||
SECTION FILE_GIACENZE 1 0 0 FILE LF_MAG
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,5@
|
||||
END
|
||||
SECTION H_GLIVGIAC1 1 1 1 HEADER
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,1|COPY,551
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,1|COPY,550
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC1 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 40 1
|
||||
SECTION GRUPPI_LIVGIAC1 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,4@
|
||||
END
|
||||
SECTION H_GLIVGIAC2 1 1 1 HEADER
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,2|COPY,451
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,2|COPY,450
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC2 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 40 1
|
||||
SECTION GRUPPI_LIVGIAC2 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,3@
|
||||
END
|
||||
|
||||
SECTION H_GLIVGIAC3 1 1 1 HEADER
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,3|COPY,351
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,3|COPY,350
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FLAG "H"
|
||||
KEY "CATMER"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,2@
|
||||
END
|
||||
|
||||
SECTION H_GLIVGIAC4 1 1 1 HEADER
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,4|COPY,251
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,4|COPY,250
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
STRINGA 60 40 1
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE LF_MAG GROUP CODART
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "MAGAZZ"
|
||||
FLAG "H"
|
||||
KEY "DESCR. MAGAZZ"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,1@
|
||||
FIELD 500@->s0
|
||||
MESSAGE RESET,1@|COPY,150
|
||||
END
|
||||
SECTION H_MAGAZZINO 1 1 1 HEADER
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 2 1 "Magazzino "
|
||||
FIELD 500@->s0
|
||||
MESSAGE COPY,150
|
||||
END
|
||||
STRINGA 61 50 1
|
||||
BEGIN
|
||||
FLAG "H"
|
||||
KEY "COD. MAGAZZ"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 500@->CODTAB
|
||||
MESSAGE COPY,151
|
||||
END
|
||||
SECTION H_MAGAZZINO 1 0 0 GROUP
|
||||
SECTION H_MAGAZZINO_NODEP 1 0 0 STR_EXPR 500@->B0!="X" // NON DIVISO IN DEPOSITI
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
PROMPT 2 1 ""
|
||||
KEY "codice magazzino"
|
||||
MESSAGE HIDE,TOT_DEPOSITO
|
||||
END
|
||||
END
|
||||
SECTION H_MAGAZZINO_DEP 1 1 1 STR_EXPR 500@->B0=="X" // DIVISIONE IN DEPOSITI
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "descr magazzino"
|
||||
FIELD 500@->CODTAB[1,3]
|
||||
PROMPT 2 1 " Magazzino "
|
||||
MESSAGE SHOW,TOT_DEPOSITO
|
||||
END
|
||||
STRINGA 61 70 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
FIELD 500@->s0
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE LF_MAG GROUP CODMAG[1,3]
|
||||
SECTION H_DEPOSITO 1 0 0 GROUP
|
||||
END
|
||||
SECTION TOT_DEPOSITO 1 1 1 GROUP
|
||||
STRINGA 51 12
|
||||
STRINGA 51 20
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 " Deposito"
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
PROMPT 2 1 " Deposito "
|
||||
END
|
||||
STRINGA 52 30
|
||||
BEGIN
|
||||
@ -730,13 +807,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // depositi dello stesso magazzino
|
||||
END // MAGAZZ
|
||||
|
||||
SECTION TOT_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 151 12 2
|
||||
SECTION TOT_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 151 20 1
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 2 1 " Totale mag."
|
||||
PROMPT 2 1 " Totale mag. "
|
||||
END
|
||||
STRINGA 150 30 2
|
||||
STRINGA 150 30 1
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 3 1 ""
|
||||
@ -831,12 +908,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC4
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
STRINGA 251 7 2
|
||||
STRINGA 251 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac4"
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 250 35 2
|
||||
STRINGA 250 30 2
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
@ -933,12 +1010,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC3
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 351 7 2
|
||||
STRINGA 351 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 350 35 2
|
||||
STRINGA 350 30 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1036,12 +1113,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC2
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 451 7 2
|
||||
STRINGA 451 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 450 35 2
|
||||
STRINGA 450 30 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1137,12 +1214,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac2
|
||||
END // GGIAC1
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 551 7 2
|
||||
STRINGA 551 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 550 35 2
|
||||
STRINGA 550 30 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1239,19 +1316,11 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac1
|
||||
|
||||
END // FILE GIACENZE
|
||||
//SECTION TOT_ARTICOLO 1 1 1 GROUP
|
||||
// FLAGS "R"
|
||||
// STRINGA 883 32 1
|
||||
// BEGIN
|
||||
// KEY ""
|
||||
// PROMPT 1 1 "CAZZOTTO "
|
||||
// END
|
||||
//END
|
||||
SECTION TOT_ARTICOLO 1 1 1 FOOTER
|
||||
STRINGA 651 12 2
|
||||
STRINGA 651 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 "Articolo "
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 650 30 2
|
||||
BEGIN
|
||||
@ -1363,12 +1432,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART8
|
||||
SECTION TOT_GART8 1 1 1 FOOTER
|
||||
STRINGA 751 8 2
|
||||
STRINGA 751 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 750 34 2
|
||||
STRINGA 750 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1408,7 +1477,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "1#######,@#"
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,753|ADD,843
|
||||
GROUP 7
|
||||
END
|
||||
@ -1466,12 +1535,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART7
|
||||
SECTION TOT_GART7 1 1 1 FOOTER
|
||||
STRINGA 851 8 2
|
||||
STRINGA 851 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 850 34 2
|
||||
STRINGA 850 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1569,12 +1638,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART6
|
||||
SECTION TOT_GART6 1 1 1 FOOTER
|
||||
STRINGA 951 8 2
|
||||
STRINGA 951 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 950 34 2
|
||||
STRINGA 950 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1672,12 +1741,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART5
|
||||
SECTION TOT_GART5 1 1 1 FOOTER
|
||||
STRINGA 1051 8 2
|
||||
STRINGA 1051 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1050 34 2
|
||||
STRINGA 1050 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1772,12 +1841,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART4
|
||||
SECTION TOT_GART4 1 1 1 FOOTER
|
||||
STRINGA 1151 8 2
|
||||
STRINGA 1151 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1150 34 2
|
||||
STRINGA 1150 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1872,12 +1941,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART3
|
||||
SECTION TOT_GART3 1 1 1 FOOTER
|
||||
STRINGA 1251 8 2
|
||||
STRINGA 1251 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1250 34 2
|
||||
STRINGA 1250 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -1972,12 +2041,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART2
|
||||
SECTION TOT_GART2 1 1 1 FOOTER
|
||||
STRINGA 1351 8 2
|
||||
STRINGA 1351 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1350 34 2
|
||||
STRINGA 1350 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2072,12 +2141,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART1
|
||||
SECTION TOT_GART1 1 1 1 FOOTER
|
||||
STRINGA 1451 8 2
|
||||
STRINGA 1451 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1450 34 2
|
||||
STRINGA 1450 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2173,12 +2242,12 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // GRUPPI_CATMER
|
||||
|
||||
SECTION TOT_CATMER 1 1 1 FOOTER
|
||||
STRINGA 1551 8 2
|
||||
STRINGA 1551 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1550 34 2
|
||||
STRINGA 1550 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
@ -2270,6 +2339,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // section body, loop anamag
|
||||
|
||||
SECTION FOOTER ODD 2
|
||||
END // fine footer
|
||||
END // fine footersection
|
||||
|
||||
END // fine form
|
||||
|
2344
mg/mg3100aa.frm
Executable file
2344
mg/mg3100aa.frm
Executable file
File diff suppressed because it is too large
Load Diff
860
mg/mg3100b.frm
860
mg/mg3100b.frm
File diff suppressed because it is too large
Load Diff
@ -1,23 +1,22 @@
|
||||
#include <applicat.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "mglib.h"
|
||||
#include "mg3200.h"
|
||||
#include "mg3frm.h"
|
||||
|
||||
class TStampadisp_mask: public TMask
|
||||
class TStampadisp_mask: public TStampemg_mask
|
||||
{
|
||||
static bool handle_ragg(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_liv(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_subord(TMask_field &fld, KEY k); // handler
|
||||
TMagazzini _magazz_ini;
|
||||
|
||||
public:
|
||||
TMagazzini magazz_ini() {return _magazz_ini;}
|
||||
TStampadisp_mask();
|
||||
virtual ~TStampadisp_mask(){};
|
||||
};
|
||||
TStampadisp_mask::TStampadisp_mask():
|
||||
TMask("mg3200")
|
||||
TStampemg_mask("mg3200")
|
||||
{
|
||||
TCodgiac_livelli giaclev;
|
||||
TCodart_livelli artlev;
|
||||
@ -53,7 +52,7 @@ bool TStampadisp_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
fraggcod.enable();
|
||||
else {
|
||||
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
if (!fld.mask().get_bool(F_TOTALIDEPOSITI) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -76,8 +75,15 @@ bool TStampadisp_mask::handle_liv(TMask_field &fld, KEY k)
|
||||
{
|
||||
TOperable_field &ftotmag=(TOperable_field &)fld.mask().field(F_TOTALIMAGAZZINI);
|
||||
TOperable_field &fdettmag=(TOperable_field &)fld.mask().field(F_DETTAGLIOMAG);
|
||||
TOperable_field &fdettgiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
{
|
||||
if (fld.mask().get_int(F_TOLIVELLOART))
|
||||
{
|
||||
fdettgiac.reset();
|
||||
fdettgiac.disable();
|
||||
} else
|
||||
fdettgiac.enable();
|
||||
if (fld.mask().get_int(F_TOLIVELLOART) || fld.mask().get_int(F_TOLIVELLOGIAC))
|
||||
{
|
||||
// raggruppamenti prima del dettaglio magazzini
|
||||
@ -102,7 +108,7 @@ bool TStampadisp_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
if (m.get(F_ORDINE)=="M")
|
||||
{
|
||||
ftotmag.enable();
|
||||
if (!m.get_bool(F_DETTAGLIOMAG) || !m.get_bool(F_DETTAGLIODEP))
|
||||
if (!m.get_bool(F_TOTALIDEPOSITI) || !m.get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
@ -134,6 +140,8 @@ protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void on_firm_change();
|
||||
|
||||
void setprint_permagazzini();
|
||||
void setprint_perarticoli();
|
||||
|
||||
@ -157,6 +165,11 @@ bool TStampa_disp::destroy()
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TStampa_disp::on_firm_change()
|
||||
{
|
||||
_mask->enable_livellicodice();
|
||||
}
|
||||
|
||||
|
||||
void TStampa_disp::setprint_permagazzini()
|
||||
{
|
||||
@ -174,8 +187,11 @@ void TStampa_disp::setprint_permagazzini()
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
// abilita/disabilita le sezioni dei totali
|
||||
_form->setdett_permag(_mask->get_int(F_FROMLIVELLOART),
|
||||
_form->setdett_permag(
|
||||
_mask->get_bool(F_RAGGCODICE),
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
TRUE,
|
||||
@ -195,17 +211,45 @@ void TStampa_disp::setprint_perarticoli()
|
||||
{
|
||||
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||
TString cfilter,filter,joinexp;
|
||||
TString sortexp("ANNOES|CODART|LIVELLO|CODMAG");
|
||||
|
||||
TString sortexp("ANNOES|CODART");
|
||||
if (_mask->get_bool(F_RAGGCODICE))
|
||||
{
|
||||
if (_mask->get_int(F_TOLIVELLOART))
|
||||
sortexp << "[" << _mask->artlev().packed_length(_mask->get_int(F_TOLIVELLOART)) << "]";
|
||||
}
|
||||
if (_mask->get_bool(F_RAGGLIVGIAC))
|
||||
{
|
||||
sortexp << "|LIVELLO" ;
|
||||
if (_mask->get_int(F_TOLIVELLOGIAC))
|
||||
sortexp << "[1," << _mask->artlev().packed_length(_mask->get_int(F_TOLIVELLOGIAC)) << "]";
|
||||
}
|
||||
sortexp << "|CODMAG";
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
_form = new TForm_stampemg("mg3200a", "");
|
||||
_cur = _form->cursor();
|
||||
// ********************
|
||||
// range di stampa magazzini
|
||||
TForm_item & rangem=_form->find_field('H',odd_page,FF_RANGEMAGAZ);
|
||||
TString srangem;
|
||||
|
||||
if (*_mask->get(F_DAMAG))
|
||||
filter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||
{
|
||||
filter << "(" << LF_MAG<< "->CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||
srangem << "da \"" << _mask->get(F_DAMAG) << "\" ";
|
||||
}
|
||||
if (*_mask->get(F_AMAG))
|
||||
filter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||
{
|
||||
filter << "(" << LF_MAG<< "->CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||
srangem << "fino a \"" << _mask->get(F_AMAG) << "\" ";
|
||||
}
|
||||
rangem.set(srangem.empty() ? "Tutti i magazzini" : format("Magazzini %s",(const char *)srangem));
|
||||
if (filter.not_empty())
|
||||
filter.cut(filter.len()-2);
|
||||
// ********************
|
||||
// range di stampa articoli
|
||||
TForm_item & rangecm=_form->find_field('H',odd_page,FF_RANGECATMER);
|
||||
TForm_item & rangea=_form->find_field('H',odd_page,FF_RANGEARTIC);
|
||||
TString srangea,srangecm;
|
||||
switch (subordine)
|
||||
{
|
||||
case 'C':
|
||||
@ -215,6 +259,10 @@ void TStampa_disp::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").hide();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
if (!_mask->get(F_AART).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
break;
|
||||
case 'D':
|
||||
_cur->setkey(2);
|
||||
@ -223,6 +271,10 @@ void TStampa_disp::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").disable();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
if (!_mask->get(F_DADES).blank())
|
||||
srangea << "da \"" << _mask->get(F_DADES) << "\" ";
|
||||
if (!_mask->get(F_ADES).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_ADES) << "\"";
|
||||
break;
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
@ -233,11 +285,24 @@ void TStampa_disp::setprint_perarticoli()
|
||||
_form->find_field('B',odd_page,"H_CATMER").show();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").show();
|
||||
_form->setcatmer(TRUE);
|
||||
if (!_mask->get(F_DAART).blank())
|
||||
srangea << "da \"" << _mask->get(F_DAART) << "\" ";
|
||||
if (!_mask->get(F_AART).blank())
|
||||
srangea << "fino a \"" << _mask->get(F_AART) << "\"";
|
||||
if (!_mask->get(F_DACATMER).blank())
|
||||
srangecm << "da \"" << _mask->get(F_DACATMER) << "\" ";
|
||||
if (!_mask->get(F_ACATMER).blank())
|
||||
srangecm << "fino a \"" << _mask->get(F_ACATMER) << "\"";
|
||||
rangecm.set(srangecm.empty() ? "Tutte le categorie merceologiche" : format("Categorie merc. %s", (const char *)srangecm));
|
||||
break;
|
||||
}
|
||||
rangea.set(srangea.empty() ? "Tutti gli articoli" : format("Articoli %s",(const char *)srangea));
|
||||
|
||||
_form->setdett_perart(
|
||||
_mask->get_bool(F_RAGGCODICE),
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "mg3msk.h"
|
||||
#define F_ORDINE 101
|
||||
#define F_ORDINEART 102
|
||||
#define F_ORDINEMAG 103
|
||||
@ -10,18 +11,12 @@
|
||||
#define F_ACATMER 110
|
||||
#define F_DADES 111
|
||||
#define F_ADES 112
|
||||
#define F_RAGGCODICE 115
|
||||
#define F_FROMLIVELLOART 116
|
||||
#define F_TOLIVELLOART 117
|
||||
#define F_RAGGLIVGIAC 118
|
||||
#define F_TOTALIMAGAZZINI 119
|
||||
#define F_TOTALIDEPOSITI 120
|
||||
|
||||
#define F_ENABLEMAGAZZINI 121
|
||||
#define F_DETTAGLIOMAG 122
|
||||
#define F_DETTAGLIODEP 123
|
||||
#define F_FROMLIVELLOGIAC 124
|
||||
#define F_TOLIVELLOGIAC 125
|
||||
|
||||
#define G_CATMER 1
|
||||
#define G_CODART 2
|
||||
|
@ -19,11 +19,11 @@ BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 34 1 "sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@|ENABLE,F_RAGGCODICE
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@|DISABLE,F_RAGGCODICE
|
||||
ITEM "M|gruppo merc./codice"
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@|DISABLE,F_RAGGCODICE
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
@ -51,6 +51,7 @@ BEGIN
|
||||
OUTPUT F_DAART CODART
|
||||
GROUP G_CODART
|
||||
END
|
||||
|
||||
STRING F_AART 20
|
||||
BEGIN
|
||||
PROMPT 2 5 " all'articolo "
|
||||
@ -73,6 +74,7 @@ BEGIN
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_DESART
|
||||
END
|
||||
|
||||
STRING F_ADES 50
|
||||
BEGIN
|
||||
PROMPT 2 5 " all'articolo "
|
||||
@ -118,7 +120,6 @@ BEGIN
|
||||
GROUP G_CATMER
|
||||
END
|
||||
|
||||
|
||||
STRING F_ACATMER 3
|
||||
BEGIN
|
||||
PROMPT 2 11 " al gruppo "
|
||||
@ -144,10 +145,9 @@ BEGIN
|
||||
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
|
||||
END
|
||||
|
||||
|
||||
BOOLEAN F_RAGGCODICE
|
||||
BEGIN
|
||||
PROMPT 2 13 "Raggruppo gli articoli"
|
||||
PROMPT 2 13 "Stampa totali livelli di codice"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
END
|
||||
@ -181,7 +181,7 @@ END
|
||||
|
||||
BOOL F_RAGGLIVGIAC
|
||||
BEGIN
|
||||
PROMPT 2 14 "Raggruppo le giacenze"
|
||||
PROMPT 2 14 "Stampa totali livelli di giacenza"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOGIAC|CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOGIAC|ENABLE,F_TOLIVELLOGIAC
|
||||
END
|
||||
|
2573
mg/mg3200a.frm
2573
mg/mg3200a.frm
File diff suppressed because it is too large
Load Diff
225
mg/mg3200b.frm
225
mg/mg3200b.frm
@ -17,7 +17,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
@ -134,16 +134,34 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,1@|_USER,RESET_UM,153
|
||||
END
|
||||
SECTION H_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 60 40 1
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 2 1 "Magazzino "
|
||||
FIELD 500@->CODTAB
|
||||
MESSAGE COPY,151
|
||||
END
|
||||
STRINGA 61 70 1
|
||||
BEGIN
|
||||
KEY "codice magazzino"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 500@->s0
|
||||
MESSAGE COPY,150
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_MAGAZZINO 1 0 0 FILE LF_MAG GROUP CODMAG[1,3]
|
||||
LIST FF_DIVDEPOSITI
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "Divisione in depositi"
|
||||
FIELD 500@->B0
|
||||
PROMPT 2 1 ""
|
||||
ITEM " |non diviso in depositi"
|
||||
MESSAGE HIDE,TOT_DEPOSITO
|
||||
ITEM "X|diviso in depositi"
|
||||
MESSAGE SHOW,TOT_DEPOSITO
|
||||
END
|
||||
STRINGA 60 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
@ -151,11 +169,18 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,15@|_USER,RESET_UM,53
|
||||
END
|
||||
SECTION H_DEPOSITO 1 1 1 GROUP
|
||||
STRINGA 60 40 1
|
||||
SECTION H_DEPOSITO 1 1 1 STR_EXPR #FF_DIVDEPOSITI=="X"
|
||||
STRINGA 60 20 1
|
||||
BEGIN
|
||||
KEY "codice dep"
|
||||
PROMPT 2 1 "Deposito "
|
||||
FIELD 501@->CODTAB[4,5]
|
||||
MESSAGE COPY,51
|
||||
END
|
||||
STRINGA 61 70 1
|
||||
BEGIN
|
||||
KEY "codice dep"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 501@->s0
|
||||
MESSAGE COPY,50
|
||||
END
|
||||
@ -170,13 +195,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,14@|_USER,RESET_UM,1453
|
||||
END
|
||||
SECTION H_GCODART1 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,1
|
||||
MESSAGE _USER,CODGRUPPOART,1|COPY,1451
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -193,13 +218,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,13@|_USER,RESET_UM,1353
|
||||
END
|
||||
SECTION H_GCODART2 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,2
|
||||
MESSAGE _USER,CODGRUPPOART,2|COPY,1351
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -216,13 +241,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,12@|_USER,RESET_UM,1253
|
||||
END
|
||||
SECTION H_GCODART3 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,3
|
||||
MESSAGE _USER,CODGRUPPOART,3|COPY,1251
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -239,13 +264,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,11@|_USER,RESET_UM,1153
|
||||
END
|
||||
SECTION H_GCODART4 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,4
|
||||
MESSAGE _USER,CODGRUPPOART,4|COPY,1151
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -262,13 +287,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,10@|_USER,RESET_UM,1053
|
||||
END
|
||||
SECTION H_GCODART5 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,5
|
||||
MESSAGE _USER,CODGRUPPOART,5|COPY,1051
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -284,14 +309,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE RESET,9@|_USER,RESET_UM,953
|
||||
END
|
||||
SECTION H_GCODART6 1 1 2 GROUP
|
||||
STRINGA 16 12 2
|
||||
SECTION H_GCODART6 1 1 1 GROUP
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,6
|
||||
MESSAGE _USER,CODGRUPPOART,6|COPY,951
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -308,13 +333,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,8@|_USER,RESET_UM,853
|
||||
END
|
||||
SECTION H_GCODART7 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,7
|
||||
MESSAGE _USER,CODGRUPPOART,7|COPY,851
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -332,13 +357,13 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
|
||||
SECTION H_GCODART8 1 1 1 GROUP
|
||||
STRINGA 16 12 2
|
||||
STRINGA 16 20
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART,8
|
||||
MESSAGE _USER,CODGRUPPOART,8|COPY,751
|
||||
END
|
||||
STRINGA 17 30 2
|
||||
STRINGA 17 30 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 3 1 ""
|
||||
@ -355,13 +380,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,6@
|
||||
END
|
||||
SECTION H_ARTICOLO 1 1 1 GROUP
|
||||
STRINGA 2020 12 2
|
||||
STRINGA 2020 20
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 2 1 ""
|
||||
FIELD LF_ANAMAG->CODART
|
||||
MESSAGE COPY,651
|
||||
END
|
||||
STRINGA 21 30 2
|
||||
STRINGA 21 30 1
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 3 1 ""
|
||||
@ -379,10 +405,16 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,5@
|
||||
END
|
||||
SECTION H_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,1|COPY,551
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,1|COPY,550
|
||||
END
|
||||
END
|
||||
@ -396,10 +428,16 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE RESET,4@
|
||||
END
|
||||
SECTION H_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,2|COPY,451
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,2|COPY,450
|
||||
END
|
||||
END
|
||||
@ -414,25 +452,34 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END
|
||||
|
||||
SECTION H_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 31 50 1
|
||||
STRINGA 31 20 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,3|COPY,351
|
||||
END
|
||||
STRINGA 31 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC,3|COPY,350
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVGIAC3 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
SECTION H_GLIVGIAC4 1 1 1 GROUP
|
||||
END
|
||||
END
|
||||
SECTION GRUPPI_LIVGIAC4 1 0 0 FILE LF_MAG GROUP LIVELLO
|
||||
END
|
||||
|
||||
SECTION TOT_GLIVGIAC4 1 1 2 GROUP
|
||||
STRINGA 251 2
|
||||
SECTION TOT_GLIVGIAC4 1 1 1 GROUP
|
||||
STRINGA 251 20
|
||||
BEGIN
|
||||
KEY "Livello giac4"
|
||||
PROMPT 2 1 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC,4
|
||||
END
|
||||
STRINGA 250 40 1
|
||||
STRINGA 250 30 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 3 1 ""
|
||||
@ -517,15 +564,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC3
|
||||
SECTION TOT_GLIVGIAC3 1 1 1 GROUP
|
||||
STRINGA 350 35 2
|
||||
STRINGA 351 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 351 7 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
END
|
||||
STRINGA 353 3
|
||||
BEGIN
|
||||
@ -601,15 +648,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GGIAC2
|
||||
SECTION TOT_GLIVGIAC2 1 1 1 GROUP
|
||||
STRINGA 450 35 2
|
||||
STRINGA 450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 451 7 2
|
||||
STRINGA 451 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 453 3
|
||||
BEGIN
|
||||
@ -684,15 +731,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot ggiac2
|
||||
END // GGIAC1
|
||||
SECTION TOT_GLIVGIAC1 1 1 1 GROUP
|
||||
STRINGA 550 35 2
|
||||
STRINGA 550 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 551 7 2
|
||||
STRINGA 551 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 553 3
|
||||
BEGIN
|
||||
@ -768,15 +815,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // FILE GIACENZE
|
||||
SECTION TOT_ARTICOLO 1 1 1 GROUP
|
||||
STRINGA 650 30 2
|
||||
STRINGA 651 20 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 650 30 1
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 651 12 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 "Articolo "
|
||||
END
|
||||
STRINGA 653 3
|
||||
BEGIN
|
||||
@ -853,15 +900,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART8
|
||||
SECTION TOT_GART8 1 1 1 GROUP
|
||||
STRINGA 750 34 2
|
||||
STRINGA 750 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 751 8 2
|
||||
BEGIN
|
||||
STRINGA 751 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 753 3
|
||||
BEGIN
|
||||
@ -937,15 +984,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART7
|
||||
SECTION TOT_GART7 1 1 1 GROUP
|
||||
STRINGA 850 34 2
|
||||
STRINGA 850 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 851 8 2
|
||||
STRINGA 851 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 853 3
|
||||
BEGIN
|
||||
@ -1021,15 +1068,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART6
|
||||
SECTION TOT_GART6 1 1 1 GROUP
|
||||
STRINGA 950 34 2
|
||||
STRINGA 950 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 951 8 2
|
||||
STRINGA 951 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 953 3
|
||||
BEGIN
|
||||
@ -1105,15 +1152,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART5
|
||||
SECTION TOT_GART5 1 1 1 GROUP
|
||||
STRINGA 1050 34 2
|
||||
STRINGA 1050 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1051 8 2
|
||||
STRINGA 1051 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1053 3
|
||||
BEGIN
|
||||
@ -1189,15 +1236,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART4
|
||||
SECTION TOT_GART4 1 1 1 GROUP
|
||||
STRINGA 1150 34 2
|
||||
STRINGA 1150 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1151 8 2
|
||||
STRINGA 1151 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1153 3
|
||||
BEGIN
|
||||
@ -1273,15 +1320,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART3
|
||||
SECTION TOT_GART3 1 1 1 GROUP
|
||||
STRINGA 1250 34 2
|
||||
STRINGA 1250 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1251 8 2
|
||||
STRINGA 1251 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1253 3
|
||||
BEGIN
|
||||
@ -1357,15 +1404,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART2
|
||||
SECTION TOT_GART2 1 1 1 GROUP
|
||||
STRINGA 1350 34 2
|
||||
STRINGA 1350 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1351 8 2
|
||||
STRINGA 1351 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1353 3
|
||||
BEGIN
|
||||
@ -1441,15 +1488,15 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
END // GART1
|
||||
SECTION TOT_GART1 1 1 1 GROUP
|
||||
STRINGA 1450 34 2
|
||||
STRINGA 1450 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 1451 8 2
|
||||
BEGIN
|
||||
STRINGA 1451 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 " Totale"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 1453 3
|
||||
BEGIN
|
||||
@ -1526,17 +1573,17 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // GRUPPI DEPOSITO
|
||||
|
||||
SECTION TOT_DEPOSITO 1 1 1 GROUP
|
||||
SECTION SEP_DEPOSITO 1 1 NORMAL GROUP
|
||||
SECTION SEP_DEPOSITO 1 0 0 NORMAL GROUP
|
||||
STRINGA 77
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 52 1 "----------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END
|
||||
STRINGA 51 12
|
||||
STRINGA 51 20
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 " Totale dep."
|
||||
PROMPT 2 1 "Totale dep."
|
||||
END
|
||||
STRINGA 50 30
|
||||
BEGIN
|
||||
@ -1616,8 +1663,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
END // tot depositi
|
||||
END // MAGAZZ
|
||||
|
||||
SECTION TOT_MAGAZZINO 1 1 1 GROUP
|
||||
SECTION SEP_MAGAZZINO 1 1 1 NORMAL GROUP
|
||||
SECTION TOT_MAGAZZINO 1 1 2 GROUP
|
||||
SECTION SEP_MAGAZZINO 1 0 0 NORMAL GROUP
|
||||
STRINGA 77
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
@ -1629,10 +1676,10 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "Magazzino"
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 151 12 1
|
||||
STRINGA 151 20 1
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 2 1 " Totale mag."
|
||||
PROMPT 2 1 "Totale mag."
|
||||
END
|
||||
STRINGA 153 3
|
||||
BEGIN
|
||||
|
137
mg/mg3300.cpp
137
mg/mg3300.cpp
@ -22,8 +22,6 @@ class TForm_schedemag : public TForm_stampemg
|
||||
TToken_string *_rmov_sortexp;
|
||||
TString *_rmov_raggcond,*_rmov_joinexp;
|
||||
|
||||
//TMag_livelli * _giaclev,*_artlev; // gestori dei gruppi articolo/giacenza
|
||||
//TDecoder *_giacgrp,*_artgrp; // decodifiche dei gruppi articolo/giacenza
|
||||
TTipo_saldomag _tiposcheda; // tipo scheda
|
||||
|
||||
bool ragg_exprs(int livart,int livgiac);
|
||||
@ -99,13 +97,6 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
|
||||
cf.set(descr_tiposcheda());
|
||||
return TRUE;
|
||||
}
|
||||
if (subcode=="CODGRUPPOART") {
|
||||
TString valore(relation()->lfile(LF_ANAMAG).get("CODART"));
|
||||
if (artlev().enabled())
|
||||
valore.cut(min(valore.len(),artlev().packed_length(_tolivart)));
|
||||
cf.set(valore);
|
||||
return TRUE;
|
||||
}
|
||||
if (subcode=="GRUPPOART") {
|
||||
TString valore;
|
||||
if (_tolivart==artlev().last_level())
|
||||
@ -114,21 +105,19 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
|
||||
valore=artlev().group_descr(relation()->lfile(LF_ANAMAG).get("CODART"),_tolivart);
|
||||
cf.set(valore);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (subcode=="CODGRUPPOGIAC") {
|
||||
TString levname(giaclev().name(_tolivgiac)),valore;
|
||||
int lv=0;
|
||||
valore="";
|
||||
do {
|
||||
TString piece(giaclev().unpack_grpcode(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),lv+1));
|
||||
if (piece.empty())
|
||||
piece=UNKNOWN_NAME;
|
||||
if (valore.not_empty())
|
||||
valore << '/';
|
||||
valore << piece ;
|
||||
} while (++lv<_tolivgiac);
|
||||
cf.set(levname << ' ' << valore);
|
||||
}
|
||||
s.add(_tolivgiac);
|
||||
TForm_stampemg::validate(cf, s);
|
||||
return TRUE;
|
||||
}
|
||||
if (subcode=="CODGRUPPOART") {
|
||||
TString valore(relation()->lfile(LF_ANAMAG).get("CODART"));
|
||||
if (artlev().enabled())
|
||||
valore.cut(min(valore.len(),artlev().packed_length(_tolivart)));
|
||||
cf.set(valore);
|
||||
return TRUE;
|
||||
}
|
||||
if (subcode=="GRUPPOGIAC") {
|
||||
TString valore;
|
||||
valore=giaclev().group_descr(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),_tolivgiac);
|
||||
@ -181,7 +170,7 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return TForm::validate(cf, s);
|
||||
return TForm_stampemg::validate(cf, s);
|
||||
}
|
||||
|
||||
|
||||
@ -213,16 +202,52 @@ bool TForm_schedemag::ragg_exprs(int livart,int livgiac)
|
||||
}
|
||||
|
||||
|
||||
void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int livgiac)
|
||||
{
|
||||
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||
h_d.enable(sudd_dep);
|
||||
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||
h_a.enable(show_dett);
|
||||
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||
h_g.enable(giaclev().enabled() && (livart ==0 || livgiac !=0 ));
|
||||
|
||||
*_rmov_raggcond="CODMAG[1,3]";
|
||||
_rmov_sortexp->add("CODMAG[1,3]");
|
||||
if (sudd_dep)
|
||||
{
|
||||
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||
_rmov_sortexp->add("CODMAG[4,5]");
|
||||
if (show_dett)
|
||||
{
|
||||
ragg_exprs(livart,livgiac);
|
||||
}
|
||||
}
|
||||
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||
s.setcondition(*_rmov_raggcond,_strexpr);
|
||||
|
||||
TString cond;
|
||||
cond << LF_MOVMAG << "->DATAREG";
|
||||
_rmov_sortexp->add(cond);
|
||||
_rmov_sortexp->add("NUMREG");
|
||||
|
||||
_tolivart=livart ? livart :artlev().last_level() ;
|
||||
_tolivgiac=livgiac ? livgiac :giaclev().last_level();
|
||||
}
|
||||
|
||||
|
||||
void TForm_schedemag::setdett_percatmer(bool sottocat,int livart,int livgiac,bool sudd_mag,bool sudd_dep)
|
||||
{
|
||||
TForm_subsection &h_c=(TForm_subsection &)find_field('B',odd_page,"HEADER_CATMER");
|
||||
h_c.enable();
|
||||
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||
h_a.enable();
|
||||
h_a.set_newpage(livart !=0 && livgiac ==0 && !sudd_mag);
|
||||
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_GRMOV");
|
||||
h_g.enable((livart ==0 || livgiac !=0 || sudd_mag));
|
||||
h_g.enable(livart ==0 || livgiac !=0 || sudd_mag);
|
||||
h_g.set_newpage(livart ==0 || livgiac !=0 || sudd_mag);
|
||||
TForm_subsection &h_l=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||
h_l.enable(giaclev().enabled() && livgiac !=0 );
|
||||
h_l.enable(giaclev().enabled() && (livgiac !=0 ||livart ==0));
|
||||
TForm_subsection &h_m=(TForm_subsection &)find_field('B',odd_page,"HEADER_MAG");
|
||||
h_m.enable(sudd_mag );
|
||||
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||
@ -259,39 +284,6 @@ void TForm_schedemag::setdett_percatmer(bool sottocat,int livart,int livgiac,boo
|
||||
_sottocatmer=sottocat;
|
||||
}
|
||||
|
||||
void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int livgiac)
|
||||
{
|
||||
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||
h_d.enable(sudd_dep);
|
||||
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||
h_a.enable(show_dett);
|
||||
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||
h_g.enable(giaclev().enabled() && (livart ==0 || livgiac !=0 ));
|
||||
|
||||
*_rmov_raggcond="CODMAG[1,3]";
|
||||
_rmov_sortexp->add("CODMAG[1,3]");
|
||||
if (sudd_dep)
|
||||
{
|
||||
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||
_rmov_sortexp->add("CODMAG[4,5]");
|
||||
if (show_dett)
|
||||
{
|
||||
ragg_exprs(livart,livgiac);
|
||||
}
|
||||
}
|
||||
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||
s.setcondition(*_rmov_raggcond,_strexpr);
|
||||
|
||||
TString cond;
|
||||
cond << LF_MOVMAG << "->DATAREG";
|
||||
_rmov_sortexp->add(cond);
|
||||
_rmov_sortexp->add("NUMREG");
|
||||
|
||||
_tolivart=livart ? livart :artlev().last_level() ;
|
||||
_tolivgiac=livgiac ? livgiac :giaclev().last_level();
|
||||
}
|
||||
|
||||
void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,int livgiac,bool sudd_mag,bool sudd_dep)
|
||||
{
|
||||
// raggruppamento MAX fino all'articolo
|
||||
@ -301,13 +293,15 @@ void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,
|
||||
h_cm2.enable(percatmer);
|
||||
|
||||
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||
h_a.enable(livart!=0 && !sudd_mag);
|
||||
h_a.enable (livart!=0 && !sudd_mag);
|
||||
h_a.set_newpage(livart!=0 && !sudd_mag);
|
||||
TForm_subsection &t_a=(TForm_subsection &)find_field('B',odd_page,"TOTALI_GRUPPIART");
|
||||
t_a.show( livart!=0 && !sudd_mag);
|
||||
|
||||
// raggruppamento MAX fino alla giacenza
|
||||
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_GRMOV");
|
||||
h_g.enable((livart !=0 || livgiac !=0 || sudd_mag));
|
||||
h_g.enable(livart ==0 || livgiac !=0 || sudd_mag);
|
||||
h_g.set_newpage(livart ==0 || livgiac !=0 || sudd_mag);
|
||||
TForm_subsection &h_l=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||
h_l.enable(giaclev().enabled() && (livart ==0 || livgiac !=0 ));
|
||||
TForm_subsection &h_m=(TForm_subsection &)find_field('B',odd_page,"HEADER_MAG");
|
||||
@ -417,16 +411,23 @@ class TStampa_schede_mag : public TSkeleton_application
|
||||
int _codicees;
|
||||
bool _raggmag;
|
||||
protected:
|
||||
void setprint_perarticoli();
|
||||
void setprint_permagazzini();
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void on_firm_change();
|
||||
|
||||
void setprint_perarticoli();
|
||||
void setprint_permagazzini();
|
||||
|
||||
public:
|
||||
TStampa_schede_mag() {}
|
||||
};
|
||||
|
||||
void TStampa_schede_mag::on_firm_change()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TStampa_schede_mag::setprint_permagazzini()
|
||||
{
|
||||
@ -555,6 +556,7 @@ void TStampa_schede_mag::setprint_perarticoli()
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||
_mask->get_bool(F_SUDDIV_DEPOSITI));
|
||||
break;
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
darec.put("GRMERC",_mask->get(F_DACATMER));
|
||||
@ -593,11 +595,18 @@ void TStampa_schede_mag::main_loop()
|
||||
{
|
||||
while (_mask->run() == K_ENTER)
|
||||
{
|
||||
if (_mask->get(F_ENABLER)=="1" && _mask->get_int(F_TOLIVELLOART)==0)
|
||||
_mask->set(F_TOLIVELLOART,_mask->artlev().last_level());
|
||||
if (_mask->get(F_ENABLER)=="2" && _mask->get_int(F_TOLIVELLOGIAC)==0)
|
||||
_mask->set(F_TOLIVELLOGIAC,_mask->giaclev().last_level());
|
||||
if (_mask->magazz_ini().gestmag(TRUE))
|
||||
{
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
_form = new TForm_schedemag("mg3300a", "");
|
||||
_form = new TForm_schedemag("mg3300a", "") ;
|
||||
// *_mask->get(F_FILTRO) == 'T' ?
|
||||
// new TForm_schedemag("mg3300aa", "") :
|
||||
// new TForm_schedemag("mg3300a", "") ;
|
||||
setprint_perarticoli();
|
||||
} else if (*_mask->get(F_ORDINE)=='M') {
|
||||
_form = new TForm_schedemag("mg3300b", "");
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "mg3msk.h"
|
||||
#define F_SCHEDA 101
|
||||
#define F_DADATA 102
|
||||
#define F_ADATA 103
|
||||
@ -16,10 +17,6 @@
|
||||
#define F_ADES 115
|
||||
#define F_VALMEDI 116
|
||||
#define F_STAMPAGIAC 117
|
||||
#define F_RAGGCODICE 118
|
||||
#define F_TOLIVELLOART 120
|
||||
#define F_RAGGLIVGIAC 121
|
||||
#define F_TOLIVELLOGIAC 122
|
||||
|
||||
#define F_SUDDIV_MAGAZZINI 123
|
||||
#define F_SUDDIV_DEPOSITI 124
|
||||
@ -31,6 +28,7 @@
|
||||
#define G_CATMER 1
|
||||
#define G_CODART 2
|
||||
#define G_DESART 3
|
||||
#define G_LIVELLI 4
|
||||
|
||||
|
||||
#define FF_STAMPASALDOPREC 300
|
||||
@ -58,4 +56,4 @@
|
||||
#define FF_VALORE_MOVART 321
|
||||
|
||||
#define ALIAS_CATMER 510
|
||||
#define ALIAS_SOTTOCATMER 511
|
||||
#define ALIAS_SOTTOCATMER 511
|
||||
|
@ -33,11 +33,11 @@ BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 42 2 "sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@|ENABLE,G_LIVELLI@
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|HIDE,G_CODART@|SHOW,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|HIDE,G_CODART@|SHOW,G_DESART@|"1",F_ENABLER|"0",F_TOLIVELLOART|DISABLE,G_LIVELLI@
|
||||
ITEM "M|gruppo merc."
|
||||
MESSAGE SHOW,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@|ENABLE,G_LIVELLI@
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
@ -189,16 +189,17 @@ END
|
||||
LIST F_ENABLER 30
|
||||
BEGIN
|
||||
PROMPT 2 14 ""
|
||||
ITEM "|Nessun raggruppamento"
|
||||
MESSAGE ENABLE,F_SUDDIV_MAGAZZINI
|
||||
MESSAGE RESET,F_TOLIVELLOGIAC|RESET,F_TOLIVELLOART|HIDE,F_TOLIVELLOART|HIDE,F_TOLIVELLOGIAC
|
||||
|
||||
ITEM "1|Raggruppa gli articoli"
|
||||
MESSAGE RESET,F_TOLIVELLOGIAC|HIDE,F_TOLIVELLOGIAC|SHOW,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
|
||||
ITEM "2|Raggruppa le giacenze"
|
||||
MESSAGE RESET,F_TOLIVELLOART|HIDE,F_TOLIVELLOART|SHOW,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
|
||||
|
||||
ITEM "|Massimo dettaglio"
|
||||
MESSAGE ENABLE,F_SUDDIV_MAGAZZINI
|
||||
MESSAGE RESET,F_TOLIVELLOGIAC|RESET,F_TOLIVELLOART|HIDE,F_TOLIVELLOART|HIDE,F_TOLIVELLOGIAC
|
||||
|
||||
GROUP G_LIVELLI
|
||||
END
|
||||
|
||||
NUMBER F_TOLIVELLOART 1
|
||||
@ -213,6 +214,7 @@ BEGIN
|
||||
//MESSAGE CLEAR,F_SUDDIV_MAGAZZINI|K_SPACE,F_SUDDIV_MAGAZZINI
|
||||
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_LIVELLI
|
||||
WARNING "Livello finale non ammissibile"
|
||||
END
|
||||
|
||||
@ -228,6 +230,7 @@ BEGIN
|
||||
//MESSAGE CLEAR,F_SUDDIV_MAGAZZINI|K_SPACE,F_SUDDIV_MAGAZZINI
|
||||
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_LIVELLI
|
||||
WARNING "Livello finale non ammissibile"
|
||||
END
|
||||
|
||||
|
@ -30,7 +30,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
@ -78,15 +78,15 @@ SECTION HEADER ODD 5
|
||||
END
|
||||
NUMBER 7 12
|
||||
BEGIN
|
||||
PROMPT 46 4 "Quantità"
|
||||
PROMPT 47 4 "Quantità"
|
||||
END
|
||||
NUMBER 8 12
|
||||
BEGIN
|
||||
PROMPT 58 4 "Prezzo"
|
||||
PROMPT 62 4 "Prezzo"
|
||||
END
|
||||
NUMBER 9 12
|
||||
BEGIN
|
||||
PROMPT 71 4 "Valore"
|
||||
PROMPT 74 4 "Valore"
|
||||
END
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
@ -103,7 +103,7 @@ SECTION BODY ODD 0
|
||||
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
|
||||
END
|
||||
|
||||
SECTION HEADER_ARTICOLO 1 2 2 HEADER
|
||||
SECTION HEADER_ARTICOLO 1 2 2 NORMAL GROUP
|
||||
FLAGS "N"
|
||||
SECTION HEADER_CATMER 1 2 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
@ -141,15 +141,12 @@ SECTION BODY ODD 0
|
||||
END //HEADER articolo
|
||||
|
||||
SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG BY CODART
|
||||
FLAGS "N"
|
||||
SECTION FILE_RMOVMAG 1 1 0 FILE LF_RMOVMAG
|
||||
FLAGS "N"
|
||||
SECTION HEADER_GRMOV 1 2 2 HEADER
|
||||
FLAGS "N"
|
||||
SECTION HEADER_GRMOV 1 2 2 NORMAL GROUP
|
||||
SECTION HEADER_LIVGIACCATMER 1 1 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
KEY "CODICE CATMER"
|
||||
KEY "CODICE CATMER"
|
||||
PROMPT 1 1 "Gruppo merceologico "
|
||||
MESSAGE _USER,CODCATMER|RESET,FF_STAMPASALDOPREC
|
||||
END
|
||||
@ -173,7 +170,7 @@ SECTION BODY ODD 0
|
||||
PROMPT 30 1 ""
|
||||
MESSAGE _USER,GRUPPOART
|
||||
END
|
||||
SECTION HEADER_LIVGIAC 1 1 1 GROUP
|
||||
SECTION HEADER_LIVGIAC 2 1 1 GROUP
|
||||
STRINGA 20 20 1
|
||||
BEGIN
|
||||
KEY "CODICE livello"
|
||||
@ -194,7 +191,7 @@ SECTION BODY ODD 0
|
||||
PROMPT 3 1 "Magazzino "
|
||||
FIELD 500@->S0
|
||||
END
|
||||
SECTION HEADER_DEP 2 1 1 GROUP
|
||||
SECTION HEADER_DEP 2 1 1 STR_EXPR 500@->B0=="X"
|
||||
STRINGA 23 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
@ -374,7 +371,7 @@ SECTION BODY ODD 0
|
||||
END
|
||||
END // totali mov
|
||||
END // loop scheda
|
||||
SECTION TOTALI_GRMOV 1 1 3 NUMEXPR #FF_SALDO_GRMOV!=0
|
||||
SECTION TOTALI_GRMOV 1 1 3 GROUP //PG057 NUMEXPR #FF_SALDO_GRMOV!=0
|
||||
|
||||
STRINGA 100 15
|
||||
BEGIN
|
||||
@ -401,7 +398,7 @@ SECTION BODY ODD 0
|
||||
END // TOTALI scheda per articolo
|
||||
END // loop RMOVMAG
|
||||
|
||||
SECTION TOTALI_MOV_ARTICOLO 1 0 0 NUMEXPR #FF_SALDO_MOV!=0
|
||||
SECTION TOTALI_MOV_ARTICOLO 1 0 0 GROUP // NUMEXPR #FF_SALDO_MOV!=0
|
||||
FLAGS "D"
|
||||
// da eliminare !!!!!!!!!!!
|
||||
/*
|
||||
@ -440,7 +437,7 @@ SECTION BODY ODD 0
|
||||
END // totali mov
|
||||
|
||||
END // ragg articolo (codice o catmer)
|
||||
SECTION TOTALI_GRUPPIART 1 1 3 NUMEXPR #FF_SALDO_GART!=0
|
||||
SECTION TOTALI_GRUPPIART 1 1 3 GROUP //PG057 NUMEXPR #FF_SALDO_GART!=0
|
||||
STRINGA 100 15
|
||||
BEGIN
|
||||
PROMPT 1 1 "Totale scheda"
|
||||
|
@ -29,7 +29,7 @@ END
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 1
|
||||
FONT "Courier New"
|
||||
// FONT "Courier New"
|
||||
// SIZE 12
|
||||
END
|
||||
|
||||
@ -126,12 +126,14 @@ SECTION BODY ODD 2
|
||||
PROMPT 1 1 "Magazzino "
|
||||
FIELD 500@->S0
|
||||
END
|
||||
SECTION HEADER_DEP 2 1 1 GROUP
|
||||
STRINGA 23 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 3 1 "Deposito "
|
||||
FIELD 501@->S0
|
||||
SECTION HEADER_DEP 2 0 0 GROUP
|
||||
SECTION HEADER_DEP_VERO 1 1 1 STR_EXPR 500@->B0=="X"
|
||||
STRINGA 23 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 3 1 "Deposito "
|
||||
FIELD 501@->S0
|
||||
END
|
||||
END
|
||||
SECTION HEADER_ARTICOLO 2 1 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
|
10
mg/mg3frm.h
10
mg/mg3frm.h
@ -3,9 +3,15 @@
|
||||
#define FF_FLAGSOTTOS 668
|
||||
#define FF_FLAGVALMEDI 669
|
||||
#define FF_PREZZIVALORI 670
|
||||
#define FF_DIVDEPOSITI 671
|
||||
|
||||
#define FG_VALORI 25
|
||||
#define FG_VALMEDI 26
|
||||
#define FF_RANGEMAGAZ 672
|
||||
#define FF_RANGEARTIC 673
|
||||
#define FF_RANGECATMER 674
|
||||
#define FF_FILTRO 675
|
||||
|
||||
#define FG_VALORI 25
|
||||
#define FG_VALMEDI 26
|
||||
#define FG_RIGAVALORI 27
|
||||
#define FG_RIGAPREZZI 28
|
||||
|
||||
|
6
mg/mg3msk.h
Executable file
6
mg/mg3msk.h
Executable file
@ -0,0 +1,6 @@
|
||||
#define F_RAGGCODICE 180
|
||||
#define F_FROMLIVELLOART 181
|
||||
#define F_TOLIVELLOART 182
|
||||
#define F_RAGGLIVGIAC 183
|
||||
#define F_FROMLIVELLOGIAC 184
|
||||
#define F_TOLIVELLOGIAC 185
|
@ -94,7 +94,7 @@ END
|
||||
NUMERO 106
|
||||
BEGIN
|
||||
KEY "quant"
|
||||
PROMPT 88 4 "Quantita'"
|
||||
PROMPT 86 4 "Quantita'"
|
||||
END
|
||||
|
||||
NUMERO 107
|
||||
@ -274,7 +274,7 @@ SECTION BODY ODD 1
|
||||
NUMERO 10
|
||||
BEGIN
|
||||
KEY "totale mov"
|
||||
PROMPT 83 3 "Totale valore movimentato: "
|
||||
PROMPT 86 3 "Totale valore movimentato: "
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
|
202
mg/mg4200.cpp
202
mg/mg4200.cpp
@ -8,7 +8,7 @@
|
||||
#define MAX_VAL_COLUMNS 6
|
||||
class TForm_inventario : public TForm_stampemg
|
||||
{
|
||||
int colonne;
|
||||
int _colonne;
|
||||
TConfig *conf_ditta;
|
||||
TArticolo_giacenza * _curr_art;
|
||||
TString16 _codlist,_catven; // codici listino e cat vendita
|
||||
@ -42,41 +42,41 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s)
|
||||
if (subcode=="VAL1") {
|
||||
valorizzazione(cf,_valorizz_scelte[0]);
|
||||
}
|
||||
if (subcode=="VAL2"&& colonne >=2) {
|
||||
if (subcode=="VAL2"&& _colonne >=2) {
|
||||
valorizzazione(cf,_valorizz_scelte[1]);
|
||||
}
|
||||
if (subcode=="VAL3" && colonne >=3) {
|
||||
if (subcode=="VAL3" && _colonne >=3) {
|
||||
valorizzazione(cf,_valorizz_scelte[2]);
|
||||
}
|
||||
if (subcode=="VAL4" && colonne >=4) {
|
||||
if (subcode=="VAL4" && _colonne >=4) {
|
||||
valorizzazione(cf,_valorizz_scelte[3]);
|
||||
}
|
||||
if (subcode=="VAL5"&& colonne >=5) {
|
||||
if (subcode=="VAL5"&& _colonne >=5) {
|
||||
valorizzazione(cf,_valorizz_scelte[4]);
|
||||
}
|
||||
if (subcode=="VAL6" && colonne >=6) {
|
||||
if (subcode=="VAL6" && _colonne >=6) {
|
||||
valorizzazione(cf,_valorizz_scelte[5]);
|
||||
}
|
||||
if (subcode=="NAMEVAL1") {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[0]]);
|
||||
}
|
||||
if (subcode=="NAMEVAL2"&& colonne >=2) {
|
||||
if (subcode=="NAMEVAL2"&& _colonne >=2) {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[1]]);
|
||||
}
|
||||
if (subcode=="NAMEVAL3" && colonne >=3) {
|
||||
if (subcode=="NAMEVAL3" && _colonne >=3) {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[2]]);
|
||||
}
|
||||
if (subcode=="NAMEVAL4" && colonne >=4) {
|
||||
if (subcode=="NAMEVAL4" && _colonne >=4) {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[3]]);
|
||||
}
|
||||
if (subcode=="NAMEVAL5"&& colonne >=5) {
|
||||
if (subcode=="NAMEVAL5"&& _colonne >=5) {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[4]]);
|
||||
}
|
||||
if (subcode=="NAMEVAL6" && colonne >=6) {
|
||||
if (subcode=="NAMEVAL6" && _colonne >=6) {
|
||||
cf.set(Nome_valorizz[_valorizz_scelte[5]]);
|
||||
}
|
||||
if (subcode=="LINEATOTALI") {
|
||||
TString l(29*colonne+12,'-');
|
||||
TString l(29*_colonne+12,'-');
|
||||
cf.set(l);
|
||||
}
|
||||
}
|
||||
@ -95,43 +95,15 @@ TArticolo_giacenza &TForm_inventario::curr_art()
|
||||
|
||||
void TForm_inventario::add_colval(int tipo)
|
||||
{
|
||||
TTipo_valorizz t ;
|
||||
switch (tipo) {
|
||||
case 1:
|
||||
t=valorizz_ultcos;
|
||||
break;
|
||||
case 2:
|
||||
t=valorizz_mediacos;
|
||||
break;
|
||||
case 3:
|
||||
t=valorizz_przlist;
|
||||
break;
|
||||
case 4:
|
||||
t=valorizz_coststd;
|
||||
break;
|
||||
case 5:
|
||||
t=valorizz_costmedio;
|
||||
break;
|
||||
case 6:
|
||||
t=valorizz_FIFOa;
|
||||
break;
|
||||
case 7:
|
||||
t=valorizz_LIFOa;
|
||||
break;
|
||||
case 8:
|
||||
t=valorizz_FIFO;
|
||||
break;
|
||||
case 9:
|
||||
t=valorizz_LIFO;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
TTipo_valorizz t= (TTipo_valorizz )tipo;
|
||||
if (t>=valorizz_ultcos && tipo <=valorizz_LIFOr)
|
||||
{
|
||||
_valorizz_scelte[_colonne++]=t;
|
||||
TString col;
|
||||
col << _colonne;
|
||||
find_field('B',odd_page,FF_ENABLECOLS).set(col);
|
||||
find_field('H',odd_page,FF_ENABLECOLS).set(col);
|
||||
}
|
||||
_valorizz_scelte[colonne++]=t;
|
||||
TString col;
|
||||
col << colonne;
|
||||
find_field('B',odd_page,FF_ENABLECOLS).set(col);
|
||||
find_field('H',odd_page,FF_ENABLECOLS).set(col);
|
||||
}
|
||||
|
||||
bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
|
||||
@ -146,7 +118,7 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
|
||||
v=curr_art().media_costi(annoes).string();
|
||||
}
|
||||
if (t==valorizz_przlist) {
|
||||
v=curr_art().prezzo_listino(annoes,_codlist,_catven).string();
|
||||
v=curr_art().prezzo_listino(annoes,_catven,_codlist).string();
|
||||
}
|
||||
if (t==valorizz_coststd) {
|
||||
v=curr_art().costo_standard(annoes).string();
|
||||
@ -192,7 +164,7 @@ void TForm_inventario::set_parametri(const char * codcatv,const char * codlist,b
|
||||
TForm_inventario::TForm_inventario(const char *name,const char *code) :
|
||||
TForm_stampemg(name,code),_curr_art(NULL)
|
||||
{
|
||||
colonne=0;
|
||||
_colonne=0;
|
||||
}
|
||||
|
||||
|
||||
@ -208,6 +180,7 @@ class TStampainv_mask: public TStampemg_mask
|
||||
static bool handle_ragg(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_liv(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_subord(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_codlist(TMask_field &fld, KEY k); // handler
|
||||
public:
|
||||
TStampainv_mask();
|
||||
~TStampainv_mask(){};
|
||||
@ -222,8 +195,6 @@ TStampainv_mask::TStampainv_mask():
|
||||
else {
|
||||
field(F_CATVENLISTINO).disable(); field(F_CODLISTINO).disable();
|
||||
}
|
||||
TCodart_livelli artlev;
|
||||
TCodgiac_livelli giaclev;
|
||||
|
||||
set_handler(F_TOLIVELLOART, handle_liv);
|
||||
set_handler(F_TOLIVELLOGIAC, handle_liv);
|
||||
@ -231,18 +202,7 @@ TStampainv_mask::TStampainv_mask():
|
||||
set_handler(F_DETTAGLIODEP, handle_ragg);
|
||||
set_handler(F_DETTAGLIOMAG, handle_ragg);
|
||||
set_handler(F_ORDINEART,handle_subord);
|
||||
if (!artlev.enabled()) {
|
||||
TMask_field &f1=field(F_RAGGCODICE);
|
||||
f1.reset(); f1.check();f1.hide();
|
||||
field(F_FROMLIVELLOART).hide();
|
||||
field(F_TOLIVELLOART).hide();
|
||||
}
|
||||
if (!giaclev.enabled()) {
|
||||
TMask_field &f2=field(F_RAGGLIVGIAC);
|
||||
f2.reset(); f2.check();f2.hide();
|
||||
field(F_FROMLIVELLOGIAC).hide();
|
||||
field(F_TOLIVELLOGIAC).hide();
|
||||
}
|
||||
set_handler(F_CODLISTINO, handle_codlist);
|
||||
}
|
||||
|
||||
bool TStampainv_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
@ -318,6 +278,29 @@ bool TStampainv_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
}
|
||||
|
||||
|
||||
bool TStampainv_mask::handle_codlist(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
if (fld.empty())
|
||||
{
|
||||
TMask & m=fld.mask();
|
||||
|
||||
if (m.get_int(F_VAL1)-1==valorizz_przlist ||
|
||||
m.get_int(F_VAL2)-1==valorizz_przlist ||
|
||||
m.get_int(F_VAL3)-1==valorizz_przlist ||
|
||||
m.get_int(F_VAL4)-1==valorizz_przlist ||
|
||||
m.get_int(F_VAL5)-1==valorizz_przlist ||
|
||||
m.get_int(F_VAL6)-1==valorizz_przlist
|
||||
)
|
||||
return fld.error_box("Occorre specificare il listino per la valorizzazione");
|
||||
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// STAMPA anagrafiche
|
||||
class TStampa_inventario : public TSkeleton_application
|
||||
{
|
||||
@ -330,6 +313,8 @@ protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void on_firm_change();
|
||||
|
||||
void setprint_permagazzini();
|
||||
void setprint_perarticoli();
|
||||
|
||||
@ -337,6 +322,12 @@ public:
|
||||
TStampa_inventario() {}
|
||||
};
|
||||
|
||||
void TStampa_inventario ::on_firm_change()
|
||||
{
|
||||
_mask->enable_livellicodice();
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool TStampa_inventario::create()
|
||||
{
|
||||
@ -368,20 +359,22 @@ void TStampa_inventario::setprint_permagazzini()
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_cur = _form->cursor();
|
||||
// setta il filtro sul cursore
|
||||
/* if (*_mask->get(F_FILTRO)=='N')
|
||||
if (*_mask->get(F_FILTRO)=='N')
|
||||
cfilter << "(GIAC!=0)&&" ;
|
||||
if (*_mask->get(F_FILTRO)=='+')
|
||||
cfilter << "(GIAC>0)&&" ;*/
|
||||
cfilter << "(GIAC>0)&&" ;
|
||||
if (*_mask->get(F_DAART))
|
||||
cfilter << "(CODART>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
|
||||
if (*_mask->get(F_AART))
|
||||
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< "~~~~~~~~~~~~~~~~~~~\")&&" ;
|
||||
if (cfilter.not_empty())
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
//_mask->set_livellicodice();
|
||||
// abilita/disabilita le sezioni dei totali
|
||||
_form->setdett_permag(_mask->get_int(F_FROMLIVELLOART),_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_form->setdett_permag(
|
||||
_mask->get_bool(F_RAGGCODICE),_mask->get_int(F_FROMLIVELLOART),_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),_mask->get_int(F_FROMLIVELLOGIAC),_mask->get_int(F_TOLIVELLOGIAC),
|
||||
TRUE,_mask->get_bool(F_DETTAGLIOMAG),_mask->get_bool(F_DETTAGLIODEP));
|
||||
|
||||
darec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
@ -401,16 +394,18 @@ void TStampa_inventario::setprint_perarticoli()
|
||||
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
_cur = _form->cursor();
|
||||
/* if (*_mask->get(F_FILTRO)=='N')
|
||||
filter << "(GIAC!=0)&&" ;
|
||||
if (*_mask->get(F_FILTRO)=='N')
|
||||
filter << "(" << LF_MAG <<"->GIAC!=0)&&" ;
|
||||
if (*_mask->get(F_FILTRO)=='+')
|
||||
filter << "(GIAC>0)&&" ;*/
|
||||
filter << "(" << LF_MAG <<"->GIAC>0)&&" ;
|
||||
if (*_mask->get(F_DAMAG))
|
||||
filter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||
if (*_mask->get(F_AMAG))
|
||||
filter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||
if (filter.not_empty())
|
||||
filter.cut(filter.len()-2);
|
||||
|
||||
_mask->set_livellicodice();
|
||||
switch (subordine)
|
||||
{
|
||||
case 'C':
|
||||
@ -441,12 +436,9 @@ void TStampa_inventario::setprint_perarticoli()
|
||||
break;
|
||||
}
|
||||
_form->setdett_perart(
|
||||
_mask->get_int(F_FROMLIVELLOART),
|
||||
_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_int(F_FROMLIVELLOGIAC),
|
||||
_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),
|
||||
_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
_mask->get_bool(F_RAGGCODICE),_mask->get_int(F_FROMLIVELLOART),_mask->get_int(F_TOLIVELLOART),
|
||||
_mask->get_bool(F_RAGGLIVGIAC),_mask->get_int(F_FROMLIVELLOGIAC),_mask->get_int(F_TOLIVELLOGIAC),
|
||||
_mask->get_bool(F_TOTALIMAGAZZINI),_mask->get_bool(F_TOTALIDEPOSITI));
|
||||
/* if (*_mask->get(F_FILTRO)=='N')
|
||||
_form->find_field('B',odd_page,"TOT_DEPOSITO").setcondition("GIAC!=0");
|
||||
if (*_mask->get(F_FILTRO)=='+')
|
||||
@ -457,7 +449,13 @@ void TStampa_inventario::setprint_perarticoli()
|
||||
joinexp << "ANNOES==" << _mask->get(F_ANNOES) << "|CODART==CODART";
|
||||
|
||||
TSortedfile *mag;
|
||||
mag= new TSortedfile(LF_MAG,NULL,sortexp,filter,1);
|
||||
// !?!?!! ATTENZIONE : Modifica temporanea
|
||||
mag= new TSortedfile(LF_MAG,NULL,sortexp,"",1);
|
||||
// il filtro viene qui settato DOPO la creazione del Sortedfile a causa di una bug
|
||||
// sulla libreria nei TSorted_file / TCursor
|
||||
mag->cursor().setfilter(filter);
|
||||
// FINE MODIFICA ; rimettere il filtro nel costruttore quando il bug sarà risolto
|
||||
|
||||
_cur->relation()->replace(mag,1,joinexp);
|
||||
_cur->setfilter(cfilter);
|
||||
_cur->setregion(darec,arec);
|
||||
@ -470,28 +468,30 @@ void TStampa_inventario::main_loop()
|
||||
{
|
||||
if (_mask->magazz_ini().gestmag(TRUE))
|
||||
{
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
_form = new TForm_inventario("mg4200a", "");
|
||||
setprint_perarticoli();
|
||||
} else {
|
||||
_form = new TForm_inventario("mg4200b", "");
|
||||
setprint_permagazzini();
|
||||
}
|
||||
_form->add_colval(_mask->get_int(F_VAL1));
|
||||
_form->add_colval(_mask->get_int(F_VAL2));
|
||||
_form->add_colval(_mask->get_int(F_VAL3));
|
||||
_form->add_colval(_mask->get_int(F_VAL4));
|
||||
_form->add_colval(_mask->get_int(F_VAL5));
|
||||
_form->add_colval(_mask->get_int(F_VAL6));
|
||||
_form->set_parametri(_mask->get(F_CATVENLISTINO),
|
||||
_mask->get(F_CODLISTINO),
|
||||
*_mask->get(F_REALE_GIAC)=='R',
|
||||
*_mask->get(F_FIN_COMP)=='C'
|
||||
);
|
||||
|
||||
_form->print();
|
||||
delete _form;
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
if (*_mask->get(F_FILTRO)=='T') // tutti gli articoli
|
||||
_form = new TForm_inventario("mg4200aa", "");
|
||||
else
|
||||
_form = new TForm_inventario("mg4200a", "");
|
||||
setprint_perarticoli();
|
||||
} else {
|
||||
_form = new TForm_inventario("mg4200b", "");
|
||||
setprint_permagazzini();
|
||||
}
|
||||
_form->set_parametri(_mask->get(F_CATVENLISTINO),
|
||||
_mask->get(F_CODLISTINO),
|
||||
*_mask->get(F_REALE_GIAC)=='R',
|
||||
*_mask->get(F_FIN_COMP)=='C' );
|
||||
_form->add_colval(_mask->get_int(F_VAL1)-1);
|
||||
_form->add_colval(_mask->get_int(F_VAL2)-1);
|
||||
_form->add_colval(_mask->get_int(F_VAL3)-1);
|
||||
_form->add_colval(_mask->get_int(F_VAL4)-1);
|
||||
_form->add_colval(_mask->get_int(F_VAL5)-1);
|
||||
_form->add_colval(_mask->get_int(F_VAL6)-1);
|
||||
|
||||
_form->print();
|
||||
delete _form;
|
||||
}
|
||||
} // while true
|
||||
return ;
|
||||
|
@ -1,5 +1,6 @@
|
||||
#ifndef __MG4200_H
|
||||
#define __MG4200_H
|
||||
#include "mg3msk.h"
|
||||
#include "anamag.h"
|
||||
#include "mag.h"
|
||||
#include "stomag.h"
|
||||
@ -19,18 +20,12 @@
|
||||
#define F_ADES 112
|
||||
#define F_VALMEDI 113
|
||||
#define F_STAMPAGIAC 114
|
||||
#define F_RAGGCODICE 115
|
||||
#define F_FROMLIVELLOART 116
|
||||
#define F_TOLIVELLOART 117
|
||||
#define F_RAGGLIVGIAC 118
|
||||
#define F_TOTALIMAGAZZINI 119
|
||||
#define F_TOTALIDEPOSITI 120
|
||||
|
||||
#define F_ENABLEMAGAZZINI 121
|
||||
#define F_DETTAGLIOMAG 122
|
||||
#define F_DETTAGLIODEP 123
|
||||
#define F_FROMLIVELLOGIAC 124
|
||||
#define F_TOLIVELLOGIAC 125
|
||||
#define F_REALE_GIAC 126
|
||||
#define F_PREZZIVALORI 127
|
||||
#define F_CODLISTINO 128
|
||||
|
@ -19,11 +19,11 @@ BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 36 1 "sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@|ENABLE,F_RAGGCODICE
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
|
||||
ITEM "M|gruppo merc./codice"
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@|ENABLE,F_RAGGCODICE
|
||||
END
|
||||
|
||||
LIST F_REALE_GIAC 12
|
||||
@ -31,7 +31,7 @@ BEGIN
|
||||
PROMPT 2 2 "Inventario "
|
||||
ITEM "G|di giacenza"
|
||||
ITEM "R|reale"
|
||||
HELP "reale =(giac+ACL-INCL)"
|
||||
HELP "reale =(giac+ACL-INCL)"
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
@ -51,7 +51,7 @@ END
|
||||
|
||||
LIST F_FIN_COMP 22
|
||||
BEGIN
|
||||
PROMPT 2 3 "Valorizzo solo "
|
||||
PROMPT 2 3 "Valorizza solo "
|
||||
ITEM "C|i componenti impegnati"
|
||||
ITEM "F|i finiti in produzione"
|
||||
HELP "finiti =(giac+INPRODF-INPRODC)"
|
||||
@ -60,10 +60,10 @@ END
|
||||
|
||||
LIST F_FILTRO 23
|
||||
BEGIN
|
||||
PROMPT 43 3 " Stampo "
|
||||
PROMPT 43 3 " stampa "
|
||||
ITEM "N|solo giacenze non nulle"
|
||||
ITEM "+|solo giacenze positive"
|
||||
ITEM " |tutti gli articoli"
|
||||
ITEM "T|tutti gli articoli"
|
||||
END
|
||||
|
||||
|
||||
@ -116,7 +116,7 @@ STRING F_DAMAG 3
|
||||
BEGIN
|
||||
PROMPT 2 5 "Dal magazzino "
|
||||
FLAGS "U"
|
||||
USE MAG SELECT CODTAB[4,5]=="" && CODTAB[1,3]!=""
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_DAMAG
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
@ -173,7 +173,7 @@ END
|
||||
|
||||
BOOLEAN F_RAGGCODICE
|
||||
BEGIN
|
||||
PROMPT 2 8 "Raggruppo gli articoli"
|
||||
PROMPT 2 8 "Stampa totali livelli di codice"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||
END
|
||||
@ -207,7 +207,7 @@ END
|
||||
|
||||
BOOL F_RAGGLIVGIAC
|
||||
BEGIN
|
||||
PROMPT 2 9 "Raggruppo le giacenze"
|
||||
PROMPT 2 9 "Stampa totali livelli di giacenza"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOGIAC|CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOGIAC|ENABLE,F_TOLIVELLOGIAC
|
||||
END
|
||||
@ -244,14 +244,14 @@ END
|
||||
|
||||
BOOL F_TOTALIMAGAZZINI
|
||||
BEGIN
|
||||
PROMPT 2 10 "Stampo i totali di magazzino"
|
||||
PROMPT 2 10 "Stampa i totali di magazzino"
|
||||
MESSAGE TRUE ENABLE,F_TOTALIDEPOSITI
|
||||
MESSAGE FALSE CLEAR,F_TOTALIDEPOSITI
|
||||
END
|
||||
|
||||
BOOL F_TOTALIDEPOSITI
|
||||
BEGIN
|
||||
PROMPT 42 10 "Stampo i totali di deposito"
|
||||
PROMPT 42 10 "Stampa i totali di deposito"
|
||||
END
|
||||
|
||||
LIST F_VAL1 20
|
||||
@ -269,7 +269,7 @@ BEGIN
|
||||
END
|
||||
LIST F_VAL2 20
|
||||
BEGIN
|
||||
PROMPT 42 12 "Valorizz. 2 "
|
||||
PROMPT 2 13 "Valorizz. 2 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
@ -283,7 +283,7 @@ BEGIN
|
||||
END
|
||||
LIST F_VAL3 20
|
||||
BEGIN
|
||||
PROMPT 2 13 "Valorizz. 3 "
|
||||
PROMPT 2 14 "Valorizz. 3 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
@ -297,7 +297,7 @@ BEGIN
|
||||
END
|
||||
LIST F_VAL4 20
|
||||
BEGIN
|
||||
PROMPT 42 13 "Valorizz. 4 "
|
||||
PROMPT 42 12 "Valorizz. 4 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
@ -311,7 +311,7 @@ BEGIN
|
||||
END
|
||||
LIST F_VAL5 20
|
||||
BEGIN
|
||||
PROMPT 2 14 "Valorizz. 5 "
|
||||
PROMPT 42 13 "Valorizz. 5 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
@ -337,6 +337,12 @@ BEGIN
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 2 16 "Valorizzazioni al prezzo di listino"
|
||||
END
|
||||
|
||||
STRING F_CATVENLISTINO 2
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
@ -350,6 +356,7 @@ BEGIN
|
||||
GROUP G_LISTINO
|
||||
END
|
||||
|
||||
|
||||
STRING F_CODLISTINO 3
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
|
4454
mg/mg4200a.frm
4454
mg/mg4200a.frm
File diff suppressed because it is too large
Load Diff
2613
mg/mg4200aa.frm
Executable file
2613
mg/mg4200aa.frm
Executable file
File diff suppressed because it is too large
Load Diff
4739
mg/mg4200b.frm
4739
mg/mg4200b.frm
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,14 @@
|
||||
#define FF_FLAGSOTTOS 668
|
||||
#define FF_FLAGVALMEDI 669
|
||||
#define FF_PREZZIVALORI 670
|
||||
#define FF_ENABLECOLS 671
|
||||
#define FF_DIVDEPOSITI 671
|
||||
|
||||
#define FF_RANGEMAGAZ 672
|
||||
#define FF_RANGEARTIC 673
|
||||
#define FF_RANGECATMER 674
|
||||
#define FF_FILTRO 675
|
||||
|
||||
#define FF_ENABLECOLS 679
|
||||
|
||||
// Questi sono i gruppi dei raggruppamenti
|
||||
// e rappresentano i vari gruppi articoli / livello giac / magazzini ed
|
||||
|
37
mg/mglib.h
37
mg/mglib.h
@ -48,6 +48,8 @@ class TSheet_field;
|
||||
#include "rmovmag.h"
|
||||
#endif
|
||||
|
||||
// campi comuni alla maschere di magazzino
|
||||
|
||||
|
||||
typedef enum {
|
||||
riga_nongenerata=' ',
|
||||
@ -56,13 +58,12 @@ typedef enum {
|
||||
} TTipo_rigamovmag;
|
||||
|
||||
char * Nome_valorizz[];
|
||||
|
||||
typedef enum {
|
||||
valorizz_costmedio,
|
||||
valorizz_ultcos,
|
||||
valorizz_mediacos,
|
||||
valorizz_przlist,
|
||||
valorizz_coststd,
|
||||
valorizz_costmedio,
|
||||
valorizz_FIFOa,
|
||||
valorizz_LIFOa,
|
||||
valorizz_FIFO,
|
||||
@ -76,6 +77,16 @@ class TArticolo : public TMultiple_rectype
|
||||
TRecfield * _codice;
|
||||
|
||||
protected:
|
||||
// la get_str supporta anche la sintassi:
|
||||
// #LF->fieldname
|
||||
// oppure:
|
||||
// #LF_par1->fieldname
|
||||
// dove:
|
||||
// LF = numero logico del sottofile collegato (LF_UMART, LF_DESLIN, LF_CODCORR
|
||||
// par1 = chiave dell'indice del file collegato
|
||||
// se par1 comincia con '#', esso indica il numero progressivo nell'indice
|
||||
// (es:#49_#1: prima unità di misura)
|
||||
// fieldname = nome del campo nel file collegato
|
||||
virtual const TString & get_str(const char* fieldname) const ;
|
||||
virtual void set_body_key(TRectype & rowrec);
|
||||
|
||||
@ -111,6 +122,17 @@ class TArticolo_giacenza : public TArticolo
|
||||
TString16 _anno_sto;
|
||||
|
||||
protected:
|
||||
// la get_str supporta anche la sintassi:
|
||||
// #LF->fieldname
|
||||
// #LF_par1->fieldname
|
||||
// #LF_par1_par2->fieldname
|
||||
// #LF_par1_par2_par3->fieldname
|
||||
// dove:
|
||||
// LF = numero logico del sottofile collegato (LF_UMART, LF_DESLIN, LF_CODCORR
|
||||
// par1, par2, par3 = varie parti della chiave dell'indice del file collegato
|
||||
// il numero di queste parti ed il loro valore dipende dal file collegato
|
||||
// se parX comincia per # rappresenta il numero progressivo nell'indice
|
||||
// fieldname = nome del campo nel file collegato
|
||||
virtual const TString & get_str(const char* fieldname) const ;
|
||||
virtual void set_body_key(TRectype & rowrec);
|
||||
void set_anno_mag (const char * anno = NULL);
|
||||
@ -437,7 +459,7 @@ class TForm_stampemg : public TForm
|
||||
//sostituire con le funzioni di TLivelli_... :
|
||||
//TDecoder *_giacgrp,*_artgrp;
|
||||
bool setdettaglio(bool show, int fromlivart,int livart,int fromlivgiac,int livgiac,bool dettgiac);
|
||||
void add_giaclev(TString &levname);
|
||||
void add_giaclev(TString &levname,int from,int to);
|
||||
|
||||
TCodart_livelli * _artlev;
|
||||
TCodgiac_livelli * _giaclev;
|
||||
@ -449,10 +471,11 @@ public:
|
||||
public:
|
||||
void gruppogiac(TForm_item &cf, TToken_string &s);
|
||||
void gruppoart(TForm_item &cf, TToken_string &s);
|
||||
void codgruppogiac(TForm_item &cf, TToken_string &s);
|
||||
bool validate(TForm_item &cf, TToken_string &s);
|
||||
void setcatmer(bool catmer,bool sottoc=FALSE);
|
||||
bool setdett_perart(int fromlivart,int livart,int fromlivgiac,int livgiac,bool showmag, bool showdep);
|
||||
bool setdett_permag(int fromlivart,int livart,int fromlivgiac,int livgiac,bool showmag, bool showdep,bool showdett);
|
||||
bool setdett_perart(bool totaliart, int fromlivart,int livart,bool totaligiac, int fromlivgiac,int livgiac,bool showmag, bool showdep);
|
||||
bool setdett_permag(bool totaliart, int fromlivart,int livart,bool totaligiac, int fromlivgiac, int livgiac,bool showmag, bool showdep,bool showdett);
|
||||
TForm_stampemg(const char *name,const char *code) ;
|
||||
virtual ~TForm_stampemg();
|
||||
};
|
||||
@ -464,10 +487,12 @@ class TStampemg_mask: public TMask
|
||||
TCodart_livelli _artlev;
|
||||
TMagazzini _magazz_ini;
|
||||
public:
|
||||
void enable_livellicodice() ;
|
||||
void set_livellicodice() ;
|
||||
TCodgiac_livelli &giaclev() {return _giaclev;}
|
||||
TCodart_livelli &artlev() {return _artlev;}
|
||||
TMagazzini & magazz_ini() {return _magazz_ini;}
|
||||
TStampemg_mask(const char * name) : TMask(name){}
|
||||
TStampemg_mask(const char * name) : TMask(name){;}
|
||||
virtual ~TStampemg_mask(){}
|
||||
};
|
||||
|
||||
|
@ -30,10 +30,15 @@ const TString & TArticolo::get_str(const char* fieldname) const
|
||||
const int logicnum = atoi(fname);
|
||||
const char * op1 = strchr(fname, '_');
|
||||
int index = 0;
|
||||
if (op1 && *op1 == '#')
|
||||
index = atoi(fname + 1);
|
||||
if (op1)
|
||||
{
|
||||
op1=op1+1;
|
||||
if (*op1 == '#')
|
||||
index = atoi(fname + 1);
|
||||
}
|
||||
const char* op2 = strstr(fname, "->");
|
||||
CHECKS(op2, "Can't find '->' in string ", fieldname);
|
||||
op2=op2+2;
|
||||
|
||||
switch (logicnum)
|
||||
{
|
||||
@ -217,16 +222,30 @@ const TString & TArticolo_giacenza::get_str(const char* fieldname) const
|
||||
return TRectype::get_str(fieldname);
|
||||
char * fname = (char *) fieldname + 1;
|
||||
const int logicnum = atoi(fname);
|
||||
if (logicnum !=LF_MAG && logicnum !=LF_STOMAG)
|
||||
return TArticolo::get_str(fieldname);
|
||||
|
||||
const char * op1 = strchr(fname, '_');
|
||||
int index = 0;
|
||||
if (op1 && *op1 == '#')
|
||||
index = atoi(fname + 1);
|
||||
fname = (char *) op1 + 1;
|
||||
if (op1)
|
||||
{
|
||||
op1=op1+1;
|
||||
fname = (char *) op1;
|
||||
if (*op1 == '#')
|
||||
index = atoi(fname + 1);
|
||||
}
|
||||
const char * op2 = strchr(fname, '_');
|
||||
fname = (char *) op2 + 1;
|
||||
if (op2)
|
||||
{
|
||||
op2=op2+1;
|
||||
fname = (char *) op2 + 1;
|
||||
}
|
||||
const char * op3 = strchr(fname, '_');
|
||||
if (op3)
|
||||
op3=op3+1;
|
||||
const char * op4 = strstr(fname, "->");
|
||||
CHECKS(op4, "Can't find '->' in string ", fieldname);
|
||||
op4=op4+2;
|
||||
|
||||
switch (logicnum)
|
||||
{
|
||||
@ -236,15 +255,12 @@ const TString & TArticolo_giacenza::get_str(const char* fieldname) const
|
||||
if (index > 0 && op3)
|
||||
return mag(op1).row(index).get(op4);
|
||||
break;
|
||||
case LF_STOMAG:
|
||||
case LF_STOMAG:
|
||||
if (index = 0)
|
||||
index = find_storico(op1, op2);
|
||||
if (index > 0)
|
||||
return storico(op1).row(index).get(op4);
|
||||
break;
|
||||
default:
|
||||
return TArticolo::get_str(fieldname);
|
||||
break;
|
||||
}
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
@ -465,9 +481,17 @@ real TArticolo_giacenza::prezzo_listino(const char * annoes, const char * catven
|
||||
if (last_esercizio == atoi(annoes))
|
||||
{
|
||||
static TString16 f;
|
||||
if (f.empty())
|
||||
TConfig cfg(CONFIG_DITTA);
|
||||
TCondizione_vendita cv(&cfg);
|
||||
cv.put_listino(codlist,catven);
|
||||
if (cv.ricerca(codice()))
|
||||
return cv.get_prezzo();
|
||||
else
|
||||
{
|
||||
// se non lo trova, cerca nel prezzo indicato nelle UM
|
||||
f.format("#%d->%s", LF_UMART, UMART_PREZZO);
|
||||
return get_real(f); // da terminare
|
||||
return get_real(f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
185
mg/mglib03.cpp
185
mg/mglib03.cpp
@ -1,16 +1,18 @@
|
||||
#include "form.h"
|
||||
#include "mglib.h"
|
||||
#include "mg3frm.h"
|
||||
#include "mg3msk.h"
|
||||
|
||||
|
||||
void TForm_stampemg::add_giaclev(TString &levname)
|
||||
void TForm_stampemg::add_giaclev(TString &levname, int from, int to)
|
||||
{
|
||||
int lv=1;
|
||||
do {
|
||||
to=(to==0 ? (_tolivgiac ? _tolivgiac:_giaclev->last_level()) : to);
|
||||
int lv=(from==0 ? 1: from );
|
||||
for (; lv <to ; lv++) {
|
||||
const TString & piece = _giaclev->unpack_grpcode(relation()->lfile(LF_MAG).get("LIVELLO"),lv);
|
||||
if (piece.not_empty()) {
|
||||
if (piece.not_empty())
|
||||
levname << '/' << piece ;
|
||||
}
|
||||
} while (++lv< (_tolivgiac ? _tolivgiac: _giaclev->last_level()) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -19,17 +21,14 @@ void TForm_stampemg::gruppogiac(TForm_item &cf, TToken_string &s)
|
||||
TString valore,levname;
|
||||
int livello=atoi(s.get());
|
||||
|
||||
if (_fromlivgiac) {
|
||||
levname=relation()->lfile(LF_MAG).get("CODART");
|
||||
if (_fromlivgiac>1) {
|
||||
add_giaclev(levname);
|
||||
}
|
||||
}
|
||||
levname << ' ' << _giaclev->name(livello) ;
|
||||
if (_fromlivgiac && livello == _fromlivgiac)
|
||||
{
|
||||
levname << _giaclev->name(livello) << ' ' ;
|
||||
}
|
||||
valore=_giaclev->group_descr(relation()->lfile(LF_MAG).get("LIVELLO"),livello);
|
||||
if (valore.empty())
|
||||
valore=UNKNOWN_NAME;
|
||||
cf.set(levname << ' ' << valore);
|
||||
valore = UNKNOWN_NAME;
|
||||
cf.set(levname << valore);
|
||||
}
|
||||
|
||||
|
||||
@ -39,10 +38,34 @@ void TForm_stampemg::gruppoart(TForm_item &cf, TToken_string &s)
|
||||
TString valore;
|
||||
|
||||
valore=_artlev->group_descr(relation()->lfile(LF_ANAMAG).get("CODART"),lv);
|
||||
if (valore.not_empty())
|
||||
cf.set(valore);
|
||||
else
|
||||
cf.set(UNKNOWN_NAME);
|
||||
if (valore.empty())
|
||||
{
|
||||
valore.separator(',');
|
||||
valore << "_USER,CODGRUPPOART," << lv;
|
||||
validate(cf,valore);
|
||||
valore.cut(0);
|
||||
valore << '"' << cf.get() << '"';
|
||||
}
|
||||
cf.set(valore);
|
||||
}
|
||||
|
||||
|
||||
void TForm_stampemg::codgruppogiac(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
TString valore,levname;
|
||||
int livello=atoi(s.get());
|
||||
if (_fromlivgiac && livello == _fromlivgiac)
|
||||
{
|
||||
levname=relation()->lfile(LF_MAG).get("CODART");
|
||||
add_giaclev(levname,1,_fromlivgiac);
|
||||
levname << ' ';
|
||||
} else {
|
||||
levname << _giaclev->name(livello) << ' ' ;
|
||||
}
|
||||
valore=_giaclev->unpack_grpcode(relation()->lfile(LF_MAG).get("LIVELLO"),livello);
|
||||
if (valore.empty())
|
||||
valore = UNKNOWN_NAME;
|
||||
cf.set(levname << valore);
|
||||
}
|
||||
|
||||
bool TForm_stampemg::validate(TForm_item &cf, TToken_string &s)
|
||||
@ -77,8 +100,9 @@ bool TForm_stampemg::validate(TForm_item &cf, TToken_string &s)
|
||||
cf.set(_artgrp->decode(valore));
|
||||
*/
|
||||
gruppoart(cf,s);
|
||||
}
|
||||
if (subcode=="CODGRUPPOART") {
|
||||
} else if (subcode=="CODGRUPPOGIAC") {
|
||||
codgruppogiac(cf,s);
|
||||
} else if (subcode=="CODGRUPPOART") {
|
||||
int lv=atoi(s.get());
|
||||
do {
|
||||
valore=relation()->lfile(LF_ANAMAG).get("CODART");
|
||||
@ -165,24 +189,46 @@ void TForm_stampemg::setcatmer(bool catmer,bool sottoc)
|
||||
_sottocatmer=sottoc;
|
||||
}
|
||||
|
||||
bool TForm_stampemg::setdett_perart(int fromlivart,int livart,int fromlivgiac,int livgiac,bool showmag, bool showdep)
|
||||
bool TForm_stampemg::setdett_perart(bool totaliart,int fromlivart,int livart,bool totaligiac,int fromlivgiac,int livgiac,bool showmag, bool showdep)
|
||||
{
|
||||
find_field('B',odd_page,"H_MAGAZZINO").show(showmag && showdep);
|
||||
if (!totaliart && fromlivgiac==0)
|
||||
fromlivart=artlev().last_level();
|
||||
if (!totaligiac)
|
||||
{
|
||||
if (livart==0)
|
||||
livart=artlev().last_level(); //
|
||||
} else {
|
||||
if (livgiac==0)
|
||||
livgiac=giaclev().last_level(); //
|
||||
}
|
||||
|
||||
find_field('B',odd_page,"H_MAGAZZINO").enable(showmag && showdep);
|
||||
find_field('B',odd_page,"TOT_MAGAZZINO").show(showmag);
|
||||
find_field('B',odd_page,"H_DEPOSITO").show(FALSE);
|
||||
find_field('B',odd_page,"TOT_DEPOSITO").show(showdep);
|
||||
return setdettaglio(TRUE,fromlivart,livart,fromlivgiac,livgiac,showmag||showdep);
|
||||
}
|
||||
|
||||
bool TForm_stampemg::setdett_permag(int fromlivart,int livart,int fromlivgiac,int livgiac,bool showmag, bool showdep,bool showdett)
|
||||
bool TForm_stampemg::setdett_permag(bool totaliart,int fromlivart,int livart,bool totaligiac,int fromlivgiac,int livgiac,bool showmag, bool showdep,bool showdett)
|
||||
{
|
||||
if (!totaliart && fromlivgiac==0)
|
||||
fromlivart=artlev().last_level();
|
||||
if (!totaligiac)
|
||||
{
|
||||
if (livart==0)
|
||||
livart=artlev().last_level(); //
|
||||
} else {
|
||||
if (livgiac==0)
|
||||
livgiac=giaclev().last_level(); //
|
||||
}
|
||||
|
||||
find_field('B',odd_page,"H_MAGAZZINO").show(showmag && (showdep) );
|
||||
find_field('B',odd_page,"TOT_MAGAZZINO").show(showmag);
|
||||
find_field('B',odd_page,"H_DEPOSITO").show(showdep && showdett);
|
||||
find_field('B',odd_page,"TOT_DEPOSITO").show(showdep);
|
||||
|
||||
if (livgiac==0)
|
||||
livgiac = _giaclev->last_level();
|
||||
//if (livgiac==0)
|
||||
// livgiac = _giaclev->last_level();
|
||||
|
||||
return setdettaglio(showdett,fromlivart,livart,fromlivgiac,livgiac,FALSE);
|
||||
}
|
||||
@ -193,7 +239,7 @@ bool TForm_stampemg::setdettaglio(bool show, int fromlivart,int livart,int froml
|
||||
const int last_giaclev=_giaclev->last_level();
|
||||
|
||||
const int tolivart =min(( livart ? livart :_artlev->last_level()) ,_artlev->last_level()-1) ;
|
||||
const int tolivgiac=min((livgiac ? livgiac :_giaclev->last_level()),_giaclev->last_level()-1);
|
||||
const int tolivgiac=min((livgiac ? livgiac :_giaclev->last_level()),_giaclev->last_level());
|
||||
|
||||
_fromlivart=fromlivart;
|
||||
_fromlivgiac=fromlivgiac;
|
||||
@ -205,7 +251,7 @@ bool TForm_stampemg::setdettaglio(bool show, int fromlivart,int livart,int froml
|
||||
TForm_subsection &s2=(TForm_subsection &)find_field('B',odd_page,"TOT_ARTICOLO");
|
||||
if (fromlivgiac==0 // non raggruppo a partire dai livelli di giacenza
|
||||
&& (livart==0 ||livart==_artlev->last_level())) {
|
||||
s1.show(show && dettgiac);
|
||||
s1.show(show && (dettgiac || livgiac!=0) );
|
||||
s2.show(show);
|
||||
} else {
|
||||
s1.hide();
|
||||
@ -242,15 +288,19 @@ bool TForm_stampemg::setdettaglio(bool show, int fromlivart,int livart,int froml
|
||||
fromlivgiac=fromlivgiac ? fromlivgiac :1;
|
||||
// codice livello giacenza
|
||||
for (i=fromlivgiac;i<=tolivgiac ; i++) {
|
||||
TString sname=("GRUPPI_LIVGIAC");
|
||||
sname << i;
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,sname);
|
||||
TString cond(s.condition());
|
||||
cond << "[1," << _giaclev->packed_length(i) <<']';
|
||||
s.setcondition(cond,_strexpr);
|
||||
if (livart==0)
|
||||
{
|
||||
TString sname=("GRUPPI_LIVGIAC");
|
||||
sname << i;
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,sname);
|
||||
TString cond(s.condition());
|
||||
cond << "+LIVELLO[" << _giaclev->packed_length(i-1)+1 << "," << _giaclev->packed_length(i) <<']';
|
||||
s.setcondition(cond,_strexpr);
|
||||
}
|
||||
}
|
||||
// sezioni livello codice
|
||||
for (i=fromlivart;i<=tolivart ; i++) {
|
||||
// for (i=fromlivart;i<=tolivart ; i++) {
|
||||
for (i=1;i<=tolivart ; i++) {
|
||||
TString sname("GRUPPI_CODART");
|
||||
sname << i;
|
||||
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,sname);
|
||||
@ -276,3 +326,68 @@ TForm_stampemg::~TForm_stampemg()
|
||||
delete _giaclev;
|
||||
delete _artlev;
|
||||
}
|
||||
|
||||
// maschera delle stampe magazzino
|
||||
|
||||
void TStampemg_mask::enable_livellicodice()
|
||||
{
|
||||
int pos = id2pos(F_RAGGCODICE);
|
||||
if (pos >= 0)
|
||||
{
|
||||
TMask_field &f_ragg=field(F_RAGGCODICE);
|
||||
if (!_artlev.enabled())
|
||||
{
|
||||
// nasconde i campi di livello articolo
|
||||
f_ragg.reset(); f_ragg.check(); f_ragg.hide();
|
||||
field(F_FROMLIVELLOART).hide();
|
||||
field(F_TOLIVELLOART).hide();
|
||||
} else {
|
||||
f_ragg.set("");
|
||||
f_ragg.show();
|
||||
f_ragg.check();
|
||||
field(F_FROMLIVELLOART).show();
|
||||
field(F_TOLIVELLOART).show();
|
||||
}
|
||||
|
||||
}
|
||||
int pos_g = id2pos(F_RAGGLIVGIAC);
|
||||
if (pos_g >= 0)
|
||||
{
|
||||
TMask_field &f_ragg=field(F_RAGGLIVGIAC);
|
||||
if (!_giaclev.enabled())
|
||||
{
|
||||
// nasconde i campi di livello giacenza
|
||||
f_ragg.reset(); f_ragg.check();f_ragg.hide();
|
||||
field(F_FROMLIVELLOGIAC).hide();
|
||||
field(F_TOLIVELLOGIAC).hide();
|
||||
} else {
|
||||
f_ragg.set("");
|
||||
f_ragg.show();
|
||||
f_ragg.check();
|
||||
field(F_FROMLIVELLOGIAC).show();
|
||||
field(F_TOLIVELLOGIAC).show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void TStampemg_mask::set_livellicodice()
|
||||
{
|
||||
if (!get_bool(F_RAGGCODICE) && get_int(F_FROMLIVELLOGIAC)==0)
|
||||
{
|
||||
set(F_FROMLIVELLOART,artlev().last_level());
|
||||
//set(F_TOLIVELLOART,);
|
||||
}
|
||||
if (!get_bool(F_RAGGLIVGIAC))
|
||||
{
|
||||
if (get_int(F_TOLIVELLOART)==0)
|
||||
set(F_TOLIVELLOART,artlev().last_level()); //
|
||||
} else {
|
||||
if (get_int(F_TOLIVELLOGIAC)==0)
|
||||
set(F_TOLIVELLOGIAC,giaclev().last_level()); //
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -18,5 +18,7 @@
|
||||
#define MOVMAG_TIPOCF "TIPOCF"
|
||||
#define MOVMAG_CODCF "CODCF"
|
||||
#define MOVMAG_NUMREGST "NUMREGST"
|
||||
#define MOVMAG_EXNUMDOC "EX_NUMDOC"
|
||||
#define MOVMAG_EXDATADOC "EX_DATADOC"
|
||||
|
||||
#endif
|
||||
|
@ -133,7 +133,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_2 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -147,7 +147,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_3 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -161,7 +161,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_4 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -175,7 +175,7 @@ BEGIN
|
||||
COPY DISPLAY F_TIPODOC_I_1
|
||||
OUTPUT F_TIPODOC_I_4 CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
STR_EXPR {(#F_CODNUM_I=="")||(#THIS_FIELD=="")||(#THIS_FIELD==#F_DOC1)||(#THIS_FIELD==#F_DOC2)||(#THIS_FIELD==#F_DOC3)||(#THIS_FIELD==#F_DOC4)||(#THIS_FIELD==#F_DOC5)}
|
||||
WARNING "E' necessario specificare un valore valido e previsto dalla numerazione"
|
||||
END
|
||||
|
||||
@ -185,7 +185,7 @@ BEGIN
|
||||
FLAGS "U"
|
||||
FIELD S7[1,1]
|
||||
USE %STD
|
||||
INPUT CODTAB F_STATO_I_DOC_I_1
|
||||
INPUT CODTAB F_STATO_I_DOC_I_1
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATO_I_DOC_I_1 CODTAB
|
||||
@ -198,7 +198,7 @@ BEGIN
|
||||
PROMPT 30 9 ""
|
||||
FLAGS "U"
|
||||
USE %STD
|
||||
INPUT CODTAB F_STATO_I_DOC_I_2
|
||||
INPUT CODTAB F_STATO_I_DOC_I_2
|
||||
DISPLAY "Stato" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATO_I_DOC_I_2 CODTAB
|
||||
@ -321,23 +321,9 @@ BEGIN
|
||||
FIELD B4
|
||||
END
|
||||
|
||||
BOOLEAN F_INTERATTIVO
|
||||
BEGIN
|
||||
PROMPT 2 18 "Interattivo"
|
||||
FIELD B5
|
||||
MESSAGE FALSE CLEAR,F_INSERT_MODE
|
||||
MESSAGE TRUE ENABLE,F_INSERT_MODE
|
||||
END
|
||||
|
||||
BOOLEAN F_INSERT_MODE
|
||||
BEGIN
|
||||
PROMPT 42 18 "Attivo solo in creazione"
|
||||
FIELD B6
|
||||
END
|
||||
|
||||
STRING F_APPLICAZIONE 20
|
||||
BEGIN
|
||||
PROMPT 2 19 "Applicazione "
|
||||
PROMPT 2 18 "Applicazione "
|
||||
FIELD S3
|
||||
END
|
||||
|
||||
|
@ -97,13 +97,17 @@ IMPNETTI = S_NORMALE //2200
|
||||
RAGGREFF = S_NORMALE //2300
|
||||
SPESEINC = S_NORMALE //2400
|
||||
ADDBOLLI = S_NORMALE //2500
|
||||
CAUSMAG = S_OBBLIGATORIO //2900
|
||||
CAUSMAGC = S_DISABILITATO //2900
|
||||
DESCRMAG = S_NORMALE //2900
|
||||
DESCRMAGC = S_DISABILITATO //2900
|
||||
BLANK = S_DISABILITATO //4000
|
||||
|
||||
[DEFAULT]
|
||||
NDEFAULTS=0
|
||||
|
||||
[SHEET]
|
||||
NCOLS=15
|
||||
NCOLS=18
|
||||
1=FR_CODMAG
|
||||
2=FR_CODDEP
|
||||
3=FR_CODART
|
||||
@ -119,6 +123,9 @@ NCOLS=15
|
||||
13=FR_PERCPROV
|
||||
14=FR_CODIVA
|
||||
15=FR_ADDIVA
|
||||
16=FR_CAUS
|
||||
17=FR_CODMAGC
|
||||
18=FR_CODDEPC
|
||||
|
||||
[RIGHE]
|
||||
NTIPIRIGA=9
|
||||
@ -159,10 +166,11 @@ NHANDLER=0
|
||||
2200 = S_NORMALE
|
||||
2300 = S_NORMALE
|
||||
2400 = S_NORMALE
|
||||
2900 = S_NORMALE
|
||||
4000 = S_NORMALE
|
||||
|
||||
[ORDINEGRUPPI]
|
||||
NGROUPS=21
|
||||
NGROUPS=22
|
||||
1=100
|
||||
2=200
|
||||
3=300
|
||||
@ -183,4 +191,5 @@ NGROUPS=21
|
||||
18=2200
|
||||
20=2300
|
||||
21=2400
|
||||
22=2900
|
||||
|
||||
|
127
ve/listadoc.frm
127
ve/listadoc.frm
@ -84,34 +84,40 @@ END
|
||||
STRINGA 11 10
|
||||
BEGIN
|
||||
KEY "Intestazione (Stato doc.)"
|
||||
PROMPT 75 4 "Stato doc."
|
||||
PROMPT 67 4 "St. doc."
|
||||
END
|
||||
|
||||
STRINGA 12 10
|
||||
BEGIN
|
||||
KEY "Intestazione (Cod. Valuta)"
|
||||
PROMPT 76 4 "Val."
|
||||
END
|
||||
|
||||
STRINGA 13 10
|
||||
BEGIN
|
||||
KEY "Intestazione (Imponibile)"
|
||||
PROMPT 91 4 "Imponibile"
|
||||
END
|
||||
|
||||
STRINGA 13 10
|
||||
STRINGA 14 10
|
||||
BEGIN
|
||||
KEY "Intestazione (Spese)"
|
||||
PROMPT 111 4 "Spese"
|
||||
END
|
||||
|
||||
STRINGA 14 10
|
||||
STRINGA 15 10
|
||||
BEGIN
|
||||
KEY "Intestazione (IVA)"
|
||||
PROMPT 128 4 "IVA"
|
||||
END
|
||||
|
||||
STRINGA 15 14
|
||||
STRINGA 16 14
|
||||
BEGIN
|
||||
KEY "Intestazione (Importo totale)"
|
||||
PROMPT 134 4 "Importo tot."
|
||||
END
|
||||
|
||||
STRINGA 16 146
|
||||
STRINGA 17 146
|
||||
BEGIN
|
||||
KEY "Separatore (finale)"
|
||||
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
@ -121,21 +127,21 @@ END
|
||||
|
||||
SECTION BODY ODD 2
|
||||
|
||||
STRINGA 17 4
|
||||
STRINGA 21 4
|
||||
BEGIN
|
||||
KEY "Codice numerazione"
|
||||
PROMPT 1 1 ""
|
||||
FIELD 33->CODNUM
|
||||
END
|
||||
|
||||
STRINGA 18 9
|
||||
STRINGA 22 9
|
||||
BEGIN
|
||||
KEY "Tipo documento"
|
||||
PROMPT 11 1 ""
|
||||
FIELD %TIP->S0
|
||||
END
|
||||
|
||||
NUMERO 19 7
|
||||
NUMERO 23 7
|
||||
BEGIN
|
||||
KEY "Numero documento"
|
||||
PROMPT 22 1 ""
|
||||
@ -143,14 +149,14 @@ BEGIN
|
||||
PICTURE "#######"
|
||||
END
|
||||
|
||||
DATA 20 10
|
||||
DATA 24 10
|
||||
BEGIN
|
||||
KEY "Data documento"
|
||||
PROMPT 31 1 ""
|
||||
FILED 33->DATADOC
|
||||
END
|
||||
|
||||
NUMERO 21 7
|
||||
NUMERO 25 7
|
||||
BEGIN
|
||||
KEY "Codice cliente"
|
||||
PROMPT 42 1 ""
|
||||
@ -158,51 +164,136 @@ BEGIN
|
||||
PICTURE "#######"
|
||||
END
|
||||
|
||||
STRINGA 22 25 2
|
||||
STRINGA 26 22 2
|
||||
BEGIN
|
||||
KEY "Cliente ragione sociale"
|
||||
PROMPT 51 1 ""
|
||||
MESSAGE _CLIENTE,!RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 23 1
|
||||
STRINGA 27 1
|
||||
BEGIN
|
||||
KEY "Stato documento"
|
||||
PROMPT 76 1 ""
|
||||
PROMPT 73 1 ""
|
||||
FIELD 33->STATO
|
||||
END
|
||||
|
||||
NUMBER 24 15
|
||||
STRINGA 28 4
|
||||
BEGIN
|
||||
KEY "Cod. Valuta"
|
||||
PROMPT 76 1 ""
|
||||
FIELD 33->CODVAL
|
||||
END
|
||||
|
||||
NUMBER 29 15
|
||||
BEGIN
|
||||
KEY "Totale imponibile (con spese)"
|
||||
PROMPT 86 1 ""
|
||||
MESSAGE _TOTIMPONIBILI,0
|
||||
MESSAGE _TOTIMPONIBILI,0|COPY,40
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER 25 15
|
||||
NUMBER 30 15
|
||||
BEGIN
|
||||
KEY "Spese"
|
||||
PROMPT 101 1 ""
|
||||
PICTURE "###.###.###.###"
|
||||
FIELD TOTSPE
|
||||
MESSAGE COPY,41
|
||||
END
|
||||
|
||||
NUMBER 26 15
|
||||
NUMBER 31 15
|
||||
BEGIN
|
||||
KEY "Totale imposte"
|
||||
PROMPT 116 1 ""
|
||||
FIELD IMPOSTE
|
||||
MESSAGE COPY,42
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER 27 15
|
||||
NUMBER 32 15
|
||||
BEGIN
|
||||
KEY "Totale documento"
|
||||
PROMPT 131 1 ""
|
||||
FIELD TOTDOC
|
||||
PICTURE "###.###.###.###"
|
||||
MESSAGE COPY,43
|
||||
END
|
||||
|
||||
NUMBER 40 15
|
||||
BEGIN
|
||||
KEY "Hidden field for computing tot imponibili"
|
||||
FLAGS "H"
|
||||
PROMPT 86 1 ""
|
||||
MESSAGE _NUMEXPR,IF(33->CAMBIO!=0;#40*33->CAMBIO;#40)
|
||||
MESSAGE ADD,FL->52
|
||||
END
|
||||
|
||||
NUMBER 41 15
|
||||
BEGIN
|
||||
KEY "Hidden field for computing tot spese"
|
||||
PROMPT 101 1 ""
|
||||
MESSAGE _NUMEXPR,IF(33->CAMBIO!=0;#41*33->CAMBIO;#41)
|
||||
MESSAGE ADD,FL->53
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
NUMBER 42 15
|
||||
BEGIN
|
||||
KEY "Hidden field for computing tot imposte"
|
||||
PROMPT 116 1 ""
|
||||
MESSAGE _NUMEXPR,IF(33->CAMBIO!=0;#42*33->CAMBIO;#42)
|
||||
MESSAGE ADD,FL->54
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
NUMBER 43 15
|
||||
BEGIN
|
||||
KEY "Hidden field for computing tot documento"
|
||||
PROMPT 131 1 ""
|
||||
MESSAGE _NUMEXPR,IF(33->CAMBIO!=0;#43*33->CAMBIO;#43)
|
||||
MESSAGE ADD,FL->55
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
SECTION FOOTER LAST 2
|
||||
|
||||
STRINGA 51 25 1
|
||||
BEGIN
|
||||
KEY "Totale"
|
||||
PROMPT 51 1 "@BTotale"
|
||||
END
|
||||
|
||||
NUMBER 52 15
|
||||
BEGIN
|
||||
KEY "Totale imponibili"
|
||||
PROMPT 86 1 ""
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER 53 15
|
||||
BEGIN
|
||||
KEY "Totale Spese"
|
||||
PROMPT 101 1 ""
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER 54 15
|
||||
BEGIN
|
||||
KEY "Totale imposte"
|
||||
PROMPT 116 1 ""
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER 55 15
|
||||
BEGIN
|
||||
KEY "Totale documenti"
|
||||
PROMPT 131 1 ""
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
232
ve/ve0100.cpp
232
ve/ve0100.cpp
@ -1,4 +1,5 @@
|
||||
#include "ve0100.h"
|
||||
#include "ve0100b1.h"
|
||||
#include "ve0100o.h"
|
||||
#include "veini.h"
|
||||
|
||||
@ -254,38 +255,211 @@ bool TMotore_application::num_handler( TMask_field& f, KEY key )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HIDDEN bool elab_hndl( TMask_field & f, KEY key )
|
||||
{
|
||||
if (f.to_check(key, TRUE))
|
||||
{
|
||||
const int id = f.dlg();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
class TElabora_mask : public TMask
|
||||
{
|
||||
TMask * _main;
|
||||
static TLista_elaborazioni _elab;
|
||||
// @access Public Member
|
||||
public:
|
||||
void update_list();
|
||||
void elabora();
|
||||
static bool tipo_elaborazione_handler( TMask_field& f, KEY key );
|
||||
static bool tipo_documento_handler( TMask_field& f, KEY key );
|
||||
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
||||
TElabora_mask(const char* title, TMask * main_mask);
|
||||
// @cmember Distruttore
|
||||
virtual ~TElabora_mask() {}
|
||||
};
|
||||
|
||||
void TElabora_mask::update_list()
|
||||
{
|
||||
TString_array elabs;
|
||||
const TString16 tipo(_main->get(F_TIPODOC));
|
||||
const TString16 stato(_main->get(F_STATO));
|
||||
const TString16 tipo_elab(get(F_TIPODOC_ELAB));
|
||||
const TString16 stato_elab(get(F_STATODOC_ELAB));
|
||||
const bool from_elab = !get_bool(F_TYPE);
|
||||
int items = 0;
|
||||
|
||||
if (from_elab)
|
||||
items = _elab.select(elabs, tipo, stato, tipo_elab, stato_elab) ;
|
||||
else
|
||||
items = _elab.select(elabs, tipo_elab, stato_elab, tipo, stato) ;
|
||||
|
||||
const bool ok = items > 0;
|
||||
|
||||
enable(DLG_OK, ok);
|
||||
enable(F_ELAB, ok);
|
||||
|
||||
TList_field & f = (TList_field &) field(F_ELAB);
|
||||
TToken_string codes;
|
||||
TToken_string descrs;
|
||||
|
||||
|
||||
if (ok)
|
||||
for (int i = 0; i < items; i++)
|
||||
{
|
||||
codes.add(format("%s", (const char *)_elab[elabs.row(i)].codice()));
|
||||
descrs.add((const char *)_elab[elabs.row(i)].descrizione());
|
||||
}
|
||||
f.replace_items(codes, descrs);
|
||||
}
|
||||
|
||||
|
||||
TLista_elaborazioni TElabora_mask::_elab;
|
||||
|
||||
void TElabora_mask::elabora()
|
||||
|
||||
{
|
||||
TLista_documenti in;
|
||||
TLista_documenti out;
|
||||
TDocumento & app_doc = ((TDocumento_mask *)_main)->doc();
|
||||
long numdoc = get_long(F_NDOC_ELAB);
|
||||
|
||||
TDocumento d(*get(F_PROVV_ELAB), get_int(F_ANNO_ELAB), get(F_CODNUM_ELAB), numdoc, new TCond_vendita());
|
||||
|
||||
if (numdoc <= 0)
|
||||
{
|
||||
TDocumento::copy_data(d.head(), app_doc.head());
|
||||
d.put(DOC_TIPODOC, get(F_TIPODOC_ELAB));
|
||||
}
|
||||
|
||||
const bool from_elab = !get_bool(F_TYPE);
|
||||
const TString16 cod_elab(get(F_ELAB));
|
||||
|
||||
if (from_elab)
|
||||
{
|
||||
in.add(app_doc);
|
||||
out.add(d);
|
||||
if (_elab[cod_elab].elabora(in, out, TDate(TODAY), TRUE))
|
||||
{
|
||||
if (out[0] != d)
|
||||
out.rewrite();
|
||||
if (in[0] != app_doc)
|
||||
{
|
||||
in.rewrite();
|
||||
app_doc = in[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
out.add(app_doc);
|
||||
in.add(d);
|
||||
if (_elab[cod_elab].elabora(in, out, TDate(TODAY), TRUE))
|
||||
{
|
||||
if (out[0] != app_doc)
|
||||
{
|
||||
out.rewrite();
|
||||
app_doc = out[0];
|
||||
}
|
||||
if (in[0] != d)
|
||||
in.rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool TElabora_mask::tipo_elaborazione_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
((TElabora_mask&)f.mask()).update_list();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TElabora_mask::tipo_documento_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (f.to_check(key, TRUE))
|
||||
((TElabora_mask&)f.mask()).update_list();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
TElabora_mask::TElabora_mask(const char* title, TMask * main_mask)
|
||||
: TMask(title), _main(main_mask)
|
||||
{
|
||||
set_handler(F_TYPE, tipo_elaborazione_handler);
|
||||
set_handler(F_TIPODOC_ELAB, tipo_documento_handler);
|
||||
set_handler(F_STATODOC_ELAB, tipo_documento_handler);
|
||||
}
|
||||
|
||||
bool TMotore_application::elabora_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
#ifndef DBG
|
||||
return message_box("Funzione in fase di implementazione");
|
||||
#endif
|
||||
TString_array elabs;
|
||||
TMask & m = f.mask();
|
||||
const TString16 tipo(m.get(F_TIPODOC));
|
||||
const TString16 stato(m.get(F_STATO));
|
||||
TLista_elaborazioni & elab = app().elab();
|
||||
|
||||
const int items = elab.select(elabs, TRUE, m.insert_mode(), NULL, NULL, tipo, stato);
|
||||
if (items == 0)
|
||||
return message_box("Non ci sono elaborazioni attive per questo documento");
|
||||
int selected = 0;
|
||||
if (items > 1)
|
||||
if (app().save(TRUE)) // Registra il record corrente
|
||||
{
|
||||
TMask selection("ve0100b");
|
||||
TList_field & f = (TList_field &) selection.field(F_SELECT);
|
||||
TElabora_mask selection("ve0100b", &f.mask());
|
||||
bool ok = FALSE;
|
||||
|
||||
selection.set(F_ANNO_ELAB, f.mask().get(F_ANNO));
|
||||
selection.set(F_TIPOCF_ELAB, f.mask().get(F_TIPOCF));
|
||||
selection.set(F_CODCF_ELAB, f.mask().get(F_CODCF));
|
||||
if (selection.run() == K_ENTER)
|
||||
selection.elabora();
|
||||
}
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for (int i = 0; i < items; i++)
|
||||
f.add_item(format("%d|%s", i, (const char *)elab[elabs.row(i)].descrizione()));
|
||||
|
||||
if (selection.run() == K_ENTER)
|
||||
selected = atoi(selection.get(F_SELECT));
|
||||
bool TMotore_application::codlist_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TLocalisamfile & list = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
const TDate datadoc(f.mask().get(F_DATADOC));
|
||||
const TDate datascad(list.get_date("VALFIN"));
|
||||
|
||||
if (datascad.ok() && datadoc > datascad)
|
||||
{
|
||||
const TString16 codsucc(list.get("CODLISSUCC"));
|
||||
|
||||
if (codsucc.empty())
|
||||
return error_box("Listino scaduto il %s", datascad.string());
|
||||
else
|
||||
{
|
||||
f.set(codsucc);
|
||||
f.set_focusdirty();
|
||||
((TEdit_field &)f).check();
|
||||
}
|
||||
}
|
||||
else
|
||||
selected = 1;
|
||||
if (selected > 0)
|
||||
TElaborazione & e = elab[elabs.row(selected)];
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMotore_application::codcont_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TLocalisamfile & cont = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
const TDate datadoc(f.mask().get(F_DATADOC));
|
||||
const TDate datascad(cont.get_date("VALFIN"));
|
||||
|
||||
if (datascad.ok() && datadoc > datascad)
|
||||
return error_box("Contratto scaduto il %s", datascad.string());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMotore_application::codcamp_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TLocalisamfile & camp = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
const TDate datadoc(f.mask().get(F_DATADOC));
|
||||
const TDate datascad(camp.get_date("VALFIN"));
|
||||
|
||||
if (datascad.ok() && datadoc > datascad)
|
||||
return error_box("Offerta scaduta il %s", datascad.string());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -544,10 +718,12 @@ TMask* TMotore_application::get_mask( int mode )
|
||||
msk1->set_handler( F_DATAINSC, condpag_hndl );
|
||||
msk1->set_handler( F_CODNOTE, note_hndl );
|
||||
msk1->set_handler( F_DATADOC, data_hndl );
|
||||
msk1->set_handler( F_CODLIST, codlist_handler );
|
||||
msk1->set_handler( F_CODLIST1, codlist_handler );
|
||||
msk1->set_handler( F_CODCONT, codcont_handler );
|
||||
msk1->set_handler( F_CODCONT1, codcont_handler );
|
||||
msk1->set_handler( F_CODCAMP, codcamp_handler );
|
||||
msk1->set_handler( 99, elabora_handler ); // cazzo !!!!!!
|
||||
#ifndef DBG
|
||||
msk1->disable(99);
|
||||
#endif
|
||||
msk1->set_handler( DLG_PRINT, print_handler );
|
||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" ); // prof
|
||||
for ( i = 1; i <= numhandler; i ++ )
|
||||
|
@ -96,6 +96,9 @@ protected:
|
||||
static bool clifo_handler( TMask_field& f, KEY key );
|
||||
static bool occas_handler( TMask_field& f, KEY key );
|
||||
static bool elabora_handler( TMask_field& f, KEY key );
|
||||
static bool codlist_handler( TMask_field& f, KEY key );
|
||||
static bool codcont_handler( TMask_field& f, KEY key );
|
||||
static bool codcamp_handler( TMask_field& f, KEY key );
|
||||
static bool print_handler( TMask_field& f, KEY key );
|
||||
|
||||
// Configurazione dello sheet dato il profilo
|
||||
|
167
ve/ve0100b.uml
Executable file
167
ve/ve0100b.uml
Executable file
@ -0,0 +1,167 @@
|
||||
#include "ve0100b1.h"
|
||||
|
||||
PAGE "Elaborazioni " -1 -1 78 15
|
||||
|
||||
BOOLEAN F_TYPE
|
||||
BEGIN
|
||||
PROMPT 2 1 "Aggiungi al documento attuale"
|
||||
MESSAGE FALSE SHOW,F_GROUP_D|HIDE,F_GROUP_S
|
||||
MESSAGE TRUE SHOW,F_GROUP_S|HIDE,F_GROUP_D
|
||||
END
|
||||
|
||||
LISTBOX F_ELAB 3 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Elaborazione "
|
||||
END
|
||||
|
||||
GROUPBOX F_GROUP_D 77 9
|
||||
BEGIN
|
||||
PROMPT 1 4 "Destinazione"
|
||||
END
|
||||
|
||||
GROUPBOX F_GROUP_S 77 9
|
||||
BEGIN
|
||||
PROMPT 1 4 "Sorgente"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC_ELAB 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Tipo documento "
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC_ELAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC_ELAB CODTAB
|
||||
OUTPUT F_DESTIPODOC_ELAB S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "UP"
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOC_ELAB 50
|
||||
BEGIN
|
||||
PROMPT 24 5 ""
|
||||
HELP "Descrizione tipo documento"
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPODOC_ELAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
COPY OUTPUT F_TIPODOC_ELAB
|
||||
END
|
||||
|
||||
STRING F_STATODOC_ELAB 1
|
||||
BEGIN
|
||||
PROMPT 2 7 "Stato "
|
||||
USE %STD
|
||||
CHECKTYPE NORMAL
|
||||
INPUT CODTAB F_STATODOC_ELAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATODOC_ELAB CODTAB
|
||||
OUTPUT F_DESSTATODOC_ELAB S0
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
STRING F_DESSTATODOC_ELAB 50
|
||||
BEGIN
|
||||
PROMPT 24 7 ""
|
||||
HELP "Descrizione tipo documento"
|
||||
USE %STD KEY 2
|
||||
INPUT S0 F_DESSTATODOC_ELAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_STATODOC_ELAB
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODNUM_ELAB 4
|
||||
BEGIN
|
||||
PROMPT 2 9 "Cod. num. "
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM_ELAB
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM_ELAB CODTAB
|
||||
OUTPUT F_DESNUM_ELAB S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_DESNUM_ELAB 50
|
||||
BEGIN
|
||||
PROMPT 24 9 ""
|
||||
HELP "Descrizione numerazione"
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM_ELAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUM_ELAB
|
||||
KEY 2
|
||||
END
|
||||
|
||||
NUMBER F_ANNO_ELAB 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Esercizio "
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
LIST F_TIPOCF_ELAB 1 11
|
||||
BEGIN
|
||||
PROMPT 2 13 ""
|
||||
FLAGS "H"
|
||||
HELP "Indicare se cliente oppure fornitore"
|
||||
ITEM "C|Clienti"
|
||||
ITEM "F|Fornitori"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF_ELAB 6
|
||||
BEGIN
|
||||
PROMPT 10 13 ""
|
||||
FLAGS "HR"
|
||||
END
|
||||
|
||||
NUMBER F_NDOC_ELAB 6
|
||||
BEGIN
|
||||
PROMPT 24 11 "Numero doc. "
|
||||
USE LF_DOC SELECT (TIPOCF==#F_TIPOCF_ELAB)&&(CODCF==#F_CODCF_ELAB)
|
||||
INPUT PROVV F_PROVV_ELAB SELECT
|
||||
INPUT ANNO F_ANNO_ELAB SELECT
|
||||
INPUT CODNUM F_CODNUM_ELAB SELECT
|
||||
INPUT NDOC F_NDOC_ELAB
|
||||
DISPLAY "Num." CODNUM
|
||||
DISPLAY "Anno" ANNO
|
||||
DISPLAY "Provv" PROVV
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "N.Doc. " NDOC
|
||||
OUTPUT F_NDOC_ELAB NDOC
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "R"
|
||||
WARNING "Documento inesistente o incompatibile"
|
||||
END
|
||||
|
||||
LISTBOX F_PROVV_ELAB 14
|
||||
BEGIN
|
||||
PROMPT 46 11 "Tipo "
|
||||
ITEM "D|Definitiva "
|
||||
ITEM "P|Provvisoria"
|
||||
KEY 1
|
||||
FLAGS "P"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
15
ve/ve0100b1.h
Executable file
15
ve/ve0100b1.h
Executable file
@ -0,0 +1,15 @@
|
||||
#define F_TYPE 101
|
||||
#define F_ELAB 102
|
||||
#define F_TIPODOC_ELAB 103
|
||||
#define F_STATODOC_ELAB 104
|
||||
#define F_DESTIPODOC_ELAB 105
|
||||
#define F_DESSTATODOC_ELAB 106
|
||||
#define F_GROUP_D 107
|
||||
#define F_GROUP_S 108
|
||||
#define F_CODNUM_ELAB 109
|
||||
#define F_DESNUM_ELAB 110
|
||||
#define F_ANNO_ELAB 111
|
||||
#define F_NDOC_ELAB 112
|
||||
#define F_PROVV_ELAB 113
|
||||
#define F_TIPOCF_ELAB 114
|
||||
#define F_CODCF_ELAB 115
|
23
ve/velib.h
23
ve/velib.h
@ -658,6 +658,7 @@ public:
|
||||
int rewrite() const { return write(TRUE); }
|
||||
|
||||
int add(TDocumento* doc) { return _documenti.add(doc); }
|
||||
int add(const TDocumento & doc) { return _documenti.add(doc); }
|
||||
|
||||
const TDocumento& operator[] (int n) const { return doc(n); }
|
||||
TDocumento& operator[] (int n) { return (TDocumento&)_documenti[n]; }
|
||||
@ -751,11 +752,9 @@ public:
|
||||
bool gestione_riferimenti() const { return get_bool("B1"); }
|
||||
bool riferimenti_in_testa() const { return get_bool("B2"); }
|
||||
bool ignora_descrizioni() const { return get_bool("B3"); }
|
||||
bool interattivo() const { return get_bool("B5"); }
|
||||
bool insert_mode() const { return get_bool("B6"); }
|
||||
|
||||
const TString& tipo_iniziale(int i) const { return get("S8").mid(i*4, 4); }
|
||||
const char stato_iniziale(int i) const { return get("S9")[i]; }
|
||||
const TString tipo_iniziale(int i) const { return get("S2").smid(i*4, 4).rtrim(); }
|
||||
const char stato_iniziale(int i) const { return get("S7")[i]; }
|
||||
const TString& tipo_finale() const { return get("S8"); }
|
||||
const TString& stato_finale() const { return get("S9"); }
|
||||
|
||||
@ -764,7 +763,7 @@ public:
|
||||
const TString & applicazione_esterna() const { return get("S5"); }
|
||||
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab) pure;
|
||||
const TDate& data_elab, bool interattivo = FALSE) pure;
|
||||
|
||||
TElaborazione(const char* cod);
|
||||
TElaborazione(const TRectype& rec) : TRectype(rec) { }
|
||||
@ -775,7 +774,7 @@ class TEsterna : public TElaborazione // velib04
|
||||
{
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
|
||||
TEsterna(const char* cod);
|
||||
TEsterna(const TRectype& rec) : TElaborazione(rec) { }
|
||||
@ -786,7 +785,7 @@ class TConsegna_ordini : public TElaborazione // velib05
|
||||
{
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
|
||||
TConsegna_ordini(const char* cod);
|
||||
TConsegna_ordini(const TRectype& rec) : TElaborazione(rec) { }
|
||||
@ -800,7 +799,7 @@ class TFatturazione_bolle : public TElaborazione // velib04a
|
||||
public:
|
||||
virtual bool raggruppa(TDocumento& din, TDocumento& dout);
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
|
||||
void tipi_validi(TToken_string& tipi) const;
|
||||
void stati_validi(TToken_string& stati) const;
|
||||
@ -932,7 +931,7 @@ protected:
|
||||
bool sc_enabled() const ;
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
void set_auto(const bool a) { _auto_data = a; }
|
||||
void set_nump(const byte n) { _nump_iva = n; }
|
||||
const long docs() { return _total_docs; }
|
||||
@ -945,7 +944,7 @@ class TCopia_documento : public TElaborazione // velib04
|
||||
{
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
|
||||
TCopia_documento(const char* cod);
|
||||
TCopia_documento(const TRectype& rec) : TElaborazione(rec) { }
|
||||
@ -996,7 +995,7 @@ protected:
|
||||
bool good() const { return _error == no_error;}
|
||||
public:
|
||||
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab);
|
||||
const TDate& data_elab, bool interattivo = FALSE);
|
||||
|
||||
const long bills() { return _total_bills; }
|
||||
void set_group(TAssoc_array& a) { _group_array = a; }
|
||||
@ -1014,7 +1013,7 @@ protected:
|
||||
|
||||
public:
|
||||
TElaborazione & operator [](const char * key) const;
|
||||
int select(TString_array & result, bool interattivo, bool insert_mode, const char * tipo_iniziale = NULL, const char * stato_iniziale = NULL, const char * tipo_finale = NULL, const char * stato_finale = NULL);
|
||||
int select(TString_array & result, const char * tipo_iniziale = NULL, const char * stato_iniziale = NULL, const char * tipo_finale = NULL, const char * stato_finale = NULL);
|
||||
void update();
|
||||
TLista_elaborazioni() : _elab(NULL) {}
|
||||
virtual ~TLista_elaborazioni();
|
||||
|
@ -296,8 +296,13 @@ TDocumento::TDocumento(const TDocumento & d)
|
||||
_sconto(NULL), _esenzione(NULL), _stato_originale(' ')
|
||||
{
|
||||
add_file(LF_RIGHEDOC, "NRIGA");
|
||||
copy(d);
|
||||
_tipocf = new TRecfield(*this, "TIPOCF");
|
||||
_codcf = new TRecfield(*this, "CODCF");
|
||||
_cod_occas = new TRecfield(*this, "OCFPI");
|
||||
_provv_agente = new TProvvigioni_agente;
|
||||
set_memo_fld("G1");
|
||||
check_modules();
|
||||
copy(d);
|
||||
}
|
||||
|
||||
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
|
||||
|
@ -303,7 +303,7 @@ TEsterna::TEsterna(const char* cod)
|
||||
}
|
||||
|
||||
bool TEsterna::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
CHECK(doc_in.items() == 1, "Si deve specificare uno e un solo documento in entrata");
|
||||
CHECK(doc_out.items() == 1, "Si deve specificare uno e un solo documento in uscita");
|
||||
@ -396,7 +396,7 @@ TConsegna_ordini::TConsegna_ordini(const char* cod)
|
||||
}
|
||||
|
||||
bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@ -411,7 +411,7 @@ TCopia_documento::TCopia_documento(const char* cod)
|
||||
}
|
||||
|
||||
bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
CHECK(doc_in.items() == 1, "Si deve specificare uno e un solo documento in entrata");
|
||||
CHECK(doc_out.items() == 1, "Si deve specificare uno e un solo documento in uscita");
|
||||
@ -465,24 +465,29 @@ void TLista_elaborazioni::read()
|
||||
}
|
||||
}
|
||||
|
||||
int TLista_elaborazioni::select(TString_array & result, bool interattivo, bool insert_mode, const char * tipo_iniziale, const char * stato_iniziale, const char * tipo_finale, const char * stato_finale)
|
||||
int TLista_elaborazioni::select(TString_array & result, const char * tipo_iniziale, const char * stato_iniziale, const char * tipo_finale, const char * stato_finale)
|
||||
{
|
||||
read();
|
||||
_elab->restart();
|
||||
result.destroy();
|
||||
for (TElaborazione * el = (TElaborazione *)_elab->get(); el ; el = (TElaborazione *) _elab->get())
|
||||
{
|
||||
bool ok = TRUE;
|
||||
if (tipo_iniziale && stato_iniziale)
|
||||
{
|
||||
bool found = FALSE;
|
||||
for (int i = 0; !found && i < 5; i++)
|
||||
found = el->tipo_iniziale(i) == tipo_iniziale && el->stato_iniziale(i) == *stato_iniziale;
|
||||
ok = found;
|
||||
}
|
||||
ok &= (tipo_finale && stato_finale && el->tipo_finale() == tipo_finale && el->stato_finale() == *stato_finale);
|
||||
if (ok && (!interattivo || interattivo == el->interattivo()) &&
|
||||
(!insert_mode || insert_mode == el->insert_mode()))
|
||||
bool ok = FALSE;
|
||||
TString ti;
|
||||
if ((tipo_iniziale && *tipo_iniziale) && (stato_iniziale && *stato_iniziale))
|
||||
for (int i = 0; !ok && i < 5; i++)
|
||||
{
|
||||
ti = el->tipo_iniziale(i);
|
||||
const char si = el->stato_iniziale(i);
|
||||
ok |= ti == tipo_iniziale &&
|
||||
si == *stato_iniziale;
|
||||
}
|
||||
else
|
||||
ok = TRUE;
|
||||
if ((tipo_finale && *tipo_finale) && (stato_finale && *stato_finale))
|
||||
ok &= el->tipo_finale() == tipo_finale &&
|
||||
el->stato_finale() == stato_finale;
|
||||
if (ok)
|
||||
result.add(el->codice());
|
||||
}
|
||||
return result.items();
|
||||
|
@ -154,7 +154,7 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out)
|
||||
}
|
||||
|
||||
bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
bool ok = TRUE;
|
||||
|
||||
@ -166,6 +166,7 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
|
||||
"CODPAG", "CODABIA|CODCABA", "CODLIST", "CODAG",
|
||||
"CODSPMEZZO", "CODPORTO", "CAUSTRASP", "CODVETT1|CODVETT2|CODVETT3",
|
||||
NULL };
|
||||
|
||||
for (int u = 0; cond[u]; u++)
|
||||
if (doc_uguale(u)) campi_doc.add(cond[u]);
|
||||
|
||||
@ -175,13 +176,26 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
|
||||
const int tot = doc_out.items();
|
||||
int od = tot;
|
||||
|
||||
if (campione.raggruppabile()) // Se il documento ha il flag di raggruppabilita' ...
|
||||
if (interattivo)
|
||||
{
|
||||
od = 0;
|
||||
const TString16 tipo(campione.get(DOC_TIPOCF));
|
||||
const long codice = campione.get_long(DOC_CODCF);
|
||||
|
||||
if (tipo != doc_out[od].get(DOC_TIPOCF) ||
|
||||
codice != doc_out[od].get_long(DOC_CODCF))
|
||||
fatal_box("Documenti incompatibili : cliente/fornitore diverso");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (od = 0; od < tot; od++) // ... cerca un documento compatibile.
|
||||
if (campione.raggruppabile()) // Se il documento ha il flag di raggruppabilita' ...
|
||||
{
|
||||
if (campione.raggruppabile(doc_out[od], campi_doc))
|
||||
break;
|
||||
}
|
||||
for (od = 0; od < tot; od++) // ... cerca un documento compatibile.
|
||||
{
|
||||
if (campione.raggruppabile(doc_out[od], campi_doc))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (od >= tot) // Se non ho trovato un documento compatibile ...
|
||||
{ // ... creane uno nuovo (certamente compatibile)
|
||||
|
@ -1581,7 +1581,7 @@ bool TContabilizzazione::sc_enabled() const
|
||||
}
|
||||
|
||||
bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
|
||||
_error = no_error;
|
||||
|
@ -529,7 +529,7 @@ void TGenerazione_effetti::generate_bill(TDocumento& doc) // bill in inglese sig
|
||||
}
|
||||
|
||||
bool TGenerazione_effetti::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||
const TDate& data_elab)
|
||||
const TDate& data_elab, bool interattivo)
|
||||
{
|
||||
_pagamento = NULL;
|
||||
_error = no_error;
|
||||
|
@ -980,7 +980,7 @@ BEGIN
|
||||
IFDEF(X_ASPBENI)
|
||||
PROMPT X_ASPBENI Y_ASPBENI PR_ASPBENI
|
||||
ELSEIF
|
||||
PROMPT 2 17 "Aspetto Beni "
|
||||
PROMPT 2 17 "Asp. Beni "
|
||||
ENDIF
|
||||
USE %ABE
|
||||
INPUT CODTAB FR_ASPBENI
|
||||
@ -1016,7 +1016,7 @@ BEGIN
|
||||
IFDEF(X_CAUS)
|
||||
PROMPT X_CAUS Y_CAUS PR_CAUS
|
||||
ELSEIF
|
||||
PROMPT 2 18 "Caus.magazz. "
|
||||
PROMPT 2 18 "Caus.mag. "
|
||||
ENDIF
|
||||
USE %CAU
|
||||
INPUT CODTAB FR_CAUS
|
||||
@ -1034,12 +1034,12 @@ ENDIF
|
||||
END
|
||||
|
||||
IFDEF(F_DESCRCAUS)
|
||||
STRING FR_DESCRCAUS 49
|
||||
STRING FR_DESCRCAUS 50
|
||||
BEGIN
|
||||
IFDEF(X_DESCRCAUS)
|
||||
PROMPT X_DESCRCAUS Y_DESCRCAUS PR_DESCRCAUS
|
||||
ELSEIF
|
||||
PROMPT 23 18 ""
|
||||
PROMPT 22 18 ""
|
||||
ENDIF
|
||||
FLAGS "D"
|
||||
END
|
||||
|
Loading…
x
Reference in New Issue
Block a user