Stampe inventario e giornale magazzino
git-svn-id: svn://10.65.10.50/trunk@4521 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c1827e0ee4
commit
a3b4ca81f9
@ -14,11 +14,11 @@ int main(int argc, char** argv)
|
||||
switch (r)
|
||||
{
|
||||
case 0:
|
||||
//rt = mg4100(argc,argv) ; break; // stampa lista controllo movimenti
|
||||
rt = mg4100(argc,argv) ; break; // stampa lista controllo movimenti
|
||||
case 1:
|
||||
//rt = mg4200(argc,argv) ; break; // stampa inventario
|
||||
case 1:
|
||||
//rt = mg4300(argc,argv) ; break; // stampa libro giornale
|
||||
rt = mg4200(argc,argv) ; break; // stampa inventario
|
||||
case 2:
|
||||
rt = mg4300(argc,argv) ; break; // stampa libro giornale
|
||||
default:
|
||||
error_box(usage, argv[0]) ; break;
|
||||
}
|
||||
|
84
mg/mg4100.cpp
Executable file
84
mg/mg4100.cpp
Executable file
@ -0,0 +1,84 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <mask.h>
|
||||
#include <printer.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
#include <form.h>
|
||||
#include <printapp.h>
|
||||
|
||||
#include "mglib01.h"
|
||||
#include "mg4100.h"
|
||||
|
||||
class TStampa_listamov : public TApplication
|
||||
{
|
||||
TMask * _mask;
|
||||
TForm * _form;
|
||||
|
||||
int _codicees;
|
||||
bool _raggmag;
|
||||
TString _daart,_aart,_damag,_amag;
|
||||
TDate _dadata,_adata;
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
};
|
||||
|
||||
bool TStampa_listamov::create()
|
||||
{
|
||||
TRectype darec(LF_MOVMAG),arec(LF_MOVMAG);
|
||||
_mask = new TMask("mg1500");
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
_form = new TForm("mg1500a", "");
|
||||
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
|
||||
|
||||
|
||||
|
||||
|
||||
TString filter("ANNOES==");
|
||||
|
||||
filter << _mask->get(F_ANNOES);
|
||||
cur.setfilter(filter);
|
||||
darec.zero(' ');
|
||||
arec.zero(' ');
|
||||
if (_mask->get(F_ORDINE)=="N")
|
||||
{
|
||||
cur.setkey(1);
|
||||
// trova il record iniziale
|
||||
darec.put("NUMREG",_mask->get(F_DANUM));
|
||||
// trova il record finale
|
||||
arec.put("NUMREG",_mask->get(F_ANUM));
|
||||
_form->find_field('B',odd_page,"HEADER_DATA").hide();
|
||||
} else {
|
||||
cur.setkey(4);
|
||||
// trova il record iniziale
|
||||
darec.put("DATACOMP",_mask->get(F_DADATA));
|
||||
// trova il record finale
|
||||
arec.put("DATACOMP",_mask->get(F_ADATA));
|
||||
_form->find_field('B',odd_page,"HEADER_DATA").show();
|
||||
}
|
||||
cur.setregion(darec,arec);
|
||||
|
||||
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
bool TStampa_listamov::destroy()
|
||||
{
|
||||
delete _mask;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg4100(int argc, char* argv[])
|
||||
{
|
||||
TStampa_listamov a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa schede di magazzino");
|
||||
return 0;
|
||||
}
|
7
mg/mg4100.h
Executable file
7
mg/mg4100.h
Executable file
@ -0,0 +1,7 @@
|
||||
#define F_DADATA 101
|
||||
#define F_ADATA 102
|
||||
#define F_DANUM 103
|
||||
#define F_ANUM 104
|
||||
#define F_ORDINE 105
|
||||
#define F_ANNOES 106
|
||||
|
460
mg/mg4200.cpp
Executable file
460
mg/mg4200.cpp
Executable file
@ -0,0 +1,460 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <mask.h>
|
||||
#include <printer.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
#include <form.h>
|
||||
#include <printapp.h>
|
||||
|
||||
#include "..\ve\velib03.h"
|
||||
#include "..\ve\veconf.h"
|
||||
#include "mglib02.h"
|
||||
#include "mglib03.h"
|
||||
#include "mg4200.h"
|
||||
#include "mg4frm.h"
|
||||
|
||||
#define MAX_VAL_COLUMNS 6
|
||||
class TForm_inventario : public TForm_stampemg
|
||||
{
|
||||
int colonne;
|
||||
TConfig *conf_ditta;
|
||||
TArticolo_giacenza * _curr_art;
|
||||
TString16 _codlist,_catven;
|
||||
TArticolo_giacenza &curr_art();
|
||||
TTipo_valorizz _valorizz_scelte[MAX_VAL_COLUMNS];
|
||||
public:
|
||||
void set_codlistino(const char * codcm,const char * cod);
|
||||
bool valorizzazione(TForm_item &cf, TTipo_valorizz t);
|
||||
bool validate(TForm_item &cf, TToken_string &s);
|
||||
void add_colval(int tipo);
|
||||
TForm_inventario(const char *name,const char *code) ;
|
||||
~TForm_inventario();
|
||||
};
|
||||
|
||||
bool TForm_inventario::validate(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
||||
TString subcode;
|
||||
|
||||
if (code=="_USER") {
|
||||
TRectype & magrec=relation()->lfile(LF_MAG).curr();
|
||||
TString16 annoes(magrec.get(MAG_ANNOES));
|
||||
subcode=s.get();
|
||||
if (subcode=="GIAC") {
|
||||
cf.set("135");
|
||||
}
|
||||
if (subcode=="VAL1") {
|
||||
valorizzazione(cf,_valorizz_scelte[0]);
|
||||
}
|
||||
if (subcode=="VAL2"&& colonne >=2) {
|
||||
valorizzazione(cf,_valorizz_scelte[1]);
|
||||
}
|
||||
if (subcode=="VAL3" && colonne >=3) {
|
||||
valorizzazione(cf,_valorizz_scelte[2]);
|
||||
}
|
||||
if (subcode=="VAL4" && colonne >=4) {
|
||||
valorizzazione(cf,_valorizz_scelte[3]);
|
||||
}
|
||||
if (subcode=="VAL5"&& colonne >=5) {
|
||||
valorizzazione(cf,_valorizz_scelte[4]);
|
||||
}
|
||||
if (subcode=="VAL6" && colonne >=6) {
|
||||
valorizzazione(cf,_valorizz_scelte[5]);
|
||||
}
|
||||
if (subcode=="LINEATOTALI") {
|
||||
TString l(39*colonne+12,'-');
|
||||
cf.set(l);
|
||||
}
|
||||
}
|
||||
return TForm_stampemg::validate(cf, s);
|
||||
}
|
||||
|
||||
TArticolo_giacenza &TForm_inventario::curr_art()
|
||||
{
|
||||
TRectype & magrec=relation()->lfile(LF_MAG).curr();
|
||||
if (_curr_art==NULL || _curr_art->codice()!=magrec.get(MAG_CODART) ) {
|
||||
if (_curr_art) delete _curr_art;
|
||||
_curr_art=new TArticolo_giacenza(magrec.get(MAG_CODART));
|
||||
}
|
||||
return *_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;
|
||||
}
|
||||
_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)
|
||||
{
|
||||
TRectype & magrec=relation()->lfile(LF_MAG).curr();
|
||||
TString annoes(magrec.get(MAG_ANNOES));
|
||||
if (t==valorizz_ultcos) {
|
||||
cf.set(curr_art().ultimo_costo(annoes).string());
|
||||
}
|
||||
if (t==valorizz_mediacos) {
|
||||
cf.set(curr_art().media_costi(annoes).string());
|
||||
}
|
||||
if (t==valorizz_przlist) {
|
||||
cf.set(curr_art().prezzo_listino(annoes,_codlist,_catven).string());
|
||||
}
|
||||
if (t==valorizz_coststd) {
|
||||
cf.set(curr_art().costo_standard(annoes).string());
|
||||
}
|
||||
if (t==valorizz_costmedio) {
|
||||
cf.set(curr_art().costo_standard(annoes).string());
|
||||
}
|
||||
if (t==valorizz_LIFO) {
|
||||
cf.set(curr_art().LIFO(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string());
|
||||
}
|
||||
if (t==valorizz_FIFO) {
|
||||
cf.set(curr_art().FIFO(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string());
|
||||
}
|
||||
if (t==valorizz_LIFOa) {
|
||||
cf.set(curr_art().LIFO_annuale(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string());
|
||||
}
|
||||
if (t==valorizz_FIFOa) {
|
||||
cf.set(curr_art().FIFO_annuale(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void TForm_inventario::set_codlistino(const char * codcatv,const char * codlist)
|
||||
{
|
||||
_catven=codcatv;
|
||||
_codlist=codlist;
|
||||
}
|
||||
|
||||
TForm_inventario::TForm_inventario(const char *name,const char *code) :
|
||||
TForm_stampemg(name,code),_curr_art(NULL)
|
||||
{
|
||||
colonne=0;
|
||||
}
|
||||
|
||||
|
||||
TForm_inventario::~TForm_inventario()
|
||||
{
|
||||
if (_curr_art) delete _curr_art;
|
||||
}
|
||||
|
||||
|
||||
|
||||
class TStampainv_mask: public TMask
|
||||
{
|
||||
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
|
||||
public:
|
||||
TStampainv_mask();
|
||||
~TStampainv_mask(){};
|
||||
};
|
||||
|
||||
TStampainv_mask::TStampainv_mask():
|
||||
TMask("mg4200")
|
||||
{
|
||||
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
|
||||
if (prassid.get_bool("GES", NULL, A_LISTINI))
|
||||
field(F_CATVENLISTINO).enable(prassid.get_bool("GESLISCV"));
|
||||
else {
|
||||
field(F_CATVENLISTINO).disable(); field(F_CODLISTINO).disable();
|
||||
}
|
||||
TMag_livelli giaclev("FCA"),artlev("FCG");
|
||||
|
||||
set_handler(F_TOLIVELLOART, handle_liv);
|
||||
set_handler(F_TOLIVELLOGIAC, handle_liv);
|
||||
set_handler(F_ORDINE, handle_ragg);
|
||||
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();
|
||||
}
|
||||
if (!giaclev.enabled()) {
|
||||
TMask_field &f2=field(F_RAGGLIVGIAC);
|
||||
f2.reset(); f2.check();f2.hide();
|
||||
}
|
||||
}
|
||||
|
||||
bool TStampainv_mask::handle_subord(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
TOperable_field &fraggcod=(TOperable_field &)fld.mask().field(F_RAGGCODICE);
|
||||
TOperable_field &fragggiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
|
||||
switch (fld.get()[1]) {
|
||||
case 'C':
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
fraggcod.enable();
|
||||
else {
|
||||
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
fraggcod.do_message(0);fragggiac.do_message(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'M':
|
||||
case 'D':
|
||||
fraggcod.reset(); fraggcod.check();fraggcod.disable();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampainv_mask::handle_liv(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
{
|
||||
TOperable_field &ftotmag=(TOperable_field &)fld.mask().field(F_TOTALIMAGAZZINI);
|
||||
TOperable_field &fdettmag=(TOperable_field &)fld.mask().field(F_DETTAGLIOMAG);
|
||||
if (fld.mask().get(F_ORDINE)=="A")
|
||||
{
|
||||
if (fld.mask().get_int(F_TOLIVELLOART) || fld.mask().get_int(F_TOLIVELLOGIAC))
|
||||
{
|
||||
// raggruppamenti prima del dettaglio magazzini
|
||||
ftotmag.reset(); ftotmag.disable();ftotmag.do_message(0);
|
||||
} else {
|
||||
ftotmag.enable();
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampainv_mask::handle_ragg(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
TOperable_field &ftotmag=(TOperable_field &)fld.mask().field(F_TOTALIMAGAZZINI);
|
||||
TOperable_field &fraggcod=(TOperable_field &)fld.mask().field(F_RAGGCODICE);
|
||||
TOperable_field &fragggiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
|
||||
if (fld.mask().get(F_ORDINE)=="M")
|
||||
{
|
||||
ftotmag.enable();
|
||||
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
|
||||
{
|
||||
fraggcod.reset(); fraggcod.disable();
|
||||
fragggiac.reset(); fragggiac.disable();
|
||||
fraggcod.do_message(0);fragggiac.do_message(0);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
fraggcod.enable();
|
||||
fragggiac.enable();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// STAMPA anagrafiche
|
||||
class TStampa_inventario : public TPrint_application
|
||||
{
|
||||
TArray * _files;
|
||||
TMask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_inventario * _form; // to be moved into TPrint_application
|
||||
|
||||
protected:
|
||||
virtual bool print_one(int file)
|
||||
{return TRUE;}
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual bool set_print(int i=1);
|
||||
virtual void set_page(int file,int count)
|
||||
{ }
|
||||
void setprint_permagazzini();
|
||||
void setprint_perarticoli();
|
||||
|
||||
public:
|
||||
TStampa_inventario() {}
|
||||
};
|
||||
|
||||
|
||||
bool TStampa_inventario::user_create()
|
||||
{
|
||||
_mask = new TStampainv_mask();
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_ANAMAG));
|
||||
_files->add(new TLocalisamfile(LF_MAG));
|
||||
_files->add(new TLocalisamfile(LF_STOMAG));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_inventario::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TStampa_inventario::setprint_permagazzini()
|
||||
{
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_cur = _form->cursor();
|
||||
// setta il filtro sul cursore
|
||||
if (*_mask->get(F_DAART))
|
||||
cfilter << "(CODART>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
|
||||
if (*_mask->get(F_AART))
|
||||
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
|
||||
if (cfilter.not_empty())
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
// 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),
|
||||
TRUE,_mask->get_bool(F_DETTAGLIOMAG),_mask->get_bool(F_DETTAGLIODEP));
|
||||
|
||||
darec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
darec.put("CODMAG",_mask->get(F_DAMAG));
|
||||
arec.put("ANNOES",_mask->get(F_ANNOES));
|
||||
arec.put("CODMAG",_mask->get(F_AMAG));
|
||||
_cur->setfilter(cfilter);
|
||||
_cur->setregion(darec,arec);
|
||||
}
|
||||
|
||||
// ORDINAMENTO
|
||||
void TStampa_inventario::setprint_perarticoli()
|
||||
{
|
||||
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||
TString cfilter,filter,joinexp;
|
||||
TString sortexp("ANNOES|CODART|LIVELLO|CODMAG");
|
||||
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
_cur = _form->cursor();
|
||||
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);
|
||||
switch (subordine)
|
||||
{
|
||||
case 'C':
|
||||
_cur->setkey(1);
|
||||
darec.put("CODART",_mask->get(F_DAART));
|
||||
arec.put("CODART",_mask->get(F_AART));
|
||||
_form->find_field('B',odd_page,"H_CATMER").hide();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
break;
|
||||
case 'D':
|
||||
_cur->setkey(2);
|
||||
darec.put("DESCR",_mask->get(F_DADES));
|
||||
arec.put("DESCR",_mask->get(F_ADES));
|
||||
_form->find_field('B',odd_page,"H_CATMER").disable();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").hide();
|
||||
_form->setcatmer(FALSE);
|
||||
break;
|
||||
case 'M':
|
||||
_cur->setkey(3);
|
||||
darec.put("GRMERC",_mask->get(F_DACATMER));
|
||||
darec.put("CODART",_mask->get(F_DAART));
|
||||
arec.put("GRMERC",_mask->get(F_ACATMER));
|
||||
arec.put("CODART",_mask->get(F_AART));
|
||||
_form->find_field('B',odd_page,"H_CATMER").show();
|
||||
_form->find_field('B',odd_page,"TOT_CATMER").show();
|
||||
_form->setcatmer(TRUE);
|
||||
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));
|
||||
|
||||
|
||||
|
||||
joinexp << "ANNOES==" << _mask->get(F_ANNOES) << "|CODART==CODART";
|
||||
|
||||
TSortedfile *mag;
|
||||
mag= new TSortedfile(LF_MAG,NULL,sortexp,filter,1);
|
||||
_cur->relation()->replace(mag,1,joinexp);
|
||||
_cur->setfilter(cfilter);
|
||||
_cur->setregion(darec,arec);
|
||||
}
|
||||
|
||||
|
||||
bool TStampa_inventario::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
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_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
|
||||
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg4200(int argc, char* argv[])
|
||||
{
|
||||
TStampa_inventario a;
|
||||
a.run(argc,argv,"Stampa inventario");
|
||||
return 0;
|
||||
}
|
2035
mg/mg4200.frm
Executable file
2035
mg/mg4200.frm
Executable file
File diff suppressed because it is too large
Load Diff
51
mg/mg4200.h
Executable file
51
mg/mg4200.h
Executable file
@ -0,0 +1,51 @@
|
||||
#ifndef __MG4200_H
|
||||
#define __MG4200_H
|
||||
#include "anamag.h"
|
||||
#include "mag.h"
|
||||
#include "stomag.h"
|
||||
#include "umart.h"
|
||||
|
||||
#define F_ORDINE 101
|
||||
#define F_ORDINEART 102
|
||||
#define F_ORDINEMAG 103
|
||||
#define F_ANNOES 104
|
||||
#define F_DAART 105
|
||||
#define F_AART 106
|
||||
#define F_DAMAG 107
|
||||
#define F_AMAG 108
|
||||
#define F_DACATMER 109
|
||||
#define F_ACATMER 110
|
||||
#define F_DADES 111
|
||||
#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
|
||||
#define F_CATVENLISTINO 129
|
||||
#define F_VAL1 141
|
||||
#define F_VAL2 152
|
||||
#define F_VAL3 153
|
||||
#define F_VAL4 154
|
||||
#define F_VAL5 155
|
||||
#define F_VAL6 156
|
||||
|
||||
#define G_CATMER 1
|
||||
#define G_CODART 2
|
||||
#define G_DESART 3
|
||||
#define G_PARAMVALORI 4
|
||||
#define G_LISTINO 5
|
||||
|
||||
#endif //__MG4200_H
|
357
mg/mg4200.uml
Executable file
357
mg/mg4200.uml
Executable file
@ -0,0 +1,357 @@
|
||||
#include "mg4200.h"
|
||||
PAGE "Stampa inventario" -1 -1 78 20
|
||||
|
||||
|
||||
LISTBOX F_ORDINE 10
|
||||
BEGIN
|
||||
PROMPT 2 1 "Ordinamento "
|
||||
ITEM "A|articoli"
|
||||
MESSAGE ENABLE,F_ORDINEART
|
||||
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_TOTALIDEPOSITI|"X",F_DETTAGLIOMAG|"X",F_DETTAGLIODEP|HIDE,F_DETTAGLIODEP|HIDE,F_DETTAGLIOMAG
|
||||
ITEM "M|magazzini"
|
||||
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||
MESSAGE SHOW,F_DETTAGLIOMAG|HIDE,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIODEP|HIDE,F_TOTALIDEPOSITI
|
||||
END
|
||||
|
||||
|
||||
LISTBOX F_ORDINEART 20
|
||||
BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 34 1 "sotto-ordinamento "
|
||||
ITEM "C|codice"
|
||||
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
ITEM "D|descrizione"
|
||||
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
|
||||
ITEM "M|gruppo merc./codice"
|
||||
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
FLAGS "A"
|
||||
PROMPT 2 2 "Codice es. "
|
||||
USE ESC
|
||||
INPUT CODTAB F_ANNOES
|
||||
DISPLAY "Esercizio" CODTAB
|
||||
DISPLAY "Dal@12" D0
|
||||
DISPLAY "Al@12" D0
|
||||
OUTPUT F_ANNOES CODTAB
|
||||
ADD NONE
|
||||
END
|
||||
LIST F_REALE_GIAC 26
|
||||
BEGIN
|
||||
PROMPT 34 2 "Inventario "
|
||||
ITEM "G|di giacenza"
|
||||
ITEM "R|reale (giac+ACL-INCL+PROD)"
|
||||
END
|
||||
|
||||
STRING F_DAART 20
|
||||
BEGIN
|
||||
PROMPT 2 4 "Dall'articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_DAART
|
||||
DISPLAY "Codice" CODART
|
||||
DISPLAY "Descr@50" DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
GROUP G_CODART
|
||||
END
|
||||
STRING F_AART 20
|
||||
BEGIN
|
||||
PROMPT 42 4 " a "
|
||||
FLAGS "U"
|
||||
COPY USE F_DAART
|
||||
INPUT CODART F_AART
|
||||
COPY DISPLAY F_DAART
|
||||
OUTPUT F_AART CODART
|
||||
GROUP G_CODART
|
||||
END
|
||||
|
||||
STRING F_DADES 50 20
|
||||
BEGIN
|
||||
PROMPT 2 4 "Dall'articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_DADES
|
||||
DISPLAY "Descr@50" DESCR
|
||||
DISPLAY "Codice" CODART
|
||||
OUTPUT F_DADES DESCR
|
||||
GROUP G_DESART
|
||||
END
|
||||
STRING F_ADES 50 20
|
||||
BEGIN
|
||||
PROMPT 42 4 " a "
|
||||
FLAGS "U"
|
||||
COPY USE F_DADES
|
||||
INPUT DESCR F_ADES
|
||||
COPY DISPLAY F_DADES
|
||||
OUTPUT F_ADES DESCR
|
||||
GROUP G_DESART
|
||||
END
|
||||
|
||||
|
||||
STRING F_DAMAG 3
|
||||
BEGIN
|
||||
PROMPT 2 5 "Dal magazzino "
|
||||
FLAGS "U"
|
||||
USE MAG SELECT CODTAB[4,5]=="" && CODTAB[1,3]!=""
|
||||
INPUT CODTAB F_DAMAG
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_DAMAG CODTAB
|
||||
END
|
||||
|
||||
STRING F_AMAG 3
|
||||
BEGIN
|
||||
PROMPT 42 5 " a "
|
||||
FLAGS "U"
|
||||
COPY USE F_DAMAG
|
||||
INPUT CODTAB F_AMAG
|
||||
COPY DISPLAY F_DAMAG
|
||||
OUTPUT F_AMAG CODTAB
|
||||
END
|
||||
|
||||
STRING F_DACATMER 3
|
||||
BEGIN
|
||||
PROMPT 2 6 "Dal gruppo "
|
||||
FLAGS "U"
|
||||
USE GMC SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_DACATMER
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_DACATMER CODTAB[1,3]
|
||||
GROUP G_CATMER
|
||||
END
|
||||
|
||||
|
||||
STRING F_ACATMER 3
|
||||
BEGIN
|
||||
PROMPT 42 6 " a "
|
||||
FLAGS "U"
|
||||
COPY USE F_DACATMER
|
||||
INPUT CODTAB F_ACATMER
|
||||
COPY DISPLAY F_DACATMER
|
||||
OUTPUT F_ACATMER CODTAB[1,3]
|
||||
GROUP G_CATMER
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIOMAG
|
||||
BEGIN
|
||||
PROMPT 2 7 "Stampa i depositi"
|
||||
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||
MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
|
||||
END
|
||||
|
||||
BOOL F_DETTAGLIODEP
|
||||
BEGIN
|
||||
PROMPT 42 7 "Stampa il dettaglio depositi"
|
||||
MESSAGE TRUE ENABLE,F_RAGGCODICE|ENABLE,F_RAGGLIVGIAC
|
||||
MESSAGE FALSE CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE|CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC
|
||||
END
|
||||
|
||||
BOOLEAN F_RAGGCODICE
|
||||
BEGIN
|
||||
PROMPT 2 8 "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
|
||||
END
|
||||
|
||||
NUMBER F_FROMLIVELLOART 1
|
||||
BEGIN
|
||||
FLAGS "G"
|
||||
PROMPT 42 8 "da "
|
||||
USE FCA
|
||||
INPUT CODTAB F_FROMLIVELLOART
|
||||
DISPLAY "Num." CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_FROMLIVELLOART CODTAB
|
||||
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Livello iniziale non ammissibile"
|
||||
END
|
||||
|
||||
NUMBER F_TOLIVELLOART 1
|
||||
BEGIN
|
||||
PROMPT 52 8 "a "
|
||||
USE FCA
|
||||
INPUT CODTAB F_TOLIVELLOART
|
||||
DISPLAY "Num." CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_TOLIVELLOART CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&(((#F_TOLIVELLOGIAC+#F_FROMLIVELLOGIAC)*#F_TOLIVELLOART)=0)
|
||||
WARNING "Livello finale non ammissibile"
|
||||
END
|
||||
|
||||
BOOL F_RAGGLIVGIAC
|
||||
BEGIN
|
||||
PROMPT 2 9 "Raggruppo le giacenze"
|
||||
MESSAGE FALSE CLEAR,F_FROMLIVELLOGIAC|CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
|
||||
MESSAGE TRUE ENABLE,F_FROMLIVELLOGIAC|ENABLE,F_TOLIVELLOGIAC
|
||||
END
|
||||
|
||||
NUMBER F_FROMLIVELLOGIAC 1
|
||||
BEGIN
|
||||
FLAG "D"
|
||||
PROMPT 42 9 "da "
|
||||
USE FCG
|
||||
INPUT CODTAB F_FROMLIVELLOGIAC
|
||||
DISPLAY "Num." CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_FROMLIVELLOGIAC CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
NUM_EXPR ((#F_FROMLIVELLOGIAC*(#F_FROMLIVELLOART+#F_TOLIVELLOART))=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))
|
||||
|
||||
WARNING "Livello iniziale non ammissibile"
|
||||
END
|
||||
|
||||
NUMBER F_TOLIVELLOGIAC 1
|
||||
BEGIN
|
||||
FLAG "D"
|
||||
PROMPT 52 9 "a "
|
||||
USE FCG
|
||||
INPUT CODTAB F_TOLIVELLOGIAC
|
||||
DISPLAY "Num." CODTAB
|
||||
DISPLAY "Descr@50" S0
|
||||
OUTPUT F_TOLIVELLOGIAC CODTAB
|
||||
NUM_EXPR ((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))&&((#F_TOLIVELLOGIAC*#F_TOLIVELLOART)=0)
|
||||
WARNING "Livello finale non ammissibile"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
|
||||
BOOL F_TOTALIMAGAZZINI
|
||||
BEGIN
|
||||
PROMPT 2 10 "Stampo 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"
|
||||
END
|
||||
|
||||
LIST F_VAL1 20
|
||||
BEGIN
|
||||
PROMPT 2 11 "Valorizzazione colonna 1 "
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
LIST F_VAL2 20
|
||||
BEGIN
|
||||
PROMPT 2 12 "Valorizzazione colonna 2 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
LIST F_VAL3 20
|
||||
BEGIN
|
||||
PROMPT 2 13 "Valorizzazione colonna 3 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
LIST F_VAL4 20
|
||||
BEGIN
|
||||
PROMPT 2 14 "Valorizzazione colonna 4 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
LIST F_VAL5 20
|
||||
BEGIN
|
||||
PROMPT 2 15 "Valorizzazione colonna 5 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
LIST F_VAL6 20
|
||||
BEGIN
|
||||
PROMPT 2 16 "Valorizzazione colonna 6 "
|
||||
ITEM "|"
|
||||
ITEM "1|Ultimo costo"
|
||||
ITEM "2|Media ultimi costi"
|
||||
ITEM "3|Prezzo di listino"
|
||||
ITEM "4|Costo standard"
|
||||
ITEM "5|Costo medio"
|
||||
ITEM "6|FIFO annuale"
|
||||
ITEM "7|LIFO annuale"
|
||||
ITEM "8|FIFO"
|
||||
ITEM "9|LIFO"
|
||||
END
|
||||
STRING F_CATVENLISTINO 2
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 32 17 "Cat. ven. "
|
||||
USE CVE
|
||||
INPUT CODTAB F_CATVENLISTINO
|
||||
DISPLAY "Cat." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CATVENLISTINO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_LISTINO
|
||||
END
|
||||
|
||||
STRING F_CODLISTINO 3
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 52 17 "Codice listino "
|
||||
USE LF_CONDV
|
||||
INPUT TIPO "L"
|
||||
INPUT COD F_CODLISTINO
|
||||
DISPLAY "Codice" COD
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
OUTPUT F_CODLISTINO COD
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_LISTINO
|
||||
END
|
||||
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
2601
mg/mg4200a.frm
Executable file
2601
mg/mg4200a.frm
Executable file
File diff suppressed because it is too large
Load Diff
2457
mg/mg4200b.frm
Executable file
2457
mg/mg4200b.frm
Executable file
File diff suppressed because it is too large
Load Diff
237
mg/mg4300.cpp
Executable file
237
mg/mg4300.cpp
Executable file
@ -0,0 +1,237 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <mask.h>
|
||||
#include <printer.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
#include <form.h>
|
||||
#include <printapp.h>
|
||||
|
||||
#include "anamag.h"
|
||||
#include "mag.h"
|
||||
#include "stomag.h"
|
||||
#include "umart.h"
|
||||
|
||||
#include "..\ve\velib03.h"
|
||||
#include "..\ve\veconf.h"
|
||||
#include "mglib02.h"
|
||||
#include "mglib03.h"
|
||||
#include "mg4300.h"
|
||||
#include "mg4frm.h"
|
||||
|
||||
class TForm_giornalemag : public TForm_stampemg
|
||||
{
|
||||
|
||||
TConfig *conf_ditta;
|
||||
TArticolo_giacenza * _curr_art;
|
||||
TString16 _codlist,_catven;
|
||||
TArticolo_giacenza &curr_art();
|
||||
public:
|
||||
bool validate(TForm_item &cf, TToken_string &s);
|
||||
|
||||
TForm_giornalemag(const char *name,const char *code) ;
|
||||
~TForm_giornalemag();
|
||||
};
|
||||
|
||||
bool TForm_giornalemag::validate(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
||||
TString subcode;
|
||||
|
||||
if (code=="_USER") {
|
||||
}
|
||||
return TForm_stampemg::validate(cf, s);
|
||||
}
|
||||
|
||||
TArticolo_giacenza &TForm_giornalemag::curr_art()
|
||||
{
|
||||
TRectype & magrec=relation()->lfile(LF_MAG).curr();
|
||||
if (_curr_art==NULL || _curr_art->codice()!=magrec.get(MAG_CODART) ) {
|
||||
if (_curr_art) delete _curr_art;
|
||||
_curr_art=new TArticolo_giacenza(magrec.get(MAG_CODART));
|
||||
}
|
||||
return *_curr_art;
|
||||
}
|
||||
|
||||
|
||||
|
||||
TForm_giornalemag::TForm_giornalemag(const char *name,const char *code) :
|
||||
TForm_stampemg(name,code),_curr_art(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
TForm_giornalemag::~TForm_giornalemag()
|
||||
{
|
||||
if (_curr_art) delete _curr_art;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// STAMPA giornale
|
||||
class TStampa_giornalemag : public TPrint_application
|
||||
{
|
||||
static int freq_stampa;
|
||||
static bool ragg_articoli;
|
||||
static bool ragg_classi;
|
||||
static bool ragg_raggart;
|
||||
static bool ragg_caus;
|
||||
|
||||
static TCursor * _cur;
|
||||
|
||||
TArray * _files;
|
||||
TMask * _mask;
|
||||
TForm_giornalemag * _form; // to be moved into TPrint_application
|
||||
|
||||
protected:
|
||||
virtual bool print_one(int file)
|
||||
{return TRUE;}
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual bool set_print(int i=1);
|
||||
virtual void set_page(int file,int count)
|
||||
{ }
|
||||
|
||||
public:
|
||||
static const char * mov_getfunct(TVariable_rectype & r);
|
||||
static const char * rmov_getfunct(TVariable_rectype & r);
|
||||
|
||||
void set_parametri();
|
||||
TStampa_giornalemag();
|
||||
};
|
||||
|
||||
|
||||
int TStampa_giornalemag::freq_stampa;
|
||||
bool TStampa_giornalemag::ragg_articoli;
|
||||
bool TStampa_giornalemag::ragg_classi;
|
||||
bool TStampa_giornalemag::ragg_raggart;
|
||||
bool TStampa_giornalemag::ragg_caus;
|
||||
TCursor * TStampa_giornalemag::_cur;
|
||||
|
||||
|
||||
TStampa_giornalemag::TStampa_giornalemag()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool TStampa_giornalemag::user_create()
|
||||
{
|
||||
_mask = new TMask("mg4300");
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_RMOVMAG));
|
||||
_files->add(new TLocalisamfile(LF_MOVMAG));
|
||||
return TRUE;
|
||||
}
|
||||
bool TStampa_giornalemag::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const char *
|
||||
TStampa_giornalemag::mov_getfunct(TVariable_rectype & r)
|
||||
{
|
||||
TString80 valore;
|
||||
TDate datamov(_cur->relation()->lfile(LF_MOVMAG).get_date("DATACOMP"));
|
||||
TDate datayear(datamov);
|
||||
datayear.set_month(1);
|
||||
datayear.set_day(1);
|
||||
|
||||
// gestione frequenza
|
||||
switch (freq_stampa ) {
|
||||
case 0:
|
||||
valore << datamov.year() << datamov.month() << ' ' << datamov.day() << ' ';
|
||||
valore << _cur->relation()->lfile(LF_MOVMAG).get("NUMREG");
|
||||
break;
|
||||
case 1:
|
||||
valore << datamov.year() << datamov.month() << ' ' << datamov.day() << ' ';
|
||||
break;
|
||||
case 7:
|
||||
valore << datamov.year()<< ((datamov.date2julian()-datayear.date2julian())/7) << ' ';
|
||||
break;
|
||||
case 31:
|
||||
valore << datamov.year() << datamov.month() << ' ';
|
||||
break;
|
||||
}
|
||||
return valore;
|
||||
}
|
||||
|
||||
const char *
|
||||
TStampa_giornalemag::rmov_getfunct(TVariable_rectype & r)
|
||||
{
|
||||
TString80 valore;
|
||||
|
||||
// gestione ragruppamenti
|
||||
if (ragg_articoli)
|
||||
{
|
||||
valore << _cur->relation()->lfile(LF_ANAMAG).get(ANAMAG_CODART);
|
||||
} else {
|
||||
if (ragg_classi)
|
||||
{
|
||||
valore << _cur->relation()->lfile(LF_ANAMAG).get(ANAMAG_CLASSEFIS);
|
||||
if (ragg_raggart)
|
||||
{
|
||||
valore << _cur->relation()->lfile(LF_ANAMAG).get(ANAMAG_RAGGFIS);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ragg_caus)
|
||||
{
|
||||
valore << _cur->relation()->lfile(-ALIAS_CAUSALI).get("S8");
|
||||
}
|
||||
return valore;
|
||||
}
|
||||
|
||||
|
||||
void TStampa_giornalemag::set_parametri()
|
||||
{
|
||||
freq_stampa=_mask->get_int(F_FREQ);
|
||||
ragg_articoli=_mask->get_bool(F_RAGGARTICOLI );
|
||||
ragg_classi=_mask->get_bool(F_CLASSEFISART );
|
||||
ragg_raggart=_mask->get_bool(F_RAGGFISART );
|
||||
ragg_caus=_mask->get_bool(F_RAGGCAUS );
|
||||
}
|
||||
|
||||
bool TStampa_giornalemag::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
_form = new TForm_giornalemag("mg4300", "");
|
||||
_cur = _form->cursor();
|
||||
|
||||
TVariable_rectype *vrec_rmov= new TVariable_rectype(LF_RMOVMAG);
|
||||
vrec_rmov->add_field(new TVariable_field ("RSORT_FIELD", rmov_getfunct));
|
||||
TSortedfile *rmovmag= new TSortedfile(LF_RMOVMAG,NULL,"RSORT_FIELD","",2);
|
||||
rmovmag->set_curr(vrec_rmov);
|
||||
//_cur->relation()->replace(rmovmag,1,"CODART==CODART");
|
||||
|
||||
TVariable_rectype *vrec_mov= new TVariable_rectype(LF_MOVMAG);
|
||||
vrec_mov->add_field(new TVariable_field ("SORT_FIELD", mov_getfunct));
|
||||
|
||||
_cur->relation()->lfile().set_curr(vrec_mov);
|
||||
|
||||
TString cfilter("ANNOES==");
|
||||
cfilter << '"'<< _mask->get(F_ANNOES) << '"';
|
||||
//_cur->setfilter(cfilter);
|
||||
|
||||
set_parametri();
|
||||
_form->print();
|
||||
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg4300(int argc, char* argv[])
|
||||
{
|
||||
TStampa_giornalemag a;
|
||||
a.run(argc,argv,"Stampa giornale di magazzino");
|
||||
return 0;
|
||||
}
|
167
mg/mg4300.frm
Executable file
167
mg/mg4300.frm
Executable file
@ -0,0 +1,167 @@
|
||||
#include "mg4300.h"
|
||||
USE LF_MOVMAG KEY 4 BY SORT_FIELD
|
||||
JOIN LF_RMOVMAG TO LF_MOVMAG KEY 2 INTO NUMREG==NUMREG
|
||||
JOIN CAU TO LF_MOVMAG ALIAS ALIAS_CAUSALI INTO CODTAB==CODCAUS
|
||||
JOIN LF_ANAMAG TO LF_RMOVMAG INTO CODART==CODART
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
47->* "Anagrafica articoli"
|
||||
109->* "Archivio Giacenze"
|
||||
MAG->* "Tabella magazzini"
|
||||
110->* "Movimenti di magazzino"
|
||||
111->* "Righe Movimenti di magazzino"
|
||||
49->* "Unità di misura articoli"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
CARATTERE "X"
|
||||
INIZIALE 5 2
|
||||
FINALE 133
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 5
|
||||
STRINGA 1 40 1
|
||||
BEGIN
|
||||
KEY "nome ditta"
|
||||
PROMPT 1 1 "Ditta "
|
||||
MESSAGE _DITTA, !RAGSOC
|
||||
END
|
||||
|
||||
STRINGA 2 10
|
||||
BEGIN
|
||||
KEY "Data"
|
||||
PROMPT 120 1 "Data "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 137 1 "Pagina "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
STRINGA 4 45
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 45 2 "Stampa schede di magazzino :"
|
||||
MESSAGE _USER,TIPOSCHEDA
|
||||
END
|
||||
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
STRINGA 6 12
|
||||
BEGIN
|
||||
PROMPT 27 4 "UM"
|
||||
END
|
||||
NUMBER 7 12
|
||||
BEGIN
|
||||
PROMPT 31 4 "Quantità"
|
||||
END
|
||||
NUMBER 8 12
|
||||
BEGIN
|
||||
PROMPT 42 4 "Prezzo"
|
||||
END
|
||||
NUMBER 9 12
|
||||
BEGIN
|
||||
PROMPT 54 4 "Valore"
|
||||
END
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END
|
||||
|
||||
SECTION BODY ODD 0
|
||||
SECTION HEADER_RAGG_CRONO 1 2 2 GROUP
|
||||
STRINGA 101 30
|
||||
BEGIN
|
||||
PROMPT 1 1 ">>> NUM:"
|
||||
MESSAGE _STREXPR,LF_MOVMAG->NUMREG
|
||||
END
|
||||
STRINGA 102 30
|
||||
BEGIN
|
||||
PROMPT 1 2 ">>>DATA:"
|
||||
MESSAGE _STREXPR,LF_MOVMAG->DATACOMP
|
||||
END
|
||||
END
|
||||
|
||||
SECTION RAGG_CRONOLOGICO 1 0 0 FILE LF_MOVMAG GROUP DATACOMP
|
||||
|
||||
SECTION RIGHE_MOV 1 0 0 FILE LF_RMOVMAG
|
||||
|
||||
SECTION HEADER_RAGG_FISC 1 2 2 GROUP
|
||||
STRINGA 100 30
|
||||
BEGIN
|
||||
PROMPT 1 1 ">>> NUM:"
|
||||
MESSAGE _STREXPR,LF_MOVMAG->NUMREG
|
||||
END
|
||||
STRINGA 100 30
|
||||
BEGIN
|
||||
PROMPT 1 2 ">>>DATA:"
|
||||
MESSAGE _STREXPR,LF_MOVMAG->DATACOMP
|
||||
END
|
||||
END
|
||||
|
||||
SECTION RAGG_FISCALE 1 0 1 FILE LF_RMOVMAG GROUP CODART
|
||||
|
||||
STRINGA 100 30
|
||||
BEGIN
|
||||
PROMPT 1 1 ">>>"
|
||||
MESSAGE _STREXPR,LF_RMOVMAG->NUMREG+LF_RMOVMAG->CODART+"/"+LF_RMOVMAG->LIVGIAC+":"+LF_RMOVMAG->CODMAG
|
||||
END
|
||||
|
||||
STRINGA 101 12
|
||||
BEGIN
|
||||
PROMPT 27 1 ""
|
||||
FIELD LF_RMOVMAG->UM
|
||||
END
|
||||
|
||||
NUMBER 104 12
|
||||
BEGIN
|
||||
PROMPT 42 1 ""
|
||||
PICTURE "###.###.###"
|
||||
FIELD LF_RMOVMAG->PREZZO
|
||||
END
|
||||
NUMBER 103 12
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
PICTURE "###.###,@##"
|
||||
MESSAGE _NUMEXPR,#FF_QUANTRIGA
|
||||
END
|
||||
NUMBER 105 12
|
||||
BEGIN
|
||||
PROMPT 54 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*LF_RMOVMAG->PREZZO|_USER,*SEGNOCAUS
|
||||
END
|
||||
END // RAGG FISCALE
|
||||
END // CICLO RMOV
|
||||
END // RAGG CRONOLOGICO
|
||||
END // BODY: CICLO MOV
|
||||
|
||||
SECTION FOOTER ODD 2
|
||||
STRINGA 100
|
||||
BEGIN
|
||||
KEY "NUMP"
|
||||
PROMPT 50 1 "-----"
|
||||
END
|
||||
|
||||
NUMERO 101
|
||||
BEGIN
|
||||
KEY "NUMPAGE"
|
||||
PROMPT 50 2 ""
|
||||
MESSAGE _PAGENO
|
||||
PICTURE "-###-"
|
||||
END
|
||||
|
||||
END
|
||||
|
22
mg/mg4300.h
Executable file
22
mg/mg4300.h
Executable file
@ -0,0 +1,22 @@
|
||||
#ifndef __MG4300_H
|
||||
#define __MG4300_H
|
||||
|
||||
#define F_DEFINITIVA 101
|
||||
#define F_CLASSEFISART 102
|
||||
#define F_RAGGFISART 103
|
||||
#define F_RAGGCAUS 104
|
||||
#define F_RAGGARTICOLI 105
|
||||
#define F_FREQ 106
|
||||
|
||||
#define F_ANNOES 110
|
||||
#define F_ANNO 111
|
||||
|
||||
#define G_OPZ 1
|
||||
#define G_CODART 2
|
||||
#define G_DESART 3
|
||||
#define G_PARAMVALORI 4
|
||||
|
||||
#define ALIAS_CAUSALI 500
|
||||
|
||||
|
||||
#endif //__MG4300_H
|
79
mg/mg4300.uml
Executable file
79
mg/mg4300.uml
Executable file
@ -0,0 +1,79 @@
|
||||
#include "mg4300.h"
|
||||
PAGE "Stampa giornale" -1 -1 78 20
|
||||
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
FLAGS "AH"
|
||||
END
|
||||
|
||||
NUMBER F_ANNOES 4
|
||||
BEGIN
|
||||
FLAGS "A"
|
||||
PROMPT 2 1 "Codice es. "
|
||||
USE ESC
|
||||
INPUT CODTAB F_ANNOES
|
||||
DISPLAY "Esercizio" CODTAB
|
||||
DISPLAY "Dal@12" D0
|
||||
DISPLAY "Al@12" D0
|
||||
OUTPUT F_ANNOES CODTAB
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
LISTBOX F_DEFINITIVA 10
|
||||
BEGIN
|
||||
PROMPT 2 3 "Si desidera la stampa "
|
||||
ITEM "P|di prova"
|
||||
ITEM "D|definitiva"
|
||||
END
|
||||
|
||||
NUMBER F_FREQ 2
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 5 "Frequenza di stampa "
|
||||
NUM_EXPR #F_FREQ<=31
|
||||
WARNING "La frequenza deve essere compresa tra 0 e 31"
|
||||
END
|
||||
|
||||
BOOLEAN F_RAGGARTICOLI
|
||||
BEGIN
|
||||
PROMPT 2 7 "Raggruppo gli articoli"
|
||||
MESSAGE FALSE CLEAR,F_CLASSEFISART|K_SPACE,F_CLASSEFISART
|
||||
MESSAGE TRUE ENABLE,F_CLASSEFISART
|
||||
GROUP G_OPZ
|
||||
END
|
||||
|
||||
BOOLEAN F_CLASSEFISART
|
||||
BEGIN
|
||||
PROMPT 2 9 "Raggruppo le classi fiscali articoli"
|
||||
MESSAGE FALSE CLEAR,F_RAGGFISART|K_SPACE,F_RAGGFISART
|
||||
MESSAGE TRUE ENABLE,F_RAGGFISART
|
||||
GROUP G_OPZ
|
||||
END
|
||||
|
||||
BOOLEAN F_RAGGFISART
|
||||
BEGIN
|
||||
PROMPT 2 11 "Raggruppo i raggruppamenti fiscali articoli"
|
||||
MESSAGE FALSE CLEAR,F_RAGGCAUS
|
||||
MESSAGE TRUE ENABLE,F_RAGGCAUS
|
||||
GROUP G_OPZ
|
||||
END
|
||||
|
||||
BOOLEAN F_RAGGCAUS
|
||||
BEGIN
|
||||
PROMPT 2 13 "Raggruppo le causali"
|
||||
GROUP G_OPZ
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
18
mg/mg4frm.h
Executable file
18
mg/mg4frm.h
Executable file
@ -0,0 +1,18 @@
|
||||
#define FF_FLAGTOTQTA 666
|
||||
#define FF_FLAGGIAC 667
|
||||
#define FF_FLAGSOTTOS 668
|
||||
#define FF_FLAGVALMEDI 669
|
||||
#define FF_PREZZIVALORI 670
|
||||
#define FF_ENABLECOLS 671
|
||||
|
||||
#define FG_COL1 10
|
||||
#define FG_COL2 11
|
||||
#define FG_COL3 12
|
||||
#define FG_COL4 13
|
||||
#define FG_COL5 14
|
||||
#define FG_COL6 15
|
||||
#define FG_VALORI 25
|
||||
#define FG_VALMEDI 26
|
||||
#define FG_RIGAVALORI 27
|
||||
#define FG_RIGAPREZZI 28
|
||||
|
Loading…
x
Reference in New Issue
Block a user