Patch level : 10.0 patch 767

Files correlati     :  mg4.exe
Ricompilazione Demo : [ ]
Commento            :

Aggiunto filtro su codice articolo in stampa inventario raggruppata per gruppo merceologico (Dassi)

Stampa inventario filtrata per fornitore e stagione

Dalla versione 3.2


git-svn-id: svn://10.65.10.50/trunk@20591 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-06-21 14:04:36 +00:00
parent 809dff8729
commit d3d86c6cc4
6 changed files with 103 additions and 57 deletions

View File

@ -22,7 +22,7 @@ static const char* or_connect(TString & expr)
TCursor* TForm_inventario::cursor() const TCursor* TForm_inventario::cursor() const
{ {
if (_use_alternate_cursor) // Se e' settata la stampa per ragg. fisc ritorna il cursore appropriato if (_use_alternate_cursor) // Se e' settata la stampa per ragg. fisc ritorna il cursore appropriato
return (TCursor*)_sortcur; return _sortcur;
return TForm_stampemg::cursor(); return TForm_stampemg::cursor();
} }
@ -33,7 +33,7 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s)
if (code=="_USER") if (code=="_USER")
{ {
const TRectype& magrec=relation()->curr(LF_MAG); const TRectype& magrec=relation()->curr(LF_MAG);
const TString subcode=s.get(); const TFixed_string 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);
@ -110,9 +110,7 @@ void TForm_inventario::add_colval(int tipo)
_valorizz_scelte[_colonne++] = t; _valorizz_scelte[_colonne++] = t;
TString col; TString8 col; col << _colonne;
col << _colonne;
find_field('B',odd_page,FF_ENABLECOLS).set(col); find_field('B',odd_page,FF_ENABLECOLS).set(col);
// Accende le colonne per l'intestazione // Accende le colonne per l'intestazione
@ -299,7 +297,8 @@ TStampainv_mask::TStampainv_mask()
field(F_CATVENLISTINO).enable(prassid.get_bool("GESLISCV")); field(F_CATVENLISTINO).enable(prassid.get_bool("GESLISCV"));
else else
{ {
field(F_CATVENLISTINO).disable(); field(F_CODLISTINO).disable(); field(F_CATVENLISTINO).disable();
field(F_CODLISTINO).disable();
} }
if (prassid.get_bool("CHK_USER", "ve", 1)) if (prassid.get_bool("CHK_USER", "ve", 1))
@ -309,6 +308,13 @@ TStampainv_mask::TStampainv_mask()
show(F_DAUSR); show(F_AUSR); show(F_DAUSR); show(F_AUSR);
} }
if (!IsPeppeOk()) // Rimuovere quand'e' ora, non prima
{
hide(F_FORNITORE);
hide(F_DASTAGIONE);
hide(F_ASTAGIONE);
}
set_handler(F_TOLIVELLOART, handle_liv); set_handler(F_TOLIVELLOART, handle_liv);
set_handler(F_TOLIVELLOGIAC, handle_liv); set_handler(F_TOLIVELLOGIAC, handle_liv);
set_handler(F_ORDINE, handle_ragg); set_handler(F_ORDINE, handle_ragg);
@ -502,7 +508,6 @@ TIsamtempfile * TStampa_inventario::crea_tempmag(const bool valcomp)
delete temp_mag; delete temp_mag;
return NULL; return NULL;
} }
} }
TIsamtempfile* TStampa_inventario::calcola_giacenze(const bool giaceff, const bool valcomp, const TDate & al, const char subordine) TIsamtempfile* TStampa_inventario::calcola_giacenze(const bool giaceff, const bool valcomp, const TDate & al, const char subordine)
@ -605,17 +610,10 @@ void TStampa_inventario::setprint_permagazzini(const char subordine, const bool
// setta il filtro sul cursore // setta il filtro sul cursore
switch (filtro) switch (filtro)
{ {
case '0': case '0': cfilter = "(STR(GIAC!=\"0\"))"; break;
cfilter = "(STR(GIAC!=\"0\"))"; case 'N': cfilter = "(STR(GIAC<\"0\"))"; break; // negativi
break; case '+': cfilter = "(STR(GIAC>\"0\"))"; break;
case 'N': // negativi default : break;
cfilter << "(STR(GIAC<\"0\"))";
break;
case '+':
cfilter = "(STR(GIAC>\"0\"))";
break;
default:
break;
} }
if (m.get(F_DAART).full()) if (m.get(F_DAART).full())
@ -627,6 +625,11 @@ void TStampa_inventario::setprint_permagazzini(const char subordine, const bool
_form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,3]",_strexpr); _form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,3]",_strexpr);
else else
_form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,5]",_strexpr); _form->find_field('B',odd_page,"GRUPPI_DEPOSITO").setcondition("CODMAG[1,5]",_strexpr);
if (!m.field(F_FORNITORE).empty())
cfilter << and_connect(cfilter) << "(47->CODFORN==\"" << m.get(F_FORNITORE) << "\")" ;
if (!m.field(F_DASTAGIONE).empty() || !m.field(F_ASTAGIONE).empty())
cfilter << and_connect(cfilter) << "(BETWEEN(47->STAGIONE,\"" << m.get(F_DASTAGIONE) << "\",\"" << m.get(F_ASTAGIONE) <<"\"))" ;
switch (subordine) switch (subordine)
{ {
@ -778,19 +781,17 @@ void TStampa_inventario::setprint_perarticoli(const char subordine, const bool a
// setta il filtro sul cursore // setta il filtro sul cursore
switch (filtro) switch (filtro)
{ {
case '0': case '0': cfilter = "(STR(GIAC!=\"0\"))"; break;
cfilter = "(STR(GIAC!=\"0\"))"; case 'N': cfilter = "(STR(GIAC<\"0\"))"; break; // negativi
break; case '+': cfilter = "(STR(GIAC>\"0\"))"; break;
case 'N': // negativi default : break;
cfilter << "(STR(GIAC<\"0\"))";
break;
case '+':
cfilter = "(STR(GIAC>\"0\"))";
break;
default:
break;
} }
if (!m.field(F_FORNITORE).empty())
cfilter << and_connect(cfilter) << "(47->CODFORN==\"" << m.get(F_FORNITORE) << "\")" ;
if (!m.field(F_DASTAGIONE).empty() || !m.field(F_ASTAGIONE).empty())
cfilter << and_connect(cfilter) << "(BETWEEN(47->STAGIONE,\"" << m.get(F_DASTAGIONE) << "\",\"" << m.get(F_ASTAGIONE) <<"\"))" ;
switch (subordine) switch (subordine)
{ {
case 'C': case 'C':
@ -834,6 +835,11 @@ void TStampa_inventario::setprint_perarticoli(const char subordine, const bool a
_form->set_ordering(mg_cat_merc); _form->set_ordering(mg_cat_merc);
espr2.format("%d->GRMERC[1,3]", LF_ANAMAG); espr2.format("%d->GRMERC[1,3]", LF_ANAMAG);
_form->find_field('B',odd_page,"GRUPPI_CATMER").setcondition(espr2,_strexpr); _form->find_field('B',odd_page,"GRUPPI_CATMER").setcondition(espr2,_strexpr);
if (m.get(F_DAART).full())
cfilter << and_connect(cfilter) << "(CODART>=\"" << m.get(F_DAART) << "\")";
if (m.get(F_AART).full())
cfilter << and_connect(cfilter) << "(CODART<=\"" << m.get(F_AART) << "\")";
if (subordine == 'S') if (subordine == 'S')
{ {
@ -947,6 +953,11 @@ void TStampa_inventario::setprint_perarticoli_all(const char subordine, bool all
if (m.get(F_AMAG).full()) if (m.get(F_AMAG).full())
filter << and_connect(filter) << "(CODMAG[1,3]<=" <<'"' << m.get(F_AMAG)<< "\")" ; filter << and_connect(filter) << "(CODMAG[1,3]<=" <<'"' << m.get(F_AMAG)<< "\")" ;
if (!m.field(F_FORNITORE).empty())
cfilter << and_connect(cfilter) << "(CODFORN==\"" << m.get(F_FORNITORE) << "\")" ;
if (!m.field(F_DASTAGIONE).empty() || !m.field(F_ASTAGIONE).empty())
cfilter << and_connect(cfilter) << "(BETWEEN(STAGIONE,\"" << m.get(F_DASTAGIONE) << "\",\"" << m.get(F_ASTAGIONE) <<"\"))" ;
//m.set_livellicodice(); //m.set_livellicodice();
TString sortexp; TString sortexp;

View File

@ -19,6 +19,11 @@
#define F_ADES 112 #define F_ADES 112
#define F_VALMEDI 113 #define F_VALMEDI 113
#define F_STAMPAGIAC 114 #define F_STAMPAGIAC 114
#define F_FORNITORE 115
#define F_DASTAGIONE 116
#define F_ASTAGIONE 117
#define F_TOTALIMAGAZZINI 119 #define F_TOTALIMAGAZZINI 119
#define F_TOTALIDEPOSITI 120 #define F_TOTALIDEPOSITI 120

View File

@ -1,6 +1,6 @@
#include "mg4200.h" #include "mg4200.h"
TOOLBAR "" 0 0 0 2 TOOLBAR "Toolbar" 0 0 0 2
#include <printbar.h> #include <printbar.h>
@ -76,19 +76,9 @@ BEGIN
ITEM "T|tutti gli articoli" ITEM "T|tutti gli articoli"
END END
TEXT DLG_NULL
BEGIN
PROMPT 16 4 "@bDall'articolo"
END
TEXT DLG_NULL
BEGIN
PROMPT 50 4 "@bAll'articolo"
END
STRING F_DAART 20 STRING F_DAART 20
BEGIN BEGIN
PROMPT 2 5 "Codice " PROMPT 2 4 "@bDall'articolo "
FLAGS "U" FLAGS "U"
USE LF_ANAMAG USE LF_ANAMAG
INPUT CODART F_DAART INPUT CODART F_DAART
@ -101,9 +91,9 @@ BEGIN
ADD RUN ve2 -3 ADD RUN ve2 -3
END END
STRING F_DADES 50 28 STRING F_DADES 50 34
BEGIN BEGIN
PROMPT 2 6 "Descrizione " PROMPT 44 4 ""
FLAGS "U" FLAGS "U"
USE LF_ANAMAG KEY 2 USE LF_ANAMAG KEY 2
INPUT DESCR F_DADES INPUT DESCR F_DADES
@ -114,16 +104,9 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DAUSR 40 30
BEGIN
PROMPT 2 7 "Personalizz. "
FLAGS "UH"
GROUP G_USER
END
STRING F_AART 20 STRING F_AART 20
BEGIN BEGIN
PROMPT 50 5 "" PROMPT 2 5 "@bAll'articolo "
FLAGS "U" FLAGS "U"
COPY USE F_DAART COPY USE F_DAART
INPUT CODART F_AART INPUT CODART F_AART
@ -135,9 +118,9 @@ BEGIN
ADD RUN ve2 -3 ADD RUN ve2 -3
END END
STRING F_ADES 50 28 STRING F_ADES 50 34
BEGIN BEGIN
PROMPT 50 6 "" PROMPT 44 5 ""
FLAGS "U" FLAGS "U"
COPY USE F_DADES COPY USE F_DADES
INPUT DESCR F_ADES INPUT DESCR F_ADES
@ -147,13 +130,59 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_AUSR 40 30 STRING F_DAUSR 50 30
BEGIN BEGIN
PROMPT 50 7 "" PROMPT 2 6 "Da pers. "
FLAGS "UH" FLAGS "UH"
GROUP G_USER GROUP G_USER
END END
STRING F_AUSR 50 30
BEGIN
PROMPT 48 6 "a pers. "
FLAGS "UH"
GROUP G_USER
END
NUMBER F_FORNITORE 6
BEGIN
PROMPT 2 7 "Fornitore "
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF F_FORNITORE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_FORNITORE CODCF
CHECKTYPE NORMAL
ADD RUN,cg0 -1 F
FLAGS "U"
END
STRING F_DASTAGIONE 4
BEGIN
PROMPT 38 7 "Da stagione "
FLAGS "UZ"
USE %STG
INPUT CODTAB F_DASTAGIONE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT F_DASTAGIONE CODTAB
CHECKTYPE NORMAL
END
STRING F_ASTAGIONE 4
BEGIN
PROMPT 63 7 "A stagione "
FLAGS "UZ"
USE %STG
INPUT CODTAB F_ASTAGIONE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT F_ASTAGIONE CODTAB
CHECKTYPE NORMAL
END
STRING F_DAMAG 3 STRING F_DAMAG 3
BEGIN BEGIN
PROMPT 2 8 "Dal magazzino " PROMPT 2 8 "Dal magazzino "

View File

@ -1,4 +1,5 @@
#include "mg4frm.h" #include "mg4frm.h"
USE LF_MAG KEY 2 BY ANNOES CODART LIVELLO CODMAG USE LF_MAG KEY 2 BY ANNOES CODART LIVELLO CODMAG
JOIN LF_ANAMAG TO LF_MAG INTO CODART==CODART JOIN LF_ANAMAG TO LF_MAG INTO CODART==CODART
JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3] JOIN MAG TO LF_MAG ALIAS 500 INTO CODTAB==CODMAG[1,3]

View File

@ -388,7 +388,7 @@ public:
// costruisce il codice compatto e viceversa // costruisce il codice compatto e viceversa
void pack_maskgrpcodes(TString & pc, const TMask & m, int field, int level) const; void pack_maskgrpcodes(TString & pc, const TMask & m, int field, int level) const;
void pack_grpcode(TString & pc, const TString &codlev, const int levnum) const; // Inserisce il codice del gruppo del livello levnum in pc void pack_grpcode(TString & pc, const TString &codlev, const int levnum) const; // Inserisce il codice del gruppo del livello levnum in pc
TString unpack_grpcode(const TString & pc, const int levnum) const ; // Estrae il codice del gruppo del livello levnum da pc const TString& unpack_grpcode(const TString & pc, const int levnum) const; // Estrae il codice del gruppo del livello levnum da pc
// costruisce il codice della tabella di decodifica dei livelli // costruisce il codice della tabella di decodifica dei livelli
TString build_tabcode(const TString & code, const int levnum) const ; TString build_tabcode(const TString & code, const int levnum) const ;
TString build_tabcode_packed(const TString & pcode, const int levnum) const ; TString build_tabcode_packed(const TString & pcode, const int levnum) const ;

View File

@ -796,7 +796,7 @@ void TCodice_livelli::pack_grpcode(TString & pc, const TString &codlev, const in
} }
TString TCodice_livelli::unpack_grpcode(const TString& pc, const int levnum) const const TString& TCodice_livelli::unpack_grpcode(const TString& pc, const int levnum) const
{ {
CHECK(levnum<=max_levels() && levnum>0,"I codici livello partono da 1") ; CHECK(levnum<=max_levels() && levnum>0,"I codici livello partono da 1") ;
int start=0; int start=0;