Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 98.01.03pl015


git-svn-id: svn://10.65.10.50/trunk@6577 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1998-04-30 14:59:47 +00:00
parent f99c477005
commit f5e27b6add
38 changed files with 13680 additions and 16390 deletions

@ -2,10 +2,11 @@
PAGE "Stampa Tabella Causali di magazzino" -1 -1 58 8
STRING F_INIZIO1 6
STRING F_INIZIO1 5
BEGIN
PROMPT 2 1 "Da codice "
USE %CAU
FIELD CODTAB
INPUT CODTAB F_INIZIO1
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione@50" S0
@ -13,11 +14,11 @@ BEGIN
GROUP 1
END
STRING F_FINE1 6
STRING F_FINE1 5
BEGIN
PROMPT 2 3 " A codice "
HELP "Inserire il codice di fine "
FIELD LF_TABCOM->CODTAB[1,3]
FIELD CODTAB
COPY USE F_INIZIO1
INPUT CODTAB F_FINE1
COPY DISPLAY F_INIZIO1

@ -13,7 +13,7 @@ BEGIN
END
STRING F_CODICE 6
STRING F_CODICE 5
BEGIN
PROMPT 2 1 "Codice causale "
FIELD CODTAB
@ -54,7 +54,7 @@ BEGIN
DISPLAY "Descrizione@40" S0
OUTPUT F_RAGGF CODTAB
OUTPUT F_RAGGFD S0
OUTPUT H_TIPOMOV S6
OUTPUT H_TIPOMOV S7
CHECKTYPE NORMAL
GROUP 23
MESSAGE EMPTY RESET,F_RAGGFD|RESET,H_TIPOMOV|CHECK,H_TIPOMOV
@ -116,7 +116,7 @@ BEGIN
PROMPT 2 13 "Aggiorna costo medio"
END
STRING F_CAUCOLL 6
STRING F_CAUCOLL 5
BEGIN
PROMPT 2 15 "Causale collegata "
FIELD S9
@ -151,7 +151,7 @@ ENDPAGE
PAGE "Movimentazione campi" 11 60 14
STRING F_CODICE2 6
STRING F_CODICE2 5
BEGIN
FLAGS "D"
PROMPT 2 1 "Codice causale "

@ -108,7 +108,7 @@ BEGIN
END
STRING F_CODCAUS 6
STRING F_CODCAUS 5
BEGIN
PROMPT 2 8 "Codice causale "
FIELD CODCAUS

@ -240,7 +240,7 @@ BEGIN
NUM_CALC #F_PREZZO*#F_QUANT
END
STRING F_CAUSRIG 6
STRING F_CAUSRIG 5
BEGIN
PROMPT 2 16 "Codice causale "
FIELD CAUS

@ -108,7 +108,7 @@ BEGIN
PROMPT 2 7 "Causali d'apertura "
END
STRING F_CAURIM 6
STRING F_CAURIM 5
BEGIN
PROMPT 3 8 "Rimanenze iniziali "
FLAGS "U"
@ -121,7 +121,7 @@ BEGIN
GROUP 4
END
STRING F_CAUICL 6
STRING F_CAUICL 5
BEGIN
PROMPT 3 9 "In conto lavoraz. "
FLAGS "U"
@ -134,7 +134,7 @@ BEGIN
GROUP 4
END
STRING F_CAUACL 6
STRING F_CAUACL 5
BEGIN
PROMPT 43 9 "A conto lavoraz. "
FLAGS "U"
@ -147,7 +147,7 @@ BEGIN
GROUP 4
END
STRING F_CAUPRF 6
STRING F_CAUPRF 5
BEGIN
PROMPT 3 10 "In prod. finiti "
FLAGS "U"
@ -160,7 +160,7 @@ BEGIN
GROUP 4
END
STRING F_CAUPRC 6
STRING F_CAUPRC 5
BEGIN
PROMPT 43 10 "In prod. comp. "
FLAGS "U"
@ -173,7 +173,7 @@ BEGIN
GROUP 4
END
STRING F_CAUORF 6
STRING F_CAUORF 5
BEGIN
PROMPT 3 11 "Ordinato fornitori "
FLAGS "U"
@ -186,7 +186,7 @@ BEGIN
GROUP 1 4
END
STRING F_CAUORC 6
STRING F_CAUORC 5
BEGIN
PROMPT 43 11 "Ordinato clienti "
FLAGS "U"

@ -1,18 +1,9 @@
#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\veconf.h"
#include "mglib.h"
#include "mg3100.h"
#include "mg3frm.h"
#include "mg3frm.h"
class TForm_giacprezzi : public TForm_stampemg
@ -64,18 +55,18 @@ TForm_giacprezzi::~TForm_giacprezzi()
class TStampadatist_mask: public TMask
class TStampadatist_mask: public TStampemg_mask
{
static bool handle_ragg(TMask_field &fld, KEY k); // handler
static bool handle_liv(TMask_field &fld, KEY k); // handler
static bool handle_subord(TMask_field &fld, KEY k); // handler
public:
TStampadatist_mask();
~TStampadatist_mask(){};
virtual ~TStampadatist_mask(){};
};
TStampadatist_mask::TStampadatist_mask():
TMask("mg3100")
TStampemg_mask("mg3100")
{
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
if (prassid.get_bool("GES", NULL, A_LISTINI))
@ -83,8 +74,6 @@ TStampadatist_mask::TStampadatist_mask():
else {
field(F_CATVENLISTINO).disable(); field(F_CODLISTINO).disable();
}
TCodgiac_livelli giaclev;
TCodart_livelli artlev;
set_handler(F_TOLIVELLOART, handle_liv);
set_handler(F_TOLIVELLOGIAC, handle_liv);
@ -92,32 +81,36 @@ TStampadatist_mask::TStampadatist_mask():
set_handler(F_DETTAGLIODEP, handle_ragg);
set_handler(F_DETTAGLIOMAG, handle_ragg);
set_handler(F_ORDINEART,handle_subord);
if (!artlev.enabled()) {
if (!artlev().enabled()) {
TMask_field &f1=field(F_RAGGCODICE);
f1.reset(); f1.check();f1.hide();
field(F_FROMLIVELLOART).hide();
field(F_TOLIVELLOART).hide();
}
if (!giaclev.enabled()) {
if (!giaclev().enabled()) {
TMask_field &f2=field(F_RAGGLIVGIAC);
f2.reset(); f2.check();f2.hide();
field(F_FROMLIVELLOGIAC).hide();
field(F_TOLIVELLOGIAC).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]) {
TStampadatist_mask &m=(TStampadatist_mask &)fld.mask();
TOperable_field &fraggcod=(TOperable_field &)m.field(F_RAGGCODICE);
TOperable_field &fragggiac=(TOperable_field &)m.field(F_RAGGLIVGIAC);
switch (fld.get()[0]) {
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))
if (m.get(F_ORDINE)=="A")
{
fraggcod.enable();m.send_key(K_SPACE,F_RAGGCODICE);
} else {
if (!m.get_bool(F_TOTALIDEPOSITI) || !m.get_bool(F_DETTAGLIODEP))
{
fraggcod.reset(); fraggcod.disable();
fragggiac.reset(); fragggiac.disable();
@ -127,7 +120,16 @@ bool TStampadatist_mask::handle_subord(TMask_field &fld, KEY k)
break;
case 'M':
case 'D':
fraggcod.reset(); fraggcod.check();fraggcod.disable();
fraggcod.set("X");
fraggcod.disable();
m.field(F_FROMLIVELLOART).set(m.artlev().last_level());
m.disable(F_FROMLIVELLOART);
m.field(F_TOLIVELLOART).set("0");
m.disable(F_TOLIVELLOART);
m.field(F_FROMLIVELLOGIAC).set("0");
m.disable(F_FROMLIVELLOGIAC);
m.field(F_TOLIVELLOGIAC).set("0");
m.disable(F_TOLIVELLOGIAC);
break;
}
}
@ -158,43 +160,48 @@ bool TStampadatist_mask::handle_ragg(TMask_field &fld, KEY k)
{
if (k == K_SPACE)
{
TStampadatist_mask &m=(TStampadatist_mask &)fld.mask();
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);
fraggcod.enable();
fragggiac.enable();
if (fld.mask().get(F_ORDINE)=="M")
{
ftotmag.enable();
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
if (!fld.mask().get_bool(F_TOTALIDEPOSITI) || !fld.mask().get_bool(F_DETTAGLIODEP))
{
fraggcod.reset(); fraggcod.disable();
fragggiac.reset(); fragggiac.disable();
fraggcod.do_message(0);fragggiac.do_message(0);
return TRUE;
}
}
fraggcod.enable();
fragggiac.enable();
} else {
bool enabmag=m.magazz_ini().gestmultimag() || m.magazz_ini().gestdep();
m.enable(F_TOTALIMAGAZZINI,enabmag && m.field(F_TOTALIMAGAZZINI).enabled());
m.enable(F_DETTAGLIOMAG,enabmag && m.field(F_DETTAGLIOMAG).enabled());
}
}
return TRUE;
}
// STAMPA anagrafiche
class TStampa_datistorici : public TPrint_application
class TStampa_datistorici : public TSkeleton_application
{
TArray * _files;
TMask * _mask;
TArray _file;
TStampadatist_mask * _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)
{ }
protected:
void open_files(int logicnum, ...);
virtual bool create();
virtual bool destroy();
virtual void main_loop();
void setprint_permagazzini();
void setprint_perarticoli();
@ -203,19 +210,17 @@ public:
};
bool TStampa_datistorici::user_create()
bool TStampa_datistorici::create()
{
_mask = new TStampadatist_mask();
_files = new TArray();
_files->add(new TLocalisamfile(LF_MAG));
return TRUE;
open_files(LF_ANAMAG,LF_MAG,LF_TAB,LF_TABCOM,0);
return TSkeleton_application::create();
}
bool TStampa_datistorici::user_destroy()
bool TStampa_datistorici::destroy()
{
delete _mask;
delete _files;
return TRUE;
return TSkeleton_application::destroy();
}
void TStampa_datistorici::setprint_permagazzini()
@ -227,9 +232,9 @@ void TStampa_datistorici::setprint_permagazzini()
_cur = _form->cursor();
// setta il filtro sul cursore
if (*_mask->get(F_DAART))
cfilter << "(CODART>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
if (*_mask->get(F_AART))
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
switch (*_mask->get(F_FILTRO)) {
case '0': // non nulli
cfilter << "(STR(" << LF_MAG << "->GIAC!=\"0\"))&&";
@ -255,13 +260,19 @@ void TStampa_datistorici::setprint_permagazzini()
TRUE,
_mask->get_bool(F_TOTALIDEPOSITI),
_mask->get_bool(F_DETTAGLIODEP));
_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));
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S')? "1": "0") ;
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set(ena);
_form->find_field('B',odd_page,FF_FLAGSOTTOS).set(ena);
ena=_mask->get(F_PREZZIVALORI);
_form->find_field('H',odd_page,FF_PREZZIVALORI).set(ena);
_form->find_field('B',odd_page,FF_PREZZIVALORI).set(ena);
ena=_mask->get_bool(F_VALMEDI) ? "1": "0";
_form->find_field('H',odd_page,FF_FLAGVALMEDI).set(ena);
_form->find_field('B',odd_page,FF_FLAGVALMEDI).set(ena);
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
darec.put("ANNOES",_mask->get(F_ANNOES));
@ -343,8 +354,20 @@ void TStampa_datistorici::setprint_perarticoli()
_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");
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S')? "1": "0") ;
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set(ena);
_form->find_field('B',odd_page,FF_FLAGSOTTOS).set(ena);
_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));
ena=_mask->get_bool(F_VALMEDI) ? "1": "0";
_form->find_field('H',odd_page,FF_FLAGVALMEDI).set(ena);
_form->find_field('B',odd_page,FF_FLAGVALMEDI).set(ena);
_form->find_field('B',odd_page,FF_FLAGTOTQTA).set("1");
_form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO));
joinexp << "ANNOES==" << _mask->get(F_ANNOES) << "|CODART==CODART";
@ -357,22 +380,22 @@ void TStampa_datistorici::setprint_perarticoli()
}
bool TStampa_datistorici::set_print(int i)
void TStampa_datistorici::main_loop()
{
while (TRUE) {
if (_mask->run() != K_ENTER)
return FALSE;
if (*_mask->get(F_ORDINE)=='A')
while (_mask->run() == K_ENTER) {
if (_mask->magazz_ini().gestmag(TRUE))
{
setprint_perarticoli();
} else {
setprint_permagazzini();
if (*_mask->get(F_ORDINE)=='A')
{
setprint_perarticoli();
} else {
setprint_permagazzini();
}
_form->print();
delete _form;
}
_form->print();
delete _form;
} // while true
return TRUE;
return ;
}

@ -4,284 +4,288 @@ PAGE "Stampa dati storici" -1 -1 78 20
LIST F_PREZZIVALORI 18
BEGIN
PROMPT 2 1 ""
ITEM "V|Saldi e valori"
MESSAGE SHOW,G_PARAMVALORI@ |HIDE,G_LISTINO@
ITEM "P|Costi e prezzi"
MESSAGE RESET,F_STAMPAGIAC|HIDE,G_PARAMVALORI@|SHOW,G_LISTINO@
ITEM "V|Saldi e valori"
MESSAGE SHOW,G_PARAMVALORI@ |HIDE,G_LISTINO@
ITEM "P|Costi e prezzi"
MESSAGE RESET,F_STAMPAGIAC|HIDE,G_PARAMVALORI@|SHOW,G_LISTINO@
END
BOOL F_VALMEDI
BEGIN
PROMPT 32 1 "Valori medi "
GROUP G_PARAMVALORI
GROUP G_PARAMVALORI
END
BOOL F_STAMPAGIAC
BEGIN
PROMPT 52 1 "Stampa giacenza "
GROUP G_PARAMVALORI
GROUP G_PARAMVALORI
END
STRING F_CATVENLISTINO 2
BEGIN
FLAGS "U"
PROMPT 32 1 "Cat. ven. "
FLAGS "U"
PROMPT 32 1 "Cat. ven. "
USE CVE
INPUT CODTAB F_CATVENLISTINO
DISPLAY "Cat." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CATVENLISTINO CODTAB
CHECKTYPE NORMAL
GROUP G_LISTINO
GROUP G_LISTINO
END
STRING F_CODLISTINO 3
BEGIN
FLAGS "U"
FLAGS "U"
PROMPT 52 1 "Codice listino "
USE LF_CONDV
INPUT TIPO "L"
INPUT COD F_CODLISTINO
DISPLAY "Codice" COD
DISPLAY "Descrizione@30" DESCR
OUTPUT F_CODLISTINO COD
CHECKTYPE NORMAL
GROUP G_LISTINO
USE LF_CONDV
INPUT TIPO "L"
INPUT COD F_CODLISTINO
DISPLAY "Codice" COD
DISPLAY "Descrizione@30" DESCR
OUTPUT F_CODLISTINO COD
CHECKTYPE NORMAL
GROUP G_LISTINO
END
LISTBOX F_ORDINE 10
BEGIN
PROMPT 2 2 "Ordinamento "
ITEM "A|articoli"
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|HIDE,F_DETTAGLIODEP
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG
ITEM "M|magazzini"
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
MESSAGE SHOW,F_TOTALIDEPOSITI|SHOW,F_DETTAGLIODEP
MESSAGE HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
ITEM "A|articoli"
MESSAGE ENABLE,F_ORDINEART|HIDE,F_TOTALIDEPOSITI|HIDE,F_DETTAGLIODEP
MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_DETTAGLIOMAG
ITEM "M|magazzini"
MESSAGE "C",F_ORDINEART|K_SPACE,F_ORDINEART|DISABLE,F_ORDINEART|SHOW,G_CODART@|HIDE,G_DESART@
MESSAGE SHOW,F_TOTALIDEPOSITI|SHOW,F_DETTAGLIODEP
MESSAGE HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
END
LISTBOX F_ORDINEART 20
BEGIN
FLAGS "G"
FLAGS "G"
PROMPT 34 2 "sotto-ordinamento "
ITEM "C|codice"
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
ITEM "D|descrizione"
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
ITEM "M|gruppo merc./codice"
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
ITEM "C|codice"
MESSAGE HIDE,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
ITEM "D|descrizione"
MESSAGE HIDE,G_CATMER@|DISABLE,G_CODART@|SHOW,G_DESART@
ITEM "M|gruppo merc./codice"
MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@
END
NUMBER F_ANNOES 4
BEGIN
FLAGS "A"
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
USE ESC
INPUT CODTAB F_ANNOES
DISPLAY "Esercizio" CODTAB
DISPLAY "Dal@12" D0
DISPLAY "Al@12" D1
OUTPUT F_ANNOES CODTAB
CHECKTYPE NORMAL
ADD NONE
END
LISTBOX F_FILTRO 20
BEGIN
FLAGS "G"
FLAGS "G"
PROMPT 45 3 "Filtro "
ITEM "T|tutto"
ITEM "S|sotto scorta"
ITEM "P|positivi"
ITEM "N|negativi"
ITEM "0|non nulli"
ITEM "T|tutto"
ITEM "S|sotto scorta"
ITEM "P|positivi"
ITEM "N|negativi"
ITEM "0|non nulli"
END
STRING F_DAART 20
BEGIN
PROMPT 2 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
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 6 " all'articolo "
FLAGS "U"
COPY USE F_DAART
INPUT CODART F_AART
COPY DISPLAY F_DAART
OUTPUT F_AART CODART
GROUP G_CODART
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 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
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 6 " all'articolo "
FLAGS "U"
COPY USE F_DADES
INPUT DESCR F_ADES
COPY DISPLAY F_DADES
OUTPUT F_ADES DESCR
GROUP G_DESART
FLAGS "U"
COPY USE F_DADES
INPUT DESCR F_ADES
COPY DISPLAY F_DADES
OUTPUT F_ADES DESCR
GROUP G_DESART
END
STRING F_DAMAG 3
BEGIN
PROMPT 2 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
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
FLAGS "U"
COPY USE F_DAMAG
INPUT CODTAB F_AMAG
COPY DISPLAY F_DAMAG
OUTPUT F_AMAG CODTAB
END
STRING F_DACATMER 3
BEGIN
PROMPT 2 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
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
FLAGS "U"
COPY USE F_DACATMER
INPUT CODTAB F_ACATMER
COPY DISPLAY F_DACATMER
OUTPUT F_ACATMER CODTAB[1,3]
GROUP G_CATMER
END
BOOL F_TOTALIDEPOSITI
BEGIN
PROMPT 2 13 "Stampo i totali depositi"
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
MESSAGE FALSE CLEAR,F_DETTAGLIODEP|K_SPACE,F_DETTAGLIODEP
MESSAGE TRUE ENABLE,F_DETTAGLIODEP
MESSAGE FALSE "",F_DETTAGLIODEP|DISABLE,F_DETTAGLIODEP
END
BOOL F_DETTAGLIODEP
BEGIN
PROMPT 42 13 "Stampa il dettaglio depositi"
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
MESSAGE TRUE ENABLE,F_RAGGLIVGIAC|ENABLE,F_RAGGCODICE
MESSAGE FALSE CLEAR,F_RAGGLIVGIAC|K_SPACE,F_RAGGLIVGIAC|CLEAR,F_RAGGCODICE|K_SPACE,F_RAGGCODICE
FLAGS "D"
END
BOOLEAN F_RAGGCODICE
BEGIN
PROMPT 2 14 "Raggruppo gli articoli"
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
MESSAGE FALSE CLEAR,F_FROMLIVELLOART|CLEAR,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
MESSAGE TRUE ENABLE,F_FROMLIVELLOART|ENABLE,F_TOLIVELLOART|CHECK,F_TOLIVELLOART
END
NUMBER F_FROMLIVELLOART 1
BEGIN
FLAGS "G"
FLAGS "G"
PROMPT 42 14 "da "
USE FCA
INPUT CODTAB F_FROMLIVELLOART
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_FROMLIVELLOART CODTAB
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)
CHECKTYPE NORMAL
WARNING "Livello iniziale non ammissibile"
USE FCA
INPUT CODTAB F_FROMLIVELLOART
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_FROMLIVELLOART CODTAB
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)
CHECKTYPE NORMAL
WARNING "Livello iniziale non ammissibile"
END
NUMBER F_TOLIVELLOART 1
BEGIN
PROMPT 52 14 "a "
USE FCA
INPUT CODTAB F_TOLIVELLOART
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_TOLIVELLOART CODTAB
CHECKTYPE NORMAL
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&(((#F_TOLIVELLOGIAC+#F_FROMLIVELLOGIAC)*#F_TOLIVELLOART)=0)
WARNING "Livello finale non ammissibile"
USE FCA
INPUT CODTAB F_TOLIVELLOART
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_TOLIVELLOART CODTAB
CHECKTYPE NORMAL
NUM_EXPR ((#F_FROMLIVELLOART<=#F_TOLIVELLOART)||(#F_TOLIVELLOART=0))&&(((#F_TOLIVELLOGIAC+#F_FROMLIVELLOGIAC)*#F_TOLIVELLOART)=0)
WARNING "Livello finale non ammissibile"
END
BOOL F_RAGGLIVGIAC
BEGIN
PROMPT 2 15 "Raggruppo le giacenze"
MESSAGE FALSE CLEAR,F_FROMLIVELLOGIAC|CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
MESSAGE TRUE ENABLE,F_FROMLIVELLOGIAC|ENABLE,F_TOLIVELLOGIAC
MESSAGE FALSE CLEAR,F_FROMLIVELLOGIAC|CLEAR,F_TOLIVELLOGIAC|CHECK,F_TOLIVELLOGIAC
MESSAGE TRUE ENABLE,F_FROMLIVELLOGIAC|ENABLE,F_TOLIVELLOGIAC
END
NUMBER F_FROMLIVELLOGIAC 1
BEGIN
FLAG "D"
FLAG "D"
PROMPT 42 15 "da "
USE FCG
INPUT CODTAB F_FROMLIVELLOGIAC
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_FROMLIVELLOGIAC CODTAB
CHECKTYPE NORMAL
NUM_EXPR ((#F_FROMLIVELLOGIAC*(#F_FROMLIVELLOART+#F_TOLIVELLOART))=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))
USE FCG
INPUT CODTAB F_FROMLIVELLOGIAC
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_FROMLIVELLOGIAC CODTAB
CHECKTYPE NORMAL
NUM_EXPR ((#F_FROMLIVELLOGIAC*(#F_FROMLIVELLOART+#F_TOLIVELLOART))=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))
WARNING "Livello iniziale non ammissibile"
WARNING "Livello iniziale non ammissibile"
END
NUMBER F_TOLIVELLOGIAC 1
BEGIN
FLAG "D"
FLAG "D"
PROMPT 52 15 "a "
USE FCG
INPUT CODTAB F_TOLIVELLOGIAC
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_TOLIVELLOGIAC CODTAB
NUM_EXPR ((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))&&((#F_TOLIVELLOGIAC*#F_TOLIVELLOART)=0)
WARNING "Livello finale non ammissibile"
CHECKTYPE NORMAL
USE FCG
INPUT CODTAB F_TOLIVELLOGIAC
DISPLAY "Num." CODTAB
DISPLAY "Descr@50" S0
OUTPUT F_TOLIVELLOGIAC CODTAB
NUM_EXPR ((#F_FROMLIVELLOGIAC*#F_FROMLIVELLOART)=0)&&((#F_FROMLIVELLOGIAC<=#F_TOLIVELLOGIAC)||(#F_TOLIVELLOGIAC=0))&&((#F_TOLIVELLOGIAC*#F_TOLIVELLOART)=0)
WARNING "Livello finale non ammissibile"
CHECKTYPE NORMAL
END
BOOL F_TOTALIMAGAZZINI
BEGIN
PROMPT 2 16 "Stampo i totali di magazzino"
MESSAGE TRUE ENABLE,F_DETTAGLIOMAG
MESSAGE FALSE CLEAR,F_DETTAGLIOMAG|K_SPACE,F_DETTAGLIOMAG
MESSAGE FALSE "",F_DETTAGLIOMAG|DISABLE,F_DETTAGLIOMAG
MESSAGE TRUE ENABLE,F_DETTAGLIOMAG
END
BOOL F_DETTAGLIOMAG
BEGIN
PROMPT 42 16 "Stampa il dettaglio magazzini"
PROMPT 42 16 "Stampo i depositi"
FLAGS "D"
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,5 +1,4 @@
#include <printapp.h>
#include <form.h>
#include <applicat.h>
#include "mglib.h"
#include "mg3200.h"
@ -10,9 +9,12 @@ 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
TMagazzini _magazz_ini;
public:
TMagazzini magazz_ini() {return _magazz_ini;}
TStampadisp_mask();
~TStampadisp_mask(){};
virtual ~TStampadisp_mask(){};
};
TStampadisp_mask::TStampadisp_mask():
TMask("mg3200")
@ -46,7 +48,7 @@ bool TStampadisp_mask::handle_subord(TMask_field &fld, KEY k)
{
TOperable_field &fraggcod=(TOperable_field &)fld.mask().field(F_RAGGCODICE);
TOperable_field &fragggiac=(TOperable_field &)fld.mask().field(F_RAGGLIVGIAC);
switch (fld.get()[1]) {
switch (fld.get()[0]) {
case 'C':
if (fld.mask().get(F_ORDINE)=="A")
fraggcod.enable();
@ -92,19 +94,25 @@ 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")
TStampadisp_mask & m=(TStampadisp_mask &)fld.mask();
TOperable_field &ftotmag=(TOperable_field &)m.field(F_TOTALIMAGAZZINI);
TOperable_field &fraggcod=(TOperable_field &)m.field(F_RAGGCODICE);
TOperable_field &fragggiac=(TOperable_field &)m.field(F_RAGGLIVGIAC);
if (m.get(F_ORDINE)=="M")
{
ftotmag.enable();
if (!fld.mask().get_bool(F_DETTAGLIOMAG) || !fld.mask().get_bool(F_DETTAGLIODEP))
if (!m.get_bool(F_DETTAGLIOMAG) || !m.get_bool(F_DETTAGLIODEP))
{
fraggcod.reset(); fraggcod.disable();
fragggiac.reset(); fragggiac.disable();
fraggcod.do_message(0);fragggiac.do_message(0);
return TRUE;
}
} else {
bool enabmag=m.magazz_ini().gestmultimag() || m.magazz_ini().gestdep();
m.enable(F_TOTALIMAGAZZINI,enabmag);
m.enable(F_DETTAGLIOMAG,enabmag);
}
fraggcod.enable();
fragggiac.enable();
@ -114,7 +122,7 @@ bool TStampadisp_mask::handle_ragg(TMask_field &fld, KEY k)
// mg3200 Stampa
class TStampa_disp : public TPrint_application
class TStampa_disp : public TSkeleton_application
{
TArray * _files;
TStampadisp_mask * _mask;
@ -122,13 +130,10 @@ class TStampa_disp : public TPrint_application
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)
{ }
virtual bool print_one(int file) {return TRUE;}
virtual bool create();
virtual bool destroy();
virtual void main_loop();
void setprint_permagazzini();
void setprint_perarticoli();
@ -137,19 +142,19 @@ public:
};
bool TStampa_disp::user_create()
bool TStampa_disp::create()
{
_mask = new TStampadisp_mask;
_files = new TArray();
_files->add(new TLocalisamfile(LF_MAG));
return TRUE;
return TSkeleton_application::create();
}
bool TStampa_disp::user_destroy()
bool TStampa_disp::destroy()
{
delete _mask;
delete _files;
return TRUE;
return TSkeleton_application::destroy();
}
@ -162,9 +167,9 @@ void TStampa_disp::setprint_permagazzini()
_cur = _form->cursor();
// setta il filtro sul cursore
if (*_mask->get(F_DAART))
cfilter << "(CODART>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
cfilter << "(CODART[1," << _mask->get(F_DAART).len() << "]>=" <<'"' << _mask->get(F_DAART)<< "\")&&" ;
if (*_mask->get(F_AART))
cfilter << "(CODART<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
cfilter << "(CODART[1," << _mask->get(F_AART).len() << "]<=" <<'"' << _mask->get(F_AART)<< "\")&&" ;
if (cfilter.not_empty())
cfilter.cut(cfilter.len()-2);
@ -249,22 +254,22 @@ void TStampa_disp::setprint_perarticoli()
}
bool TStampa_disp::set_print(int i)
void TStampa_disp::main_loop()
{
while (TRUE) {
if (_mask->run() != K_ENTER)
return FALSE;
if (*_mask->get(F_ORDINE)=='A')
while (_mask->run() == K_ENTER) {
if (_mask->magazz_ini().gestmag(TRUE))
{
setprint_perarticoli();
} else {
setprint_permagazzini();
if (*_mask->get(F_ORDINE)=='A')
{
setprint_perarticoli();
} else {
setprint_permagazzini();
}
_form->print();
delete _form;
}
_form->print();
delete _form;
} // while true
return TRUE;
return ;
}

@ -30,6 +30,14 @@ NUMBER F_ANNOES 4
BEGIN
FLAGS "A"
PROMPT 2 2 "Codice es. "
USE ESC
INPUT CODTAB F_ANNOES
DISPLAY "Esercizio" CODTAB
DISPLAY "Dal@12" D0
DISPLAY "Al@12" D1
OUTPUT F_ANNOES CODTAB
CHECKTYPE NORMAL
ADD NONE
END
STRING F_DAART 20

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,5 +1,4 @@
#include <form.h>
#include <printapp.h>
#include <applicat.h>
#include "movmag.h"
#include "rmovmag.h"
@ -7,11 +6,17 @@
#include "mglib.h"
#include "mg3300.h"
#ifndef __CGLIB01_H
#include "..\cg\cglib01.h"
#endif
class TForm_schedemag : public TForm_stampemg
{
TRecord_cache * _causali_mag;
int _tolivgiac,_tolivart;
TString16 _anno_prec;
bool _magazzino_chiuso;
bool _sottocatmer;
TToken_string *_rmov_sortexp;
@ -27,15 +32,16 @@ public:
TString & rmov_joinexp() {return *_rmov_joinexp;}
void set_tiposcheda(const char * tipo);
void set_chiusura_mag(const int val);
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();
TString nomecampo_scheda();
TForm_schedemag(const char *name,const char *code) ;
~TForm_schedemag();
virtual ~TForm_schedemag();
};
TString TForm_schedemag::descr_tiposcheda()
@ -60,7 +66,7 @@ TString TForm_schedemag::descr_tiposcheda()
return "";
}
TString TForm_schedemag::nomecampo_tiposcheda()
TString TForm_schedemag::nomecampo_scheda()
{
switch (_tiposcheda)
{
@ -95,26 +101,26 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
}
if (subcode=="CODGRUPPOART") {
TString valore(relation()->lfile(LF_ANAMAG).get("CODART"));
if (_artlev->enabled())
valore.cut(min(valore.len(),_artlev->packed_length(_tolivart)));
if (artlev().enabled())
valore.cut(min(valore.len(),artlev().packed_length(_tolivart)));
cf.set(valore);
return TRUE;
}
if (subcode=="GRUPPOART") {
TString valore;
if (_tolivart==_artlev->last_level())
if (_tolivart==artlev().last_level())
valore=relation()->lfile(LF_ANAMAG).get("DESCR");
else
valore=_artlev->group_descr(relation()->lfile(LF_ANAMAG).get("CODART"),_tolivart);
valore=artlev().group_descr(relation()->lfile(LF_ANAMAG).get("CODART"),_tolivart);
cf.set(valore);
return TRUE;
}
if (subcode=="CODGRUPPOGIAC") {
TString levname(_giaclev->name(_tolivgiac)),valore;
TString levname(giaclev().name(_tolivgiac)),valore;
int lv=0;
valore="";
do {
TString piece(_giaclev->unpack_grpcode(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),lv+1));
TString piece(giaclev().unpack_grpcode(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),lv+1));
if (piece.empty())
piece=UNKNOWN_NAME;
if (valore.not_empty())
@ -125,7 +131,7 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
}
if (subcode=="GRUPPOGIAC") {
TString valore;
valore=_giaclev->group_descr(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),_tolivgiac);
valore=giaclev().group_descr(relation()->lfile(LF_RMOVMAG).get("LIVGIAC"),_tolivgiac);
cf.set(valore);
return TRUE;
}
@ -162,6 +168,18 @@ bool TForm_schedemag::validate(TForm_item &cf, TToken_string &s)
cf.set(cau.descr());
return TRUE;
}
if (subcode=="SALDOPREC") {
if (!_magazzino_chiuso) // mag precedente non chiuso, mancano i saldi di apertura
{
TLocalisamfile _mag_annoprec(LF_MAG);
_mag_annoprec.curr() = cursor()->relation()->lfile(LF_MAG).curr();
_mag_annoprec.put(MAG_ANNOES, _anno_prec);
_mag_annoprec.read();
real valsaldo = _mag_annoprec.get_real(nomecampo_scheda());
cf.set(valsaldo.string());
}
return TRUE;
}
}
return TForm::validate(cf, s);
}
@ -173,20 +191,20 @@ bool TForm_schedemag::ragg_exprs(int livart,int livgiac)
// ***********
int tolivart,tolivgiac;
tolivart =livart ? livart : _artlev->last_level() ;
tolivgiac=livgiac ? livgiac : _giaclev->last_level();
tolivart =livart ? livart : artlev().last_level() ;
tolivgiac=livgiac ? livgiac : giaclev().last_level();
// sezioni livello codice
piece="CODART";
if (_artlev->enabled())
piece << "[1," << _artlev->packed_length(tolivart) <<']';
if (artlev().enabled())
piece << "[1," << artlev().packed_length(tolivart) <<']';
*_rmov_raggcond<< (_rmov_raggcond->empty()? "":"+" )<<piece;
_rmov_sortexp->add(piece);
_rmov_joinexp->cut(0) << piece << "==" << piece;
if (livart==0)
{
piece="LIVGIAC";
if (_giaclev->enabled())
piece << "[1," << _giaclev->packed_length(tolivgiac) <<']';
if (giaclev().enabled())
piece << "[1," << giaclev().packed_length(tolivgiac) <<']';
*_rmov_raggcond << '+' << piece;
_rmov_sortexp->add(piece);
}
@ -204,7 +222,7 @@ void TForm_schedemag::setdett_percatmer(bool sottocat,int livart,int livgiac,boo
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_GRMOV");
h_g.enable((livart ==0 || livgiac !=0 || sudd_mag));
TForm_subsection &h_l=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
h_l.enable(_giaclev->enabled() && livgiac !=0 );
h_l.enable(giaclev().enabled() && livgiac !=0 );
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");
@ -236,8 +254,8 @@ void TForm_schedemag::setdett_percatmer(bool sottocat,int livart,int livgiac,boo
_rmov_sortexp->add(cond);
_rmov_sortexp->add("NUMREG");
_tolivart=livart ? livart :_artlev->last_level() ;
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
_tolivart=livart ? livart :artlev().last_level() ;
_tolivgiac=livgiac ? livgiac :giaclev().last_level();
_sottocatmer=sottocat;
}
@ -248,7 +266,7 @@ void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int
TForm_subsection &h_a=(TForm_subsection &)find_field('B',odd_page,"HEADER_ARTICOLO");
h_a.enable(show_dett);
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
h_g.enable(_giaclev->enabled() && (livart ==0 || livgiac !=0 ));
h_g.enable(giaclev().enabled() && (livart ==0 || livgiac !=0 ));
*_rmov_raggcond="CODMAG[1,3]";
_rmov_sortexp->add("CODMAG[1,3]");
@ -270,8 +288,8 @@ void TForm_schedemag::setdett_permag(bool sudd_dep,bool show_dett,int livart,int
_rmov_sortexp->add(cond);
_rmov_sortexp->add("NUMREG");
_tolivart=livart ? livart :_artlev->last_level() ;
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
_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)
@ -289,9 +307,9 @@ void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,
// raggruppamento MAX fino alla giacenza
TForm_subsection &h_g=(TForm_subsection &)find_field('B',odd_page,"HEADER_GRMOV");
h_g.enable((livart ==0 || livgiac !=0 || sudd_mag));
h_g.enable((livart !=0 || livgiac !=0 || sudd_mag));
TForm_subsection &h_l=(TForm_subsection &)find_field('B',odd_page,"HEADER_LIVGIAC");
h_l.enable(_giaclev->enabled() && (livart ==0 || livgiac !=0 ));
h_l.enable(giaclev().enabled() && (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");
@ -300,8 +318,8 @@ void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,
TForm_subsection &t_s=(TForm_subsection &)find_field('B',odd_page,"TOTALI_GRMOV");
t_s.show(livart==0 || livgiac !=0 || sudd_mag);
_tolivart=livart ? livart :_artlev->last_level() ;
_tolivgiac=livgiac ? livgiac :_giaclev->last_level();
_tolivart=livart ? livart :artlev().last_level() ;
_tolivgiac=livgiac ? livgiac :giaclev().last_level();
_sottocatmer=sottocatmer;
// settaggio catmer/ragg codice
@ -312,7 +330,7 @@ void TForm_schedemag::setdett_perart(bool percatmer,bool sottocatmer,int livart,
catmercod << (sottocatmer ? "[1,3]" :"");
cond << catmercod << '+';
}
cond << "CODART[1," << _artlev->packed_length(_tolivart) << ']';
cond << "CODART[1," << artlev().packed_length(_tolivart) << ']';
s.setcondition(cond,_strexpr);
}
// settaggio raggruppamenti codice sulla scheda
@ -358,6 +376,14 @@ void TForm_schedemag::set_tiposcheda(const char * tipo)
}
}
void TForm_schedemag::set_chiusura_mag(const int anno)
{
TEsercizi_contabili ec;
_anno_prec.format("%4d",ec.pred(anno));
_magazzino_chiuso = (ec.pred(anno) == 0) || !(ec.esercizio(atoi(_anno_prec)).chiusura_mag().empty());
}
TForm_schedemag::TForm_schedemag(const char *name,const char *code) :
TForm_stampemg(name,code)
{
@ -381,10 +407,10 @@ TForm_schedemag::~TForm_schedemag()
// mg3300 Stampa
// mg3300 Stampa
class TStampa_schede_mag : public TPrint_application
class TStampa_schede_mag : public TSkeleton_application
{
TArray * _files;
TMask * _mask;
TStampemg_mask * _mask;
TCursor * _cur;
TForm_schedemag *_form; // to be moved into TPrint_application
@ -393,69 +419,14 @@ class TStampa_schede_mag : public TPrint_application
protected:
void setprint_perarticoli();
void setprint_permagazzini();
virtual bool print_one(int file);
virtual bool user_create();
virtual bool user_destroy();
virtual bool set_print(int i=1);
virtual bool create();
virtual bool destroy();
virtual void main_loop();
public:
TStampa_schede_mag() {}
};
/*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()
{
@ -501,10 +472,10 @@ void TStampa_schede_mag::setprint_permagazzini()
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))";
cond << '(' << s.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_scheda() << "<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))";
cond.cut(0) << '(' << s2.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_scheda() << "<0))";
s2.setcondition(cond,_strexpr);
}
// prepare cursor to print....
@ -556,10 +527,10 @@ void TStampa_schede_mag::setprint_perarticoli()
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))";
cond << '(' << s.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_scheda() << "<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))";
cond.cut(0) << '(' << s2.condition() << ")&&(STR("<< LF_MAG << "->" << _form->nomecampo_scheda() << "<0))";
s2.setcondition(cond,_strexpr);
}
// Imposta i livelli di dettaglio della scheda
@ -618,46 +589,44 @@ void TStampa_schede_mag::setprint_perarticoli()
}
bool TStampa_schede_mag::set_print(int i)
void TStampa_schede_mag::main_loop()
{
while (TRUE) {
if (_mask->run() != K_ENTER)
return FALSE;
if (*_mask->get(F_ORDINE)=='A')
while (_mask->run() == K_ENTER)
{
if (_mask->magazz_ini().gestmag(TRUE))
{
_form = new TForm_schedemag("mg3300a", "");
setprint_perarticoli();
} else if (*_mask->get(F_ORDINE)=='M') {
_form = new TForm_schedemag("mg3300b", "");
setprint_permagazzini();
}
_form->print();
delete _form;
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->set_chiusura_mag(_mask->get_int(F_ANNOES));
_form->print();
delete _form;
}
} // while true
return TRUE;
return ;
}
bool TStampa_schede_mag::user_create()
bool TStampa_schede_mag::create()
{
_mask = new TMask("mg3300");
_mask = new TStampemg_mask("mg3300");
_files= new TArray;
_files->add(new TLocalisamfile(LF_RMOVMAG));
_files->add(new TLocalisamfile(LF_MOVMAG));
_files->add(new TLocalisamfile(LF_MAG));
_files->add(new TLocalisamfile(LF_TABCOM));
return TRUE;
return TSkeleton_application::create();
}
bool TStampa_schede_mag::user_destroy()
bool TStampa_schede_mag::destroy()
{
delete _files;
delete _mask;
return TRUE;
}
bool TStampa_schede_mag ::print_one(int file)
{
return TRUE;
return TSkeleton_application::destroy();
}
int mg3300(int argc, char* argv[])

@ -48,12 +48,12 @@ BEGIN
INPUT CODTAB F_ANNOES
DISPLAY "Esercizio" CODTAB
DISPLAY "Dal@12" D0
DISPLAY "Al@12" D0
DISPLAY "Al@12" D1
OUTPUT F_ANNOES CODTAB
CHECKTYPE REQUIRED
ADD NONE
END
LISTBOX F_FILTRO 10
BEGIN
FLAGS "G"
@ -126,7 +126,7 @@ STRING F_DAMAG 3
BEGIN
PROMPT 2 8 "Dal magazzino "
FLAGS "U"
USE MAG SELECT CODTAB[4,5]=="" && CODTAB[1,3]!=""
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_DAMAG
DISPLAY "Codice" CODTAB
DISPLAY "Descr@50" S0

@ -29,12 +29,13 @@ END
GENERAL
BEGIN
OFFSET 0 0
OFFSET 0 1
FONT "Courier New"
SIZE 12
CARATTERE "X"
INIZIALE 5 2
FINALE 133
// SIZE 12
END
SECTION GRAPHIC
BEGIN
END
SECTION HEADER ODD 5
@ -102,9 +103,9 @@ SECTION BODY ODD 0
MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
END
SECTION HEADER_ARTICOLO 1 2 2 GROUP
SECTION HEADER_ARTICOLO 1 2 2 HEADER
FLAGS "N"
SECTION HEADER_CATMER 1 2 1 GROUP
SECTION HEADER_CATMER 1 2 1 GROUP
STRINGA 10 20 1
BEGIN
KEY "CODICE CATMER"
@ -118,6 +119,7 @@ SECTION BODY ODD 0
MESSAGE _USER,CATMER
END
END //HEADER catmer
STRINGA 10 20 1
BEGIN
KEY "CODICE articolo"
@ -139,8 +141,10 @@ SECTION BODY ODD 0
END //HEADER articolo
SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG BY CODART
FLAGS "N"
SECTION FILE_RMOVMAG 1 1 0 FILE LF_RMOVMAG
SECTION HEADER_GRMOV 1 2 2 GROUP
FLAGS "N"
SECTION HEADER_GRMOV 1 2 2 HEADER
FLAGS "N"
SECTION HEADER_LIVGIACCATMER 1 1 1 GROUP
STRINGA 10 20 1
@ -160,7 +164,7 @@ SECTION BODY ODD 0
STRINGA 10 20 1
BEGIN
KEY "CODICE articolo"
PROMPT 1 1 "Articolo "
PROMPT 1 1 "Gruppo "
MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
END
STRINGA 11 50 1
@ -169,7 +173,7 @@ SECTION BODY ODD 0
PROMPT 30 1 ""
MESSAGE _USER,GRUPPOART
END
SECTION HEADER_LIVGIAC 2 1 1 GROUP
SECTION HEADER_LIVGIAC 1 1 1 GROUP
STRINGA 20 20 1
BEGIN
KEY "CODICE livello"
@ -187,14 +191,14 @@ SECTION BODY ODD 0
STRINGA 22 50 1
BEGIN
KEY "mag"
PROMPT 5 1 "Magazzino "
PROMPT 3 1 "Magazzino "
FIELD 500@->S0
END
SECTION HEADER_DEP 2 1 1 GROUP
STRINGA 23 50 1
BEGIN
KEY "dep"
PROMPT 7 1 "Deposito "
PROMPT 5 1 "Deposito "
FIELD 501@->S0
END
END // HEADER deposito
@ -204,7 +208,7 @@ SECTION BODY ODD 0
KEY "dep"
PROMPT 1 2 "------------------------------------------------------------------------------------------------------------------------------------------------------"
END
END // HEADER livgiac
END // HEADER raggruppamenti di movimenti
STRINGA 10
BEGIN
@ -274,8 +278,9 @@ SECTION BODY ODD 0
END
NUMBER FF_SALDOPREC 12
BEGIN
PROMPT 31 1 ""
PROMPT 46 1 ""
PICTURE "###.###,@##"
MESSAGE _USER,SALDOPREC
END
NUMBER 101 12
BEGIN
@ -284,7 +289,7 @@ SECTION BODY ODD 0
END
STRINGA 102 12
BEGIN
PROMPT 27 1 ""
PROMPT 42 1 ""
FIELD LF_UMART->UM
END
END // stampa saldo precedente
@ -369,7 +374,7 @@ SECTION BODY ODD 0
END // totali mov
END // loop scheda
SECTION TOTALI_GRMOV 1 1 3 GROUP
SECTION TOTALI_GRMOV 1 1 3 NUMEXPR #FF_SALDO_GRMOV!=0
STRINGA 100 15
BEGIN
@ -435,7 +440,7 @@ SECTION BODY ODD 0
END // totali mov
END // ragg articolo (codice o catmer)
SECTION TOTALI_GRUPPIART 1 1 3 GROUP
SECTION TOTALI_GRUPPIART 1 1 3 NUMEXPR #FF_SALDO_GART!=0
STRINGA 100 15
BEGIN
PROMPT 1 1 "Totale scheda"
@ -460,19 +465,6 @@ SECTION BODY ODD 0
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

@ -28,12 +28,13 @@ END
GENERAL
BEGIN
OFFSET 0 0
OFFSET 0 1
FONT "Courier New"
SIZE 12
CARATTERE "X"
INIZIALE 5 2
FINALE 133
// SIZE 12
END
SECTION GRAPHIC
BEGIN
END
SECTION HEADER ODD 5
@ -129,14 +130,14 @@ SECTION BODY ODD 2
STRINGA 23 50 1
BEGIN
KEY "dep"
PROMPT 1 1 "Deposito "
PROMPT 3 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 "
PROMPT 5 1 "Articolo "
MESSAGE _USER,CODGRUPPOART
END
@ -150,7 +151,7 @@ SECTION BODY ODD 2
STRINGA 20 20 1
BEGIN
KEY "CODICE livello"
PROMPT 1 1 ""
PROMPT 5 1 ""
MESSAGE _USER,CODGRUPPOGIAC
END
STRINGA 21 50 1
@ -239,6 +240,7 @@ SECTION BODY ODD 2
BEGIN
PROMPT 31 1 ""
PICTURE "###.###,@##"
MESSAGE _USER,SALDOPREC
END
NUMBER 101 12
BEGIN
@ -358,19 +360,6 @@ SECTION BODY ODD 2
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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,97 +1,87 @@
#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 "mglib.h"
#include "mg3500.h"
#include "mg3frm.h"
// mg3500 Stampa
class TStampa_storgiac : public TPrint_application
class TStampa_storgiac : public TSkeleton_application
{
TArray * _files;
TMask * _mask;
TCursor * _cur;
TForm_stampemg * _form; // to be moved into TPrint_application
TArray * _files;
TStampemg_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();
virtual bool create();
virtual bool destroy();
virtual void main_loop();
void setprint_permagazzini();
void setprint_perarticoli();
public:
TStampa_storgiac() {}
virtual ~TStampa_storgiac() {}
};
bool TStampa_storgiac::user_create()
bool TStampa_storgiac::create()
{
_mask = new TMask("mg3500");
_mask = new TStampemg_mask("mg3500");
_files = new TArray();
_files->add(new TLocalisamfile(LF_STOMAG));
return TRUE;
return TSkeleton_application::create();
}
bool TStampa_storgiac::user_destroy()
bool TStampa_storgiac::destroy()
{
delete _mask;
delete _files;
return TRUE;
delete _mask;
delete _files;
return TSkeleton_application::destroy();
}
// ORDINAMENTO
bool TStampa_storgiac::set_print(int i)
void TStampa_storgiac::main_loop()
{
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;
while (_mask->run() == K_ENTER)
{
if (_mask->magazz_ini().gestmag(TRUE))
{
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 ;
}
int mg3500(int argc, char* argv[])
{
TStampa_storgiac a;
a.run(argc,argv,"Stampa storico rimanenze");
return 0;
TStampa_storgiac a;
a.run(argc,argv,"Stampa storico rimanenze");
return 0;
}

@ -17,12 +17,14 @@ END
GENERAL
BEGIN
OFFSET 0 0
OFFSET 0 1
FONT "Courier New"
SIZE 8
CARATTERE "X"
INIZIALE 5 2
FINALE 133
// SIZE 10
END
SECTION GRAPHIC
BEGIN
END
SECTION HEADER ODD 4
@ -65,7 +67,7 @@ END
SECTION BODY ODD 1
SECTION H_ARTICOLO 1 3 1 GROUP
SECTION H_ARTICOLO 1 3 1 HEADER
STRINGA 11 20
BEGIN
KEY "CODART"
@ -155,20 +157,6 @@ SECTION BODY ODD 1
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

@ -15,6 +15,14 @@ NUMBER F_ANNOES 4
BEGIN
FLAGS "A"
PROMPT 2 2 "Codice es. "
USE ESC
INPUT CODTAB F_ANNOES
DISPLAY "Esercizio" CODTAB
DISPLAY "Dal@12" D0
DISPLAY "Al@12" D1
OUTPUT F_ANNOES CODTAB
CHECKTYPE NORMAL
ADD NONE
END
STRING F_DAART 20

@ -1,8 +1,4 @@
#include <applicat.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <form.h>
#include "mglib.h"
#include "mg4100.h"
@ -10,7 +6,7 @@
class TStampa_listamov : public TSkeleton_application
{
TArray _files;
TMask * _mask;
TStampemg_mask * _mask;
TForm * _form;
int _codicees;
@ -26,76 +22,24 @@ protected:
bool TStampa_listamov::create()
{
_mask = new TStampemg_mask("mg4100");
_files.add(new TLocalisamfile(LF_MOVMAG));
_files.add(new TLocalisamfile(LF_RMOVMAG));
_files.add(new TLocalisamfile(LF_ANAMAG));
_files.add(new TLocalisamfile(LF_UMART));
_files.add(new TLocalisamfile(LF_TAB));
TSkeleton_application::create();
return TRUE;
return TSkeleton_application::create();
}
void TStampa_listamov::main_loop()
{
TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG);
_mask = new TMask("mg4100");
while (_mask->run() == K_ENTER) {
_form = new TForm("mg4100", "");
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
TString sortexp;
TString filter;
filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")";
if (_mask->get(F_CAU1).not_empty())
{
filter << "&&((CAUS==\"" << _mask->get(F_CAU1) << "\")";
filter << "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU1)<< "\")";
if (_mask->get(F_CAU2).not_empty())
filter << "||(CAUS==\"" << _mask->get(F_CAU2) << "\")"
<< "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU2)<< "\")";
if (_mask->get(F_CAU3).not_empty())
filter << "||(CAUS==\"" << _mask->get(F_CAU3)<< "\")"
<< "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU3)<< "\")";
if (_mask->get(F_CAU4).not_empty())
filter << "||(CAUS==\"" << _mask->get(F_CAU4)<< "\")"
<< "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU4)<< "\")";
if (_mask->get(F_CAU5).not_empty())
filter << "||(CAUS==\"" << _mask->get(F_CAU5)<< "\")"
<< "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU5)<< "\")";
if (_mask->get(F_CAU6).not_empty())
filter << "||(CAUS==\"" << _mask->get(F_CAU6)<< "\")"
<< "||(" << LF_MOVMAG << "->CODCAUS==\"" << _mask->get(F_CAU6)<< "\")";
filter << ")";
}
darec.zero(' ');
arec.zero(' ');
if (_mask->get(F_ORDINE)=="N")
{
sortexp="NUMREG|CODART|NRIG";
// trova il record iniziale E finale
darec.put("NUMREG",_mask->get(F_DANUM));
arec.put("NUMREG",_mask->get(F_ANUM));
_form->find_field('B',odd_page,"HEADER_DATA").hide();
} else {
sortexp.cut(0) << LF_MOVMAG << "->DATAREG|NUMREG|CODART|NRIG";
// trova il record iniziale E finale
if (_mask->get(F_DADATA).not_empty())
filter << "&&( DATACOMP>=" << '"' << _mask->get(F_DADATA) << '"';
if (_mask->get(F_ADATA).not_empty())
filter << "&&( DATACOMP<=" << '"' << _mask->get(F_ADATA) << "\")";
_form->find_field('B',odd_page,"HEADER_DATA").show();
}
cur.change_order(sortexp);
cur.setfilter(filter,TRUE);
cur.setregion(darec,arec);
_form->print();
delete _form;
} // while true
}
bool TStampa_listamov::destroy()
{
delete _mask;
return TSkeleton_application::destroy();
}
bool TStampa_listamov::filtro_causali(const TRelation* r)
{
delete _mask;
TSkeleton_application::destroy();
@ -103,6 +47,77 @@ bool TStampa_listamov::destroy()
}
void TStampa_listamov::main_loop()
{
TRectype darec(LF_RMOVMAG),arec(LF_RMOVMAG);
while (_mask->run() == K_ENTER)
{
if (_mask->magazz_ini().gestmag(TRUE))
{
_form = new TForm("mg4100", "");
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
TString sortexp;
TString filter;
filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")";
if (_mask->get(F_DAARTICOLO).not_empty())
filter << "&&(CODART>=\"" << _mask->get(F_DAARTICOLO) << "\")";
if (_mask->get(F_AARTICOLO).not_empty())
filter << "&&(CODART<=\"" << _mask->get(F_AARTICOLO) << "~~~~~~~~~~~~~~~~~~~~\")";
if (_mask->get(F_CAU1).not_empty())
{
filtrocausali.cut(0);
filtrocausali.add(_mask->get(F_CAU1));
if (_mask->get(F_CAU2).not_empty())
{
filtrocausali.add(_mask->get(F_CAU2));
if (_mask->get(F_CAU3).not_empty())
{
filtrocausali.add(_mask->get(F_CAU3));
if (_mask->get(F_CAU4).not_empty())
{
filtrocausali.add(_mask->get(F_CAU4));
if (_mask->get(F_CAU5).not_empty())
{
filtrocausali.add(_mask->get(F_CAU5));
if (_mask->get(F_CAU6).not_empty())
filtrocausali.add(_mask->get(F_CAU6));
}
}
}
}
cur.set_filterfunction(filtro_causali);
}
darec.zero(' ');
arec.zero(' ');
if (_mask->get(F_ORDINE)=="N")
{
sortexp="NUMREG|CODART|NRIG";
// trova il record iniziale E finale
darec.put("NUMREG",_mask->get(F_DANUM));
arec.put("NUMREG",_mask->get(F_ANUM));
_form->find_field('B',odd_page,"HEADER_DATA").hide();
} else {
sortexp.cut(0) << LF_MOVMAG << "->DATAREG|NUMREG|CODART|NRIG";
// trova il record iniziale E finale
if (_mask->get(F_DADATA).not_empty())
filter << "&&(" << LF_MOVMAG <<"->DATACOMP>=" << '"' << _mask->get(F_DADATA)<< "\")";
if (_mask->get(F_ADATA).not_empty())
filter << "&&(" << LF_MOVMAG <<"->DATACOMP<=" << '"' << _mask->get(F_ADATA) << "\")";
_form->find_field('B',odd_page,"HEADER_DATA").show();
}
cur.change_order(sortexp);
cur.setfilter(filter,TRUE);
cur.setregion(darec,arec);
_form->print();
delete _form;
}
} // while true
}
int mg4100(int argc, char* argv[])
{
TStampa_listamov a;// derivata da Application e con uso di form

@ -20,12 +20,14 @@ END
GENERAL
BEGIN
OFFSET 0 0
OFFSET 0 1
FONT "Courier New"
SIZE 12
CARATTERE "X"
INIZIALE 5 2
FINALE 133
// SIZE 10
END
SECTION GRAPHIC
BEGIN
END
SECTION HEADER ODD 6
@ -302,10 +304,14 @@ SECTION BODY ODD 1
NUMERO 10
BEGIN
KEY "totale mov"
PROMPT 83 3 "Totale valore movimentato: £ "
PROMPT 83 3 "Totale valore movimentato: "
PICTURE "##.###.###.##@"
END
END
END // BODY SECTION
SECTION FOOTER ODD 2
BEGIN
END

@ -69,7 +69,28 @@ BEGIN
GROUP 2
END
STRING F_CAU1 4
STRING F_DAARTICOLO 20
BEGIN
FLAGS "U"
PROMPT 2 7 "Dall'articolo "
USE LF_ANAMAG
INPUT CODART F_DAARTICOLO
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT F_DAARTICOLO CODART
END
STRING F_AARTICOLO 20
BEGIN
FLAGS "U"
PROMPT 42 7 "All'articolo "
COPY USE F_DAARTICOLO
INPUT CODART F_AARTICOLO
COPY DISPLAY F_DAARTICOLO
OUTPUT F_AARTICOLO CODART
END
STRING F_CAU1 5
BEGIN
PROMPT 2 9 "Causale "
FLAGS "U"
@ -82,7 +103,8 @@ BEGIN
MESSAGE EMPTY CLEAR,F_CAU2 |CHECK,F_CAU2
MESSAGE ENABLE,F_CAU2
END
STRING F_CAU2 4
STRING F_CAU2 5
BEGIN
FLAGS "U"
PROMPT 2 10 "Causale "
@ -94,7 +116,8 @@ BEGIN
MESSAGE EMPTY CLEAR,F_CAU3 |CHECK,F_CAU3
MESSAGE ENABLE,F_CAU3
END
STRING F_CAU3 4
STRING F_CAU3 5
BEGIN
FLAGS "U"
PROMPT 2 11 "Causale "
@ -106,7 +129,8 @@ BEGIN
MESSAGE EMPTY CLEAR,F_CAU4 |CHECK,F_CAU4
MESSAGE ENABLE,F_CAU4
END
STRING F_CAU4 4
STRING F_CAU4 5
BEGIN
FLAGS "U"
PROMPT 2 12 "Causale "
@ -118,7 +142,8 @@ BEGIN
MESSAGE EMPTY CLEAR,F_CAU5 |CHECK,F_CAU5
MESSAGE ENABLE,F_CAU5
END
STRING F_CAU5 4
STRING F_CAU5 5
BEGIN
FLAGS "U"
PROMPT 2 13 "Causale "
@ -130,7 +155,8 @@ BEGIN
MESSAGE EMPTY CLEAR,F_CAU6 |CHECK,F_CAU6
MESSAGE ENABLE,F_CAU6
END
STRING F_CAU6 4
STRING F_CAU6 5
BEGIN
FLAGS "U"
PROMPT 2 14 "Causale "

@ -1,13 +1,4 @@
#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\veconf.h"
#include "mglib.h"
@ -212,7 +203,7 @@ TForm_inventario::~TForm_inventario()
class TStampainv_mask: public TMask
class TStampainv_mask: public TStampemg_mask
{
static bool handle_ragg(TMask_field &fld, KEY k); // handler
static bool handle_liv(TMask_field &fld, KEY k); // handler
@ -223,7 +214,7 @@ public:
};
TStampainv_mask::TStampainv_mask():
TMask("mg4200")
TStampemg_mask("mg4200")
{
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
if (prassid.get_bool("GES", NULL, A_LISTINI))
@ -328,21 +319,17 @@ bool TStampainv_mask::handle_ragg(TMask_field &fld, KEY k)
// STAMPA anagrafiche
class TStampa_inventario : public TPrint_application
class TStampa_inventario : public TSkeleton_application
{
TArray * _files;
TMask * _mask;
TStampemg_mask * _mask;
TCursor * _cur;
TForm_inventario * _form; // to be moved into TPrint_application
protected:
virtual bool print_one(int file)
{return TRUE;}
virtual bool user_create();
virtual bool user_destroy();
virtual bool set_print(int i=1);
virtual void set_page(int file,int count)
{ }
virtual bool create();
virtual bool destroy();
virtual void main_loop();
void setprint_permagazzini();
void setprint_perarticoli();
@ -351,7 +338,7 @@ public:
};
bool TStampa_inventario::user_create()
bool TStampa_inventario::create()
{
_mask = new TStampainv_mask();
_files = new TArray();
@ -364,10 +351,10 @@ bool TStampa_inventario::user_create()
_files->add(new TLocalisamfile(LF_STOMAG));
_files->add(new TLocalisamfile(LF_MOVMAG));
_files->add(new TLocalisamfile(LF_RMOVMAG));
return TRUE;
return TSkeleton_application::create();
}
bool TStampa_inventario::user_destroy()
bool TStampa_inventario::destroy()
{
delete _mask;
delete _files;
@ -477,36 +464,37 @@ void TStampa_inventario::setprint_perarticoli()
}
bool TStampa_inventario::set_print(int i)
void TStampa_inventario::main_loop()
{
while (TRUE) {
if (_mask->run() != K_ENTER)
return FALSE;
if (*_mask->get(F_ORDINE)=='A')
while (_mask->run() == K_ENTER)
{
if (_mask->magazz_ini().gestmag(TRUE))
{
_form = new TForm_inventario("mg4200a", "");
setprint_perarticoli();
} else {
_form = new TForm_inventario("mg4200b", "");
setprint_permagazzini();
if (*_mask->get(F_ORDINE)=='A')
{
_form = new TForm_inventario("mg4200a", "");
setprint_perarticoli();
} else {
_form = new TForm_inventario("mg4200b", "");
setprint_permagazzini();
}
_form->add_colval(_mask->get_int(F_VAL1));
_form->add_colval(_mask->get_int(F_VAL2));
_form->add_colval(_mask->get_int(F_VAL3));
_form->add_colval(_mask->get_int(F_VAL4));
_form->add_colval(_mask->get_int(F_VAL5));
_form->add_colval(_mask->get_int(F_VAL6));
_form->set_parametri(_mask->get(F_CATVENLISTINO),
_mask->get(F_CODLISTINO),
*_mask->get(F_REALE_GIAC)=='R',
*_mask->get(F_FIN_COMP)=='C'
);
_form->print();
delete _form;
}
_form->add_colval(_mask->get_int(F_VAL1));
_form->add_colval(_mask->get_int(F_VAL2));
_form->add_colval(_mask->get_int(F_VAL3));
_form->add_colval(_mask->get_int(F_VAL4));
_form->add_colval(_mask->get_int(F_VAL5));
_form->add_colval(_mask->get_int(F_VAL6));
_form->set_parametri(_mask->get(F_CATVENLISTINO),
_mask->get(F_CODLISTINO),
*_mask->get(F_REALE_GIAC)=='R',
*_mask->get(F_FIN_COMP)=='C'
);
_form->print();
delete _form;
} // while true
return TRUE;
return ;
}

@ -54,6 +54,7 @@ BEGIN
DISPLAY "Al@12" D0
OUTPUT F_ANNOES CODTAB
ADD NONE
CHECKTYPE NORMAL
END
LIST F_FILTRO 23

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,12 +1,5 @@
#include <applicat.h>
#include <config.h>
#include <mask.h>
#include <printer.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <utility.h>
#include <form.h>
#include <printapp.h>
#include "anamag.h"
@ -81,6 +74,7 @@ private:
static const char * get_fiscfield(TVariable_rectype & r);
static const char * get_cronofield(TVariable_rectype & r);
static bool filter_func(const TRelation* r);
protected:
void add_mag(TRectype & magrec,const char * codreg);
public:
@ -160,7 +154,7 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
valore << cursor()->relation()->lfile(LF_MOVMAG).get("DESCR");
break;
default:
valore.format("%7g Movimenti del %s, dal %d al %d", (double)last_num_reg+1,
valore.format("%7g Movimenti di %s, dal %d al %d", (double)last_num_reg+1,
(const char *)itom(datamov.month()),
(int)((datamov.day()-1)/freq_stampa)*freq_stampa+1,
(int)min(((datamov.day()-1)/freq_stampa+1)*freq_stampa,TDate::last_day(datamov.month(),datamov.year())) );
@ -206,7 +200,11 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
}
if (ragg_caus)
{
valore << "Causali " << cur->relation()->lfile(-ALIAS_CAUSALI).get("S8") << ' ';
TString16 raggcau(cur->relation()->lfile(-ALIAS_CAUSALI).get("S8"));
if (raggcau.blank())
valore << "Causali varie " ;
else
valore << "Causali gruppo " << raggcau << ' ';
}
valore << vv;
cf.set(valore);
@ -333,6 +331,7 @@ void TGiornalemag::set_parametri(TMask & m)
// unused : ora i magazzini hanno l'indicazione esplicita del registro
// aggiungeva in un array i vari codici di giornale mag usati
void TGiornalemag::add_mag(TRectype & magrec,const char * codreg)
{
TString16 codmag(magrec.get("CODTAB").left(3));
@ -416,22 +415,18 @@ int TGiornalemag::_annoes;
// STAMPA giornale
class TStampa_giornalemag : public TPrint_application
class TStampa_giornalemag : public TSkeleton_application
{
TArray * _files;
TMask * _mask;
TGiornalemag * _form; // to be moved into TPrint_application
TStampemg_mask * _mask;
TGiornalemag * _giorn_mag; // to be moved into TPrint_application
TCursor * _cur;
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)
{ }
virtual bool create();
virtual bool destroy();
virtual void main_loop();
public:
TStampa_giornalemag() {}
@ -439,15 +434,15 @@ public:
bool TStampa_giornalemag::user_create()
bool TStampa_giornalemag::create()
{
_mask = new TMask("mg4300");
_mask = new TStampemg_mask("mg4300");
_files = new TArray();
_files->add(new TLocalisamfile(LF_RMOVMAG));
_files->add(new TLocalisamfile(LF_MOVMAG));
return TRUE;
return TSkeleton_application::create();
}
bool TStampa_giornalemag::user_destroy()
bool TStampa_giornalemag::destroy()
{
delete _mask;
delete _files;
@ -455,22 +450,22 @@ bool TStampa_giornalemag::user_destroy()
}
bool TStampa_giornalemag::set_print(int i)
void TStampa_giornalemag::main_loop()
{
while (TRUE) {
if (_mask->run() != K_ENTER)
return FALSE;
_form = new TGiornalemag("mg4300", "");
_form->set_parametri(*_mask);
if (_form->can_be_printed())
_form->print();
else
error_box("Impossibile stampare il giornale dalla data indicata");
delete _form;
while (_mask->run() == K_ENTER )
{
if (_mask->magazz_ini().gestmag(TRUE))
{
_giorn_mag = new TGiornalemag("mg4300", "");
_giorn_mag->set_parametri(*_mask);
if (_giorn_mag->can_be_printed())
_giorn_mag->print();
else
error_box("Impossibile stampare il giornale dalla data indicata");
delete _giorn_mag;
}
} // while true
return TRUE;
return ;
}

@ -20,10 +20,9 @@ END
GENERAL
BEGIN
OFFSET 0 0
CARATTERE "X"
INIZIALE 5 2
FINALE 133
OFFSET 0 1
FONT "Courier New"
SIZE 10
END
SECTION HEADER ODD 5
@ -83,7 +82,7 @@ SECTION BODY ODD 2
MESSAGE RESET,3@
END
STRINGA 101 48
STRINGA 101 70
BEGIN
FLAGS "H"
PROMPT 1 1 ""
@ -101,7 +100,7 @@ SECTION BODY ODD 2
SECTION HEADER_RAGG_FISC 1 2 0 GROUP
STRINGA 100 78
BEGIN
PROMPT 1 1 "++"
PROMPT 1 1 ""
MESSAGE _USER,INFO_FISC|COPY,FF_CODTOT
END
STRINGA 102 12
@ -115,13 +114,13 @@ SECTION BODY ODD 2
SECTION RAGG_FISCALE 1 0 0 FILE LF_RMOVMAG GROUP FISC_FIELD
STRINGA 100 30
BEGIN
PROMPT 1 1 ">>>"
PROMPT 1 1 ""
MESSAGE _STREXPR,LF_RMOVMAG->NUMREG+LF_RMOVMAG->CODART+"/"+LF_RMOVMAG->LIVGIAC+":"+LF_RMOVMAG->CODMAG
MESSAGE _USER,REGISTRASTAMPA
END
STRINGA 100 10
BEGIN
PROMPT 31 1 ">>>"
PROMPT 31 1 ""
FIELD LF_MOVMAG->DATAREG
END
STRINGA 101 12
@ -164,7 +163,7 @@ SECTION BODY ODD 2
STRINGA 101 30
BEGIN
PROMPT 10 1 "Causale: "
FIELD ALIAS_CAUSALI@->CODTAB
FIELD LF_MOVMAG->CODCAUS // == FIELD ALIAS_CAUSALI@->CODTAB
END
STRINGA 101 30
BEGIN
@ -231,7 +230,7 @@ SECTION BODY ODD 2
END // RAGG CRONOLOGICO
END // BODY: CICLO MOV
SECTION FOOTER ODD 2
SECTION FOOTER ODD 4
STRINGA 100
BEGIN
KEY "NUMP"
@ -242,9 +241,10 @@ SECTION FOOTER ODD 2
BEGIN
KEY "NUMPAGE"
PROMPT 50 2 ""
MESSAGE _USER,PAGENO
MESSAGE _PAGENO
PICTURE "-###-"
END
END

@ -9,16 +9,16 @@ END
NUMBER F_ANNOES 4
BEGIN
FLAGS "A"
FLAGS "A"
PROMPT 2 1 "Codice es. "
USE REG SELECT I0=6
INPUT CODTAB[1,4] F_ANNOES
INPUT CODTAB[5,7] F_CODREG
DISPLAY "Esercizio" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
OUTPUT F_ANNOES CODTAB[1,4]
OUTPUT F_CODREG CODTAB[5,7]
ADD NONE
USE ESC
INPUT CODTAB F_ANNOES
DISPLAY "Esercizio" CODTAB
DISPLAY "Dal@12" D0
DISPLAY "Al@12" D1
OUTPUT F_ANNOES CODTAB
ADD NONE
CHECKTYPE NORMAL
END
STRING F_CODREG 3

@ -34,7 +34,7 @@ Caption = "Tabelle vendita"
Picture = <mg00.bmp>
Module = 0
Flags = ""
Item_01 = "Categorie vendita", "ba3 -0 CVE", ""
Item_01 = "Categorie vendita", "ba3 -0 CVE", "F"
Item_02 = "Note cliente", "ba3 -0 %NOT", ""
Item_03 = "Note documento", "ba3 -0 %NDO", ""
Item_04 = "Modalita' di spedizione", "ba3 -0 %MSP", ""
@ -42,10 +42,10 @@ Item_05 = "Modalita' di consegna", "ba3 -0 %POR", ""
Item_06 = "Causali di trasporto", "ba3 -0 %CTR", ""
Item_07 = "Aspetto dei beni", "ba3 -0 %ABE", ""
Item_08 = "Vettori", "ba3 -0 %VET", ""
Item_09 = "Spese", "ba3 -0 SPP", ""
Item_10 = "Prestazioni", "ba3 -0 PRS", ""
Item_11 = "Banche di presentazione", "ef0 -6 BNP", ""
Item_12 = "Zone", "ba3 -0 ZON", ""
Item_09 = "Spese", "ba3 -0 SPP", "F"
Item_10 = "Prestazioni", "ba3 -0 PRS", "F"
Item_11 = "Banche di presentazione", "ef0 -6 BNP", "F"
Item_12 = "Zone", "ba3 -0 ZON", "F"
[MGAREA_005]
Caption = "Tabelle contabili"
@ -55,32 +55,33 @@ Flags = ""
Item_01 = "Codici IVA", "ba3 -0 %iva", ""
Item_02 = "Condizioni pagamento", "ba3 -6", ""
Item_03 = "Classificazione pagamento", "ba3 -0 %CLR", ""
Item_05 = "Categorie contabili C/F", "ba3 -0 CCO", ""
Item_05 = "Categorie contabili C/F", "ba3 -0 CCO", "F"
Item_06 = "Banche", "ba3 -0 %BAN", ""
Item_07 = "Legali", "ba3 -0 %LEG", ""
Item_08 = "Nazioni", "ba3 -0 %STA", ""
Item_09 = "Lingue", "ba3 -0 %LNG", ""
Item_10 = "Divise", "ba3 -0 %VAL", ""
Item_11 = "Cambi giornalieri", "ba3 -0 CAM", ""
Item_12 = "Esercizi", "cg0 -5 esc", ""
Item_11 = "Cambi giornalieri", "ba3 -0 CAM", "F"
Item_12 = "Esercizi", "cg0 -5 esc", "F"
Item_13 = "Registri", "ba3 -0 REG","F"
[MGAREA_006]
Caption = "Tabelle magazzino"
Picture = <mg00.bmp>
Module = 0
Flags = ""
Item_01 = "Gruppi merceologici", "ba3 -0 GMC", ""
Item_02 = "Magazzini e depositi", "ba3 -0 MAG", ""
Item_01 = "Gruppi merceologici", "ba3 -0 GMC", "F"
Item_02 = "Magazzini e depositi", "ba3 -0 MAG", "F"
Item_03 = "Unita' di misura", "ba3 -0 %UMS", ""
Item_04 = "Province d'origine", "ba3 -0 %PRV", ""
Item_05 = "Classi fiscali articoli", "ba3 -0 ASF", ""
Item_06 = "Categorie ricavi articoli", "ba3 -0 CRA", ""
Item_07 = "Categorie acquisti articoli", "ba3 -0 CAA", ""
Item_08 = "Raggrupp. fiscali articoli", "ba3 -0 RFA", ""
Item_05 = "Classi fiscali articoli", "ba3 -0 ASF", "F"
Item_06 = "Categorie ricavi articoli", "ba3 -0 CRA", "F"
Item_07 = "Categorie acquisti articoli", "ba3 -0 CAA", "F"
Item_08 = "Raggrupp. fiscali articoli", "ba3 -0 RFA", "F"
Item_09 = "Raggruppamenti causali magazzino", "mg0 -0 %RFC", ""
Item_10 = "Causali magazzino", "mg0 -0 %CAU", ""
Item_11 = "Gruppi codice articoli", "mg0 -0 GCA", ""
Item_12 = "Gruppi codice giacenze", "mg0 -0 GCG", ""
Item_11 = "Gruppi codice articoli", "mg0 -0 GCA", "F"
Item_12 = "Gruppi codice giacenze", "mg0 -0 GCG", "F"
[MGAREA_007]
Caption = "Stampa tabelle"
@ -96,7 +97,7 @@ Caption = "Stampa tabelle vendita"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_01 = "Categorie vendita", "ba3 -1 CVE", ""
Item_01 = "Categorie vendita", "ba3 -1 CVE", "F"
Item_02 = "Note anagrafiche", "ba3 -1 %NOT", ""
Item_03 = "Note documento", "ba3 -1 %NDO", ""
Item_04 = "Modalita' di spedizione", "ba3 -1 %MSP", ""
@ -104,10 +105,10 @@ Item_05 = "Modalita' di consegna", "ba3 -1 %POR", ""
Item_06 = "Causali di trasporto", "ba3 -1 %CTR", ""
Item_07 = "Aspetto dei beni", "ba3 -1 %ABE", ""
Item_08 = "Vettori", "ba3 -1 %VET", ""
Item_09 = "Spese", "ba3 -1 SPP", ""
Item_10 = "Prestazioni", "ba3 -1 PRS", ""
Item_11 = "Banche di presentazione", "ba3 -1 BNP", ""
Item_12 = "Zone", "ba3 -1 ZON", ""
Item_09 = "Spese", "ba3 -1 SPP", "F"
Item_10 = "Prestazioni", "ba3 -1 PRS", "F"
Item_11 = "Banche di presentazione", "ba3 -1 BNP", "F"
Item_12 = "Zone", "ba3 -1 ZON", "F"
[MGAREA_010]
Caption = "Stampa tabelle contabili"
@ -116,69 +117,69 @@ Module = 0
Flags = ""
Item_01 = "Codici IVA", "ba3 -1 %iva", ""
Item_02 = "Condizioni pagamento", "ba3 -9", ""
Item_03 = "Classificazione pagamento", "ba3 -1 CLR", ""
Item_05 = "Categorie contabili C/F", "ba3 -1 CCO", ""
Item_03 = "Classificazione pagamento", "ba3 -1 CLR", "F"
Item_05 = "Categorie contabili C/F", "ba3 -1 CCO", "F"
Item_06 = "Banche", "ba3 -1 %ban", ""
Item_07 = "Legali", "ba3 -1 %LEG", ""
Item_08 = "Nazioni", "ba3 -1 %sta", ""
Item_09 = "Lingue", "ba3 -1 %lng", ""
Item_10 = "Divise", "ba3 -1 %val", ""
Item_11 = "Cambi giornalieri", "ba3 -1 CAM", ""
Item_12 = "Esercizi", "ba3 -1 esc", ""
Item_11 = "Cambi giornalieri", "ba3 -1 CAM", "F"
Item_12 = "Esercizi", "ba3 -1 esc", "F"
[MGAREA_011]
Caption = "Stampa tabelle magazzino"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_01 = "Gruppi merceologici", "ba3 -1 GMC", ""
Item_02 = "Magazzini e depositi", "ba3 -1 MAG", ""
Item_01 = "Gruppi merceologici", "ba3 -1 GMC", "F"
Item_02 = "Magazzini e depositi", "ba3 -1 MAG", "F"
Item_03 = "Unita' di misura", "ba3 -1 %UMS", ""
Item_04 = "Classi fiscali e articoli", "ba3 -1 ASF", ""
Item_05 = "Categorie ricavi articoli", "ba3 -1 CRA", ""
Item_06 = "Categorie acquisti articoli", "ba3 -1 CAA", ""
Item_07 = "Raggrupp. fiscali articoli", "ba3 -1 RFA", ""
Item_04 = "Classi fiscali e articoli", "ba3 -1 ASF", "F"
Item_05 = "Categorie ricavi articoli", "ba3 -1 CRA", "F"
Item_06 = "Categorie acquisti articoli", "ba3 -1 CAA", "F"
Item_07 = "Raggrupp. fiscali articoli", "ba3 -1 RFA", "F"
Item_08 = "Raggruppamenti causali magazzino", "ba3 -1 %RFC", ""
Item_09 = "Causali magazzino", "ba3 -1 %CAU", ""
Item_10 = "Formato e gruppi codice articoli", "mg0 -1 FCA", ""
Item_11 = "Formato e gruppi codice giacenze", "mg0 -1 FCG", ""
Item_10 = "Formato e gruppi codice articoli", "mg0 -1 FCA", "F"
Item_11 = "Formato e gruppi codice giacenze", "mg0 -1 FCG", "F"
[MGAREA_012]
Caption = "Gestione archivi di base"
Picture = <mg00.bmp>
Module = 0
Flags = ""
Item_01 = "Articoli", "ve2 -3", ""
Item_02 = "Listini", "ve2 -1 l", ""
Item_03 = "Contratti", "ve2 -1 c", ""
Item_04 = "Offerte", "ve2 -1 o", ""
Item_05 = "Sconti clienti", "ba3 -0 %SCC", ""
Item_06 = "Sconti incondizionati", "ve2 -0 i", ""
Item_07 = "Sconti di riga", "ve2 -0 r", ""
Item_01 = "Articoli", "ve2 -3", "F"
Item_02 = "Listini", "ve2 -1 l", "F"
Item_03 = "Contratti", "ve2 -1 c", "F"
Item_04 = "Offerte", "ve2 -1 o", "F"
Item_05 = "Sconti clienti", "ba3 -0 %SCC", "F"
Item_06 = "Sconti incondizionati", "ve2 -0 i", "F"
Item_07 = "Sconti di riga", "ve2 -0 r", "F"
Item_08 = "Clienti/Fornitori", "cg0 -1", "F"
Item_09 = "Agenti", "pr0 -4", ""
Item_09 = "Agenti", "pr0 -4", "F"
[MGAREA_013]
Caption = "Stampa archivi di base"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_01 = "Articoli", "ve3 -3", ""
Item_02 = "Listini", "ve3 -1 l", ""
Item_03 = "Contratti", "ve3 -1 c", ""
Item_04 = "Offerte", "ve3 -1 o", ""
Item_05 = "Sconti clienti", "ba3 -1 %SCC", ""
Item_06 = "Sconti incondizionati", "ve3 -0 i", ""
Item_07 = "Sconti di riga", "ve3 -0 r", ""
Item_01 = "Articoli", "ve3 -3", "F"
Item_02 = "Listini", "ve3 -1 l", "F"
Item_03 = "Contratti", "ve3 -1 c", "F"
Item_04 = "Offerte", "ve3 -1 o", "F"
Item_05 = "Sconti clienti", "ba3 -1 %SCC", "F"
Item_06 = "Sconti incondizionati", "ve3 -0 i", "F"
Item_07 = "Sconti di riga", "ve3 -0 r", "F"
Item_08 = "Clienti/Fornitori", "cg1 -1", "F"
Item_09 = "Agenti", "pr1 -0", ""
Item_09 = "Agenti", "pr1 -0", "F"
[MGAREA_019]
Caption = "Servizi"
Picture = <mg00.bmp>
Module = 0
Flags = ""
Item_09 = "Modifica valori", "ve4 -0", ""
Item_09 = "Modifica valori", "ve4 -0", "F"
[MGAREA_020]
Caption = "Configurazione"
@ -186,21 +187,21 @@ Picture = <ba04.bmp>
Module = 0
Flags = ""
Item_01 = "Magazzino", [MGAREA_022]
Item_02 = "Condizioni di vendita", "ve0 -2 -1", ""
Item_03 = "Agenti e dati generali", "ve0 -2 -2", ""
Item_04 = "Contabilizzazione sconti", "ve0 -2 -3", ""
Item_05 = "Contabilizzazione spese e bolli", "ve0 -2 -4", ""
Item_06 = "Contabilizzazione", "ve0 -2 -5", ""
Item_07 = "Gestione spese e bolli", "ve0 -2 -6", ""
Item_02 = "Condizioni di vendita", "ve0 -2 -1", "F"
Item_03 = "Agenti e dati generali", "ve0 -2 -2", "F"
Item_04 = "Contabilizzazione sconti", "ve0 -2 -3", "F"
Item_05 = "Contabilizzazione spese e bolli", "ve0 -2 -4", "F"
Item_06 = "Contabilizzazione", "ve0 -2 -5", "F"
Item_07 = "Gestione spese e bolli", "ve0 -2 -6", "F"
[MGAREA_022]
Caption = "Configurazione magazzino"
Picture = <ba04.bmp>
Module = 0
Flags = ""
Item_01 = "Parametri di magazzino", "mg0 -2 -1", ""
Item_02 = "Formato codice articoli", "mg0 -0 FCA", ""
Item_03 = "Formato codice giacenze", "mg0 -0 FCG", ""
Item_01 = "Parametri di magazzino", "mg0 -2 -1", "F"
Item_02 = "Formato codice articoli", "mg0 -0 FCA", "F"
Item_03 = "Formato codice giacenze", "mg0 -0 FCG", "F"

68
mg/mginst.ini Executable file

@ -0,0 +1,68 @@
[mg]
Data = 01-04-1998
Descrizione = Magazzino
Dischi = 1
Moduli = ba,ve9,cg9
Patch = 304
PostProcess =
PreProcess =
Prezzo(1) = 900,300
Versione = 19980102
[mg0]
File(0) = mg00.bmp
File(1) = mgarea.men
Patch = 304
Versione = 19980102
[mg1]
File(2) = bastfcg.msk
File(3) = batbfcg.msk
File(4) = batbgcg.msk
File(5) = batbubi.msk
File(6) = mg01.bmp
File(7) = mg1.exe
File(8) = mg1100.msk
File(9) = mg1200.msk
File(10) = mg1400.msk
File(11) = mg3.exe
File(12) = mg3100.msk
File(13) = mg3100a.frm
File(14) = mg3100b.frm
File(15) = mg3200.msk
File(16) = mg3200a.frm
File(17) = mg3200b.frm
File(18) = mg3300.msk
File(19) = mg3300a.frm
File(20) = mg3300b.frm
File(21) = mg3400.msk
File(22) = mg3400a.frm
File(23) = mg3400b.frm
File(24) = mg3500.frm
File(25) = mg3500.msk
File(26) = mg4.exe
File(27) = mg4100.frm
File(28) = mg4100.msk
File(29) = mg4200.msk
File(30) = mg4200a.frm
File(31) = mg4200b.frm
File(32) = mg4300.frm
File(33) = mg4300.msk
File(34) = mgprassi.men
File(35) = tab_fcg.frm
Patch = 304
Versione = 19980102
[mg9]
File(36) = recdesc\f109.dir
File(37) = recdesc\f109.trr
File(38) = recdesc\f110.dir
File(39) = recdesc\f110.trr
File(40) = recdesc\f111.dir
File(41) = recdesc\f111.trr
File(42) = recdesc\f114.dir
File(43) = recdesc\f114.trr
File(44) = mgprassi.hlp|X
Patch = 304
Versione = 19980102

@ -290,27 +290,31 @@ public:
// classe che incapsula tutti i magazzini
class TMagazzini : public TRecord_cache
{
long _last_firm;
TString16 _stdmag;
TString16 _stddep;
TConfig _mgconfig;
TConfig *_mgconfig;
bool _gestmag ;
bool _gestdep ;
char _gestubi ;
bool _gestmultimag;
private:
void init();
void test_firm() const;
public:
const TString & standardmag() const
{ return _stdmag;}
{test_firm() ; return _stdmag;}
const TString & standarddep() const
{ return _stddep;}
bool gestmag() const
{return ((TMagazzini *) this)->_mgconfig.get_bool("GESMAG");}
bool gestdep() const
{return ((TMagazzini *) this)->_mgconfig.get_bool("GESDEPOSITI");}
bool gestubi_man() const
{return ((TMagazzini *) this)->_mgconfig.get("GESUBICAZ")=="M";}
bool gestubi_tab() const
{return ((TMagazzini *) this)->_mgconfig.get("GESUBICAZ")=="T";}
bool gestmultimag() const
{return ((TMagazzini *) this)->_mgconfig.get_bool("GESMULTIMAG");}
{test_firm() ; return _stddep;}
bool gestmag(bool verbose=FALSE) const ;
bool gestdep() const ;
bool gestubi_man() const ;
bool gestubi_tab() const ;
bool gestmultimag() const ;
TMagazzini();
virtual ~TMagazzini() {}
virtual ~TMagazzini();
};
@ -439,10 +443,13 @@ class TForm_stampemg : public TForm
bool setdettaglio(bool show, int fromlivart,int livart,int fromlivgiac,int livgiac,bool dettgiac);
void add_giaclev(TString &levname);
public:
TCodart_livelli * _artlev;
TCodgiac_livelli * _giaclev;
public:
TCodart_livelli & artlev() {return *_artlev;}
TCodgiac_livelli & giaclev(){return *_giaclev;}
public:
void gruppogiac(TForm_item &cf, TToken_string &s);
void gruppoart(TForm_item &cf, TToken_string &s);
@ -454,6 +461,23 @@ public:
virtual ~TForm_stampemg();
};
class TStampemg_mask: public TMask
{
TCodgiac_livelli _giaclev;
TCodart_livelli _artlev;
TMagazzini _magazz_ini;
public:
TCodgiac_livelli &giaclev() {return _giaclev;}
TCodart_livelli &artlev() {return _artlev;}
TMagazzini & magazz_ini() {return _magazz_ini;}
TStampemg_mask(const char * name) : TMask(name){}
virtual ~TStampemg_mask(){}
};
class TCondizione_vendita : public TObject
{
TString80 _sconto;

@ -745,10 +745,9 @@ TString TCodice_livelli::build_tabcode(const TString & pc, const int levnum) con
TString valore;
valore << levnum;
valore << unpack_grpcode(pc,levnum);
if (_lev_enabled && valore.len()>1)
return valore;
else
return "";
if (!(_lev_enabled && valore.len()>1))
valore.cut(0);
return valore;
}
@ -823,10 +822,29 @@ TCodgiac_livelli::TCodgiac_livelli()
TMagazzini::TMagazzini() :
TRecord_cache("MAG") , _stdmag(""), _mgconfig(CONFIG_DITTA, "mg")
TRecord_cache("MAG") , _mgconfig(NULL),_last_firm(-1)
{
init();
}
TMagazzini::~TMagazzini()
{
if (_mgconfig) delete _mgconfig;
}
void TMagazzini::init()
{
if (_mgconfig) delete _mgconfig;
_mgconfig = new TConfig(CONFIG_DITTA, "mg");
_gestmag=_mgconfig->get_bool("GESMAG");
_gestdep=_gestmag && _mgconfig->get_bool("GESDEPOSITI");
_gestmultimag=_gestmag && _mgconfig->get_bool("GESMULTIMAG");
_gestubi=_mgconfig->get_char("GESUBICAZ");
TTable mag("MAG");
mag.first();
// look for standard mag & dep
while (!mag.eof() && !mag.get_bool("B1"))
mag.next();
if (!mag.eof())
@ -835,5 +853,40 @@ TMagazzini::TMagazzini() :
_stdmag = codtab.left(3);
_stddep = codtab.mid(3);
}
else
_stdmag.cut(0);
_last_firm = prefix().get_codditta();
}
void TMagazzini::test_firm() const
{
long firm = prefix().get_codditta();
if (firm > 0 && firm != _last_firm)
((TMagazzini *)this)->init();
}
bool TMagazzini::gestmag(bool verbose) const
{
test_firm() ;
if (!_gestmag && verbose)
warning_box("La ditta corrente non gestisce il magazzino");
return _gestmag;
}
bool TMagazzini::gestdep() const
{
test_firm() ; return _gestdep;
}
bool TMagazzini::gestubi_man() const
{
test_firm() ; return _gestubi=='M';
}
bool TMagazzini::gestubi_tab() const
{
test_firm() ; return _gestubi=='T';
}
bool TMagazzini::gestmultimag() const
{
test_firm() ; return _gestmultimag;
}

@ -145,29 +145,38 @@ bool TForm_stampemg::setdett_permag(int fromlivart,int livart,int fromlivgiac,in
find_field('B',odd_page,"TOT_MAGAZZINO").show(showmag);
find_field('B',odd_page,"H_DEPOSITO").show(showdep && showdett);
find_field('B',odd_page,"TOT_DEPOSITO").show(showdep);
if (livgiac==0)
livgiac = _giaclev->last_level();
return setdettaglio(showdett,fromlivart,livart,fromlivgiac,livgiac,FALSE);
}
bool TForm_stampemg::setdettaglio(bool show, int fromlivart,int livart,int fromlivgiac,int livgiac,bool dettgiac)
{
const int last_artlev=_artlev->last_level();
const int last_giaclev=_giaclev->last_level();
const int tolivart =min(( livart ? livart :_artlev->last_level()) ,_artlev->last_level()-1) ;
const int tolivgiac=min((livgiac ? livgiac :_giaclev->last_level()),_giaclev->last_level()-1);
_fromlivart=fromlivart;
_fromlivgiac=fromlivgiac;
_tolivart=livart;
_tolivgiac=livgiac;
// ***********
int i, tolivart,tolivgiac;
// abilita le sezioni dei livelli di codice
TForm_subsection &s1=(TForm_subsection &)find_field('B',odd_page,"H_ARTICOLO");
TForm_subsection &s2=(TForm_subsection &)find_field('B',odd_page,"TOT_ARTICOLO");
if (fromlivgiac==0 && (livart==0 ||livart==_artlev->last_level())) {
s1.show(show && livart<_artlev->last_level() || dettgiac);
if (fromlivgiac==0 // non raggruppo a partire dai livelli di giacenza
&& (livart==0 ||livart==_artlev->last_level())) {
s1.show(show && dettgiac);
s2.show(show);
} else {
s1.hide();
s2.hide();
}
tolivart =min(( livart ? livart :_artlev->last_level()),_artlev->last_level()-1) ;
tolivgiac=livgiac ? livgiac :_giaclev->last_level();
int i;
for (i=1; i<=FORM_MAXARTLEV; i++)
{
TString sname("TOT_GART");

@ -20,29 +20,36 @@ Caption = "Movimenti di magazzino"
Picture = <mg01.bmp>
Module = 0
Flags = ""
Item_01 = "Gestione interattiva", "mg1 -0", ""
Item_02 = "Ricostruzione saldi", "mg1 -1", ""
Item_03 = "Lista di controllo", "mg4 -0", ""
Item_01 = "Gestione interattiva", "mg1 -0", "F"
Item_02 = "Ricostruzione saldi", "mg1 -1", "F"
Item_03 = "Lista di controllo", "mg4 -0", "F"
[PRASSIMG_064]
Caption = "Stampe"
Picture = <ba03.bmp>
Module = 0
Module = 32
Flags = ""
Item_01 = "Stampa anagrafica articoli", "ve3 -3", ""
Item_02 = "Stampa giacenza e prezzi", "mg3 -0", ""
Item_03 = "Stampa disponibilita'", "mg3 -1", ""
Item_04 = "Stampa schede", "mg3 -2", ""
Item_05 = "Stampa storico rimanenze", "mg3 -4", ""
Item_06 = "Stampa inventario", "mg4 -1", ""
Item_07 = "Stampa libro giornale", "mg4 -2", ""
Item_01 = "Stampa anagrafica articoli", "ve3 -3", "F"
Item_02 = "Stampa giacenza e prezzi", "mg3 -0", "F"
Item_03 = "Stampa disponibilita'", "mg3 -1", "F"
Item_04 = "Stampa schede", "mg3 -2", "F"
Item_05 = "Stampa storico rimanenze", "mg3 -4", "F"
Item_06 = "Stampa inventario", "mg4 -1", "F"
Item_07 = "Stampa libro giornale", "mg4 -2", "F"
[PRASSIMG_070]
Caption = "Servizi modulo magazzino"
Picture = <mg01.bmp>
Module = 32
Flags = ""
Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F"
[PRASSIMG_099]
Caption = "Configurazione magazzino"
Picture = <ba04.bmp>
Module = 0
Flags = ""
Item_01 = "Parametri di magazzino", "mg0 -2 -1", ""
Item_02 = "Formato codice articoli", "mg0 -0 FCA", ""
Item_03 = "Formato codice giacenze", "mg0 -0 FCG", ""
Item_01 = "Parametri di magazzino", "mg0 -2 -1", "F"
Item_02 = "Formato codice articoli", "mg0 -0 FCA", "F"
Item_03 = "Formato codice giacenze", "mg0 -0 FCG", "F"