Patch level : 10.1032

Files correlati     :  sv0.exe sv1.exe
Ricompilazione Demo : [ ]
Commento            :

Bug 	0001881;  Aggiungere ordinamento per ragione sociale nelle statistiche per clien  Aggiungere ordinamento per ragione sociale nelle statistiche per cliente


git-svn-id: svn://10.65.10.50/branches/R_10_00@22289 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2011-06-20 14:21:34 +00:00
parent 9e8908845c
commit 22089a13b3
6 changed files with 87 additions and 23 deletions

View File

@ -1,3 +1,3 @@
87 87
0 0
$svstat|0|0|1450|38|Archivio statistiche||| $svstat|0|0|1469|0|Archivio statistiche|||

View File

@ -1,6 +1,6 @@
87 87
80 80
CODICE|1|60|0|Codice dell'oggetto della riga CODICE|1|79|0|Codice dell'oggetto della riga
LEVCODE|1|2|0|Codice del livello LEVCODE|1|2|0|Codice del livello
LIVELLO|2|2|0|Livello di totale (0: totale generale; N: riga) LIVELLO|2|2|0|Livello di totale (0: totale generale; N: riga)
TIPO|1|1|0|Tipo riga (<V>alore <C>onfronto <T>arget ..) TIPO|1|1|0|Tipo riga (<V>alore <C>onfronto <T>arget ..)

View File

@ -174,7 +174,10 @@ void TPSV_tabapp::fill_field_list(TMask& m)
row.add(TR("Categoria vendita")); row.add(TR("Categoria vendita"));
list.add(row); list.add(row);
row = "C"; row = "C";
row.add(TR("Codice cliente")); row.add(TR("Codice cliente/fornitore"));
list.add(row);
row = "H";
row.add(TR("Campo dell'anagrafica clienti/fornitori"));
list.add(row); list.add(row);
row = "Z"; row = "Z";
row.add(TR("Codice zona")); row.add(TR("Codice zona"));
@ -381,7 +384,7 @@ bool TPSV_tabapp::campo_handler(TMask_field& f, KEY k)
{ {
if (f.to_check(k,TRUE)) if (f.to_check(k,TRUE))
{ {
const bool is_fld = f.get()== "B"; const bool is_fld = f.get()== "B" || f.get()== "H";
if (!is_fld) if (!is_fld)
f.mask().reset(SPSV_ARTFLD); f.mask().reset(SPSV_ARTFLD);
@ -400,8 +403,9 @@ bool TPSV_tabapp::artfld_handler(TMask_field& f, KEY k)
case K_ENTER: case K_ENTER:
if (!f.empty() && f.to_check(k)) if (!f.empty() && f.to_check(k))
{ {
const TRectype rec(LF_ANAMAG); const bool is_anamag = f.mask().get(SPSV_CAMPO) == "B";
TString16 field = f.get(); const TRectype rec(is_anamag ? LF_ANAMAG : LF_CLIFO);
TString16 field = f.get();
int pos = field.find('['); int pos = field.find('[');
if (pos > 0) if (pos > 0)
field.cut(pos); field.cut(pos);
@ -411,8 +415,9 @@ bool TPSV_tabapp::artfld_handler(TMask_field& f, KEY k)
break; break;
case K_F9: case K_F9:
{ {
TRelation anamag(LF_ANAMAG); const bool is_anamag = f.mask().get(SPSV_CAMPO) == "B";
TRelation_description rd(anamag); TRelation rel(is_anamag ? LF_ANAMAG : LF_CLIFO);
TRelation_description rd(rel);
if (rd.choose_field(f.get())) if (rd.choose_field(f.get()))
f.set(rd.field_name()); f.set(rd.field_name());

View File

@ -27,6 +27,7 @@
#define STR_LIVGIAC "L" #define STR_LIVGIAC "L"
#define STR_CATVEN "V" #define STR_CATVEN "V"
#define STR_CLIFOR "C" #define STR_CLIFOR "C"
#define STR_CLIFIELD "H"
#define STR_AGENTE "G" #define STR_AGENTE "G"
#define STR_MAGAZZ "M" #define STR_MAGAZZ "M"
#define STR_ZONA "Z" #define STR_ZONA "Z"
@ -40,6 +41,7 @@
#define CHR_CATVEN 'V' #define CHR_CATVEN 'V'
#define CHR_CLIFOR 'C' #define CHR_CLIFOR 'C'
#define CHR_CLI 'C' #define CHR_CLI 'C'
#define CHR_CLIFIELD 'H'
#define CHR_FOR 'F' #define CHR_FOR 'F'
#define CHR_AGENTE 'G' #define CHR_AGENTE 'G'
#define CHR_MAGAZZ 'M' #define CHR_MAGAZZ 'M'
@ -1405,8 +1407,7 @@ bool TStampa_stat::menu(MENU_TAG )
set_column_frequency(); set_column_frequency();
_key.cut(0); _key.cut(0);
TRelation anamag(LF_ANAMAG);
TRelation_description rd(anamag);
TSheet_field & s_chiave = selmask().sfield(F_CHIAVE); TSheet_field & s_chiave = selmask().sfield(F_CHIAVE);
TFilename des_file_name("sv1200.ini"); TFilename des_file_name("sv1200.ini");
TConfig c(des_file_name, "Descriptions"); TConfig c(des_file_name, "Descriptions");
@ -1416,7 +1417,12 @@ bool TStampa_stat::menu(MENU_TAG )
tmp = sheet.row(r).get(0); tmp = sheet.row(r).get(0);
if (!tmp.blank()) if (!tmp.blank())
_key.add(tmp); _key.add(tmp);
if (tmp == STR_ARTFIELD) const bool is_anamag = tmp == STR_ARTFIELD;
TRelation rel(is_anamag ? LF_ANAMAG : LF_CLIFO);
TRelation_description rd(rel);
if (tmp == STR_ARTFIELD || tmp == STR_CLIFIELD)
{ {
TString16 field(s_chiave.cell(r,s_chiave.cid2index(S_ARTFLD))); TString16 field(s_chiave.cell(r,s_chiave.cid2index(S_ARTFLD)));
@ -1535,7 +1541,10 @@ void TStampa_stat::fill_field_list(TMask& m)
row.add(TR("Categoria vendita")); row.add(TR("Categoria vendita"));
list.add(row); list.add(row);
row = "C"; row = "C";
row.add(TR("Codice cliente")); row.add(TR("Codice cliente/fornitore"));
list.add(row);
row = STR_CLIFIELD;
row.add(TR("Campo dell'anagrafica clienti/fornitori"));
list.add(row); list.add(row);
row = "Z"; row = "Z";
row.add(TR("Codice zona")); row.add(TR("Codice zona"));
@ -2066,6 +2075,9 @@ const TString& TStampa_stat::partkey_name(const char *lev_code, int row, TString
case CHR_CLI: // cliente case CHR_CLI: // cliente
park=TR("cliente "); park=TR("cliente ");
break; break;
case CHR_CLIFIELD: // campo anagrafica
park=_des_fld.row(row);
break;
case CHR_FOR: // fornitore case CHR_FOR: // fornitore
park=TR("fornitore "); park=TR("fornitore ");
break; break;
@ -2156,8 +2168,8 @@ const TString& TStampa_stat::get_part(TString & lev_code, TSVriep_record &riepre
f = fld; f = fld;
const TRectype anamag(LF_ANAMAG); const TRectype anamag(LF_ANAMAG);
int l = f.len(anamag); int l = f.len(anamag);
if (l > 25) if (l > 40)
l = 25; l = 40;
if (t == RIGA_MERCE || t == RIGA_OMAGGI) if (t == RIGA_MERCE || t == RIGA_OMAGGI)
{ {
const TRectype & rec = cache().get(LF_ANAMAG, rieprec.get(SVR_CODART)); const TRectype & rec = cache().get(LF_ANAMAG, rieprec.get(SVR_CODART));
@ -2183,9 +2195,18 @@ const TString& TStampa_stat::get_part(TString & lev_code, TSVriep_record &riepre
lev_code[0]=rieprec.get_char(SVR_TIPOCF); lev_code[0]=rieprec.get_char(SVR_TIPOCF);
park.format("%c%6ld",lev_code[0],rieprec.get_long(SVR_CODCF)); park.format("%c%6ld",lev_code[0],rieprec.get_long(SVR_CODCF));
break; break;
case CHR_CLIFIELD: // campo dell' anagrafica cliente
{
TString8 key;
key.format("%c|%ld", rieprec.get_char(SVR_TIPOCF),rieprec.get_long(SVR_CODCF));
park = cache().get(LF_CLIFO, key, fld);
}
break;
case CHR_AGENTE: // agente case CHR_AGENTE: // agente
park.format("%5s",(const char*)rieprec.get(SVR_CODAG)); park.format("%5s",(const char*)rieprec.get(SVR_CODAG));
break; break;
case CHR_MAGAZZ: // mag case CHR_MAGAZZ: // mag
park=rieprec.get(SVR_MAG); park=rieprec.get(SVR_MAG);
park.rpad(3); park.rpad(3);
@ -2288,6 +2309,38 @@ const TString& TStampa_stat::get_descrpart(const char *lev_code, TSVriep_record
key.add(rieprec.get_long(SVR_CODCF)); key.add(rieprec.get_long(SVR_CODCF));
return cache().get(LF_CLIFO, key, CLI_RAGSOC); return cache().get(LF_CLIFO, key, CLI_RAGSOC);
} }
case CHR_CLIFIELD: // campo anagrafica
{
if (_file_fld.objptr(row) != NULL)
{
TString16 tab(_file_fld.row(row));
int file = atoi(tab);
TToken_string k;
k.add(rieprec.get_char(SVR_TIPOCF));
k.add(rieprec.get_long(SVR_CODCF));
const TRectype & clifo = cache().get(LF_CLIFO, k);
TFieldref f;
f = _key_fld.row(row);
const TString & key = f.read(clifo);
if (key.not_empty())
{
if (file != 0)
{
const TRectype & rec = cache().get(file, key);
return rec.get(_field_fld.row(row));
}
else
{
const TRectype & rec = cache().get(tab, key);
return rec.get(_field_fld.row(row));
}
}
}
return EMPTY_STRING;
}
case CHR_AGENTE: // agente case CHR_AGENTE: // agente
return cache().get(LF_AGENTI, rieprec.get(SVR_CODAG), AGE_RAGSOC); return cache().get(LF_AGENTI, rieprec.get(SVR_CODAG), AGE_RAGSOC);
case CHR_MAGAZZ: // mag case CHR_MAGAZZ: // mag
@ -2639,7 +2692,7 @@ bool TStampa_stat::campo_handler(TMask_field& f, KEY k)
{ {
if (f.to_check(k, TRUE)) if (f.to_check(k, TRUE))
{ {
const bool is_fld = f.get()== STR_ARTFIELD; const bool is_fld = f.get()== STR_ARTFIELD || f.get()== STR_CLIFIELD;
if (!is_fld) if (!is_fld)
f.mask().reset(S_ARTFLD); f.mask().reset(S_ARTFLD);
@ -2659,7 +2712,8 @@ bool TStampa_stat::artfld_handler(TMask_field& f, KEY k)
case K_ENTER: case K_ENTER:
if (!f.empty() && f.to_check(k)) if (!f.empty() && f.to_check(k))
{ {
const TRectype rec(LF_ANAMAG); const bool is_anamag = f.mask().get(S_CAMPO) == "B";
const TRectype rec(is_anamag ? LF_ANAMAG : LF_CLIFO);
TString16 field = f.get(); TString16 field = f.get();
int pos = field.find('['); int pos = field.find('[');
if (pos > 0) if (pos > 0)
@ -2670,8 +2724,9 @@ bool TStampa_stat::artfld_handler(TMask_field& f, KEY k)
break; break;
case K_F9: case K_F9:
{ {
TRelation anamag(LF_ANAMAG); const bool is_anamag = f.mask().get(S_CAMPO) == "B";
TRelation_description rd(anamag); TRelation rel(is_anamag ? LF_ANAMAG : LF_CLIFO);
TRelation_description rd(rel);
if (rd.choose_field(f.get())) if (rd.choose_field(f.get()))
f.set(rd.field_name()); f.set(rd.field_name());
} }

View File

@ -2,8 +2,6 @@
TOOLBAR "Toolbar" 0 0 0 2 TOOLBAR "Toolbar" 0 0 0 2
TOOLBAR "Toolbar" 0 0 0 2
BUTTON DLG_SAVEREC 10 2 BUTTON DLG_SAVEREC 10 2
BEGIN BEGIN
PROMPT -23 -1 "~Registra" PROMPT -23 -1 "~Registra"
@ -223,7 +221,8 @@ BEGIN
ITEM "A|Articolo" ITEM "A|Articolo"
ITEM "L|Livello giacenza" ITEM "L|Livello giacenza"
ITEM "V|Categoria vendita" ITEM "V|Categoria vendita"
ITEM "C|Codice cliente" ITEM "C|Codice cliente/fornitore"
ITEM "H|Campo dell'anagrafica clienti/fornitori"
ITEM "G|Codice agente" ITEM "G|Codice agente"
ITEM "M|Codice magazzino" ITEM "M|Codice magazzino"
ITEM "Z|Codice zona" ITEM "Z|Codice zona"
@ -259,6 +258,10 @@ BEGIN
FLAGS "BU" FLAGS "BU"
END END
ENDPAGE
TOOLBAR "Toolbar" 0 0 0 2
BUTTON DLG_CANCEL 10 2 BUTTON DLG_CANCEL 10 2
BEGIN BEGIN
PROMPT -13 -1 "" PROMPT -13 -1 ""

View File

@ -133,7 +133,8 @@ BEGIN
ITEM "B|Campo anagrafica articoli" ITEM "B|Campo anagrafica articoli"
ITEM "L|Livello giacenza" ITEM "L|Livello giacenza"
ITEM "V|Categoria vendita" ITEM "V|Categoria vendita"
ITEM "C|Codice cliente" ITEM "C|Codice cliente/fornitore"
ITEM "H|Campo dell'anagrafica clienti/fornitori"
ITEM "G|Codice agente" ITEM "G|Codice agente"
ITEM "M|Codice magazzino" ITEM "M|Codice magazzino"
ITEM "Z|Codice zona" ITEM "Z|Codice zona"