Prima versione con form
git-svn-id: svn://10.65.10.50/trunk@4456 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
fce5f6a001
commit
88eb9ff022
745
mg/mg3300.cpp
745
mg/mg3300.cpp
@ -1,174 +1,665 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include "mglib05.h" //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
#include <mask.h>
|
#include <mask.h>
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include "mglib01.h"
|
#include <form.h>
|
||||||
|
#include <printapp.h>
|
||||||
|
|
||||||
|
#include "mglib03.h"
|
||||||
#include "mg3300.h"
|
#include "mg3300.h"
|
||||||
|
|
||||||
|
class TForm_schedemag : public TForm
|
||||||
|
{
|
||||||
|
int _tolivgiac,_tolivart;
|
||||||
|
bool _sottocatmer;
|
||||||
|
|
||||||
#include "mglib04.h"
|
TToken_string *_rmov_sortexp;
|
||||||
|
TString *_rmov_raggcond,*_rmov_joinexp;
|
||||||
|
|
||||||
|
TCausale_magazzino * _cau; // causale di magazzino del movimento corrente
|
||||||
|
TMag_livelli * _giaclev,*_artlev; // gestori dei gruppi articolo/giacenza
|
||||||
|
TDecoder *_giacgrp,*_artgrp; // decodifiche dei gruppi articolo/giacenza
|
||||||
|
TTipo_saldomag _tiposcheda; // tipo scheda
|
||||||
|
|
||||||
|
bool ragg_exprs(int livart,int livgiac);
|
||||||
|
public:
|
||||||
|
TToken_string& rmov_sortexp() {return *_rmov_sortexp;}
|
||||||
|
TString & rmov_joinexp() {return *_rmov_joinexp;}
|
||||||
|
|
||||||
|
void set_tiposcheda(const char * tipo);
|
||||||
|
bool validate(TForm_item &cf, TToken_string &s);
|
||||||
|
void setdett_perart(bool percatmer, bool sottocatmer,int livart,int livgiac,bool sudd_mag, bool sudd_dep);
|
||||||
|
void setdett_percatmer(bool sottocat,int livart,int livgiac,bool sudd_mag,bool sudd_dep);
|
||||||
|
void setdett_permag(bool sudd_dep, bool showdett,int livart,int livgiac);
|
||||||
|
TString descr_tiposcheda();
|
||||||
|
TString nomecampo_tiposcheda();
|
||||||
|
|
||||||
|
TForm_schedemag(const char *name,const char *code) ;
|
||||||
|
~TForm_schedemag();
|
||||||
|
};
|
||||||
|
|
||||||
|
TString TForm_schedemag::descr_tiposcheda()
|
||||||
|
{
|
||||||
|
switch (_tiposcheda)
|
||||||
|
{
|
||||||
|
case s_giac:
|
||||||
|
return ("Giacenza");
|
||||||
|
case s_acl:
|
||||||
|
return ("A conto lavoro");
|
||||||
|
case s_incl:
|
||||||
|
return ("In conto lavoro");
|
||||||
|
case s_prodc:
|
||||||
|
return ("In produzione componenti");
|
||||||
|
case s_prodf:
|
||||||
|
return ("In produzione finiti");
|
||||||
|
case s_ordc:
|
||||||
|
return ("Ordinato clienti");
|
||||||
|
case s_ordf:
|
||||||
|
return ("Ordinato fornitori");
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
TString TForm_schedemag::nomecampo_tiposcheda()
|
||||||
|
{
|
||||||
|
switch (_tiposcheda)
|
||||||
|
{
|
||||||
|
case s_giac:
|
||||||
|
return ("GIAC");
|
||||||
|
case s_acl:
|
||||||
|
return ("ACL");
|
||||||
|
case s_incl:
|
||||||
|
return ("INCL");
|
||||||
|
case s_prodc:
|
||||||
|
return ("PRODCOMP");
|
||||||
|
case s_prodf:
|
||||||
|
return ("PRODFIN");
|
||||||
|
case s_ordc:
|
||||||
|
return ("ORDC");
|
||||||
|
case s_ordf:
|
||||||
|
return ("ORDF");
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_schedemag::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=="*SEGNOCAUS") {
|
||||||
|
real v(cf.get());
|
||||||
|
v=v*_cau->sgn(_tiposcheda);
|
||||||
|
cf.set(v.string());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="TIPOSCHEDA") {
|
||||||
|
cf.set(descr_tiposcheda());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="CODGRUPPOART") {
|
||||||
|
TString valore(relation()->lfile(LF_ANAMAG).get("CODART"));
|
||||||
|
cf.set(valore.cut(min(valore.len(),_artlev->packed_lenght(_tolivart))));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="GRUPPOART") {
|
||||||
|
TString valore;
|
||||||
|
if (_tolivart==_artlev->last_level())
|
||||||
|
valore=relation()->lfile(LF_ANAMAG).get("DESCR");
|
||||||
|
else
|
||||||
|
valore=(_artgrp->decode(_artlev->build_tabcode(relation()->lfile(LF_ANAMAG).get("CODART"),_tolivart)));
|
||||||
|
cf.set(valore);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="CODGRUPPOGIAC") {
|
||||||
|
TString levname(_giaclev->name(_tolivgiac)),valore;
|
||||||
|
int lv=0;
|
||||||
|
valore="";
|
||||||
|
do {
|
||||||
|
TString piece(_giaclev->unpack_grpcode(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),lv+1));
|
||||||
|
if (piece.empty())
|
||||||
|
piece=UNKNOWN_NAME;
|
||||||
|
if (valore.not_empty())
|
||||||
|
valore << '/';
|
||||||
|
valore << piece ;
|
||||||
|
} while (++lv<_tolivgiac);
|
||||||
|
cf.set(levname << ' ' << valore);
|
||||||
|
}
|
||||||
|
if (subcode=="GRUPPOGIAC") {
|
||||||
|
TString valore;
|
||||||
|
valore=_giacgrp->decode(_giaclev->build_tabcode(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),_tolivgiac));
|
||||||
|
cf.set(valore);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="SETCAUSALE") {
|
||||||
|
if (_cau) delete _cau;
|
||||||
|
_cau = new TCausale_magazzino(cf.get());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="CODCATMER") {
|
||||||
|
TString valore(relation()->lfile(LF_ANAMAG).get("GRMERC"));
|
||||||
|
if (!_sottocatmer)
|
||||||
|
valore.cut(3);
|
||||||
|
cf.set(valore);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
if (subcode=="CATMER") {
|
||||||
|
TString valore;
|
||||||
|
if (_sottocatmer)
|
||||||
|
valore=relation()->lfile(-ALIAS_SOTTOCATMER).get("S0");
|
||||||
|
else
|
||||||
|
valore=relation()->lfile(-ALIAS_CATMER).get("S0");
|
||||||
|
cf.set(valore);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TForm::validate(cf, s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TForm_schedemag::ragg_exprs(int livart,int livgiac)
|
||||||
|
{
|
||||||
|
TString piece,rest;
|
||||||
|
// ***********
|
||||||
|
int tolivart,tolivgiac;
|
||||||
|
|
||||||
|
tolivart =livart ? livart :_artlev->last_level() ;
|
||||||
|
tolivgiac=livgiac ? livgiac :_giaclev->last_level();
|
||||||
|
// sezioni livello codice
|
||||||
|
piece="CODART";
|
||||||
|
piece << "[1," << _artlev->packed_lenght(tolivart) <<']';
|
||||||
|
*_rmov_raggcond<< (_rmov_raggcond->empty()? "":"+" )<<piece;
|
||||||
|
_rmov_sortexp->add(piece);
|
||||||
|
_rmov_joinexp->cut(0) << piece << "==" << piece;
|
||||||
|
if (livart==0)
|
||||||
|
{
|
||||||
|
piece="LIVGIAC";
|
||||||
|
piece << "[1," << _giaclev->packed_lenght(tolivgiac) <<']';
|
||||||
|
*_rmov_raggcond << '+' << piece;
|
||||||
|
_rmov_sortexp->add(piece);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TForm_schedemag::setdett_percatmer(bool sottocat,int livart,int livgiac,bool sudd_mag,bool sudd_dep)
|
||||||
|
{
|
||||||
|
TForm_subsection &h_c=(TForm_subsection &)find_field('B',odd_page,"HEADER_CATMER");
|
||||||
|
h_c.enable();
|
||||||
|
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||||
|
h_a.enable();
|
||||||
|
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||||
|
h_g.enable((livart ==0 || livgiac !=0 ));
|
||||||
|
TForm_subsection &h_m=(TForm_subsection &)find_field('B',odd_page,"HEADER_MAG");
|
||||||
|
h_m.enable(sudd_mag );
|
||||||
|
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||||
|
h_d.enable(sudd_dep);
|
||||||
|
|
||||||
|
TString piece;
|
||||||
|
piece << LF_ANAMAG << "->GRMERC";
|
||||||
|
if (!sottocat)
|
||||||
|
piece << "[1,3]";
|
||||||
|
|
||||||
|
*_rmov_raggcond=piece;
|
||||||
|
_rmov_sortexp->add(piece);
|
||||||
|
|
||||||
|
ragg_exprs(livart,livgiac);
|
||||||
|
if (sudd_mag) {
|
||||||
|
*_rmov_raggcond="+CODMAG[1,3]";
|
||||||
|
_rmov_sortexp->add("CODMAG[1,3]");
|
||||||
|
if (sudd_dep) {
|
||||||
|
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||||
|
_rmov_sortexp->add("CODMAG[4,5]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||||
|
s.setcondition(*_rmov_raggcond,_strexpr);
|
||||||
|
|
||||||
|
TString cond;
|
||||||
|
cond << LF_MOVMAG << "->DATAREG";
|
||||||
|
_rmov_sortexp->add(cond);
|
||||||
|
_rmov_sortexp->add("NUMREG");
|
||||||
|
|
||||||
|
_tolivart=livart ? livart :_artlev->last_level() ;
|
||||||
|
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
|
||||||
|
_sottocatmer=sottocat;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int livgiac)
|
||||||
|
{
|
||||||
|
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||||
|
h_d.enable(sudd_dep);
|
||||||
|
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||||
|
h_a.enable(show_dett);
|
||||||
|
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||||
|
h_g.enable((livart ==0 || livgiac !=0 ));
|
||||||
|
|
||||||
|
*_rmov_raggcond="CODMAG[1,3]";
|
||||||
|
_rmov_sortexp->add("CODMAG[1,3]");
|
||||||
|
if (sudd_dep)
|
||||||
|
{
|
||||||
|
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||||
|
_rmov_sortexp->add("CODMAG[4,5]");
|
||||||
|
if (show_dett)
|
||||||
|
{
|
||||||
|
ragg_exprs(livart,livgiac);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||||
|
s.setcondition(*_rmov_raggcond,_strexpr);
|
||||||
|
|
||||||
|
TString cond;
|
||||||
|
cond << LF_MOVMAG << "->DATAREG";
|
||||||
|
_rmov_sortexp->add(cond);
|
||||||
|
_rmov_sortexp->add("NUMREG");
|
||||||
|
|
||||||
|
_tolivart=livart ? livart :_artlev->last_level() ;
|
||||||
|
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,int livgiac,bool sudd_mag,bool sudd_dep)
|
||||||
|
{
|
||||||
|
// raggruppamento MAX fino all'articolo
|
||||||
|
TForm_subsection &h_cm=(TForm_subsection &)find_field('B',odd_page,"HEADER_CATMER");
|
||||||
|
h_cm.enable(percatmer);
|
||||||
|
TForm_subsection &h_cm2=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIACCATMER");
|
||||||
|
h_cm2.enable(percatmer);
|
||||||
|
|
||||||
|
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
|
||||||
|
h_a.enable(livart!=0);
|
||||||
|
TForm_subsection &t_a=(TForm_subsection &)find_field('B',odd_page,"TOTALI_GRUPPIART");
|
||||||
|
t_a.show(livart!=0);
|
||||||
|
|
||||||
|
// raggruppamento MAX fino alla giacenza
|
||||||
|
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
|
||||||
|
h_g.enable((livart ==0 || livgiac !=0 ));
|
||||||
|
TForm_subsection &h_m=(TForm_subsection &)find_field('B',odd_page,"HEADER_MAG");
|
||||||
|
h_m.enable(sudd_mag );
|
||||||
|
TForm_subsection &h_d=(TForm_subsection &)find_field('B',odd_page,"HEADER_DEP");
|
||||||
|
h_d.enable(sudd_dep);
|
||||||
|
|
||||||
|
TForm_subsection &t_s=(TForm_subsection &)find_field('B',odd_page,"TOTALI_GRMOV");
|
||||||
|
t_s.show(livart==0);
|
||||||
|
|
||||||
|
_tolivart=livart ? livart :_artlev->last_level() ;
|
||||||
|
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
|
||||||
|
_sottocatmer=sottocatmer;
|
||||||
|
|
||||||
|
// settaggio catmer/ragg codice
|
||||||
|
if (livart || percatmer) {
|
||||||
|
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_ARTICOLO");
|
||||||
|
TString catmercod("GRMERC"),cond;
|
||||||
|
if (percatmer) {
|
||||||
|
catmercod << (sottocatmer ? "[1,3]" :"");
|
||||||
|
cond << catmercod << '+';
|
||||||
|
}
|
||||||
|
cond << "CODART[1," << _artlev->packed_lenght(_tolivart) << ']';
|
||||||
|
s.setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
// settaggio raggruppamenti codice sulla scheda
|
||||||
|
ragg_exprs(livart,livgiac);
|
||||||
|
if (sudd_mag) {
|
||||||
|
*_rmov_raggcond << "+CODMAG[1,3]";
|
||||||
|
_rmov_sortexp->add("CODMAG[1,3]");
|
||||||
|
if (sudd_dep)
|
||||||
|
{
|
||||||
|
*_rmov_raggcond << "+CODMAG[4,5]";
|
||||||
|
_rmov_sortexp->add("CODMAG[4,5]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,"GRUPPI_RMOVMAG");
|
||||||
|
s.setcondition(*_rmov_raggcond,_strexpr);
|
||||||
|
TString cond;
|
||||||
|
cond << LF_MOVMAG << "->DATAREG";
|
||||||
|
_rmov_sortexp->add(cond);
|
||||||
|
_rmov_sortexp->add("NUMREG");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TForm_schedemag::set_tiposcheda(const char * tipo)
|
||||||
|
{
|
||||||
|
if (*tipo=='G')
|
||||||
|
_tiposcheda=s_giac;
|
||||||
|
if (*tipo=='A')
|
||||||
|
_tiposcheda=s_acl;
|
||||||
|
if (*tipo=='I')
|
||||||
|
_tiposcheda=s_incl;
|
||||||
|
if (*tipo=='P')
|
||||||
|
{
|
||||||
|
if (tipo[1]=='F')
|
||||||
|
_tiposcheda=s_prodf;
|
||||||
|
else
|
||||||
|
_tiposcheda=s_prodc;
|
||||||
|
}
|
||||||
|
if (*tipo=='O')
|
||||||
|
{
|
||||||
|
if (tipo[1]=='F')
|
||||||
|
_tiposcheda=s_ordf;
|
||||||
|
else
|
||||||
|
_tiposcheda=s_ordc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TForm_schedemag::TForm_schedemag(const char *name,const char *code) :
|
||||||
|
TForm(name,code)
|
||||||
|
{
|
||||||
|
_giaclev= new TMag_livelli("FCG");
|
||||||
|
_artlev= new TMag_livelli("FCA");
|
||||||
|
_giacgrp= new TDecoder("GCG");
|
||||||
|
_artgrp= new TDecoder("GCA");
|
||||||
|
_cau=NULL;
|
||||||
|
_tolivgiac=0;
|
||||||
|
_tolivart=0;
|
||||||
|
|
||||||
|
_rmov_sortexp=new TToken_string;
|
||||||
|
_rmov_joinexp=new TString;
|
||||||
|
_rmov_raggcond=new TString;
|
||||||
|
}
|
||||||
|
|
||||||
|
TForm_schedemag::~TForm_schedemag()
|
||||||
|
{
|
||||||
|
delete _giaclev;
|
||||||
|
delete _artlev;
|
||||||
|
delete _giacgrp;
|
||||||
|
delete _artgrp;
|
||||||
|
delete _rmov_sortexp;
|
||||||
|
delete _rmov_joinexp;
|
||||||
|
delete _rmov_raggcond;
|
||||||
|
if (_cau) delete _cau;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// mg3300 Stampa
|
// mg3300 Stampa
|
||||||
class TStampa_schedemag : public TApplication
|
// mg3300 Stampa
|
||||||
|
class TStampa_schede_mag : public TPrint_application
|
||||||
{
|
{
|
||||||
|
TArray * _files;
|
||||||
TMask * _mask;
|
TMask * _mask;
|
||||||
TForm * _form;
|
TCursor * _cur;
|
||||||
|
TForm_schedemag *_form; // to be moved into TPrint_application
|
||||||
|
|
||||||
int _codicees;
|
int _codicees;
|
||||||
bool _raggmag;
|
bool _raggmag;
|
||||||
TString _daart,_aart,_damag,_amag;
|
|
||||||
TDate _dadata,_adata;
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool create();
|
void setprint_perarticoli();
|
||||||
virtual bool destroy();
|
void setprint_permagazzini();
|
||||||
|
virtual bool print_one(int file);
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual bool set_print(int i=1);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TStampa_schede_mag() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TStampa_schedemag::create()
|
/*void TStampa_schede_mag::setprint_percatmer()
|
||||||
|
{
|
||||||
|
char subordine=*_mask->get(F_ORDINEART);
|
||||||
|
TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG);
|
||||||
|
TString cfilter;
|
||||||
|
|
||||||
|
_cur = _form->cursor();
|
||||||
|
// setta il filtro sul cursore
|
||||||
|
if (*_mask->get(F_DAMAG))
|
||||||
|
cfilter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||||
|
if (*_mask->get(F_AMAG))
|
||||||
|
cfilter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||||
|
TString catmercode("GRMERC");
|
||||||
|
if (!FALSE)
|
||||||
|
catmercode << "[1,3]";
|
||||||
|
if (*_mask->get(F_DACATMER))
|
||||||
|
cfilter << "(" << LF_ANAMAG << "->" <<catmercode << ">=" <<'"' << _mask->get(F_DACATMER)<< "\")&&" ;
|
||||||
|
if (*_mask->get(F_ACATMER))
|
||||||
|
cfilter << "("<< LF_ANAMAG << "->" << catmercode <<"<=" <<'"' << _mask->get(F_ACATMER)<< "\")&&" ;
|
||||||
|
|
||||||
|
cfilter << "(" << LF_MOVMAG <<"->ANNOES==" <<'"' << _mask->get(F_ANNOES)<< "\")&&" ;
|
||||||
|
if (*_mask->get(F_ADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_ADATA));
|
||||||
|
cfilter << "(ANSI(110->DATAREG)<=" <<'"' << d1.string(ANSI) << "\")&&" ;
|
||||||
|
}
|
||||||
|
if (cfilter.not_empty())
|
||||||
|
cfilter.cut(cfilter.len()-2);
|
||||||
|
|
||||||
|
if (*_mask->get(F_DADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_DADATA));
|
||||||
|
// SET conditional section
|
||||||
|
TString cond;
|
||||||
|
cond << "ANSI(" << LF_MOVMAG << "->DATAREG)>=\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_INTERESSATI")).setcondition(cond,_strexpr);
|
||||||
|
cond.cut(0) << "ANSI(" << LF_MOVMAG << "->DATAREG)<\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_PRECEDENTI")).setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
|
||||||
|
_form->set_tiposcheda(_mask->get(F_SCHEDA));
|
||||||
|
// abilita/disabilita le sezioni dei totali
|
||||||
|
_form->setdett_percatmer(FALSE,
|
||||||
|
_mask->get_int(F_TOLIVELLOART),
|
||||||
|
_mask->get_int(F_TOLIVELLOGIAC),
|
||||||
|
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
_mask->get_bool(F_SUDDIV_DEPOSITI));
|
||||||
|
|
||||||
|
darec.put("CODART",_mask->get(F_DAART));
|
||||||
|
arec.put("CODART",_mask->get(F_AART));
|
||||||
|
((TSorted_cursor *)_cur)->change_order(_form->rmov_sortexp());
|
||||||
|
_cur->setfilter(cfilter,TRUE);
|
||||||
|
_cur->setregion(darec,arec);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
void TStampa_schede_mag::setprint_permagazzini()
|
||||||
|
{
|
||||||
|
char subordine=*_mask->get(F_ORDINEART);
|
||||||
|
TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG);
|
||||||
|
TString cfilter;
|
||||||
|
|
||||||
|
_form->set_tiposcheda(_mask->get(F_SCHEDA));
|
||||||
|
_cur = _form->cursor();
|
||||||
|
// filtering from/to MAGS
|
||||||
|
if (*_mask->get(F_DAMAG))
|
||||||
|
cfilter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ;
|
||||||
|
if (*_mask->get(F_AMAG))
|
||||||
|
cfilter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ;
|
||||||
|
cfilter << "(" << LF_MOVMAG <<"->ANNOES==" <<'"' << _mask->get(F_ANNOES)<< "\")&&" ;
|
||||||
|
// filtering from/to DATA
|
||||||
|
if (*_mask->get(F_ADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_ADATA));
|
||||||
|
cfilter << "(ANSI(110->DATAREG)<=" <<'"' << d1.string(ANSI) << "\")&&" ;
|
||||||
|
}
|
||||||
|
if (*_mask->get(F_DADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_DADATA));
|
||||||
|
TString cond;
|
||||||
|
cond << "ANSI(" << LF_MOVMAG << "->DATAREG)>=\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_INTERESSATI")).setcondition(cond,_strexpr);
|
||||||
|
cond.cut(0) << "ANSI(" << LF_MOVMAG << "->DATAREG)<\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_PRECEDENTI")).setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Imposta i livelli di dettaglio della scheda
|
||||||
|
_form->setdett_permag(
|
||||||
|
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
_mask->get_bool(F_SUDDIV_DEPOSITI),
|
||||||
|
_mask->get_int(F_TOLIVELLOART),
|
||||||
|
_mask->get_int(F_TOLIVELLOGIAC));
|
||||||
|
|
||||||
|
// filtering from/to ART
|
||||||
|
darec.put("CODART",_mask->get(F_DAART));
|
||||||
|
arec.put("CODART",_mask->get(F_AART));
|
||||||
|
// filtering ONLY NEGATIVES
|
||||||
|
if (*_mask->get(F_FILTRO)=='N') {
|
||||||
|
TForm_subsection &s=((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_PRECEDENTI"));
|
||||||
|
TString cond;
|
||||||
|
cond << '(' << s.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_tiposcheda() << "<0))";
|
||||||
|
s.setcondition(cond,_strexpr);
|
||||||
|
TForm_subsection &s2=((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_INTERESSATI"));
|
||||||
|
cond.cut(0) << '(' << s2.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_tiposcheda() << "<0))";
|
||||||
|
s2.setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
// prepare cursor to print....
|
||||||
|
((TSorted_cursor *)_cur)->change_order(_form->rmov_sortexp());
|
||||||
|
if (cfilter.not_empty())
|
||||||
|
cfilter.cut(cfilter.len()-2);
|
||||||
|
|
||||||
|
TLocalisamfile *mag=new TLocalisamfile(LF_MAG);
|
||||||
|
mag->setkey(2);
|
||||||
|
TString mag_joinexp;
|
||||||
|
mag_joinexp << "ANNOES==" << _mask->get(F_ANNOES) << "|CODMAG==CODMAG|CODART==CODART|LIVELLO==LIVGIAC";
|
||||||
|
_cur->relation()->replace(mag,1,mag_joinexp);
|
||||||
|
_cur->setfilter(cfilter,TRUE);
|
||||||
|
_cur->setregion(darec,arec);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ORDINAMENTO per articoli
|
||||||
|
void TStampa_schede_mag::setprint_perarticoli()
|
||||||
|
{
|
||||||
|
TRectype darec(LF_ANAMAG),arec(LF_ANAMAG);
|
||||||
|
TString cfilter,filter;
|
||||||
|
|
||||||
|
_form->set_tiposcheda(_mask->get(F_SCHEDA));
|
||||||
|
char subordine=*_mask->get(F_ORDINEART);
|
||||||
|
_cur = _form->cursor();
|
||||||
|
// filtering ANNOES
|
||||||
|
filter << '(' << LF_MOVMAG << "->ANNOES==" << _mask->get(F_ANNOES)<< ")&&" ;
|
||||||
|
// filtering from/to MAGS
|
||||||
|
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)<< "\")&&" ;
|
||||||
|
// filtering from/to DATA
|
||||||
|
if (*_mask->get(F_DADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_DADATA));
|
||||||
|
TString cond;
|
||||||
|
cond << "ANSI(" << LF_MOVMAG << "->DATAREG)>=\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_INTERESSATI")).setcondition(cond,_strexpr);
|
||||||
|
cond.cut(0) << "ANSI(" << LF_MOVMAG << "->DATAREG)<\"" << d1.string(ANSI) << '"';
|
||||||
|
((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_PRECEDENTI")).setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
if (*_mask->get(F_ADATA))
|
||||||
|
{
|
||||||
|
TDate d1(_mask->get(F_ADATA));
|
||||||
|
filter << "(ANSI(110->DATAREG)<=" <<'"' << d1.string(ANSI) << "\")&&" ;
|
||||||
|
}
|
||||||
|
// filtering ONLY NEGATIVES
|
||||||
|
if (*_mask->get(F_FILTRO)=='N') {
|
||||||
|
TForm_subsection &s=((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_PRECEDENTI"));
|
||||||
|
TString cond;
|
||||||
|
cond << '(' << s.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_tiposcheda() << "<0))";
|
||||||
|
s.setcondition(cond,_strexpr);
|
||||||
|
TForm_subsection &s2=((TForm_subsection &)_form->find_field('B',odd_page,"MOVS_INTERESSATI"));
|
||||||
|
cond.cut(0) << '(' << s2.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_tiposcheda() << "<0))";
|
||||||
|
s2.setcondition(cond,_strexpr);
|
||||||
|
}
|
||||||
|
// Imposta i livelli di dettaglio della scheda
|
||||||
|
switch (subordine)
|
||||||
|
{
|
||||||
|
case 'C':
|
||||||
|
_cur->setkey(1);
|
||||||
|
darec.put("CODART",_mask->get(F_DAART));
|
||||||
|
arec.put("CODART",_mask->get(F_AART));
|
||||||
|
_form->setdett_perart(FALSE,FALSE,
|
||||||
|
_mask->get_int(F_TOLIVELLOART),
|
||||||
|
_mask->get_int(F_TOLIVELLOGIAC),
|
||||||
|
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
_mask->get_bool(F_SUDDIV_DEPOSITI));
|
||||||
|
break;
|
||||||
|
case 'D':
|
||||||
|
_cur->setkey(2);
|
||||||
|
darec.put("DESCR",_mask->get(F_DADES));
|
||||||
|
arec.put("DESCR",_mask->get(F_ADES));
|
||||||
|
_form->setdett_perart(FALSE,FALSE,
|
||||||
|
_mask->get_int(F_TOLIVELLOART),
|
||||||
|
_mask->get_int(F_TOLIVELLOGIAC),
|
||||||
|
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
_mask->get_bool(F_SUDDIV_DEPOSITI));
|
||||||
|
case 'M':
|
||||||
|
_cur->setkey(3);
|
||||||
|
darec.put("GRMERC",_mask->get(F_DACATMER));
|
||||||
|
arec.put("GRMERC",_mask->get(F_ACATMER));
|
||||||
|
if (*_mask->get(F_AART))
|
||||||
|
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< TString(20,(char)127)<< "\")&&" ;
|
||||||
|
if (*_mask->get(F_DAART))
|
||||||
|
cfilter << "(CODART>=" <<'"' << _mask->get(F_DAART) << "\")&&" ;
|
||||||
|
_form->setdett_perart(TRUE,FALSE,
|
||||||
|
_mask->get_int(F_TOLIVELLOART),
|
||||||
|
_mask->get_int(F_TOLIVELLOGIAC),
|
||||||
|
_mask->get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
_mask->get_bool(F_SUDDIV_DEPOSITI));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// prepare cursor's relation....
|
||||||
|
TRelation *aux=new TRelation (LF_RMOVMAG);
|
||||||
|
aux->add(LF_MOVMAG,"NUMREG==NUMREG");
|
||||||
|
if (filter.not_empty()) filter.cut(filter.len()-2);
|
||||||
|
TSortedfile *rmovmag= new TSortedfile(LF_RMOVMAG,aux,_form->rmov_sortexp(),filter,2);
|
||||||
|
_cur->relation()->replace(rmovmag,1,_form->rmov_joinexp());
|
||||||
|
|
||||||
|
TLocalisamfile *mag=new TLocalisamfile(LF_MAG);
|
||||||
|
mag->setkey(2);
|
||||||
|
TString mag_joinexp;
|
||||||
|
mag_joinexp << "ANNOES==" << _mask->get(F_ANNOES) << "|CODMAG==CODMAG|CODART==CODART|LIVELLO==LIVGIAC";
|
||||||
|
_cur->relation()->replace(mag,2,mag_joinexp);
|
||||||
|
|
||||||
|
if (cfilter.not_empty()) cfilter.cut(cfilter.len()-2);
|
||||||
|
_cur->setfilter(cfilter);
|
||||||
|
_cur->setregion(darec,arec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TStampa_schede_mag::set_print(int i)
|
||||||
{
|
{
|
||||||
_mask = new TMask("mg3300");
|
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
if (_mask->run() != K_ENTER)
|
if (_mask->run() != K_ENTER)
|
||||||
return FALSE;
|
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);
|
|
||||||
|
|
||||||
|
if (*_mask->get(F_ORDINE)=='A')
|
||||||
|
{
|
||||||
|
_form = new TForm_schedemag("mg3300a", "");
|
||||||
|
setprint_perarticoli();
|
||||||
|
} else if (*_mask->get(F_ORDINE)=='M') {
|
||||||
|
_form = new TForm_schedemag("mg3300b", "");
|
||||||
|
setprint_permagazzini();
|
||||||
|
}
|
||||||
_form->print();
|
_form->print();
|
||||||
delete _form;
|
delete _form;
|
||||||
} // while true
|
} // while true
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
bool TStampa_schedemag::destroy()
|
bool TStampa_schede_mag::user_create()
|
||||||
{
|
{
|
||||||
|
_mask = new TMask("mg3300");
|
||||||
|
_files= new TArray;
|
||||||
|
_files->add(new TLocalisamfile(LF_RMOVMAG));
|
||||||
|
_files->add(new TLocalisamfile(LF_MOVMAG));
|
||||||
|
_files->add(new TLocalisamfile(LF_MAG));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampa_schede_mag::user_destroy()
|
||||||
|
{
|
||||||
|
delete _files;
|
||||||
delete _mask;
|
delete _mask;
|
||||||
return TRUE;
|
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)
|
bool TStampa_schede_mag ::print_one(int file)
|
||||||
{
|
{
|
||||||
return TRUE;
|
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[])
|
int mg3300(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
//TStampa_schede_mag a; // derivata da Printapp
|
TStampa_schede_mag a;// derivata da Application e con uso di form
|
||||||
TStampa_schedemag a;// derivata da Application e con uso di form
|
|
||||||
a.run(argc,argv,"Stampa schede di magazzino");
|
a.run(argc,argv,"Stampa schede di magazzino");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
60
mg/mg3300.h
60
mg/mg3300.h
@ -1,9 +1,55 @@
|
|||||||
#define F_SCHEDA 101
|
#define F_SCHEDA 101
|
||||||
#define F_DAART 102
|
#define F_DADATA 102
|
||||||
#define F_AART 103
|
#define F_ADATA 103
|
||||||
#define F_DAMAG 104
|
|
||||||
#define F_AMAG 105
|
|
||||||
#define F_DADATA 106
|
|
||||||
#define F_ADATA 107
|
|
||||||
#define F_RAGGMAG 108
|
|
||||||
|
|
||||||
|
#define F_ORDINE 104
|
||||||
|
#define F_ORDINEART 105
|
||||||
|
#define F_ORDINEMAG 106
|
||||||
|
#define F_ANNOES 107
|
||||||
|
#define F_DAART 108
|
||||||
|
#define F_AART 109
|
||||||
|
#define F_DAMAG 110
|
||||||
|
#define F_AMAG 111
|
||||||
|
#define F_DACATMER 112
|
||||||
|
#define F_ACATMER 113
|
||||||
|
#define F_DADES 114
|
||||||
|
#define F_ADES 115
|
||||||
|
#define F_VALMEDI 116
|
||||||
|
#define F_STAMPAGIAC 117
|
||||||
|
#define F_RAGGCODICE 118
|
||||||
|
#define F_TOLIVELLOART 120
|
||||||
|
#define F_RAGGLIVGIAC 121
|
||||||
|
#define F_TOLIVELLOGIAC 122
|
||||||
|
|
||||||
|
#define F_SUDDIV_MAGAZZINI 123
|
||||||
|
#define F_SUDDIV_DEPOSITI 124
|
||||||
|
#define F_DETTAGLIODEP 125
|
||||||
|
#define F_FILTRO 130
|
||||||
|
|
||||||
|
#define G_CATMER 1
|
||||||
|
#define G_CODART 2
|
||||||
|
#define G_DESART 3
|
||||||
|
|
||||||
|
|
||||||
|
#define FF_STAMPASALDOPREC 300
|
||||||
|
#define FF_SALDO_MOV 301
|
||||||
|
#define FF_SALDO_MOVS 302
|
||||||
|
#define FF_SALDO_GRMOV 303
|
||||||
|
#define FF_SALDOPREC 304
|
||||||
|
#define FF_SALDOPREC_MOVS 305
|
||||||
|
#define FF_SALDOPREC_GRMOV 306
|
||||||
|
#define FF_NUM_MOV 307
|
||||||
|
#define FF_DATA_MOV 308
|
||||||
|
#define FF_QUANTRIGA 309
|
||||||
|
#define FF_VALORE_MOV 310
|
||||||
|
#define FF_VALORE_GRMOV 311
|
||||||
|
#define FF_UM_GART 312
|
||||||
|
#define FF_SALDO_GART 313
|
||||||
|
#define FF_VALORE_GART 314
|
||||||
|
|
||||||
|
#define FF_NUM_MOVART 315
|
||||||
|
#define FF_SALDO_MOVART 316
|
||||||
|
#define FF_DATA_MOVART 317
|
||||||
|
#define FF_VALORE_MOVART 318
|
||||||
|
#define ALIAS_CATMER 510
|
||||||
|
#define ALIAS_SOTTOCATMER 511
|
257
mg/mg3300.uml
257
mg/mg3300.uml
@ -1,82 +1,233 @@
|
|||||||
#include "mg3300.h"
|
#include "mg3300.h"
|
||||||
PAGE "Stampa Schede di magazzino" -1 -1 78 12
|
PAGE "Stampa Schede di magazzino" -1 -1 78 20
|
||||||
|
|
||||||
LISTBOX F_SCHEDA 30
|
LISTBOX F_SCHEDA 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 1 "Tipo scheda "
|
PROMPT 2 1 "Tipo scheda "
|
||||||
ITEM "ORDF|Ordinato fornitori"
|
ITEM "G|Giacenza"
|
||||||
ITEM "ORDC|Ordinato clienti"
|
ITEM "OF|Ordinato fornitori"
|
||||||
|
ITEM "OC|Ordinato clienti"
|
||||||
ITEM "ACL|A conto lavoro"
|
ITEM "ACL|A conto lavoro"
|
||||||
ITEM "INCL|In conto lavoro"
|
ITEM "INCL|In conto lavoro"
|
||||||
ITEM "PRODC|Componenti in produzione "
|
ITEM "PC|Componenti in produzione "
|
||||||
ITEM "PRODF|Finiti in produzione "
|
ITEM "PF|Finiti in produzione "
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DAART 20
|
LISTBOX F_ORDINE 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Dall'articolo "
|
PROMPT 2 2 "Ordinamento "
|
||||||
FLAGS "U"
|
ITEM "A|articoli"
|
||||||
USE LF_ANAMAG
|
MESSAGE ENABLE,F_ORDINEART
|
||||||
INPUT CODART F_DAART
|
ITEM "M|magazzini"
|
||||||
DISPLAY "Codice " CODART
|
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
|
||||||
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
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING F_AMAG 20
|
LISTBOX F_ORDINEART 14
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 5 "Al magazzino "
|
FLAGS "G"
|
||||||
FLAGS "U"
|
PROMPT 42 2 "sotto-ordinamento "
|
||||||
COPY USE F_DAMAG
|
ITEM "C|codice"
|
||||||
INPUT CODTAB F_AMAG
|
MESSAGE HIDE,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@
|
||||||
COPY DISPLAY F_DAMAG
|
ITEM "D|descrizione"
|
||||||
OUTPUT F_AMAG CODTAB
|
MESSAGE HIDE,G_CATMER@|HIDE,G_CODART@|SHOW,G_DESART@
|
||||||
GROUP 2
|
ITEM "M|gruppo merc."
|
||||||
CHECKTYPE NORMAL
|
MESSAGE SHOW,G_CATMER@|SHOW,G_CODART@|HIDE,G_DESART@
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNOES 4
|
||||||
|
BEGIN
|
||||||
|
FLAGS "A"
|
||||||
|
PROMPT 2 3 "Codice es. "
|
||||||
|
USE ESC
|
||||||
|
INPUT CODTAB F_ANNOES
|
||||||
|
DISPLAY "Esercizio" CODTAB
|
||||||
|
DISPLAY "Dal@12" D0
|
||||||
|
DISPLAY "Al@12" D0
|
||||||
|
OUTPUT F_ANNOES CODTAB
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
LISTBOX F_FILTRO 10
|
||||||
|
BEGIN
|
||||||
|
FLAGS "G"
|
||||||
|
PROMPT 53 3 "Filtro "
|
||||||
|
ITEM "T|tutto"
|
||||||
|
ITEM "N|negativi"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DADATA
|
DATE F_DADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Dalla data "
|
PROMPT 2 5 "Dalla data "
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_ADATA
|
DATE F_ADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 7 "Alla data "
|
PROMPT 2 6 " alla data "
|
||||||
|
STR_EXPR ANSI(#F_ADATA)>=ANSI(#F_DADATA)||(#F_ADATA=="")
|
||||||
|
WARNING "Il secondo estremo deve essere superiore al primo"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_RAGGMAG
|
STRING F_DAART 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Raggruppo per magazzini"
|
PROMPT 28 5 "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
|
END
|
||||||
|
STRING F_AART 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 28 6 " all'articolo "
|
||||||
|
FLAGS "U"
|
||||||
|
COPY USE F_DAART
|
||||||
|
INPUT CODART F_AART
|
||||||
|
COPY DISPLAY F_DAART
|
||||||
|
OUTPUT F_AART CODART
|
||||||
|
GROUP G_CODART
|
||||||
|
STR_EXPR (#F_AART>=#F_DAART)||(#F_AART=="")
|
||||||
|
WARNING "Il secondo estremo deve essere superiore al primo"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DADES 50 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 28 5 "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 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 28 6 " all'articolo "
|
||||||
|
FLAGS "U"
|
||||||
|
COPY USE F_DADES
|
||||||
|
INPUT DESCR F_ADES
|
||||||
|
COPY DISPLAY F_DADES
|
||||||
|
OUTPUT F_ADES DESCR
|
||||||
|
GROUP G_DESART
|
||||||
|
STR_EXPR (#F_ADES>=#F_DADES)||(#F_ADES=="")
|
||||||
|
WARNING "Il secondo estremo deve essere superiore al primo"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DAMAG 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "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 2 9 " al magazzino "
|
||||||
|
FLAGS "U"
|
||||||
|
COPY USE F_DAMAG
|
||||||
|
INPUT CODTAB F_AMAG
|
||||||
|
COPY DISPLAY F_DAMAG
|
||||||
|
OUTPUT F_AMAG CODTAB
|
||||||
|
STR_EXPR (#F_AMAG>=#F_DAMAG)||(#F_AMAG=="")
|
||||||
|
WARNING "Il secondo estremo deve essere superiore al primo"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
STRING F_DACATMER 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "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 2 12 " al gruppo "
|
||||||
|
FLAGS "U"
|
||||||
|
COPY USE F_DACATMER
|
||||||
|
INPUT CODTAB F_ACATMER
|
||||||
|
COPY DISPLAY F_DACATMER
|
||||||
|
OUTPUT F_ACATMER CODTAB[1,3]
|
||||||
|
GROUP G_CATMER
|
||||||
|
STR_EXPR (#F_ACATMER>=#F_DACATMER)||(#F_ACATMER=="")
|
||||||
|
WARNING "Il secondo estremo deve essere superiore al primo"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_RAGGCODICE
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Raggruppo gli articoli"
|
||||||
|
MESSAGE FALSE CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||||
|
MESSAGE TRUE ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_TOLIVELLOART 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 14 "fino al livello "
|
||||||
|
USE FCA
|
||||||
|
INPUT CODTAB F_TOLIVELLOART
|
||||||
|
DISPLAY "Num." CODTAB
|
||||||
|
DISPLAY "Descr@50" S0
|
||||||
|
OUTPUT F_TOLIVELLOART CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
// NUM_EXPR (||(#F_TOLIVELLOART=0))&&(((#F_TOLIVELLOGIAC+#F_FROMLIVELLOGIAC)*#F_TOLIVELLOART)=0)
|
||||||
|
WARNING "Livello finale non ammissibile"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOL F_RAGGLIVGIAC
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 "Raggruppo le giacenze"
|
||||||
|
MESSAGE FALSE CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
|
||||||
|
MESSAGE TRUE ENABLE,F_TOLIVELLOGIAC
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_TOLIVELLOGIAC 1
|
||||||
|
BEGIN
|
||||||
|
FLAG "D"
|
||||||
|
PROMPT 42 15 "fino al livello "
|
||||||
|
USE FCG
|
||||||
|
INPUT CODTAB F_TOLIVELLOGIAC
|
||||||
|
DISPLAY "Num." CODTAB
|
||||||
|
DISPLAY "Descr@50" S0
|
||||||
|
OUTPUT F_TOLIVELLOGIAC CODTAB
|
||||||
|
WARNING "Livello finale non ammissibile"
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BOOL F_SUDDIV_MAGAZZINI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 16 "Suddivido i magazzini"
|
||||||
|
MESSAGE TRUE ENABLE,F_SUDDIV_DEPOSITI
|
||||||
|
MESSAGE FALSE CLEAR,F_SUDDIV_DEPOSITI|K_SPACE,F_SUDDIV_DEPOSITI
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOL F_SUDDIV_DEPOSITI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 17 "Suddivido i depositi"
|
||||||
|
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
|
||||||
|
MESSAGE FALSE CLEAR,F_DETTAGLIODEP
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOL F_DETTAGLIODEP
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 17 "Dettaglio i depositi"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
|
285
mg/mg3300a.frm
285
mg/mg3300a.frm
@ -1,13 +1,16 @@
|
|||||||
#include "mg3300.h"
|
#include "mg3300.h"
|
||||||
USE LF_ANAMAG
|
USE LF_ANAMAG
|
||||||
SORT LF_RMOVMAG BY LF_MOVMAG->DATAREG NUMREG NRIG
|
SORT LF_RMOVMAG BY LF_MOVMAG->DATAREG NUMREG
|
||||||
USING LF_MOVMAG INTO NUMREG==NUMREG
|
USING LF_MOVMAG INTO NUMREG==NUMREG
|
||||||
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART
|
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART
|
||||||
|
JOIN LF_MAG TO LF_RMOVMAG KEY 2 INTO ANNOES==1996 CODMAG==CODMAG CODART==CODART LIVELLO==LIVGIAC
|
||||||
JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG
|
JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG
|
||||||
JOIN CAU TO LF_MOVMAG INTO CODTAB==CODCAUS
|
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 MAG TO LF_RMOVMAG ALIAS 500 INTO CODTAB==CODMAG[1,3]
|
||||||
|
JOIN MAG TO LF_RMOVMAG ALIAS 501 INTO CODTAB==CODMAG
|
||||||
|
JOIN GMC TO LF_ANAMAG ALIAS ALIAS_CATMER INTO CODTAB==GRMERC[1,3]
|
||||||
|
JOIN GMC TO LF_ANAMAG ALIAS ALIAS_SOTTOCATMER INTO CODTAB==GRMERC[1,5]
|
||||||
|
|
||||||
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
JOIN LF_UMART TO LF_ANAMAG INTO CODART==CODART
|
||||||
JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM
|
JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM
|
||||||
@ -55,7 +58,7 @@ SECTION HEADER ODD 5
|
|||||||
MESSAGE _PAGENO
|
MESSAGE _PAGENO
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMERO 4 45
|
STRINGA 4 45
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Intestazione stampa"
|
KEY "Intestazione stampa"
|
||||||
PROMPT 45 2 "Stampa schede di magazzino :"
|
PROMPT 45 2 "Stampa schede di magazzino :"
|
||||||
@ -98,46 +101,63 @@ SECTION BODY ODD 2
|
|||||||
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
|
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
|
||||||
END
|
END
|
||||||
|
|
||||||
SECTION HEADER_CATMER 1 2 1 GROUP
|
SECTION HEADER_ARTICOLO 1 2 2 GROUP
|
||||||
|
SECTION HEADER_CATMER 1 2 1 GROUP
|
||||||
|
STRINGA 10 20 1
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE CATMER"
|
||||||
|
PROMPT 1 1 "Gruppo merceologico "
|
||||||
|
MESSAGE _USER,CODCATMER|RESET,FF_STAMPASALDOPREC
|
||||||
|
END
|
||||||
|
STRINGA 12 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "DESCR."
|
||||||
|
PROMPT 30 1 ""
|
||||||
|
MESSAGE _USER,CATMER
|
||||||
|
END
|
||||||
|
END //HEADER catmer
|
||||||
STRINGA 10 20 1
|
STRINGA 10 20 1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CODICE CATMER"
|
KEY "CODICE articolo"
|
||||||
PROMPT 1 1 "Gruppo merceologico "
|
PROMPT 1 1 "Articolo "
|
||||||
MESSAGE _USER,CODCATMER
|
MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA 11 50 1
|
STRINGA 11 50 1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "DESCR."
|
KEY "DESCR.articolo"
|
||||||
PROMPT 30 1 ""
|
PROMPT 30 1 ""
|
||||||
MESSAGE _USER,CATMER
|
MESSAGE _USER,GRUPPOART
|
||||||
END
|
END
|
||||||
END //HEADER catmer
|
STRINGA 24 50 1
|
||||||
|
|
||||||
SECTION HEADER_ARTICOLO 1 2 1 GROUP
|
|
||||||
STRINGA 10 20 1
|
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CODICE articolo"
|
KEY "dep"
|
||||||
PROMPT 1 1 "Articolo "
|
PROMPT 1 2 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||||
MESSAGE _USER,CODGRUPPOART
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGA 11 50 1
|
|
||||||
BEGIN
|
|
||||||
KEY "DESCR.articolo"
|
|
||||||
PROMPT 30 1 ""
|
|
||||||
MESSAGE _USER,GRUPPOART
|
|
||||||
END
|
END
|
||||||
END //HEADER articolo
|
END //HEADER articolo
|
||||||
|
|
||||||
SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG GROUP CODART[1,1]
|
SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG BY CODART
|
||||||
SECTION FILE_LF_RMOVMAG 1 1 0 FILE LF_RMOVMAG
|
SECTION FILE_RMOVMAG 1 1 0 FILE LF_RMOVMAG
|
||||||
SECTION HEADER_LIVGIAC 1 3 3 GROUP
|
SECTION HEADER_LIVGIAC 1 3 3 GROUP
|
||||||
|
SECTION HEADER_LIVGIACCATMER 1 1 1 GROUP
|
||||||
|
STRINGA 10 20 1
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE CATMER"
|
||||||
|
PROMPT 1 1 "Gruppo merceologico "
|
||||||
|
MESSAGE _USER,CODCATMER|RESET,FF_STAMPASALDOPREC
|
||||||
|
END
|
||||||
|
STRINGA 12 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "DESCR."
|
||||||
|
PROMPT 30 1 ""
|
||||||
|
MESSAGE _USER,CATMER
|
||||||
|
END
|
||||||
|
END //HEADER catmer
|
||||||
STRINGA 10 20 1
|
STRINGA 10 20 1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CODICE articolo"
|
KEY "CODICE articolo"
|
||||||
PROMPT 1 1 "Articolo "
|
PROMPT 1 1 "Articolo "
|
||||||
MESSAGE _USER,CODGRUPPOART
|
MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
|
||||||
END
|
END
|
||||||
STRINGA 11 50 1
|
STRINGA 11 50 1
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -150,7 +170,7 @@ SECTION BODY ODD 2
|
|||||||
BEGIN
|
BEGIN
|
||||||
KEY "CODICE livello"
|
KEY "CODICE livello"
|
||||||
PROMPT 1 2 ""
|
PROMPT 1 2 ""
|
||||||
MESSAGE _USER,CODGRUPPOGIAC|RESET,FF_STAMPASALDOPREC
|
MESSAGE _USER,CODGRUPPOGIAC
|
||||||
END
|
END
|
||||||
STRINGA 21 50 1
|
STRINGA 21 50 1
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -158,7 +178,7 @@ SECTION BODY ODD 2
|
|||||||
PROMPT 23 2 ""
|
PROMPT 23 2 ""
|
||||||
MESSAGE _USER,GRUPPOGIAC
|
MESSAGE _USER,GRUPPOGIAC
|
||||||
END
|
END
|
||||||
SECTION HEADER_MAG 1 1 1 GROUP
|
SECTION HEADER_MAG 3 1 1 GROUP
|
||||||
STRINGA 22 50 1
|
STRINGA 22 50 1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "mag"
|
KEY "mag"
|
||||||
@ -184,98 +204,143 @@ SECTION BODY ODD 2
|
|||||||
STRINGA 10
|
STRINGA 10
|
||||||
BEGIN
|
BEGIN
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
MESSAGE RESET,FF_SALDOPREC_SCHEDA|RESET,FF_VALOREPREC_SCHEDA
|
MESSAGE RESET,FF_SALDO_GRMOV|RESET,FF_VALORE_GRMOV
|
||||||
END
|
END
|
||||||
SECTION SCHEDA_PREC 1 1 1 FILE LF_RMOVMAG GROUP CODART[1,3]
|
|
||||||
|
SECTION GRUPPI_RMOVMAG 1 0 0 FILE LF_RMOVMAG GROUP CODART
|
||||||
NUMERO 10
|
NUMERO 10
|
||||||
BEGIN
|
BEGIN
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
FIELD LF_RMOVMAG->NUMREG
|
FIELD LF_RMOVMAG->NUMREG
|
||||||
MESSAGE COPY,FF_NUM_MOV|RESET,FF_SALDOPREC_MOV|RESET,FF_VALOREPREC_MOV
|
MESSAGE COPY,FF_NUM_MOV|RESET,FF_SALDO_MOV|RESET,FF_VALORE_MOV
|
||||||
END
|
END
|
||||||
NUMERO 10
|
NUMERO 11
|
||||||
BEGIN
|
BEGIN
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
FIELD LF_MOVMAG->DATAREG
|
FIELD LF_MOVMAG->DATAREG
|
||||||
MESSAGE COPY,FF_DATA_MOV
|
MESSAGE COPY,FF_DATA_MOV
|
||||||
END
|
END
|
||||||
|
NUMERO 12
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
FIELD LF_MOVMAG->CODCAUS
|
||||||
|
MESSAGE _USER,SETCAUSALE
|
||||||
|
END
|
||||||
|
|
||||||
SECTION MOVIMENTO_PREC 1 0 1 FILE LF_RMOVMAG GROUP NUMREG
|
SECTION MOVIMENTO 1 0 0 FILE LF_RMOVMAG GROUP NUMREG
|
||||||
|
|
||||||
STRINGA 100 12
|
NUMBER FF_QUANTRIGA 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
|
BEGIN
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|COPY,103
|
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|_USER,*SEGNOCAUS
|
||||||
END
|
END
|
||||||
NUMBER 103 12
|
|
||||||
|
NUMBER FF_STAMPASALDOPREC 30
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION MOVS_PRECEDENTI 1 0 0 STREXPR LF_MOVMAG->DATAREG<""
|
||||||
|
NUMBER 103 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 "Quantita' a saldo prec:"
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDOPREC
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION MOVS_INTERESSATI 1 0 1 STREXPR LF_MOVMAG->DATAREG>=""
|
||||||
|
SECTION STAMPASALDOPREC 1 1 1 NUMEXPR (#FF_STAMPASALDOPREC==0)&&(#FF_QUANTRIGA!=0)
|
||||||
|
NUMBER 100 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 8 1 "Saldo precedente :"
|
||||||
|
END
|
||||||
|
NUMBER FF_SALDOPREC 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
END
|
||||||
|
NUMBER 101 12
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
MESSAGE RESET,FF_SALDOPREC |INC,FF_STAMPASALDOPREC
|
||||||
|
END
|
||||||
|
STRINGA 102 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD LF_UMART->UM
|
||||||
|
END
|
||||||
|
END // stampa saldo precedente
|
||||||
|
|
||||||
|
STRINGA 100 30
|
||||||
|
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 104 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
FIELD LF_RMOVMAG->PREZZO
|
||||||
|
END
|
||||||
|
NUMBER 103 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDO_MOV
|
||||||
|
END
|
||||||
|
NUMBER 105 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*LF_RMOVMAG->PREZZO|_USER,*SEGNOCAUS|ADD,FF_VALORE_MOV
|
||||||
|
END
|
||||||
|
END // sezione movimento di competenza
|
||||||
|
END // loop movimento
|
||||||
|
|
||||||
|
SECTION TOTALI_MOV 1 2 1 NUMEXPR #FF_SALDO_MOV!=0
|
||||||
|
NUMBER FF_NUM_MOV 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Mov. "
|
||||||
|
END
|
||||||
|
STRINGA FF_DATA_MOV 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 12 1 "del "
|
||||||
|
END
|
||||||
|
STRINGA 100 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD LF_UMART->UM
|
||||||
|
END
|
||||||
|
NUMBER FF_SALDO_MOV 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 31 1 ""
|
PROMPT 31 1 ""
|
||||||
PICTURE "###.###,@##"
|
PICTURE "###.###,@##"
|
||||||
MESSAGE _USER,SALDO|ADD,FF_SALDOPREC_MOV|RESET,FF_STAMPASALDOPREC
|
MESSAGE ADD,FF_SALDO_GRMOV
|
||||||
END
|
END
|
||||||
NUMBER 104 12
|
NUMBER 100 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 1 ""
|
PROMPT 42 1 ""
|
||||||
PICTURE "###.###.###"
|
PICTURE "###.###.###"
|
||||||
FIELD LF_RMOVMAG->PREZZO
|
MESSAGE _NUMEXPR,#FF_VALORE_MOV/#FF_SALDO_MOV
|
||||||
END
|
END
|
||||||
NUMBER 105 12
|
NUMBER FF_VALORE_MOV 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 1 ""
|
PROMPT 54 1 ""
|
||||||
PICTURE "###.###.###"
|
PICTURE "###.###.###"
|
||||||
MESSAGE _NUMEXPR,LF_RMOVMAG->PREZZO*#102|ADD,FF_VALOREPREC_MOV
|
MESSAGE ADD,FF_VALORE_GRMOV
|
||||||
END
|
END
|
||||||
END // loop movimento
|
END // totali mov
|
||||||
|
|
||||||
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
|
END // loop scheda
|
||||||
|
|
||||||
SECTION TOTALI_SCHEDA 1 1 3 GROUP
|
SECTION TOTALI_GRMOV 1 1 3 GROUP
|
||||||
NUMBER FF_STAMPASALDOPREC
|
|
||||||
BEGIN
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGA 100 15
|
STRINGA 100 15
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -287,13 +352,13 @@ SECTION BODY ODD 2
|
|||||||
FIELD LF_UMART->UM
|
FIELD LF_UMART->UM
|
||||||
MESSAGE COPY,FF_UM_GART
|
MESSAGE COPY,FF_UM_GART
|
||||||
END
|
END
|
||||||
NUMBER FF_SALDOPREC_SCHEDA 12
|
NUMBER FF_SALDO_GRMOV 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 31 1 ""
|
PROMPT 31 1 ""
|
||||||
PICTURE "###.###,@##"
|
PICTURE "###.###,@##"
|
||||||
MESSAGE ADD,FF_SALDO_GART
|
MESSAGE ADD,FF_SALDO_GART
|
||||||
END
|
END
|
||||||
NUMBER FF_VALOREPREC_SCHEDA 12
|
NUMBER FF_VALORE_GRMOV 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 1 ""
|
PROMPT 54 1 ""
|
||||||
PICTURE "###.###.###"
|
PICTURE "###.###.###"
|
||||||
@ -302,6 +367,40 @@ SECTION BODY ODD 2
|
|||||||
END // TOTALI scheda per articolo
|
END // TOTALI scheda per articolo
|
||||||
END // loop RMOVMAG
|
END // loop RMOVMAG
|
||||||
|
|
||||||
|
SECTION TOTALI_MOV_ARTICOLO 1 0 0 NUMEXPR #FF_SALDO_MOV!=0
|
||||||
|
NUMBER FF_NUM_MOVART 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Mov. "
|
||||||
|
END
|
||||||
|
STRINGA FF_DATA_MOVART 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 12 1 "del "
|
||||||
|
END
|
||||||
|
STRINGA 100 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD LF_UMART->UM
|
||||||
|
END
|
||||||
|
NUMBER FF_SALDO_MOVART 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE ADD,FF_SALDO_GRMOV
|
||||||
|
END
|
||||||
|
NUMBER 100 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE _NUMEXPR,#FF_VALORE_MOV/#FF_SALDO_MOV
|
||||||
|
END
|
||||||
|
NUMBER FF_VALORE_MOVART 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE ADD,FF_VALORE_GRMOV
|
||||||
|
END
|
||||||
|
END // totali mov
|
||||||
|
|
||||||
END // ragg articolo (codice o catmer)
|
END // ragg articolo (codice o catmer)
|
||||||
SECTION TOTALI_GRUPPIART 1 1 3 GROUP
|
SECTION TOTALI_GRUPPIART 1 1 3 GROUP
|
||||||
STRINGA 100 15
|
STRINGA 100 15
|
||||||
|
352
mg/mg3300b.frm
Executable file
352
mg/mg3300b.frm
Executable file
@ -0,0 +1,352 @@
|
|||||||
|
#include "mg3300.h"
|
||||||
|
USE LF_RMOVMAG KEY 2 BY CODMAG CODART LIVGIAC LF_MOVMAG->DATAREG NUMREG
|
||||||
|
JOIN LF_MAG TO LF_RMOVMAG KEY 2 INTO ANNOES==1996 CODMAG==CODMAG CODART==CODART LIVELLO==LIVGIAC
|
||||||
|
JOIN LF_ANAMAG TO LF_RMOVMAG 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 500 INTO CODTAB==CODMAG[1,3]
|
||||||
|
JOIN MAG TO LF_RMOVMAG ALIAS 501 INTO CODTAB==CODMAG
|
||||||
|
|
||||||
|
JOIN GMC TO LF_ANAMAG ALIAS ALIAS_CATMER INTO CODTAB==GRMERC[1,3]
|
||||||
|
JOIN GMC TO LF_ANAMAG ALIAS ALIAS_SOTTOCATMER INTO CODTAB==GRMERC[1,5]
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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 2
|
||||||
|
|
||||||
|
NUMBER 100 1
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION HEADER_CATMER 1 2 1 GROUP
|
||||||
|
FLAGS "H"
|
||||||
|
STRINGA 10 20 1
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE CATMER"
|
||||||
|
PROMPT 1 1 "Gruppo merceologico "
|
||||||
|
MESSAGE _USER,CODCATMER
|
||||||
|
END
|
||||||
|
STRINGA 12 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "DESCR."
|
||||||
|
PROMPT 30 1 ""
|
||||||
|
MESSAGE _USER,CATMER
|
||||||
|
END
|
||||||
|
END //HEADER catmer
|
||||||
|
|
||||||
|
SECTION HEADER_MAG 1 2 2 GROUP
|
||||||
|
STRINGA 22 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "mag"
|
||||||
|
PROMPT 1 1 "Magazzino "
|
||||||
|
FIELD 500@->S0
|
||||||
|
END
|
||||||
|
SECTION HEADER_DEP 2 1 1 GROUP
|
||||||
|
STRINGA 23 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "dep"
|
||||||
|
PROMPT 1 1 "Deposito "
|
||||||
|
FIELD 501@->S0
|
||||||
|
END
|
||||||
|
SECTION HEADER_ARTICOLO 2 1 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
|
||||||
|
SECTION HEADER_LIVGIAC 2 1 1 GROUP
|
||||||
|
STRINGA 20 20 1
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE livello"
|
||||||
|
PROMPT 1 1 ""
|
||||||
|
MESSAGE _USER,CODGRUPPOGIAC
|
||||||
|
END
|
||||||
|
STRINGA 21 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "Livello giac"
|
||||||
|
PROMPT 23 1 ""
|
||||||
|
MESSAGE _USER,GRUPPOGIAC
|
||||||
|
END
|
||||||
|
END // HEADER livgiac
|
||||||
|
END //HEADER articolo
|
||||||
|
END // HEADER deposito
|
||||||
|
STRINGA 24 50 1
|
||||||
|
BEGIN
|
||||||
|
KEY "dep"
|
||||||
|
PROMPT 1 2 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||||
|
END
|
||||||
|
END // HEADER magazzino
|
||||||
|
|
||||||
|
SECTION FILE_RMOVMAG 1 0 0 FILE LF_ANAMAG
|
||||||
|
|
||||||
|
STRINGA 10
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART|RESET,FF_STAMPASALDOPREC
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION GRUPPI_RMOVMAG 1 0 0 FILE LF_RMOVMAG GROUP CODMAG+CODART
|
||||||
|
NUMERO 10
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
FIELD LF_RMOVMAG->NUMREG
|
||||||
|
MESSAGE COPY,FF_NUM_MOV|RESET,FF_SALDO_MOV|RESET,FF_VALORE_MOV
|
||||||
|
END
|
||||||
|
NUMERO 11
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
FIELD LF_MOVMAG->DATAREG
|
||||||
|
MESSAGE COPY,FF_DATA_MOV
|
||||||
|
END
|
||||||
|
NUMERO 12
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
FIELD LF_MOVMAG->CODCAUS
|
||||||
|
MESSAGE _USER,SETCAUSALE
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION MOVIMENTO 1 0 0 FILE LF_RMOVMAG GROUP NUMREG
|
||||||
|
|
||||||
|
NUMBER FF_QUANTRIGA 12
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|_USER,*SEGNOCAUS
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER FF_STAMPASALDOPREC 30
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION MOVS_PRECEDENTI 1 0 0 STREXPR LF_MOVMAG->DATAREG<""
|
||||||
|
NUMBER 103 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 "Quantita' a saldo prec:"
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDOPREC
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION MOVS_INTERESSATI 1 0 1 STREXPR LF_MOVMAG->DATAREG>=""
|
||||||
|
SECTION STAMPASALDOPREC 1 1 1 NUMEXPR (#FF_STAMPASALDOPREC==0)&&(#FF_QUANTRIGA!=0)
|
||||||
|
NUMBER 100 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 8 1 "Saldo precedente :"
|
||||||
|
END
|
||||||
|
NUMBER FF_SALDOPREC 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
END
|
||||||
|
NUMBER 101 12
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
MESSAGE RESET,FF_SALDOPREC |INC,FF_STAMPASALDOPREC
|
||||||
|
END
|
||||||
|
STRINGA 102 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD LF_UMART->UM
|
||||||
|
END
|
||||||
|
END // stampa saldo precedente
|
||||||
|
|
||||||
|
STRINGA 100 30
|
||||||
|
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 104 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
FIELD LF_RMOVMAG->PREZZO
|
||||||
|
END
|
||||||
|
NUMBER 103 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDO_MOV
|
||||||
|
END
|
||||||
|
NUMBER 105 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*LF_RMOVMAG->PREZZO|_USER,*SEGNOCAUS|ADD,FF_VALORE_MOV
|
||||||
|
END
|
||||||
|
END // sezione movimento di competenza
|
||||||
|
END // loop movimento
|
||||||
|
|
||||||
|
SECTION TOTALI_MOV 1 4 1 NUMEXPR #FF_SALDO_MOV!=0
|
||||||
|
NUMBER FF_NUM_MOV 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Mov. "
|
||||||
|
END
|
||||||
|
STRINGA FF_DATA_MOV 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 12 1 "del "
|
||||||
|
END
|
||||||
|
STRINGA 100 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD LF_UMART->UM
|
||||||
|
END
|
||||||
|
NUMBER FF_SALDO_MOV 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
PICTURE "###.###,@##"
|
||||||
|
MESSAGE ADD,FF_SALDO_GART
|
||||||
|
END
|
||||||
|
NUMBER 100 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE _NUMEXPR,#FF_VALORE_MOV/#FF_SALDO_MOV
|
||||||
|
END
|
||||||
|
NUMBER FF_VALORE_MOV 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 1 ""
|
||||||
|
PICTURE "###.###.###"
|
||||||
|
MESSAGE ADD,FF_VALORE_GART
|
||||||
|
END
|
||||||
|
END // totali mov
|
||||||
|
END // loop scheda
|
||||||
|
|
||||||
|
SECTION TOTALI_GART 1 1 3 GROUP
|
||||||
|
|
||||||
|
STRINGA 100 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Totale scheda"
|
||||||
|
END
|
||||||
|
STRINGA 100 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 // loop RMOVMAG raggruppate
|
||||||
|
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
|
||||||
|
|
@ -13,7 +13,7 @@
|
|||||||
#include "mg3500.h"
|
#include "mg3500.h"
|
||||||
#include "mg3frm.h"
|
#include "mg3frm.h"
|
||||||
|
|
||||||
// mg3200 Stampa
|
// mg3500 Stampa
|
||||||
class TStampa_storgiac : public TPrint_application
|
class TStampa_storgiac : public TPrint_application
|
||||||
{
|
{
|
||||||
TArray * _files;
|
TArray * _files;
|
||||||
@ -23,12 +23,12 @@ class TStampa_storgiac : public TPrint_application
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool print_one(int file)
|
virtual bool print_one(int file)
|
||||||
{return TRUE;}
|
{return TRUE;}
|
||||||
virtual bool user_create();
|
virtual bool user_create();
|
||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
virtual bool set_print(int i=1);
|
virtual bool set_print(int i=1);
|
||||||
virtual void set_page(int file,int count)
|
virtual void set_page(int file,int count)
|
||||||
{ }
|
{ }
|
||||||
void setprint_permagazzini();
|
void setprint_permagazzini();
|
||||||
void setprint_perarticoli();
|
void setprint_perarticoli();
|
||||||
|
|
||||||
@ -89,10 +89,9 @@ bool TStampa_storgiac::set_print(int i)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int mg3500(int argc, char* argv[])
|
int mg3500(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TStampa_storgiac a;// derivata da Application e con uso di form
|
TStampa_storgiac a;
|
||||||
a.run(argc,argv,"Stampa storico rimanenze");
|
a.run(argc,argv,"Stampa storico rimanenze");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
14
mg/mg3500.h
Executable file
14
mg/mg3500.h
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#define F_ORDINE 101
|
||||||
|
#define F_ANNOES 104
|
||||||
|
#define F_DAART 105
|
||||||
|
#define F_AART 106
|
||||||
|
#define F_DADES 111
|
||||||
|
#define F_ADES 112
|
||||||
|
|
||||||
|
|
||||||
|
#define G_CATMER 1
|
||||||
|
#define G_CODART 2
|
||||||
|
#define G_DESART 3
|
||||||
|
|
||||||
|
|
||||||
|
|
77
mg/mg3500.uml
Executable file
77
mg/mg3500.uml
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
#include "mg3500.h"
|
||||||
|
PAGE "Stampa storico rimanenze" -1 -1 78 20
|
||||||
|
|
||||||
|
LISTBOX F_ORDINE 20
|
||||||
|
BEGIN
|
||||||
|
FLAGS "G"
|
||||||
|
PROMPT 2 1 "Ordinamento "
|
||||||
|
ITEM "C|codice"
|
||||||
|
MESSAGE ENABLE,G_CODART@|HIDE,G_DESART@
|
||||||
|
ITEM "D|descrizione"
|
||||||
|
MESSAGE DISABLE,G_CODART@|SHOW,G_DESART@
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNOES 4
|
||||||
|
BEGIN
|
||||||
|
FLAGS "A"
|
||||||
|
PROMPT 2 2 "Codice es. "
|
||||||
|
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 2 5 " all'articolo "
|
||||||
|
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
|
||||||
|
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
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 5 " all'articolo "
|
||||||
|
FLAGS "U"
|
||||||
|
COPY USE F_DADES
|
||||||
|
INPUT DESCR F_ADES
|
||||||
|
COPY DISPLAY F_DADES
|
||||||
|
OUTPUT F_ADES DESCR
|
||||||
|
GROUP G_DESART
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user