Stampe di magazzino
git-svn-id: svn://10.65.10.50/trunk@4401 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8282a46034
commit
d200277732
29
mg/mg3.cpp
Executable file
29
mg/mg3.cpp
Executable file
@ -0,0 +1,29 @@
|
||||
#include <xvt.h>
|
||||
#include <strings.h>
|
||||
// ******************************
|
||||
// Gestione stampe di magazzino (anagrafica giacenze,storico,schede, disponibilita)
|
||||
#include "mg3.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1|2|3|4}"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 0:
|
||||
//rt = mg3100(argc,argv) ; break; // stampa giacenze
|
||||
case 1:
|
||||
//rt = mg3200(argc,argv) ; break; // stampa storico rimanenze
|
||||
case 2:
|
||||
rt = mg3300(argc,argv) ; break; // stampa schede
|
||||
case 3:
|
||||
//rt = mg3400(argc,argv) ; break; // stampa disponibilità ....
|
||||
default:
|
||||
error_box(usage, argv[0]) ; break;
|
||||
}
|
||||
|
||||
return rt ;
|
||||
}
|
9
mg/mg3.h
Executable file
9
mg/mg3.h
Executable file
@ -0,0 +1,9 @@
|
||||
#ifndef __MG3_H
|
||||
#define __MG3_H
|
||||
|
||||
int mg3100(int argc, char* argv[]);
|
||||
int mg3200(int argc, char* argv[]);
|
||||
int mg3300(int argc, char* argv[]);
|
||||
int mg3400(int argc, char* argv[]);
|
||||
|
||||
#endif // __MG3_H
|
376
mg/mg3100.cpp
Executable file
376
mg/mg3100.cpp
Executable file
@ -0,0 +1,376 @@
|
||||
#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 "mglib03.h"
|
||||
#include "mg3100.h"
|
||||
#include "mg3frm.h"
|
||||
|
||||
|
||||
class TForm_giacprezzi : public TForm_stampemg
|
||||
{
|
||||
TConfig *conf_ditta;
|
||||
TCondizione_vendita * listino;
|
||||
public:
|
||||
void set_codlistino(const char * codcm,const char * cod);
|
||||
bool validate(TForm_item &cf, TToken_string &s);
|
||||
TForm_giacprezzi(const char *name,const char *code) ;
|
||||
~TForm_giacprezzi();
|
||||
};
|
||||
|
||||
bool TForm_giacprezzi::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") {
|
||||
subcode=s.get();
|
||||
if (subcode=="PREZZO") {
|
||||
TString codart(relation()->lfile(LF_ANAMAG).get("CODART"));
|
||||
if (listino->ricerca(codart,0.0))
|
||||
cf.set(listino->get_prezzo().string());
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return TForm_stampemg::validate(cf, s);
|
||||
}
|
||||
|
||||
void TForm_giacprezzi::set_codlistino(const char * codcatv,const char * codlist)
|
||||
{
|
||||
listino->put_listino(codlist,codcatv);
|
||||
}
|
||||
|
||||
TForm_giacprezzi::TForm_giacprezzi(const char *name,const char *code) :
|
||||
TForm_stampemg(name,code)
|
||||
{
|
||||
listino=new TCondizione_vendita(new TConfig(CONFIG_DITTA,""));
|
||||
listino->set_anamag(relation()->lfile(LF_ANAMAG));
|
||||
listino->set_umart(relation()->lfile(LF_UMART));
|
||||
}
|
||||
|
||||
TForm_giacprezzi::~TForm_giacprezzi()
|
||||
{
|
||||
delete &(listino->config_ditta());
|
||||
delete listino;
|
||||
}
|
||||
|
||||
|
||||
|
||||
class TStampadatist_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:
|
||||
TStampadatist_mask();
|
||||
~TStampadatist_mask(){};
|
||||
};
|
||||
|
||||
TStampadatist_mask::TStampadatist_mask():
|
||||
TMask("mg3100")
|
||||
{
|
||||
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 TStampadatist_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 TStampadatist_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 TStampadatist_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_datistorici : public TPrint_application
|
||||
{
|
||||
TArray * _files;
|
||||
TMask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_giacprezzi * _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_datistorici() {}
|
||||
};
|
||||
|
||||
|
||||
bool TStampa_datistorici::user_create()
|
||||
{
|
||||
_mask = new TStampadatist_mask();
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_MAG));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_datistorici::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TStampa_datistorici::setprint_permagazzini()
|
||||
{
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_form = new TForm_giacprezzi("mg3100b", "");
|
||||
_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)<< "\")&&" ;
|
||||
switch (*_mask->get(F_FILTRO)) {
|
||||
case '0': // non nulli
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC!=\"0\"))&&";
|
||||
break;
|
||||
case 'P': // positivi
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC>\"0\"))&&";
|
||||
break;
|
||||
case 'N': // negativi
|
||||
cfilter << "(STR(" << LF_MAG << "->GIAC<\"0\"))&&";
|
||||
break;
|
||||
case 'S': // sottoscorta
|
||||
cfilter << "(STR(GIAC<SCORTAMIN))&&";
|
||||
break;
|
||||
}
|
||||
if (cfilter.not_empty())
|
||||
cfilter.cut(cfilter.len()-2);
|
||||
|
||||
// abilita/disabilita le sezioni dei totali
|
||||
bool showdett;
|
||||
showdett=_mask->get_bool(F_DETTAGLIODEP);
|
||||
_form->setdett_permag(_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),showdett);
|
||||
|
||||
_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->find_field('H',odd_page,FF_PREZZIVALORI).set(_mask->get(F_PREZZIVALORI));
|
||||
_form->find_field('B',odd_page,FF_PREZZIVALORI).set(_mask->get(F_PREZZIVALORI));
|
||||
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
|
||||
|
||||
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_datistorici::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);
|
||||
_form = new TForm_giacprezzi("mg3100a", "");
|
||||
_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)<< "\")&&" ;
|
||||
switch (*_mask->get(F_FILTRO)) {
|
||||
case '0': // non nulli
|
||||
filter << "(STR(" << LF_MAG << "->GIAC!=\"0\"))&&";
|
||||
break;
|
||||
case 'P': // positivi
|
||||
filter << "(STR(" << LF_MAG << "->GIAC>\"0\"))&&";
|
||||
break;
|
||||
case 'N': // negativi
|
||||
filter << "(STR(" << LF_MAG << "->GIAC<\"0\"))&&";
|
||||
break;
|
||||
case 'S': // sottoscorta
|
||||
filter << "(STR(GIAC<SCORTAMIN))&&";
|
||||
break;
|
||||
}
|
||||
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));
|
||||
|
||||
_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->find_field('H',odd_page,FF_PREZZIVALORI).set(_mask->get(F_PREZZIVALORI));
|
||||
_form->find_field('B',odd_page,FF_PREZZIVALORI).set(_mask->get(F_PREZZIVALORI));
|
||||
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
|
||||
|
||||
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_datistorici::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
setprint_perarticoli();
|
||||
} else {
|
||||
setprint_permagazzini();
|
||||
}
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg3100(int argc, char* argv[])
|
||||
{
|
||||
TStampa_datistorici a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa dati storici di giacenza");
|
||||
return 0;
|
||||
}
|
2295
mg/mg3100a.frm
Executable file
2295
mg/mg3100a.frm
Executable file
File diff suppressed because it is too large
Load Diff
2185
mg/mg3100b.frm
Executable file
2185
mg/mg3100b.frm
Executable file
File diff suppressed because it is too large
Load Diff
778
mg/mg3100c.frm
Executable file
778
mg/mg3100c.frm
Executable file
@ -0,0 +1,778 @@
|
||||
USE 109 KEY 2
|
||||
JOIN 47 TO 109 INTO CODART==CODART
|
||||
JOIN MAG TO 109 ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
JOIN MAG TO 109 ALIAS 501 INTO CODTAB==CODMAG
|
||||
JOIN GMC TO 47 ALIAS 400 INTO CODTAB==GRMERC[1,3]
|
||||
JOIN GMC TO 47 ALIAS 401 INTO CODTAB==GRMERC
|
||||
JOIN 49 TO 47 INTO CODART==CODART
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
47->* "Anagrafica articoli"
|
||||
109->* "Archivio Giacenze"
|
||||
MAG->* "Tabella magazzini"
|
||||
49->* "Unità di misura articoli"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 8
|
||||
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
|
||||
|
||||
NUMERO 4 32
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 45 2 "Stampa dati storici giacenze"
|
||||
END
|
||||
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
LIST 666 1
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "H"
|
||||
KEY "FLAG GIACENZA"
|
||||
ITEM "0|0"
|
||||
MESSAGE HIDE,14|DISABLE,BO->47
|
||||
ITEM "1|1"
|
||||
MESSAGE SHOW,14|ENABLE,BO->47
|
||||
END
|
||||
|
||||
LIST 667 1
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "H"
|
||||
KEY "FLAG SOTTOSCORTA"
|
||||
ITEM "0|0"
|
||||
MESSAGE HIDE,15|DISABLE,BO->48
|
||||
ITEM "1|1"
|
||||
MESSAGE SHOW,15|ENABLE,BO->48
|
||||
END
|
||||
|
||||
STRINGA 6 20
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 2 4 "Codice"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 24 4 "Descrizione"
|
||||
END
|
||||
STRINGA 7 40
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 45 4 "UM"
|
||||
END
|
||||
STRINGA 8 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 55 4 "Acq."
|
||||
END
|
||||
STRINGA 9 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 68 4 "Val.Acq."
|
||||
END
|
||||
STRINGA 10 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 81 4 "Ven."
|
||||
END
|
||||
STRINGA 11 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 94 4 "Val.Ven."
|
||||
END
|
||||
STRINGA 12 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 107 4 "Rim."
|
||||
END
|
||||
STRINGA 13 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 120 4 "Val.Rim."
|
||||
END
|
||||
STRINGA 14 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 133 4 "Giac."
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 131 4 "Scorta-Giac."
|
||||
END
|
||||
|
||||
STRINGA 17 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
|
||||
END
|
||||
|
||||
SECTION BODY ODD 0 COLUMNWISE
|
||||
|
||||
LIST 555 1
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAG "H"
|
||||
KEY "FLAG VALORI MEDI"
|
||||
ITEM "0|N"
|
||||
MESSAGE SHOW,10@|DISABLE,11@
|
||||
ITEM "1|Y"
|
||||
MESSAGE HIDE,10@|ENABLE,11@
|
||||
END
|
||||
|
||||
SECTION HEADER_MAGAZZINO 1 1 1 GROUP
|
||||
STRINGA 10 12 2
|
||||
BEGIN
|
||||
KEY "magazzino"
|
||||
PROMPT 2 1 ""
|
||||
FIELD CODMAG[1,3]
|
||||
END
|
||||
|
||||
STRINGA 11 12 2
|
||||
BEGIN
|
||||
KEY "magazzino"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 500@->s0
|
||||
MESSAGE RESET,4@|COPY,450
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_MAGAZZINO 1 1 0 FILE 109 GROUP CODMAG[1,3]
|
||||
|
||||
SECTION HEADER_DEPOSITO 1 1 1 GROUP
|
||||
STRINGA 21 8 1
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 "Deposito"
|
||||
END
|
||||
STRINGA 22 34 1
|
||||
BEGIN
|
||||
KEY "descr"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 501@->s0
|
||||
MESSAGE RESET,3@|COPY,350
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_DEPOSITO 1 0 0 FILE 109 GROUP CODMAG[4,5]
|
||||
STRINGA 30 21 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "codice ARTICOLO"
|
||||
PROMPT 2 1 " Articolo:"
|
||||
FIELD 47->CODART
|
||||
MESSAGE COPY,251
|
||||
END
|
||||
STRINGA 31 21 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "codice ARTICOLO"
|
||||
PROMPT 3 1 ""
|
||||
FIELD 47->DESCR
|
||||
MESSAGE RESET,2@|COPY,250
|
||||
END
|
||||
SECTION GRUPPI_ARTICOLO 1 0 0 FILE 109 GROUP CODART
|
||||
STRINGA 40 40 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
KEY "livgiac"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,GRUPPOGIAC|RESET,1@|COPY,150
|
||||
END
|
||||
|
||||
SECTION GRUPPI_LIVELLO_GIACENZE 1 0 0 FILE 109 GROUP LIVELLO
|
||||
SECTION RIGHE_LIVELLI 0 1 1 GROUP
|
||||
STRINGA 51 5 2
|
||||
BEGIN
|
||||
KEY "CODICE"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA 52 37 2
|
||||
BEGIN
|
||||
KEY "descr"
|
||||
PROMPT 3 1 ""
|
||||
MESSAGE _USER,LIVELLIGIAC
|
||||
END
|
||||
STRINGA 53 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 1 ""
|
||||
FIELD 49->UM
|
||||
END
|
||||
NUMERO 41 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
FIELD 109->ACQ
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,141
|
||||
END
|
||||
NUMERO 42 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
FIELD 109->VALACQ
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,142
|
||||
GROUP 10
|
||||
END
|
||||
NUMERO 82 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,109->VALACQ/109->ACQ
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 43 12
|
||||
BEGIN
|
||||
KEY "VEN"
|
||||
PROMPT 8 1 ""
|
||||
FIELD 109->VEN
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,143
|
||||
END
|
||||
NUMERO 44 12
|
||||
BEGIN
|
||||
KEY "VALV"
|
||||
PROMPT 9 1 ""
|
||||
FIELD 109->VALVEN
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,144
|
||||
GROUP 10
|
||||
END
|
||||
NUMERO 84 12
|
||||
BEGIN
|
||||
KEY "VALV"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,109->VALVEN/109->VEN
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 45 12
|
||||
BEGIN
|
||||
KEY "RIM"
|
||||
PROMPT 10 1 ""
|
||||
FIELD 109->RIM
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,145
|
||||
END
|
||||
NUMERO 46 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
FIELD 109->VALRIM
|
||||
MESSAGE ADD,146
|
||||
GROUP 10
|
||||
END
|
||||
NUMERO 86 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,109->VALRIM/109->RIM
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 47 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
FIELD 109->GIAC
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE ADD,147
|
||||
END
|
||||
NUMERO 48 12
|
||||
BEGIN
|
||||
KEY "scorta-giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _NUMEXPR,109->SCORTAMIN-109->GIAC|ADD,147
|
||||
END
|
||||
END // SECTION GROUP LIVELLI
|
||||
END // LOOP LIVELLI
|
||||
|
||||
SECTION TOTALI_LIVELLO_GIAC 1 2 2 GROUP
|
||||
STRINGA 777
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 6 1 "----------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
STRINGA 150 35 2
|
||||
BEGIN
|
||||
KEY "LIVGIAC"
|
||||
PROMPT 3 2 ""
|
||||
END
|
||||
STRINGA 151 7 2
|
||||
BEGIN
|
||||
KEY "livgiac"
|
||||
PROMPT 2 2 " Totale"
|
||||
END
|
||||
STRINGA 153 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
FIELD 49->UM
|
||||
MESSAGE COPY,253
|
||||
END
|
||||
|
||||
NUMERO 141 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,241
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 142 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,242
|
||||
GROUP 1 10
|
||||
END
|
||||
NUMERO 182 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#142/#141
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 143 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,243
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 144 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,244
|
||||
GROUP 1 10
|
||||
END
|
||||
NUMERO 184 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#144/#143
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 145 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,245
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 146 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,246
|
||||
GROUP 1 10
|
||||
END
|
||||
NUMERO 186 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#146/#145
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 147 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,247
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
END // LOOP LIVELLI DI GIACENZA
|
||||
SECTION TOTALI_ARTICOLO 1 1 1 GROUP
|
||||
|
||||
STRINGA 250 21 1
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA 251 21 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 2 1 " Articolo "
|
||||
END
|
||||
STRINGA 253 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 1 ""
|
||||
MESSAGE COPY,353
|
||||
END
|
||||
|
||||
NUMERO 241 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,341
|
||||
GROUP 2
|
||||
END
|
||||
NUMERO 242 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,342
|
||||
GROUP 2 10
|
||||
END
|
||||
NUMERO 282 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#242/#241
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 243 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,343
|
||||
GROUP 2
|
||||
END
|
||||
NUMERO 244 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,344
|
||||
GROUP 2 10
|
||||
END
|
||||
NUMERO 284 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#244/#243
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 245 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,345
|
||||
GROUP 2
|
||||
END
|
||||
NUMERO 246 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,346
|
||||
GROUP 2 10
|
||||
END
|
||||
NUMERO 286 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#246/#245
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 247 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,347
|
||||
GROUP 2
|
||||
END
|
||||
END // SECTION TOTALI
|
||||
|
||||
END // LOOP GIAC
|
||||
|
||||
SECTION TOTALI_DEPOSITO 1 3 3 GROUP
|
||||
STRINGA 777
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 6 1 "----------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
STRINGA 350 30 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 2 ""
|
||||
END
|
||||
STRINGA 351 12 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 2 " Totale dep."
|
||||
END
|
||||
STRINGA 353 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
MESSAGE COPY,453
|
||||
END
|
||||
NUMERO 341 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,441
|
||||
GROUP 3
|
||||
END
|
||||
NUMERO 342 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,442
|
||||
GROUP 3 10
|
||||
END
|
||||
NUMERO 382 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#342/#341
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 343 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,443
|
||||
GROUP 3
|
||||
END
|
||||
NUMERO 344 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,444
|
||||
GROUP 3 10
|
||||
END
|
||||
NUMERO 384 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#344/#343
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 345 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,445
|
||||
GROUP 3
|
||||
END
|
||||
NUMERO 346 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
MESSAGE ADD,446
|
||||
GROUP 3 10
|
||||
END
|
||||
NUMERO 386 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#346/#345
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 347 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,447
|
||||
GROUP 3
|
||||
END
|
||||
END // SECTION TOTALI
|
||||
|
||||
END // loop ragg codice o catmerc
|
||||
SECTION TOTALI_MAGAZZINO 1 3 3 GROUP
|
||||
STRINGA 777
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 6 1 "----------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
STRINGA 451 20 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 2 " TOTALE MAG."
|
||||
END
|
||||
STRINGA 450 22 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 2 ""
|
||||
END
|
||||
STRINGA 453 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
END
|
||||
NUMERO 441 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
GROUP 4
|
||||
END
|
||||
NUMERO 442 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
GROUP 4 10
|
||||
END
|
||||
NUMERO 482 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#442/#441
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 443 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
GROUP 4
|
||||
END
|
||||
NUMERO 444 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
GROUP 4 10
|
||||
END
|
||||
NUMERO 484 12
|
||||
BEGIN
|
||||
KEY "VALVEN medio"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#444/#443
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 445 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
GROUP 4
|
||||
END
|
||||
NUMERO 446 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "###.###.##@"
|
||||
GROUP 4 10
|
||||
END
|
||||
NUMERO 486 12
|
||||
BEGIN
|
||||
KEY "VALrim medio"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "#######,@##"
|
||||
MESSAGE _NUMEXPR,#446/#445
|
||||
GROUP 11
|
||||
END
|
||||
|
||||
NUMERO 447 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
GROUP 4
|
||||
END
|
||||
END // SECTION TOTALI
|
||||
END // section body, loop anamag
|
||||
|
||||
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 // fine footer
|
||||
END// fine form
|
||||
|
275
mg/mg3200.cpp
Executable file
275
mg/mg3200.cpp
Executable file
@ -0,0 +1,275 @@
|
||||
#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 "mglib03.h"
|
||||
#include "mg3200.h"
|
||||
#include "mg3frm.h"
|
||||
|
||||
class TStampadisp_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:
|
||||
TStampadisp_mask();
|
||||
~TStampadisp_mask(){};
|
||||
};
|
||||
TStampadisp_mask::TStampadisp_mask():
|
||||
TMask("mg3200")
|
||||
{
|
||||
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 TStampadisp_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 TStampadisp_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 TStampadisp_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;
|
||||
}
|
||||
|
||||
|
||||
// mg3200 Stampa
|
||||
class TStampa_disp : public TPrint_application
|
||||
{
|
||||
TArray * _files;
|
||||
TStampadisp_mask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_stampemg * _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_disp() {}
|
||||
};
|
||||
|
||||
|
||||
bool TStampa_disp::user_create()
|
||||
{
|
||||
_mask = new TStampadisp_mask;
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_MAG));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_disp::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void TStampa_disp::setprint_permagazzini()
|
||||
{
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_form = new TForm_stampemg("mg3200b", "");
|
||||
_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
|
||||
bool showdett;
|
||||
showdett=_mask->get_bool(F_DETTAGLIODEP);
|
||||
_form->setdett_permag(_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),showdett);
|
||||
|
||||
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_disp::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);
|
||||
_form = new TForm_stampemg("mg3200a", "");
|
||||
_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_disp::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
setprint_perarticoli();
|
||||
} else {
|
||||
setprint_permagazzini();
|
||||
}
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg3200(int argc, char* argv[])
|
||||
{
|
||||
TStampa_disp a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa disponibilità");
|
||||
return 0;
|
||||
}
|
1908
mg/mg3200.frm
Executable file
1908
mg/mg3200.frm
Executable file
File diff suppressed because it is too large
Load Diff
1889
mg/mg3200a.frm
Executable file
1889
mg/mg3200a.frm
Executable file
File diff suppressed because it is too large
Load Diff
1784
mg/mg3200b.frm
Executable file
1784
mg/mg3200b.frm
Executable file
File diff suppressed because it is too large
Load Diff
174
mg/mg3300.cpp
Executable file
174
mg/mg3300.cpp
Executable file
@ -0,0 +1,174 @@
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include "mglib05.h" //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
#include <mask.h>
|
||||
#include <printer.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
#include "mglib01.h"
|
||||
#include "mg3300.h"
|
||||
|
||||
|
||||
#include "mglib04.h"
|
||||
|
||||
|
||||
// mg3300 Stampa
|
||||
class TStampa_schedemag : 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_schedemag::create()
|
||||
{
|
||||
_mask = new TMask("mg3300");
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
// filtro << "CODART>=" <<'"' << _daart<<'"' << " && CODART<=" <<'"' << _aart<<'"' ;
|
||||
// filtro << " && ANNOES==" <<'"' << _codicees <<'"' ;
|
||||
// estremi di stanpa
|
||||
_raggmag=_mask->get_bool(F_RAGGMAG);
|
||||
_daart=_mask->get(F_DAART);
|
||||
_aart=_mask->get(F_AART);
|
||||
_damag=_mask->get(F_DAMAG);
|
||||
_amag=_mask->get(F_AMAG);
|
||||
_dadata=_mask->get_date(F_DADATA);
|
||||
_adata=_mask->get_date(F_ADATA);
|
||||
_codicees=1996;
|
||||
|
||||
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||
_form = new TForm("mg3300a", "");
|
||||
TCursor& cur = *_form->cursor();
|
||||
cur.setkey();
|
||||
// trova il record iniziale
|
||||
//darec.put("ANNOES",_codicees);
|
||||
darec.put("CODART",_daart);
|
||||
//darec.put("CODMAG",_damag);
|
||||
// trova il record finale
|
||||
//arec.put("ANNOES",_codicees);
|
||||
arec.put("CODART",_aart);
|
||||
//arec.put("CODMAG",_amag);
|
||||
cur.setregion(darec,arec);
|
||||
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
bool TStampa_schedemag::destroy()
|
||||
{
|
||||
delete _mask;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// mg3300 Stampa
|
||||
class TStampa_schede_mag : public TPrint_app2
|
||||
{
|
||||
TMask * _mask;
|
||||
TForm * _form; // to be moved into TPrint_application
|
||||
|
||||
int _codicees;
|
||||
bool _raggmag;
|
||||
TString _daart,_aart,_damag,_amag;
|
||||
TDate _dadata,_adata;
|
||||
protected:
|
||||
virtual bool print_one(int file);
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual bool set_print(int i=1);
|
||||
virtual void set_page(int file,int count);
|
||||
|
||||
public:
|
||||
TStampa_schede_mag() {}
|
||||
};
|
||||
|
||||
bool TStampa_schede_mag ::print_one(int file)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void TStampa_schede_mag ::set_page(int file,int count)
|
||||
{
|
||||
}
|
||||
|
||||
bool TStampa_schede_mag::set_print(int i)
|
||||
{
|
||||
int s;
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
// filtro << "CODART>=" <<'"' << _daart<<'"' << " && CODART<=" <<'"' << _aart<<'"' ;
|
||||
// filtro << " && ANNOES==" <<'"' << _codicees <<'"' ;
|
||||
// estremi di stanpa
|
||||
_raggmag=_mask->get_bool(F_RAGGMAG);
|
||||
_daart=_mask->get(F_DAART);
|
||||
_aart=_mask->get(F_AART);
|
||||
_damag=_mask->get(F_DAMAG);
|
||||
_amag=_mask->get(F_AMAG);
|
||||
_dadata=_mask->get_date(F_DADATA);
|
||||
_adata=_mask->get_date(F_ADATA);
|
||||
_codicees=1996;
|
||||
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TCursor& cur = *_form->cursor();
|
||||
cur.setkey();
|
||||
// trova il record iniziale
|
||||
darec.put("ANNOES",_codicees);
|
||||
darec.put("CODART",_daart);
|
||||
darec.put("CODMAG",_damag);
|
||||
// trova il record finale
|
||||
arec.put("ANNOES",_codicees);
|
||||
arec.put("CODART",_aart);
|
||||
arec.put("CODMAG",_amag);
|
||||
cur.setregion(darec,arec);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_schede_mag::user_create()
|
||||
{
|
||||
|
||||
_mask = new TMask("mg3300");
|
||||
_form = new TForm("mg3300a", "");
|
||||
add_cursor(_form->cursor());
|
||||
add_file(_form->cursor()->file().num());
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_schede_mag::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _form;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg3300(int argc, char* argv[])
|
||||
{
|
||||
//TStampa_schede_mag a; // derivata da Printapp
|
||||
TStampa_schedemag a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa schede di magazzino");
|
||||
return 0;
|
||||
}
|
142
mg/mg3300.frm
Executable file
142
mg/mg3300.frm
Executable file
@ -0,0 +1,142 @@
|
||||
USE LF_ANAMAG
|
||||
JOIN LF_MAG TO LF_ANAMAG INTO CODART==CODART ANNOES=="1996"
|
||||
JOIN MAG TO LF_MAG INTO CODTAB==CODMAG
|
||||
JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
SORT LF_RMOVMAG BY LF_MOVMAG->DATAREG NUMREG NRIG
|
||||
USING LF_MOVMAG INTO NUMREG==NUMREG
|
||||
JOIN TO LF_MAG KEY 2 INTO CODART==CODART CODMAG==CODMAG LIVGIAC==LIVELLO
|
||||
JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG
|
||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||
JOIN LF_UMART TO LF_UMART KEY 2 ALIAS 349 INTO CODART==CODART UM==UM
|
||||
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
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
CARATTERE "X"
|
||||
INIZIALE 5 2
|
||||
FINALE 133
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 12
|
||||
STRINGA 100 20 1
|
||||
BEGIN
|
||||
PROMPT 1 10 "----------------------------------------------------"
|
||||
END
|
||||
STRINGA 102 20 1
|
||||
BEGIN
|
||||
PROMPT 1 1 "----------------------------------------------------"
|
||||
END
|
||||
END
|
||||
|
||||
SECTION BODY ODD 2
|
||||
STRINGA 69 20 1
|
||||
BEGIN
|
||||
KEY "CODICE GRUPPO"
|
||||
PROMPT 2 1 "Raggruppamento "
|
||||
FIELD CODART[1,3]
|
||||
END
|
||||
|
||||
|
||||
SECTION INFO_ARTICOLO 1 50 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART
|
||||
END
|
||||
|
||||
STRINGA 11 50 1
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 1 2 ""
|
||||
MESSAGE _USER,GRUPPOART
|
||||
END
|
||||
END //info articolo
|
||||
|
||||
SECTION INFO_LIVGIAC 1 1 1 GROUP
|
||||
STRINGA 20 20 1
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
|
||||
END
|
||||
STRINGA 21 50 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 5 1 "Livello "
|
||||
FIELD 109->livello
|
||||
MESSAGE RESET,99
|
||||
END
|
||||
END // INFO livgiac
|
||||
|
||||
SECTION INFO_MAG 1 1 1 GROUP
|
||||
END // INFO magazzino
|
||||
|
||||
SECTION SCHEDA 1 1 1 FILE LF_MAG GROUP CODART
|
||||
|
||||
SECTION MOVIMENTI 1 1 1 FILE LF_RMOVMAG
|
||||
|
||||
SECTION MOVIMENTO 1 1 1 FILE LF_RMOVMAG GROUP NUMREG
|
||||
|
||||
SECTION RIGA_PREC 1 1 1 STREXPR LF_MOVMAG->DATAREG<"19960203"
|
||||
NUMBER 100 12
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE _USER,SALDO|ADD,FF_SALDOPREC_MOV|RESET,FF_STAMPASALDOPREC
|
||||
END
|
||||
END // riga di data preceDente
|
||||
|
||||
SECTION RIGA_COMP 1 1 1 STREXPR LF_MOVMAG->DATAREG>="19960203"
|
||||
NUMBER 100 12
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE _USER,SALDO|ADD,FF_SALDO_MOV|"1",FF_STAMPASALDOPREC
|
||||
END
|
||||
END // riga di data compresa
|
||||
|
||||
END // loop movimento
|
||||
|
||||
SECTION SALDO_PREC 1 1 1 NUMEXPR #FF_STAMPASALDOPREC=1
|
||||
NUMBER FF_SALDOPRECSCHEDA 12
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
MESSAGE INC,FF_STAMPASALDOPREC
|
||||
END
|
||||
END // saldo prec
|
||||
|
||||
END // loop movimenti
|
||||
|
||||
END // loop schede
|
||||
|
||||
END // *****
|
||||
|
||||
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
|
||||
|
9
mg/mg3300.h
Executable file
9
mg/mg3300.h
Executable file
@ -0,0 +1,9 @@
|
||||
#define F_SCHEDA 101
|
||||
#define F_DAART 102
|
||||
#define F_AART 103
|
||||
#define F_DAMAG 104
|
||||
#define F_AMAG 105
|
||||
#define F_DADATA 106
|
||||
#define F_ADATA 107
|
||||
#define F_RAGGMAG 108
|
||||
|
92
mg/mg3300.uml
Executable file
92
mg/mg3300.uml
Executable file
@ -0,0 +1,92 @@
|
||||
#include "mg3300.h"
|
||||
PAGE "Stampa Schede di magazzino" -1 -1 78 12
|
||||
|
||||
LISTBOX F_SCHEDA 30
|
||||
BEGIN
|
||||
PROMPT 2 1 "Tipo scheda "
|
||||
ITEM "ORDF|Ordinato fornitori"
|
||||
ITEM "ORDC|Ordinato clienti"
|
||||
ITEM "ACL|A conto lavoro"
|
||||
ITEM "INCL|In conto lavoro"
|
||||
ITEM "PRODC|Componenti in produzione "
|
||||
ITEM "PRODF|Finiti in produzione "
|
||||
END
|
||||
|
||||
STRING F_DAART 20
|
||||
BEGIN
|
||||
PROMPT 2 3 "Dall'articolo "
|
||||
FLAGS "U"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_DAART
|
||||
DISPLAY "Codice " CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_DAART CODART
|
||||
GROUP 1
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_AART 20
|
||||
BEGIN
|
||||
PROMPT 40 3 "All'articolo "
|
||||
FLAGS "U"
|
||||
COPY USE F_DAART
|
||||
INPUT CODART F_AART
|
||||
COPY DISPLAY F_DAART
|
||||
OUTPUT F_AART CODART
|
||||
GROUP 1
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DAMAG 20
|
||||
BEGIN
|
||||
PROMPT 2 5 "Dal magazzino "
|
||||
FLAGS "U"
|
||||
USE MAG
|
||||
INPUT CODTAB F_DAMAG
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DAMAG CODTAB
|
||||
GROUP 2
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
|
||||
STRING F_AMAG 20
|
||||
BEGIN
|
||||
PROMPT 40 5 "Al magazzino "
|
||||
FLAGS "U"
|
||||
COPY USE F_DAMAG
|
||||
INPUT CODTAB F_AMAG
|
||||
COPY DISPLAY F_DAMAG
|
||||
OUTPUT F_AMAG CODTAB
|
||||
GROUP 2
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
DATE F_DADATA
|
||||
BEGIN
|
||||
PROMPT 2 7 "Dalla data "
|
||||
END
|
||||
|
||||
DATE F_ADATA
|
||||
BEGIN
|
||||
PROMPT 40 7 "Alla data "
|
||||
END
|
||||
|
||||
BOOLEAN F_RAGGMAG
|
||||
BEGIN
|
||||
PROMPT 2 9 "Raggruppo per magazzini"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
346
mg/mg3300a.frm
Executable file
346
mg/mg3300a.frm
Executable file
@ -0,0 +1,346 @@
|
||||
#include "mg3300.h"
|
||||
USE LF_ANAMAG
|
||||
SORT LF_RMOVMAG BY LF_MOVMAG->DATAREG NUMREG NRIG
|
||||
USING LF_MOVMAG INTO NUMREG==NUMREG
|
||||
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART
|
||||
JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG
|
||||
JOIN CAU TO LF_MOVMAG INTO CODTAB==CODCAUS
|
||||
|
||||
JOIN MAG TO LF_RMOVMAG ALIAS 501 INTO CODTAB==CODMAG
|
||||
JOIN MAG TO LF_RMOVMAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||
|
||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||
JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM
|
||||
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
|
||||
FONT "Courier New"
|
||||
SIZE 12
|
||||
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
|
||||
|
||||
NUMERO 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 2
|
||||
|
||||
NUMBER 100 1
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
|
||||
END
|
||||
|
||||
SECTION HEADER_CATMER 1 2 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
KEY "CODICE CATMER"
|
||||
PROMPT 1 1 "Gruppo merceologico "
|
||||
MESSAGE _USER,CODCATMER
|
||||
END
|
||||
|
||||
STRINGA 11 50 1
|
||||
BEGIN
|
||||
KEY "DESCR."
|
||||
PROMPT 30 1 ""
|
||||
MESSAGE _USER,CATMER
|
||||
END
|
||||
END //HEADER catmer
|
||||
|
||||
SECTION HEADER_ARTICOLO 1 2 1 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 1 1 "Articolo "
|
||||
MESSAGE _USER,CODGRUPPOART
|
||||
END
|
||||
|
||||
STRINGA 11 50 1
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 30 1 ""
|
||||
MESSAGE _USER,GRUPPOART
|
||||
END
|
||||
END //HEADER articolo
|
||||
|
||||
SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG GROUP CODART[1,1]
|
||||
SECTION FILE_LF_RMOVMAG 1 1 0 FILE LF_RMOVMAG
|
||||
SECTION HEADER_LIVGIAC 1 3 3 GROUP
|
||||
STRINGA 10 20 1
|
||||
BEGIN
|
||||
KEY "CODICE articolo"
|
||||
PROMPT 1 1 "Articolo "
|
||||
MESSAGE _USER,CODGRUPPOART
|
||||
END
|
||||
STRINGA 11 50 1
|
||||
BEGIN
|
||||
KEY "DESCR.articolo"
|
||||
PROMPT 30 1 ""
|
||||
MESSAGE _USER,GRUPPOART
|
||||
END
|
||||
|
||||
STRINGA 20 20 1
|
||||
BEGIN
|
||||
KEY "CODICE livello"
|
||||
PROMPT 1 2 ""
|
||||
MESSAGE _USER,CODGRUPPOGIAC|RESET,FF_STAMPASALDOPREC
|
||||
END
|
||||
STRINGA 21 50 1
|
||||
BEGIN
|
||||
KEY "Livello giac"
|
||||
PROMPT 23 2 ""
|
||||
MESSAGE _USER,GRUPPOGIAC
|
||||
END
|
||||
SECTION HEADER_MAG 1 1 1 GROUP
|
||||
STRINGA 22 50 1
|
||||
BEGIN
|
||||
KEY "mag"
|
||||
PROMPT 5 1 "Magazzino "
|
||||
FIELD 500@->S0
|
||||
END
|
||||
SECTION HEADER_DEP 1 1 1 GROUP
|
||||
STRINGA 23 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 7 1 "Deposito "
|
||||
FIELD 501@->S0
|
||||
END
|
||||
END // HEADER deposito
|
||||
END // HEADER magazzino
|
||||
STRINGA 24 50 1
|
||||
BEGIN
|
||||
KEY "dep"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
END // HEADER livgiac
|
||||
|
||||
STRINGA 10
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
MESSAGE RESET,FF_SALDOPREC_SCHEDA|RESET,FF_VALOREPREC_SCHEDA
|
||||
END
|
||||
SECTION SCHEDA_PREC 1 1 1 FILE LF_RMOVMAG GROUP CODART[1,3]
|
||||
NUMERO 10
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FIELD LF_RMOVMAG->NUMREG
|
||||
MESSAGE COPY,FF_NUM_MOV|RESET,FF_SALDOPREC_MOV|RESET,FF_VALOREPREC_MOV
|
||||
END
|
||||
NUMERO 10
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
FIELD LF_MOVMAG->DATAREG
|
||||
MESSAGE COPY,FF_DATA_MOV
|
||||
END
|
||||
|
||||
SECTION MOVIMENTO_PREC 1 0 1 FILE LF_RMOVMAG GROUP NUMREG
|
||||
|
||||
STRINGA 100 12
|
||||
BEGIN
|
||||
PROMPT 1 1 ">>>"
|
||||
MESSAGE _STREXPR,LF_RMOVMAG->CODART+" "+LF_RMOVMAG->LIVGIAC+" "+LF_RMOVMAG->CODMAG
|
||||
END
|
||||
|
||||
STRINGA 101 12
|
||||
BEGIN
|
||||
PROMPT 27 1 ""
|
||||
FIELD LF_RMOVMAG->UM
|
||||
END
|
||||
NUMBER 102 12
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|COPY,103
|
||||
END
|
||||
NUMBER 103 12
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
PICTURE "###.###,@##"
|
||||
MESSAGE _USER,SALDO|ADD,FF_SALDOPREC_MOV|RESET,FF_STAMPASALDOPREC
|
||||
END
|
||||
NUMBER 104 12
|
||||
BEGIN
|
||||
PROMPT 42 1 ""
|
||||
PICTURE "###.###.###"
|
||||
FIELD LF_RMOVMAG->PREZZO
|
||||
END
|
||||
NUMBER 105 12
|
||||
BEGIN
|
||||
PROMPT 54 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE _NUMEXPR,LF_RMOVMAG->PREZZO*#102|ADD,FF_VALOREPREC_MOV
|
||||
END
|
||||
END // loop movimento
|
||||
|
||||
NUMBER FF_NUM_MOV 32
|
||||
BEGIN
|
||||
PROMPT 2 1 "Mov. "
|
||||
END
|
||||
STRINGA FF_DATA_MOV 10
|
||||
BEGIN
|
||||
PROMPT 12 1 "del "
|
||||
FIELD LF_MOVMAG->DATAREG
|
||||
END
|
||||
STRINGA 100 2
|
||||
BEGIN
|
||||
PROMPT 27 1 ""
|
||||
FIELD LF_UMART->UM
|
||||
END
|
||||
NUMBER FF_SALDOPREC_MOV 12
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
PICTURE "###.###,@##"
|
||||
MESSAGE ADD,FF_SALDOPREC_SCHEDA
|
||||
END
|
||||
NUMBER 100 12
|
||||
BEGIN
|
||||
PROMPT 42 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE _NUMEXPR,#FF_VALOREPREC_MOV/#FF_SALDOPREC_MOV
|
||||
END
|
||||
NUMBER FF_VALOREPREC_MOV 12
|
||||
BEGIN
|
||||
PROMPT 54 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE ADD,FF_VALOREPREC_SCHEDA
|
||||
END
|
||||
END // loop scheda
|
||||
|
||||
SECTION TOTALI_SCHEDA 1 1 3 GROUP
|
||||
NUMBER FF_STAMPASALDOPREC
|
||||
BEGIN
|
||||
END
|
||||
|
||||
STRINGA 100 15
|
||||
BEGIN
|
||||
PROMPT 1 1 "Totale scheda"
|
||||
END
|
||||
STRINGA 100 2
|
||||
BEGIN
|
||||
PROMPT 27 1 ""
|
||||
FIELD LF_UMART->UM
|
||||
MESSAGE COPY,FF_UM_GART
|
||||
END
|
||||
NUMBER FF_SALDOPREC_SCHEDA 12
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
PICTURE "###.###,@##"
|
||||
MESSAGE ADD,FF_SALDO_GART
|
||||
END
|
||||
NUMBER FF_VALOREPREC_SCHEDA 12
|
||||
BEGIN
|
||||
PROMPT 54 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE ADD,FF_VALORE_GART
|
||||
END
|
||||
END // TOTALI scheda per articolo
|
||||
END // loop RMOVMAG
|
||||
|
||||
END // ragg articolo (codice o catmer)
|
||||
SECTION TOTALI_GRUPPIART 1 1 3 GROUP
|
||||
STRINGA 100 15
|
||||
BEGIN
|
||||
PROMPT 1 1 "Totale scheda"
|
||||
END
|
||||
STRINGA FF_UM_GART 2
|
||||
BEGIN
|
||||
PROMPT 27 1 ""
|
||||
FIELD LF_UMART->UM
|
||||
END
|
||||
NUMBER FF_SALDO_GART 12
|
||||
BEGIN
|
||||
PROMPT 31 1 ""
|
||||
PICTURE "###.###,@##"
|
||||
END
|
||||
NUMBER FF_VALORE_GART 12
|
||||
BEGIN
|
||||
PROMPT 54 1 ""
|
||||
PICTURE "###.###.###"
|
||||
END
|
||||
END // TOTALI scheda per articolo
|
||||
|
||||
END // *****
|
||||
|
||||
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
|
||||
|
269
mg/mg3400.cpp
Executable file
269
mg/mg3400.cpp
Executable file
@ -0,0 +1,269 @@
|
||||
#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 "mglib03.h"
|
||||
#include "mg3400.h"
|
||||
#include "mg3frm.h"
|
||||
class TStgiacprezzi_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:
|
||||
TStgiacprezzi_mask();
|
||||
~TStgiacprezzi_mask(){};
|
||||
};
|
||||
TStgiacprezzi_mask::TStgiacprezzi_mask():
|
||||
TMask("mg3400")
|
||||
{
|
||||
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 TStgiacprezzi_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 TStgiacprezzi_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 TStgiacprezzi_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;
|
||||
}
|
||||
|
||||
|
||||
// mg3300 Stampa
|
||||
class TStampa_giacprezzi : public TPrint_application
|
||||
{
|
||||
TArray * _files;
|
||||
TStgiacprezzi_mask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_stampemg * _form;
|
||||
|
||||
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_giacprezzi() {}
|
||||
virtual ~TStampa_giacprezzi() {}
|
||||
};
|
||||
|
||||
// ORDINAMENTO
|
||||
void TStampa_giacprezzi::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);
|
||||
_form = new TForm_stampemg("mg3400a", "");
|
||||
_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);
|
||||
}
|
||||
|
||||
void TStampa_giacprezzi::setprint_permagazzini()
|
||||
{
|
||||
char subordine=*_mask->get(F_ORDINEART);
|
||||
TRectype darec(LF_MAG),arec(LF_MAG);
|
||||
TString cfilter,sortexp,joinexp;
|
||||
_form = new TForm_stampemg("mg3400b", "");
|
||||
_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
|
||||
bool showdett;
|
||||
showdett=_mask->get_bool(F_DETTAGLIODEP);
|
||||
_form->setdett_permag(_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),showdett);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
bool TStampa_giacprezzi::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
|
||||
if (*_mask->get(F_ORDINE)=='A')
|
||||
{
|
||||
setprint_perarticoli();
|
||||
} else {
|
||||
setprint_permagazzini();
|
||||
}
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_giacprezzi::user_create()
|
||||
{
|
||||
_mask = new TStgiacprezzi_mask;
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_MAG));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_giacprezzi::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int mg3400(int argc, char* argv[])
|
||||
{
|
||||
TStampa_giacprezzi a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa giacenze e prezzi");
|
||||
return 0;
|
||||
}
|
1129
mg/mg3400a.frm
Executable file
1129
mg/mg3400a.frm
Executable file
File diff suppressed because it is too large
Load Diff
1783
mg/mg3400b.frm
Executable file
1783
mg/mg3400b.frm
Executable file
File diff suppressed because it is too large
Load Diff
98
mg/mg3500.cpp
Executable file
98
mg/mg3500.cpp
Executable file
@ -0,0 +1,98 @@
|
||||
#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 "mglib03.h"
|
||||
#include "mg3500.h"
|
||||
#include "mg3frm.h"
|
||||
|
||||
// mg3200 Stampa
|
||||
class TStampa_storgiac : public TPrint_application
|
||||
{
|
||||
TArray * _files;
|
||||
TMask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_stampemg * _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_storgiac() {}
|
||||
};
|
||||
|
||||
|
||||
bool TStampa_storgiac::user_create()
|
||||
{
|
||||
_mask = new TMask("mg3500");
|
||||
_files = new TArray();
|
||||
_files->add(new TLocalisamfile(LF_STOMAG));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TStampa_storgiac::user_destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _files;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// ORDINAMENTO
|
||||
|
||||
bool TStampa_storgiac::set_print(int i)
|
||||
{
|
||||
while (TRUE) {
|
||||
if (_mask->run() != K_ENTER)
|
||||
return FALSE;
|
||||
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||
TString cfilter,filter,joinexp;
|
||||
|
||||
joinexp << "ANNOESRIF==" << _mask->get(F_ANNOES) << "|CODART==CODART";
|
||||
|
||||
_form = new TForm_stampemg("mg3500", "");
|
||||
_cur = _form->cursor();
|
||||
switch (*_mask->get(F_ORDINE))
|
||||
{
|
||||
case 'C':
|
||||
_cur->setkey(1);
|
||||
darec.put("CODART",_mask->get(F_DAART));
|
||||
arec.put("CODART",_mask->get(F_AART));
|
||||
break;
|
||||
case 'D':
|
||||
_cur->setkey(2);
|
||||
darec.put("DESCR",_mask->get(F_DADES));
|
||||
arec.put("DESCR",_mask->get(F_ADES));
|
||||
break;
|
||||
}
|
||||
_cur->relation()->replace(new TLocalisamfile(LF_STOMAG),1,joinexp);
|
||||
_cur->setfilter(cfilter);
|
||||
_cur->setregion(darec,arec);
|
||||
_form->print();
|
||||
delete _form;
|
||||
} // while true
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
int mg3500(int argc, char* argv[])
|
||||
{
|
||||
TStampa_storgiac a;// derivata da Application e con uso di form
|
||||
a.run(argc,argv,"Stampa storico rimanenze");
|
||||
return 0;
|
||||
}
|
155
mg/mg3500.frm
Executable file
155
mg/mg3500.frm
Executable file
@ -0,0 +1,155 @@
|
||||
#define LF_UMART2 349
|
||||
USE LF_ANAMAG KEY 1
|
||||
JOIN LF_STOMAG TO LF_ANAMAG INTO ANNOESRIF==1996 CODART==CODART
|
||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||
JOIN LF_UMART TO LF_STOMAG KEY 2 ALIAS LF_UMART2 INTO CODART==CODART UM==UM
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
BEGIN
|
||||
47->* "Anagrafica articoli"
|
||||
109->* "Archivio Giacenze"
|
||||
MAG->* "Tabella magazzini"
|
||||
49->* "Unità di misura articoli"
|
||||
END
|
||||
|
||||
GENERAL
|
||||
BEGIN
|
||||
OFFSET 0 0
|
||||
FONT "Courier New"
|
||||
SIZE 8
|
||||
CARATTERE "X"
|
||||
INIZIALE 5 2
|
||||
FINALE 133
|
||||
END
|
||||
|
||||
SECTION HEADER ODD 4
|
||||
|
||||
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
|
||||
|
||||
NUMERO 4 32
|
||||
BEGIN
|
||||
KEY "Intestazione stampa"
|
||||
PROMPT 45 2 "Stampa storico rimanenze"
|
||||
END
|
||||
|
||||
STRINGA 5 146
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
SECTION BODY ODD 1
|
||||
|
||||
SECTION H_ARTICOLO 1 3 1 GROUP
|
||||
STRINGA 11 20
|
||||
BEGIN
|
||||
KEY "CODART"
|
||||
PROMPT 2 1 "Articolo "
|
||||
FIELD LF_ANAMAG->CODART
|
||||
END
|
||||
STRINGA 12 50
|
||||
BEGIN
|
||||
KEY "DESCR"
|
||||
PROMPT 33 1 ""
|
||||
FIELD LF_ANAMAG->DESCR
|
||||
END
|
||||
END
|
||||
|
||||
SECTION GRUPPI_ARTICOLO 1 0 0 COLUMNWISE FILE LF_STOMAG
|
||||
SECTION HD_ANNI 1 2 1 COLUMNWISE GROUP
|
||||
NUMERO 13 15
|
||||
BEGIN
|
||||
KEY "offset"
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
NUMERO 13 6
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 2 1 "Anno"
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "QUANT"
|
||||
PROMPT 4 1 "Quantità( "
|
||||
FIELD LF_UMART->UM
|
||||
END
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
KEY "VALORE"
|
||||
PROMPT 5 1 ") Valore"
|
||||
END
|
||||
END // HD ANNI
|
||||
|
||||
SECTION BODY_ANNI 1 1 1 COLUMNWISE FILE LF_STOMAG GROUP CODART
|
||||
NUMERO 13 15
|
||||
BEGIN
|
||||
KEY "offset"
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
NUMERO 14 6
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 2 1 ""
|
||||
FIELD LF_STOMAG->ANNOES
|
||||
END
|
||||
NUMERO 15 12
|
||||
BEGIN
|
||||
KEY "QUANT"
|
||||
PROMPT 4 1 ""
|
||||
PICTURE "###.###,@@@"
|
||||
MESSAGE _NUMEXPR,LF_STOMAG->QUANT*LF_UMART2@->FC
|
||||
END
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
KEY "VALORE"
|
||||
PROMPT 5 1 ""
|
||||
PICTURE "###.###.###"
|
||||
MESSAGE _NUMEXPR,LF_STOMAG->VALORE*LF_UMART2@->FC
|
||||
END
|
||||
|
||||
END // body anni
|
||||
END // gruppi anni dello stesso articolo
|
||||
|
||||
END // section body, loop anamag
|
||||
|
||||
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 // fine footer
|
||||
|
||||
END // fine form
|
Loading…
x
Reference in New Issue
Block a user