Patch level : 2.0 496

Files correlati     : mg4.exe mg4200.msk mg4200a.frm
Ricompilazione Demo : [ ]
Commento            :

GF20041
Eseguendo la stampa dell'inventario con la spunta stampa totali livelli di
giacenza dal 1° al 1°livello (colore) il 2° livello sarebbe la taglia mi
segnala due righe di giacenza per il colore rosso di 100 e 200 pezzi qundo
invece mi aspettavo un'unica riga per 400 pz. (invio dati sui quali si può
esegure la verifica)


git-svn-id: svn://10.65.10.50/trunk@11235 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-06-12 13:49:45 +00:00
parent 2613e57dd1
commit 99c4035bb0
4 changed files with 56 additions and 47 deletions

View File

@ -19,14 +19,12 @@ TCursor* TForm_inventario::cursor() const
bool TForm_inventario::validate(TForm_item &cf, TToken_string &s) bool TForm_inventario::validate(TForm_item &cf, TToken_string &s)
{ {
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio const TString80 code = s.get(0); // prende il primo parametro, il codice del messaggio
TString subcode;
if (code=="_USER") if (code=="_USER")
{ {
TLocalisamfile & magfile=relation()->lfile(LF_MAG); const TRectype& magrec=relation()->curr(LF_MAG);
TRectype & magrec=magfile.curr(); const TString subcode=s.get();
subcode=s.get();
if (subcode=="GIAC") if (subcode=="GIAC")
{ {
real v=curr_art().giacenza_corretta(magrec, FALSE,_valcomp); real v=curr_art().giacenza_corretta(magrec, FALSE,_valcomp);
@ -84,7 +82,7 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s)
TArticolo_giacenza_loadable &TForm_inventario::curr_art() TArticolo_giacenza_loadable &TForm_inventario::curr_art()
{ {
TString80 newcode(relation()->lfile(LF_ANAMAG).curr().get(ANAMAG_CODART)); const TString80 newcode(relation()->curr(LF_ANAMAG).get(ANAMAG_CODART));
if (_curr_art==NULL || newcode != _curr_art->codice()) if (_curr_art==NULL || newcode != _curr_art->codice())
{ {
if (_curr_art) delete _curr_art; if (_curr_art) delete _curr_art;
@ -141,13 +139,13 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
v=curr_art().costo_standard(annoes); v=curr_art().costo_standard(annoes);
} }
if (t==valorizz_costmediopond) { if (t==valorizz_costmediopond) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().costo_mediopond(annoes,codmag,livello); v=curr_art().costo_mediopond(annoes,codmag,livello);
} }
if (t==valorizz_costmedio) { if (t==valorizz_costmedio) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().costo_medio(annoes,codmag,livello); v=curr_art().costo_medio(annoes,codmag,livello);
} }
// arrotonda le valorizzazioni a costo unitario // arrotonda le valorizzazioni a costo unitario
@ -156,23 +154,23 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
v = _currency->get_num(); v = _currency->get_num();
if (t==valorizz_LIFO) { if (t==valorizz_LIFO) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().LIFO(annoes,codmag,livello, FALSE,_valcomp); v=curr_art().LIFO(annoes,codmag,livello, FALSE,_valcomp);
} }
if (t==valorizz_FIFO) { if (t==valorizz_FIFO) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().FIFO(annoes,codmag,livello, FALSE,_valcomp); v=curr_art().FIFO(annoes,codmag,livello, FALSE,_valcomp);
} }
if (t==valorizz_LIFOa) { if (t==valorizz_LIFOa) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); TString codmag(magrec.get(MAG_CODMAG));codmag.left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().LIFO_annuale(annoes,codmag,livello, FALSE,_valcomp); v=curr_art().LIFO_annuale(annoes,codmag,livello, FALSE,_valcomp);
} }
if (t==valorizz_FIFOa) { if (t==valorizz_FIFOa) {
TString codmag(magrec.get(MAG_CODMAG));codmag.left(3); const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString livello(magrec.get(MAG_LIVELLO)); const TString80 livello(magrec.get(MAG_LIVELLO));
v=curr_art().FIFO_annuale(annoes,codmag,livello, FALSE,_valcomp); v=curr_art().FIFO_annuale(annoes,codmag,livello, FALSE,_valcomp);
} }
const real giac_corretta = curr_art().giacenza_corretta(magrec, FALSE,_valcomp); const real giac_corretta = curr_art().giacenza_corretta(magrec, FALSE,_valcomp);
@ -683,14 +681,14 @@ void TStampa_inventario::setprint_permagazzini()
// ORDINAMENTO // ORDINAMENTO
void TStampa_inventario::setprint_perarticoli() void TStampa_inventario::setprint_perarticoli()
{ {
char subordine=*_mask->get(F_ORDINEART); char subordine=_mask->get(F_ORDINEART)[0];
TRectype darec(LF_MAG),arec(LF_MAG); TRectype darec(LF_MAG),arec(LF_MAG);
TString cfilter, espr1, espr2; TString cfilter, espr1, espr2;
_cur = _form->cursor(); _cur = _form->cursor();
// setta il filtro sul cursore // setta il filtro sul cursore
if (*_mask->get(F_FILTRO)=='N') if (_mask->get(F_FILTRO)[0]=='N')
cfilter << "(STR(GIAC!=\"0\"))&&" ; cfilter << "(STR(GIAC!=\"0\"))&&" ;
if (*_mask->get(F_FILTRO)=='+') if (_mask->get(F_FILTRO)[0]=='+')
cfilter << "(STR(GIAC>\"0\"))&&" ; cfilter << "(STR(GIAC>\"0\"))&&" ;
if (cfilter.not_empty()) if (cfilter.not_empty())
cfilter.rtrim(2); cfilter.rtrim(2);
@ -990,10 +988,9 @@ void TStampa_inventario::main_loop()
const bool b = _mask->get_bool(F_ALLADATA); const bool b = _mask->get_bool(F_ALLADATA);
const bool r = *_mask->get(F_REALE_GIAC)=='R'; const bool r = *_mask->get(F_REALE_GIAC)=='R';
if (_mask->get(F_ORDINE)[0]=='A')
if (*_mask->get(F_ORDINE)=='A')
{ {
if (*_mask->get(F_FILTRO)=='T') // tutti gli articoli if (_mask->get(F_FILTRO)[0]=='T') // tutti gli articoli
{ {
_form = new TForm_inventario("mg4200aa", ""); _form = new TForm_inventario("mg4200aa", "");
if (b && !calcola_giacenze(FALSE)) if (b && !calcola_giacenze(FALSE))

View File

@ -1,4 +1,19 @@
#include "mg4200.h" #include "mg4200.h"
TOOLBAR "Toolbar" 0 -3 0 3
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -11 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -11 ""
END
ENDPAGE
PAGE "Stampa inventario" -1 -1 78 20 PAGE "Stampa inventario" -1 -1 78 20
LISTBOX F_ORDINE 10 LISTBOX F_ORDINE 10
@ -10,7 +25,6 @@ BEGIN
MESSAGE " ",F_FILTRO|SHOW,F_TOTALIDEPOSITI|HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG MESSAGE " ",F_FILTRO|SHOW,F_TOTALIDEPOSITI|HIDE,F_TOTALIMAGAZZINI|HIDE,F_DETTAGLIOMAG
END END
LISTBOX F_ORDINEART 20 LISTBOX F_ORDINEART 20
BEGIN BEGIN
FLAGS "G" FLAGS "G"
@ -471,16 +485,6 @@ BEGIN
GROUP G_LISTINO GROUP G_LISTINO
END END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -11,18 +11,17 @@ END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
47->* "Anagrafica articoli" 47->* "Anagrafica articoli"
109->* "Archivio Giacenze" 109->* "Archivio Giacenze"
MAG->* "Tabella magazzini" MAG->* "Tabella magazzini"
49->* "Unità di misura articoli" 49->* "Unità di misura articoli"
END END
GENERAL GENERAL
BEGIN BEGIN
OFFSET 0 1 OFFSET 0 1
END END
SECTION GRAPHIC SECTION GRAPHIC
BEGIN BEGIN
END END
@ -39,7 +38,7 @@ END
STRINGA 2 10 STRINGA 2 10
BEGIN BEGIN
KEY "Data" KEY "Data"
PROMPT 120 1 "Data " PROMPT 110 1 "Data "
MESSAGE _TODAY MESSAGE _TODAY
END END
@ -53,7 +52,7 @@ END
NUMERO 4 32 NUMERO 4 32
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 45 2 "Stampa inventario esercizio " PROMPT 45 2 "@bStampa inventario esercizio "
MESSAGE _ANNO MESSAGE _ANNO
END END

View File

@ -358,11 +358,20 @@ bool TForm_stampemg::setdettaglio(bool show, int fromlivart,int livart,int froml
for (i=fromlivgiac;i<=tolivgiac ; i++) { for (i=fromlivgiac;i<=tolivgiac ; i++) {
if (livart==0) if (livart==0)
{ {
TString sname=("GRUPPI_LIVGIAC"); TString80 sname;
sname << i; sname << "GRUPPI_LIVGIAC" << i;
TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,sname); TForm_subsection &s=(TForm_subsection &)find_field('B',odd_page,sname);
TString cond(s.condition());
cond << "+LIVELLO[" << livelli_giacenza().packed_length(i-1)+1 << "," << livelli_giacenza().packed_length(i) <<']'; // ATTENZIONE, WARNING, ACHTUNG: Libera interpretazione
// cond finiva per essere CODART+CODART+LIVELLO+LIVELLO[1.6]+LIVELLO[7,8]
// cond ora vale "giustamente" CODART+LIVELLO[1,8]
// TString cond(s.condition()); // Augusto Mode
// cond << "+LIVELLO[" << livelli_giacenza().packed_length(i-1)+1 << "," << livelli_giacenza().packed_length(i) <<']';
TString cond = "CODART"; // Guy Mode
cond << "+LIVELLO[1," << livelli_giacenza().packed_length(i) <<']';
s.setcondition(cond,_strexpr); s.setcondition(cond,_strexpr);
} }
} }