Patch level : 12.0
Files correlati : f9 Commento: Nella videata in cui abbinare manualmente i movimenti è stato aggiunto un filtro che permette di filtrare i risultati della tabella dei movimenti elettronici registrati su fppro. I pulsanti per interagire con il filtro sono tre: - Impostaz. Filtro per impostare i parametri con cui filtrare - Filtro On: per accendere il filtro - Filtro Off: per spegnere il filtro (icone ancora provvisorie) I parametri del filtro sono raggruppati in tre macro categorie: - per data - per parametri del documento (TIPODOC, IMPORTO,... ) - per parametri del fornitore(PIVA, RAGSOC,...) La videata per l'ordinamento delle tabelle è stata accorpata a quella delle impostazioni del filtro ed il relativo pulsante è stato rimosso.
This commit is contained in:
parent
2528b449a0
commit
77e03434b0
@ -693,7 +693,7 @@ void TControllo_mask::fill()
|
||||
fill_fppro_sheet();
|
||||
}
|
||||
|
||||
void TControllo_mask::fill_fppro_sheet() const
|
||||
void TControllo_mask::fill_fppro_sheet(bool filter) const
|
||||
{
|
||||
TSheet_field& sf = sfield(S_FPPRO);
|
||||
|
||||
@ -709,15 +709,44 @@ void TControllo_mask::fill_fppro_sheet() const
|
||||
case 'P': order = "P2_FISCIVACOD"; break;
|
||||
}
|
||||
TString query;
|
||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT,\n" <<
|
||||
"PZ_TIPODOC AS TIPODOC, P7_DATA AS DATA, P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC,\n" <<
|
||||
"PZ_CLIFOR AS FORNITORE, " <<
|
||||
"P2_ANADENOMIN AS RAGSOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||
"JOIN FPPRO00F ON PQ_KEYPRGINVIO = PZ_KEYPRGINVIO AND PQ_KEYHEADERFATT = PZ_KEYHEADERFATT AND PQ_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||
"WHERE PZ_NUMREGCONT = '0' AND PZ_DATAREGCONT = '2001-01-01' AND P7_DATA >= '" << _datada.date2ansi() << "' AND P7_DATA <= '" << _dataa.date2ansi() << "'\n" <<
|
||||
"ORDER BY " << order << " " << (_verso == 'A' ? "ASC" : "DESC") << "\n";
|
||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT,\n" <<
|
||||
"PZ_TIPODOC AS TIPODOC, P7_DATA AS DATA, P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC,\n" <<
|
||||
"PZ_CLIFOR AS FORNITORE, " <<
|
||||
"P2_ANADENOMIN AS RAGSOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||
"JOIN FPPRO00F ON PQ_KEYPRGINVIO = PZ_KEYPRGINVIO AND PQ_KEYHEADERFATT = PZ_KEYHEADERFATT AND PQ_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||
"WHERE PZ_NUMREGCONT = '0' AND PZ_DATAREGCONT = '2001-01-01'" << "\n";
|
||||
|
||||
if (filter)
|
||||
{
|
||||
if (!_flt_da_data.empty())
|
||||
query << "AND P7_DATA >= '" << _flt_da_data.date2ansi() << "'";
|
||||
else
|
||||
query << "AND P7_DATA >= '20010101'";
|
||||
|
||||
if (!_flt_a_data.empty())
|
||||
query << "AND P7_DATA <= '" << _flt_a_data.date2ansi() << "'\n";
|
||||
else
|
||||
query << "AND P7_DATA <= '" << today.date2ansi() << "'\n";
|
||||
|
||||
if(!_flt_tipodoc.empty())
|
||||
query << "AND PZ_TIPODOC = '" << _flt_tipodoc << "'\n";
|
||||
if(!_flt_numdoc.empty())
|
||||
query << "AND P7_NUMERO like '%" << _flt_numdoc << "%'\n";
|
||||
if(!_flt_tot_doc_da.is_zero())
|
||||
query << "AND PQ_IMPTOTDOC >= '" << _flt_tot_doc_da << "'\n";
|
||||
if (!_flt_tot_doc_a.is_zero())
|
||||
query << "AND PQ_IMPTOTDOC <= '" << _flt_tot_doc_a << "'\n";
|
||||
if (!_flt_ragsoc.empty())
|
||||
query << "AND P2_ANADENOMIN like '%" << _flt_ragsoc << "%'\n";
|
||||
if (!_flt_codforn.empty())
|
||||
query << "AND PZ_CLIFOR = '" << _flt_codforn << "'\n";
|
||||
if (!_flt_piva.empty())
|
||||
query << "AND P2_FISCIVACOD = '" << _flt_piva << "'\n";
|
||||
}
|
||||
|
||||
query << "ORDER BY " << order << " " << (_verso == 'A' ? "ASC" : "DESC") << "\n";
|
||||
fp_db().sq_set_exec(query, false);
|
||||
|
||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||
@ -739,52 +768,91 @@ void TControllo_mask::fill_fppro_sheet() const
|
||||
sf.force_update();
|
||||
}
|
||||
|
||||
TMask& TControllo_mask::get_win_order()
|
||||
TMask& TControllo_mask::get_win_filter()
|
||||
{
|
||||
static TMask* m = nullptr;
|
||||
TMask* m = nullptr;
|
||||
|
||||
if (m == nullptr)
|
||||
{
|
||||
m = new TMask("Configurazione Archiviazione Sostitutiva", 1, 60, 16);
|
||||
// TOOLBAR
|
||||
m->add_button_tool(DLG_OK, "Conferma", TOOL_OK);
|
||||
m->add_button_tool(DLG_NULL, "", 0);
|
||||
m->add_button_tool(DLG_QUIT, "Esci", TOOL_QUIT);
|
||||
if (m == nullptr)
|
||||
{
|
||||
m = new TMask("Filtro griglia FPPRO", 1, 60, 26);
|
||||
|
||||
// Ordinatori
|
||||
m->add_radio(F_ORDER, 0, "@BOrdina per:", 1, 0, 59, "D|N|F|R|P", "DATA|NUMDOC|FORNITORE|RAGSOC|PIVA", "Z");
|
||||
m->add_radio(F_VERSO, 0, "@BVerso:", 1, 3, 59, "A|D", "Crescente|Decrescente", "Z");
|
||||
// TOOLBAR
|
||||
m->add_button_tool(DLG_OK, "Conferma", TOOL_OK);
|
||||
m->add_button_tool(DLG_NULL, "", 0);
|
||||
m->add_button_tool(DLG_QUIT, "Esci", TOOL_QUIT);
|
||||
|
||||
// Filtro date
|
||||
m->add_groupbox (F_ORDDATAG, 0, "@BFiltra per data documento", 1, 6, 59, 3);
|
||||
m->add_date (F_ORDDATADA, 0, "dal", 2, 7);
|
||||
m->add_date (F_ORDDATAA, 0, " al", 22, 7);
|
||||
// Filtro Documenti
|
||||
m->add_groupbox(F_FLTDOCGRP, 0, "@BFiltra sui parametri del documento", 1, 1, 59, 5);
|
||||
m->add_list(F_FLTTIPODOC, 0, "TIPO DOC. ", 2, 2, 8, "",
|
||||
"|TD01|TD02|TD03|TD04|TD05|TD06|TD07|TD08|TD10|TD11|TD16|TD17|TD18|TD19|TD20|TD21|TD22|TD23|TD24|TD25|TD26|TD27|TD28",
|
||||
"|TD01|TD02|TD03|TD04|TD05|TD06|TD07|TD08|TD10|TD11|TD16|TD17|TD18|TD19|TD20|TD21|TD22|TD23|TD24|TD25|TD26|TD27|TD28");
|
||||
m->add_string(F_FLTNUMDOC,0, "NUM.DOC.", 30, 2, 8);
|
||||
m->add_string(F_FLTTOTDOCDA, 0, "TOT.DOC. DA", 2, 3, 8);
|
||||
m->add_string(F_FLTTOTDOCA, 0, "A ", 10, 4, 8);
|
||||
|
||||
//m->set_handler(DLG_OK, save_conf_handler);
|
||||
_ordin = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", "D")[0];
|
||||
_verso = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", "A")[0];
|
||||
m->set(F_ORDER, &_ordin);
|
||||
m->set(F_VERSO, &_verso);
|
||||
m->set(F_ORDDATADA, _datada);
|
||||
m->set(F_ORDDATAA, _dataa);
|
||||
}
|
||||
return *m;
|
||||
// Filtro date
|
||||
m->add_groupbox(F_FLTDATAGRP, 0, "@BFiltra per data documento", 1, 6, 59, 3);
|
||||
m->add_date(F_FLTDATADA, 0, "DATA DOC. DAL", 2, 7);
|
||||
m->add_date(F_FLTDATAA, 0, " AL", 30, 7);
|
||||
|
||||
// Filtro per fornitore
|
||||
m->add_groupbox(F_FLTFORNGRP, 0, "@BFiltra per parametri fornitore", 1, 9, 59, 4);
|
||||
m->add_string(F_FLTCODFORN, 0, "CODICE ", 2, 10, 8);
|
||||
m->add_string(F_FLTPIVA, 0, "P.IVA", 30, 10, 15);
|
||||
m->add_string(F_FLTRAGSOC, 0, "RAG.SOC.", 2, 11, 48);
|
||||
|
||||
// Ordinatori
|
||||
m->add_radio(F_ORDER, 0, "@BOrdina per:", 1, 13, 59, "D|N|F|R|P", "DATA|NUMDOC|FORNITORE|RAGSOC|PIVA", "Z");
|
||||
m->add_radio(F_VERSO, 0, "@BVerso:", 1, 16, 59, "A|D", "Crescente|Decrescente", "Z");
|
||||
|
||||
//m->set_handler(DLG_OK, save_conf_handler);
|
||||
_ordin = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", "D")[0];
|
||||
_verso = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", "A")[0];
|
||||
|
||||
m->set(F_FLTDATADA, _flt_da_data);
|
||||
m->set(F_FLTDATAA, _flt_a_data);
|
||||
m->set(F_FLTDATAA, _flt_tipodoc);
|
||||
m->set(F_FLTNUMDOC, _flt_numdoc);
|
||||
m->set(F_FLTTOTDOCDA, _flt_tot_doc_da);
|
||||
m->set(F_FLTTOTDOCA, _flt_tot_doc_a);
|
||||
m->set(F_FLTCODFORN, _flt_codforn);
|
||||
m->set(F_FLTPIVA, _flt_piva);
|
||||
m->set(F_FLTRAGSOC, _flt_ragsoc);
|
||||
m->set(F_ORDER, &_ordin);
|
||||
m->set(F_VERSO, &_verso);
|
||||
|
||||
}
|
||||
return *m;
|
||||
}
|
||||
|
||||
void TControllo_mask::open_win_order()
|
||||
void TControllo_mask::open_win_filter()
|
||||
{
|
||||
TMask& m = get_win_order();
|
||||
m.set(F_ORDDATADA, _datada);
|
||||
m.set(F_ORDDATAA, _dataa);
|
||||
m.run();
|
||||
_ordin = m.get(F_ORDER)[0];
|
||||
_verso = m.get(F_VERSO)[0];
|
||||
_datada = m.get_date(F_ORDDATADA);
|
||||
_dataa = m.get_date(F_ORDDATAA);
|
||||
ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", &_ordin);
|
||||
ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", &_verso);
|
||||
TMask& m = get_win_filter();
|
||||
m.set(F_FLTDATADA, _flt_da_data);
|
||||
m.set(F_FLTDATAA, _flt_a_data);
|
||||
|
||||
m.run();
|
||||
|
||||
_flt_da_data = m.get_date(F_FLTDATADA);
|
||||
_flt_a_data = m.get_date(F_FLTDATAA);
|
||||
|
||||
_flt_tipodoc = m.get(F_FLTTIPODOC);
|
||||
_flt_numdoc = m.get(F_FLTNUMDOC);
|
||||
_flt_tot_doc_da = m.get_real(F_FLTTOTDOCDA);
|
||||
_flt_tot_doc_a = m.get_real(F_FLTTOTDOCA);
|
||||
|
||||
_flt_codforn = m.get(F_FLTCODFORN);
|
||||
_flt_ragsoc = m.get(F_FLTRAGSOC);
|
||||
_flt_piva = m.get(F_FLTPIVA);
|
||||
|
||||
//Ordinamento
|
||||
_ordin = m.get(F_ORDER)[0];
|
||||
_verso = m.get(F_VERSO)[0];
|
||||
ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", &_ordin);
|
||||
ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", &_verso);
|
||||
}
|
||||
|
||||
|
||||
TToken_string* TControllo_mask::selected_mov()
|
||||
{
|
||||
TSheet_field& movs = sfield(S_CONTROLLO);
|
||||
@ -839,13 +907,31 @@ bool TControllo_mask::on_field_event(TOperable_field& o, TField_event e, long jo
|
||||
fill();
|
||||
}
|
||||
break;
|
||||
case B_ORDER:
|
||||
if (e == fe_button)
|
||||
{
|
||||
open_win_order();
|
||||
fill_fppro_sheet();
|
||||
}
|
||||
break;
|
||||
case B_FILTER_CONF:
|
||||
if (e == fe_button)
|
||||
{
|
||||
open_win_filter();
|
||||
fill_fppro_sheet(true);
|
||||
field(B_FILTER_OFF).enable();
|
||||
field(B_FILTER_ON).disable();
|
||||
}
|
||||
break;
|
||||
case B_FILTER_ON:
|
||||
if (e == fe_button)
|
||||
{
|
||||
fill_fppro_sheet(true);
|
||||
field(B_FILTER_OFF).enable();
|
||||
field(B_FILTER_ON).disable();
|
||||
}
|
||||
break;
|
||||
case B_FILTER_OFF:
|
||||
if (e == fe_button)
|
||||
{
|
||||
fill_fppro_sheet(false);
|
||||
field(B_FILTER_ON).enable();
|
||||
field(B_FILTER_OFF).disable();
|
||||
}
|
||||
break;
|
||||
case B_ASSOC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
@ -903,9 +989,11 @@ TControllo_mask::TControllo_mask(const char* codsoc, const char* id_estr, const
|
||||
_id_estr = id_estr;
|
||||
field(B_ESCL).disable();
|
||||
field(B_ALLESCL).disable();
|
||||
get_win_order();
|
||||
_is_escluso = esclusi;
|
||||
|
||||
field(B_FILTER_ON).disable();
|
||||
field(B_FILTER_OFF).disable();
|
||||
|
||||
// Fill controllo sheet
|
||||
if (!_is_escluso)
|
||||
import_error_list();
|
||||
|
@ -128,14 +128,25 @@ class TControllo_mask : public TAutomask
|
||||
TDate _datada;
|
||||
TDate _dataa;
|
||||
|
||||
//Filter variables
|
||||
TDate _flt_da_data;
|
||||
TDate _flt_a_data;
|
||||
TString4 _flt_tipodoc;
|
||||
TString16 _flt_numdoc;
|
||||
real _flt_tot_doc_da;
|
||||
real _flt_tot_doc_a;
|
||||
TString16 _flt_codforn;
|
||||
TString _flt_ragsoc;
|
||||
TString16 _flt_piva;
|
||||
|
||||
void associa();
|
||||
void conferma_esclusi() const;
|
||||
|
||||
TArray& import_error_list();
|
||||
void fill();
|
||||
void fill_fppro_sheet() const;
|
||||
TMask& get_win_order();
|
||||
void open_win_order();
|
||||
void fill_fppro_sheet(bool filter = false) const;
|
||||
TMask& get_win_filter();
|
||||
void open_win_filter();
|
||||
|
||||
TToken_string* selected_mov();
|
||||
TToken_string* selected_fat() const;
|
||||
@ -148,6 +159,7 @@ public:
|
||||
TControllo_mask(const char* codsoc, const char* id_estr, bool esclusi = false);
|
||||
};
|
||||
|
||||
|
||||
class TF9_app : public TSkeleton_application
|
||||
{
|
||||
// friend class TMonitor_mask;
|
||||
|
@ -1,10 +1,12 @@
|
||||
// Maschera controllo errori in comune con monitor e esclusi
|
||||
// Sheet Pacchetti gia' elaborati
|
||||
#define B_ORDER 201
|
||||
#define B_ASSOC 202
|
||||
#define B_SELESCL 203
|
||||
#define B_ESCL 204
|
||||
#define B_ALLESCL 205
|
||||
#define B_FILTER_CONF 208
|
||||
#define B_FILTER_ON 209
|
||||
#define B_FILTER_OFF 210
|
||||
|
||||
// Sheet movimenti da controllare
|
||||
#define S_CONTROLLO 206
|
||||
@ -13,9 +15,22 @@
|
||||
// Cambi maschera ordinamento sheet FPPRO
|
||||
#define F_ORDER 301
|
||||
#define F_VERSO 302
|
||||
#define F_ORDDATAG 303
|
||||
#define F_ORDDATADA 304
|
||||
#define F_ORDDATAA 305
|
||||
|
||||
//Filtro FPPRO
|
||||
#define F_FLTDATAGRP 310
|
||||
#define F_FLTDATADA 311
|
||||
#define F_FLTDATAA 312
|
||||
#define F_FLTDOCGRP 313
|
||||
#define F_FLTTIPODOC 314
|
||||
#define F_FLTNUMDOC 315
|
||||
#define F_FLTTOTDOCDA 316
|
||||
#define F_FLTTOTDOCA 317
|
||||
#define F_FLTFORNGRP 318
|
||||
#define F_FLTCODFORN 319
|
||||
#define F_FLTRAGSOC 320
|
||||
#define F_FLTPIVA 321
|
||||
|
||||
|
||||
|
||||
#define F_CSEL 101
|
||||
#define F_CNUMREG 102
|
||||
|
@ -2,13 +2,6 @@
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON B_ORDER 2 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Ordinamento"
|
||||
PICTURE TOOL_EDIT
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BUTTON B_ASSOC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 6 "Associa mov."
|
||||
@ -43,6 +36,33 @@ BEGIN
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 2 2
|
||||
BEGIN
|
||||
PROMPT -1 1 ""
|
||||
PICTURE 0
|
||||
END
|
||||
|
||||
BUTTON B_FILTER_CONF 2 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Impostaz. Filtro"
|
||||
PICTURE TOOL_ELABORA
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BUTTON B_FILTER_ON 2 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Filtro ON"
|
||||
PICTURE TOOL_CHECK
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
BUTTON B_FILTER_OFF 2 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Filtro OFF"
|
||||
PICTURE TOOL_CHECK
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
ENDPAGE
|
||||
|
||||
@ -90,7 +110,7 @@ BEGIN
|
||||
ITEM "Rag. Soc.@20"
|
||||
ITEM "Stato P.IVA"
|
||||
ITEM "P.IVA@8"
|
||||
ITEM "@1"
|
||||
ITEM "FPPRO Keys@60"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user