Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :aggiunto programma (NON funzionante) delle giacenze x clifo git-svn-id: svn://10.65.10.50/trunk@17159 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2f7298aee1
commit
0583ccc840
@ -2,11 +2,11 @@
|
||||
49
|
||||
TIPOCF|1|1|0|Tipo <C>liente <F>ornitore
|
||||
CODCF|3|6|0|Codice Cliente Fornitore
|
||||
ANNOES|1|4|0|Codice esercizio
|
||||
INDSPED|2|3|0|Codice indirizzo di spedizione
|
||||
CODART|1|20|0|Codice articolo
|
||||
LIVELLO|1|15|0|Livello di magazzino
|
||||
NRIGA|2|3|0|-numero riga per sheet anagrafica-
|
||||
ANNOES|1|4|0|Codice esercizio
|
||||
DATARIF|5|8|0|Data di riferimento
|
||||
UBICAZ|1|12|0|Codice ubicazione
|
||||
RIM|4|15|5|Rimanenze iniziali
|
||||
@ -50,5 +50,5 @@ USERVAL5|4|18|3|valore
|
||||
USER6|4|15|5|campo definito dall'utente
|
||||
USERVAL6|4|18|3|valore
|
||||
2
|
||||
TIPOCF+CODCF+INDSPED+ANNOES+CODART+NRIGA|
|
||||
TIPOCF+CODCF+INDSPED+ANNOES+CODMAG+CODART+LIVELLO|X
|
||||
TIPOCF+CODCF+ANNOES+INDSPED+CODART+LIVELLO+NRIGA|
|
||||
TIPOCF+CODCF+ANNOES+INDSPED+CODART+LIVELLO|X
|
||||
|
@ -8,7 +8,8 @@ int main(int argc, char** argv)
|
||||
switch (r)
|
||||
{
|
||||
case 1: mg0200(argc,argv); break; // stampa tabelle
|
||||
case 2: mg0300(argc,argv); break; // configurazione mag
|
||||
case 2: mg0300(argc,argv); break; // configurazione mag
|
||||
case 3: mg0400(argc,argv); break; // giacenze per cliente/fornitore
|
||||
default: mg0100(argc,argv); break; // gestione tabelle
|
||||
}
|
||||
exit(0);
|
||||
|
1
mg/mg0.h
1
mg/mg0.h
@ -4,5 +4,6 @@
|
||||
int mg0100(int argc, char* argv[]);
|
||||
int mg0200(int argc, char* argv[]);
|
||||
int mg0300(int argc, char* argv[]);
|
||||
int mg0400(int argc, char* argv[]);
|
||||
|
||||
#endif // __MG0_H
|
||||
|
310
mg/mg0400.cpp
Executable file
310
mg/mg0400.cpp
Executable file
@ -0,0 +1,310 @@
|
||||
#include <modaut.h>
|
||||
#include <relapp.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include "mg0400a.h"
|
||||
|
||||
//---------------------------------------------------
|
||||
// MASCHERA
|
||||
//---------------------------------------------------
|
||||
class TClifo_giac_mask : public TMask
|
||||
{
|
||||
TRelation* _rel; // relazione principale
|
||||
|
||||
TCodgiac_livelli* livelli_giac;// oggetto handler per i livelli di giacenza
|
||||
TCodart_livelli* livelli_art;// oggetto handler per i livelli di anagraficca
|
||||
int last_annogiac;
|
||||
|
||||
TString4 _um_principale;
|
||||
TMagazzini *_magazzini;
|
||||
TEsercizi_contabili *_esercizi_contabili;
|
||||
|
||||
static bool notify_sheet_giac(TSheet_field & s, int r, KEY k); // notify delle giacenze
|
||||
static bool handle_sheet_giac_valgiac(TMask_field &, KEY); // handler
|
||||
static bool handle_autoinsert_livgiac(TMask_field &, KEY); // handler del campo
|
||||
|
||||
static void sheetgiac_get(TSheet_field &fld_righe, int item);
|
||||
static void sheetgiac_put(TSheet_field &fld_righe, int item);
|
||||
|
||||
public:
|
||||
void set_parametered_fields();
|
||||
void ricalcola_giacenze();
|
||||
|
||||
TCodart_livelli* get_livelli_art() const { return livelli_art; }
|
||||
TMagazzini& magazzini() { return *_magazzini; }
|
||||
TEsercizi_contabili &esercizi_contabili() { return *_esercizi_contabili; }
|
||||
|
||||
TClifo_giac_mask(TRelation * rel);
|
||||
virtual ~TClifo_giac_mask() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
bool TClifo_giac_mask::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
||||
{
|
||||
TClifo_giac_mask & m = (TClifo_giac_mask&)f.mask();
|
||||
|
||||
const bool gestmag = main_app().has_module(MGAUT) && m.magazzini().gestmag();
|
||||
if (gestmag)
|
||||
{
|
||||
switch (k)
|
||||
{
|
||||
case (K_ENTER): // fine modifica
|
||||
{
|
||||
real ck(f.cell(i,f.cid2index(F_RIM)));
|
||||
ck+=real(f.cell(i,f.cid2index(F_ACQ)));
|
||||
ck+=real(f.cell(i,f.cid2index(F_ENTR)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_VEN)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_USC)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_ACL)));
|
||||
ck+=real(f.cell(i,f.cid2index(F_INCL)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_INPRODF)));
|
||||
ck+=real(f.cell(i,f.cid2index(F_INPRODC)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_SCARTI)));
|
||||
ck-=real(f.cell(i,f.cid2index(F_GIAC)));
|
||||
|
||||
if (!ck.is_zero())
|
||||
{
|
||||
f.error_box("La giacenza deve essere pari a RIM+(ACQ+ENTR)-(VEN+USC)-(ACL-INCL)-(PRODF-PRODC) - SCARTI)");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} //if(gestmag...
|
||||
|
||||
//campi presi da altri campi della maschera per..
|
||||
//..essere visualizzati nella pag. giacenze
|
||||
if (k == K_TAB)
|
||||
{
|
||||
TMask& sm = f.sheet_mask(); //maschera delle giacenze
|
||||
|
||||
if (sm.field(F_LIV1).hidden()) //l'articolo appare solo se mancano i livelli di giacenza senno'..
|
||||
{ //..si sovrappongono
|
||||
sm.show(F_CODARTR);
|
||||
sm.show(F_DESCRR);
|
||||
sm.set(F_CODARTR, m.get(F_CODART));
|
||||
sm.set(F_DESCRR, m.get(F_DESART));
|
||||
}
|
||||
else
|
||||
{
|
||||
sm.hide(F_CODARTR);
|
||||
sm.hide(F_DESCRR);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool TClifo_giac_mask::handle_sheet_giac_valgiac(TMask_field &f, KEY k)
|
||||
{
|
||||
if (k==K_TAB && f.dirty())
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
real q=m.get_real(F_RIM)+m.get_real(F_ACQ);
|
||||
if (q.is_zero())
|
||||
f.set(q.string());
|
||||
else
|
||||
{
|
||||
q=(m.get_real(F_VRIM)+m.get_real(F_VACQ))/q;
|
||||
TPrice r(q);
|
||||
f.set(r.get_num().string());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TClifo_giac_mask::handle_autoinsert_livgiac(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k == K_TAB && fld.focusdirty() && !fld.empty())
|
||||
{
|
||||
TClifo_giac_mask & mask = (TClifo_giac_mask&)fld.mask().get_sheet()->mask();
|
||||
const int levnum=fld.dlg()-F_LIV1+1;
|
||||
return mask.livelli_giac->autoinsert(levnum, fld);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void TClifo_giac_mask::sheetgiac_get(TSheet_field &fld_righe, int item)
|
||||
{
|
||||
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
||||
// prende il record della riga corrente dal record array
|
||||
TRectype &rec= fld_righe.record()->row(item, TRUE);
|
||||
TToken_string &row= fld_righe.row(item-1);
|
||||
// codici di livello
|
||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,1),fld_righe.cid2index(F_LIV1) );
|
||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,2),fld_righe.cid2index(F_LIV2) );
|
||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,3),fld_righe.cid2index(F_LIV3) );
|
||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,4),fld_righe.cid2index(F_LIV4) );
|
||||
}
|
||||
|
||||
|
||||
// item varies from 1 to items()
|
||||
void TClifo_giac_mask::sheetgiac_put(TSheet_field &fld_righe, int item)
|
||||
{
|
||||
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
||||
TToken_string &row= fld_righe.row(item-1);
|
||||
|
||||
TRectype &recrighe= fld_righe.record()->row(item, TRUE);
|
||||
// codici livello
|
||||
if (m.livelli_giac->enabled()) {
|
||||
TString16 packedcode;
|
||||
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV1)),1);
|
||||
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV2)),2);
|
||||
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV3)),3);
|
||||
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV4)),4);
|
||||
recrighe.put("LIVELLO", packedcode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TClifo_giac_mask::set_parametered_fields()
|
||||
{
|
||||
// abilitazioni parametriche
|
||||
if (livelli_giac)
|
||||
delete livelli_giac;
|
||||
if (livelli_art)
|
||||
delete livelli_art;
|
||||
if (_esercizi_contabili)
|
||||
delete _esercizi_contabili;
|
||||
if (_magazzini)
|
||||
delete _magazzini;
|
||||
|
||||
_esercizi_contabili = new TEsercizi_contabili;
|
||||
_magazzini = new TMagazzini;
|
||||
|
||||
// imposta il puntatore al gestore livelli giacenze
|
||||
livelli_giac= new TCodgiac_livelli();
|
||||
livelli_art= new TCodart_livelli();
|
||||
// imposta il valore dell'anno per le giacenze
|
||||
last_annogiac = -1;
|
||||
|
||||
// Abilita la pagina delle giacenze
|
||||
const bool gestmag = main_app().has_module(MGAUT) && magazzini().gestmag();
|
||||
|
||||
// sheet giacenze
|
||||
TSheet_field& sgiac = sfield(F_SHEETGIAC);
|
||||
sgiac.set_userget(sheetgiac_get);
|
||||
sgiac.set_userput(sheetgiac_put);
|
||||
sgiac.sheet_mask().set_handler(F_VALGIAC, handle_sheet_giac_valgiac);
|
||||
|
||||
// setta i campi della maschera per la pagina giacenze
|
||||
TSheet_field &fld_giac = sfield(F_SHEETGIAC);
|
||||
fld_giac.set_notify(notify_sheet_giac);
|
||||
|
||||
// disabilita le colonne quando non sono utilizzati i livelli di giacenza
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
livelli_giac->set_sheetcolumn(fld_giac,F_LIV1+i,i+1);
|
||||
if (livelli_giac->autoinsert(i+1))
|
||||
{
|
||||
// codice autoinseribile
|
||||
TMask_field & campo_liv = fld_giac.sheet_mask().field(F_LIV1+i);
|
||||
|
||||
campo_liv.check_type(CHECK_SEARCH);
|
||||
campo_liv.set_handler(gestmag ? handle_autoinsert_livgiac : NULL);
|
||||
}
|
||||
}
|
||||
|
||||
// abilita la gestione delle ubicazioni (manuale/su tabella)
|
||||
const bool ubi = gestmag && magazzini().gestubi_man();
|
||||
fld_giac.sheet_mask().field(F_UBICAZ).show(!ubi);
|
||||
fld_giac.sheet_mask().field(F_UBICAZD).show(!ubi);
|
||||
fld_giac.sheet_mask().field(F_UBICAZ2).show(ubi);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// costruttore della maschera anagrafica di magazzino
|
||||
TClifo_giac_mask::TClifo_giac_mask(TRelation * rel) : TMask("mg0400")
|
||||
{
|
||||
_rel = rel;
|
||||
|
||||
livelli_giac = NULL;
|
||||
livelli_art = NULL;
|
||||
_esercizi_contabili = NULL;
|
||||
_magazzini = NULL;
|
||||
|
||||
set_parametered_fields();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// APPLICAZIONE
|
||||
//--------------------------------------------
|
||||
class TClifo_giac : public TRelation_application
|
||||
{
|
||||
TClifo_giac_mask *_msk; // maschera principale
|
||||
TRelation *_rel; // relazione principale di un solo file clifogiac
|
||||
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask *get_mask(int) { return _msk; }
|
||||
|
||||
virtual int read(TMask& m);
|
||||
virtual bool remove();
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
|
||||
public:
|
||||
virtual TRelation *get_relation() const { return _rel; }
|
||||
TClifo_giac() { _rel = NULL; _msk = NULL;}
|
||||
virtual ~TClifo_giac() {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
int TClifo_giac::read(TMask& m)
|
||||
{
|
||||
int err = TRelation_application::read(m);
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TClifo_giac::remove()
|
||||
{
|
||||
bool ok = TRelation_application::remove();
|
||||
return ok;
|
||||
}
|
||||
|
||||
int TClifo_giac::write(const TMask& m)
|
||||
{
|
||||
int err = TRelation_application::write(m);
|
||||
return err;
|
||||
}
|
||||
|
||||
int TClifo_giac::rewrite(const TMask& m)
|
||||
{
|
||||
int err = TRelation_application::rewrite(m);
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TClifo_giac::user_create()
|
||||
{
|
||||
_rel = new TRelation(LF_CLIFOGIAC);
|
||||
|
||||
_msk = new TClifo_giac_mask(_rel);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TClifo_giac::user_destroy()
|
||||
{
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int mg0400(int argc, char* argv[])
|
||||
{
|
||||
TClifo_giac a;
|
||||
a.run(argc, argv, "Giacenze per Clienti/Fornitori");
|
||||
return 0;
|
||||
}
|
61
mg/mg0400a.h
Executable file
61
mg/mg0400a.h
Executable file
@ -0,0 +1,61 @@
|
||||
//campi maschera mg0400a.uml; lo sheet ha la sua maschera nella mg0400b
|
||||
#define F_TIPOCF 301
|
||||
#define F_CODCF 302
|
||||
#define F_RAGSOC 303
|
||||
#define F_CODART 305
|
||||
#define F_DESART 306
|
||||
#define F_ANNOES 307
|
||||
#define F_SHEETGIAC 309
|
||||
|
||||
|
||||
// colonne visibili dello Sheet di mg0400a
|
||||
#define F_INDSPED 101
|
||||
#define F_LIV1 102
|
||||
#define F_LIV2 103
|
||||
#define F_LIV3 104
|
||||
#define F_LIV4 105
|
||||
#define F_CAZZO 106
|
||||
#define F_UBICAZ 107
|
||||
#define F_LIVRIOR 108
|
||||
#define F_SCORTAMIN 109
|
||||
#define F_LOTTORIOR 110
|
||||
#define F_LOTTOIRIOR 111
|
||||
#define F_GIORNIRIOR 112
|
||||
#define F_GIAC 113
|
||||
#define F_VALGIAC 114
|
||||
#define F_RIM 115
|
||||
#define F_VRIM 116
|
||||
#define F_ACQ 117
|
||||
#define F_VACQ 118
|
||||
#define F_ENTR 119
|
||||
#define F_VENTR 120
|
||||
#define F_VEN 121
|
||||
#define F_VVEN 122
|
||||
#define F_USC 123
|
||||
#define F_VUSC 124
|
||||
#define F_ORDF 125
|
||||
#define F_VORDF 126
|
||||
#define F_ORDC 127
|
||||
#define F_VORDC 128
|
||||
#define F_SCARTI 129
|
||||
#define F_VSCARTI 130
|
||||
#define F_INPRODC 131
|
||||
#define F_INPRODF 132
|
||||
#define F_ACL 133
|
||||
#define F_INCL 134
|
||||
#define F_LABELS 135
|
||||
#define F_NDIST 136
|
||||
|
||||
// colonne non visibili dello Sheet
|
||||
#define F_UBICAZD 154
|
||||
#define F_DESL1 155
|
||||
#define F_DESL2 156
|
||||
#define F_DESL3 157
|
||||
#define F_DESL4 158
|
||||
|
||||
// campi richiesti da quei rompicazzo di Xfirpo
|
||||
#define F_CODARTR 159
|
||||
#define F_DESCRR 160
|
||||
|
||||
// campi doppi
|
||||
#define F_UBICAZ2 207
|
480
mg/mg0400a.uml
Executable file
480
mg/mg0400a.uml
Executable file
@ -0,0 +1,480 @@
|
||||
#include "mg0400a.h"
|
||||
|
||||
TOOLBAR "Toolbar" 0 0 0 2
|
||||
#include <relapbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Giacenze per Cliente/Fornitore" 0 2 0 0
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bCliente/Fornitore"
|
||||
END
|
||||
|
||||
LIST F_TIPOCF 1 11
|
||||
BEGIN
|
||||
PROMPT 1 1 "Tipo "
|
||||
FLAGS "PG"
|
||||
ITEM "C|Clienti"
|
||||
ITEM "F|Fornitori"
|
||||
FIELD TIPOCF
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 22 1 "Codice "
|
||||
FLAGS "GR"
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice@6R" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT F_TIPOCF TIPOCF
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC[1,30]
|
||||
FIELD CODCF
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 30 28
|
||||
BEGIN
|
||||
PROMPT 40 1 "Descr. "
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT RAGSOC[1,30] F_RAGSOC
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice@R" CODCF
|
||||
COPY OUTPUT F_CODCF
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 4 "Articolo "
|
||||
FIELD LF_ANAMAG->CODART
|
||||
KEY 1
|
||||
FLAG "UG"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_CODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESART DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESART 50 41
|
||||
BEGIN
|
||||
PROMPT 34 4 ""
|
||||
FIELD LF_ANAMAG->DESCR
|
||||
KEY 2
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR F_DESART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_CODART CODART
|
||||
OUTPUT F_DESART DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_ANNOES 4
|
||||
BEGIN
|
||||
PROMPT 1 5 "Esercizio "
|
||||
FLAGS "UPZ"
|
||||
USE ESC
|
||||
INPUT CODTAB F_ANNOES
|
||||
DISPLAY "Codice@10" CODTAB
|
||||
DISPLAY "Dal@16" D0
|
||||
DISPLAY "Al@16" D1
|
||||
OUTPUT F_ANNOES CODTAB
|
||||
FIELD ANNOES
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -5 ESC
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEETGIAC 0 -2
|
||||
BEGIN
|
||||
PROMPT 0 6 "Giacenze"
|
||||
FLAGS "A"
|
||||
USE LF_MAG KEY NRIGA
|
||||
INPUT ANNOES F_ANNOES
|
||||
INPUT CODART F_CODART
|
||||
// la sequenza delle colonne livelliX è usata per ottenere
|
||||
// un ordinamento delle righe dello sheet: NON cambiarla
|
||||
ITEM "Ind.Sped."
|
||||
ITEM "Liv1@10"
|
||||
ITEM "Liv2@10"
|
||||
ITEM "Liv3@10"
|
||||
ITEM "Liv4@10"
|
||||
ITEM "Cazzone"
|
||||
ITEM "Livello rior.@10"
|
||||
ITEM "Scorta min.@10"
|
||||
ITEM "Lotto rior.@10"
|
||||
ITEM "Lotto incr.@10"
|
||||
ITEM "Giorni rior.@10"
|
||||
ITEM "Giacenza @10"
|
||||
ITEM "Val.Giac @12"
|
||||
ITEM "Rim.Iniz.@10"
|
||||
ITEM "V.Rim.Iniz.@12"
|
||||
ITEM "Acq.@10"
|
||||
ITEM "V.Acq.@12"
|
||||
ITEM "Entr.@10"
|
||||
ITEM "V.Entr.@12"
|
||||
ITEM "Ven.@10"
|
||||
ITEM "V.Ven.@12"
|
||||
ITEM "Uscito@10"
|
||||
ITEM "V.Uscito@12"
|
||||
ITEM "Ord.For.@10"
|
||||
ITEM "V.Ord.For.@12"
|
||||
ITEM "Ord.Cli.@10"
|
||||
ITEM "V.Ord.Cli.@12"
|
||||
ITEM "Scarti@10"
|
||||
ITEM "V.Scarti@12"
|
||||
ITEM "In Prod.Comp.@10"
|
||||
ITEM "In Prod.Fin.@10"
|
||||
ITEM "A conto L.@10"
|
||||
ITEM "In conto L.@10"
|
||||
ITEM "Etichette@10"
|
||||
ITEM "N.dist."
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
//////////////////////////////////
|
||||
// SHEET
|
||||
//////////////////////////////////
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Elimina"
|
||||
MESSAGE EXIT,K_DEL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Giacenze" -1 -1 80 23
|
||||
|
||||
NUMBER F_INDSPED 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice indirizzo spedizione "
|
||||
USE LF_INDSP KEY 1
|
||||
INPUT TIPOCF -F_TIPOCF SELECT
|
||||
INPUT CODCF -F_CODCF SELECT
|
||||
INPUT CODIND F_INDSPED
|
||||
DISPLAY "Tipo" TIPOCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Cod.Ind.Sped." CODIND
|
||||
DISPLAY "Indirizzo@30" INDIR
|
||||
DISPLAY "C.A.P." CAP
|
||||
OUTPUT F_INDSPED CODIND
|
||||
FIELD INDSPED
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
//Livelli giacenza
|
||||
STRING F_LIV1 10
|
||||
BEGIN
|
||||
// Non mettere FLAGS "D" perchè disabiliterebbe tutta la colonna
|
||||
FLAGS "U"
|
||||
PROMPT 2 2 "Livello 1 "
|
||||
USE GCG
|
||||
JOIN FCG ALIAS 500 INTO CODTAB==CODTAB[1,1]
|
||||
INPUT CODTAB[1,1] "1"
|
||||
INPUT CODTAB[2,11] F_LIV1
|
||||
DISPLAY "Livello@20" 500@->S0
|
||||
DISPLAY "Gruppo@10" CODTAB[2,20]
|
||||
DISPLAY "Descr.@30" S0
|
||||
OUTPUT F_LIV1 CODTAB[2,12]
|
||||
CHECKTYPE NORMAL
|
||||
|
||||
MESSAGE EMPTY CLEAR,F_LIV2|CLEAR,F_LIV3|CLEAR,F_LIV4
|
||||
MESSAGE ENABLE,F_LIV2
|
||||
END
|
||||
|
||||
STRING F_LIV2 10
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 40 2 "Livello 2 "
|
||||
USE GCG
|
||||
JOIN FCG ALIAS 500 INTO CODTAB==CODTAB[1,1]
|
||||
INPUT CODTAB[1,1] "2"
|
||||
INPUT CODTAB[2,12] F_LIV2
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV2 CODTAB[2,12]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CLEAR,F_LIV3|CLEAR,F_LIV4
|
||||
MESSAGE ENABLE,F_LIV3
|
||||
END
|
||||
|
||||
STRING F_LIV3 10
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 3 "Livello 3 "
|
||||
USE GCG
|
||||
JOIN FCG ALIAS 500 INTO CODTAB==CODTAB[1,1]
|
||||
INPUT CODTAB[1,1] "3"
|
||||
INPUT CODTAB[2,12] F_LIV3
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV3 CODTAB[2,12]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CLEAR,F_LIV4
|
||||
MESSAGE ENABLE,F_LIV4
|
||||
END
|
||||
|
||||
STRING F_LIV4 10
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 40 3 "Livello 4 "
|
||||
USE GCG
|
||||
JOIN FCG ALIAS 500 INTO CODTAB==CODTAB[1,1]
|
||||
INPUT CODTAB[1,1] "4"
|
||||
INPUT CODTAB[2,12] F_LIV4
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV4 CODTAB[2,12]
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CAZZO 2
|
||||
BEGIN
|
||||
PROMPT 60 60 ""
|
||||
END
|
||||
|
||||
// ubicazione introdotta da tabella ubicazioni
|
||||
STRING F_UBICAZ 10
|
||||
BEGIN
|
||||
PROMPT 2 4 "Ubicazione "
|
||||
FIELD UBICAZ
|
||||
USE UBI
|
||||
INPUT CODTAB F_UBICAZ
|
||||
DISPLAY "Codice" CODTAB[1,3]
|
||||
DISPLAY "Ubicazione@50 " S0
|
||||
OUTPUT F_UBICAZ CODTAB
|
||||
OUTPUT F_UBICAZD S0
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR (#F_UBICAZ[4,10]=="")
|
||||
END
|
||||
|
||||
// ubicazione introdotta direttamente o da tabella
|
||||
STRING F_UBICAZ2 10
|
||||
BEGIN
|
||||
PROMPT 2 4 "Ubicazione "
|
||||
FIELD UBICAZ
|
||||
END
|
||||
|
||||
STRING F_UBICAZD 20
|
||||
BEGIN
|
||||
PROMPT 27 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODARTR 20
|
||||
BEGIN
|
||||
PROMPT 2 21 "Articolo "
|
||||
FLAGS "UD"
|
||||
END
|
||||
|
||||
STRING F_DESCRR 50 45
|
||||
BEGIN
|
||||
PROMPT 33 21 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_LIVRIOR 10 3
|
||||
BEGIN
|
||||
PROMPT 2 5 "Livello di riordino "
|
||||
FIELD LIVRIOR
|
||||
END
|
||||
|
||||
NUMBER F_SCORTAMIN 10 3
|
||||
BEGIN
|
||||
PROMPT 35 5 "Scorta minima "
|
||||
FIELD SCORTAMIN
|
||||
END
|
||||
|
||||
NUMBER F_LOTTORIOR 10 3
|
||||
BEGIN
|
||||
PROMPT 2 6 "Lotto minimo "
|
||||
FIELD LOTTORIOR
|
||||
END
|
||||
|
||||
NUMBER F_LOTTOIRIOR 10 3
|
||||
BEGIN
|
||||
PROMPT 35 6 "Lotto increm. "
|
||||
FLAGS "U"
|
||||
FIELD LOTTOIRIOR
|
||||
END
|
||||
|
||||
NUMBER F_GIORNIRIOR 3
|
||||
BEGIN
|
||||
PROMPT 62 6 "Giorni "
|
||||
FLAGS "U"
|
||||
FIELD GIORNIRIOR
|
||||
END
|
||||
|
||||
NUMBER F_GIAC 15 5
|
||||
BEGIN
|
||||
PROMPT 2 7 "Giacenza attuale "
|
||||
FIELD GIAC
|
||||
MESSAGE CHECK,F_VALGIAC
|
||||
END
|
||||
|
||||
CURRENCY F_VALGIAC 15
|
||||
BEGIN
|
||||
FLAG "DG"
|
||||
PROMPT 46 7 "Costo m.p."
|
||||
END
|
||||
|
||||
NUMBER F_RIM 15 5
|
||||
BEGIN
|
||||
PROMPT 2 8 "Rimanenze iniziali "
|
||||
FIELD RIM
|
||||
MESSAGE CHECK,F_VALGIAC
|
||||
END
|
||||
|
||||
CURRENCY F_VRIM 18
|
||||
BEGIN
|
||||
PROMPT 46 8 "Valore "
|
||||
FIELD VALRIM
|
||||
MESSAGE CHECK,F_VALGIAC
|
||||
END
|
||||
|
||||
NUMBER F_ACQ 15 5
|
||||
BEGIN
|
||||
PROMPT 2 9 "Acquistato "
|
||||
FIELD ACQ
|
||||
MESSAGE CHECK,F_VALGIAC
|
||||
END
|
||||
|
||||
CURRENCY F_VACQ 18
|
||||
BEGIN
|
||||
PROMPT 46 9 "Valore "
|
||||
FIELD VALACQ
|
||||
MESSAGE CHECK,F_VALGIAC
|
||||
END
|
||||
|
||||
NUMBER F_ENTR 15 5
|
||||
BEGIN
|
||||
PROMPT 2 10 "Entrato "
|
||||
FIELD ENT
|
||||
END
|
||||
|
||||
CURRENCY F_VENTR 18
|
||||
BEGIN
|
||||
PROMPT 46 10 "Valore "
|
||||
FIELD VALENT
|
||||
END
|
||||
|
||||
NUMBER F_VEN 15 5
|
||||
BEGIN
|
||||
PROMPT 2 11 "Venduto "
|
||||
FIELD VEN
|
||||
END
|
||||
|
||||
CURRENCY F_VVEN 18
|
||||
BEGIN
|
||||
PROMPT 46 11 "Valore "
|
||||
FIELD VALVEN
|
||||
END
|
||||
|
||||
NUMBER F_USC 15 5
|
||||
BEGIN
|
||||
PROMPT 2 12 "Uscito "
|
||||
FIELD USC
|
||||
END
|
||||
|
||||
CURRENCY F_VUSC 18
|
||||
BEGIN
|
||||
PROMPT 46 12 "Valore "
|
||||
FIELD VALUSC
|
||||
END
|
||||
|
||||
NUMBER F_ORDF 15 5
|
||||
BEGIN
|
||||
PROMPT 2 13 "Ordinato fornitori "
|
||||
FIELD ORDF
|
||||
END
|
||||
|
||||
CURRENCY F_VORDF 18
|
||||
BEGIN
|
||||
PROMPT 46 13 "Valore "
|
||||
FIELD VALORDF
|
||||
END
|
||||
|
||||
NUMBER F_ORDC 15 5
|
||||
BEGIN
|
||||
PROMPT 2 14 "Ordinato clienti "
|
||||
FIELD ORDC
|
||||
END
|
||||
|
||||
CURRENCY F_VORDC 18
|
||||
BEGIN
|
||||
PROMPT 46 14 "Valore "
|
||||
FIELD VALORDC
|
||||
END
|
||||
|
||||
NUMBER F_SCARTI 15 5
|
||||
BEGIN
|
||||
PROMPT 2 15 "Scarti "
|
||||
FIELD SCARTI
|
||||
END
|
||||
|
||||
CURRENCY F_VSCARTI 18
|
||||
BEGIN
|
||||
PROMPT 46 15 "Valore "
|
||||
FIELD VALSCARTI
|
||||
END
|
||||
|
||||
NUMBER F_INPRODC 15 5
|
||||
BEGIN
|
||||
PROMPT 2 16 "In produzione (componenti) "
|
||||
FIELD PRODCOMP
|
||||
END
|
||||
|
||||
NUMBER F_INPRODF 15 5
|
||||
BEGIN
|
||||
PROMPT 2 17 "In produzione (finiti) "
|
||||
FIELD PRODFIN
|
||||
END
|
||||
|
||||
NUMBER F_ACL 15 5
|
||||
BEGIN
|
||||
PROMPT 2 18 "A conto lavorazione "
|
||||
FIELD ACL
|
||||
END
|
||||
|
||||
NUMBER F_INCL 15 5
|
||||
BEGIN
|
||||
PROMPT 2 19 "In conto lavorazione "
|
||||
FIELD INCL
|
||||
END
|
||||
|
||||
NUMBER F_LABELS 10
|
||||
BEGIN
|
||||
PROMPT 2 20 "Etichette da stampare "
|
||||
FIELD NLABEL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NDIST 15 5
|
||||
BEGIN
|
||||
PROMPT 42 20 "Distinte "
|
||||
FIELD NDIST
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user