Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Stampa sospesi: aggiunto scelta prossimo tipo e motivo


git-svn-id: svn://10.65.10.50/trunk@6496 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1998-04-06 13:15:25 +00:00
parent 82dd9f5c87
commit 9b8e98bb51
3 changed files with 115 additions and 19 deletions

View File

@ -4,6 +4,7 @@
#include <utility.h>
#include "soggetti.h"
#include "contsan.h"
#include "sezioni.h"
#include "at2.h"
@ -32,12 +33,14 @@ class TStampaSospesi : public TPrintapp
{
TRelation* _rel;
TMask* _msk;
TLocalisamfile* _contsan;
TEti_sospesi_form* _form_eti;
TAssoc_array _categorie;
TParagraph_string _cognome_nome;
TDate _data_stampa;
TDate _dataini, _datafin;
ts _tipostampa;
TString16 _codsez, _codsot;
TString16 _codsez, _codsot, _motivo;
int _etlarghezza, _etcolonne;
static bool filter_func_sospesi(const TRelation* rel);
@ -136,6 +139,32 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
const TString16 cat = sog.get(SOG_CATDON);
filtrato = categorie.is_key((const char*) cat);
}
if ((filtrato) && (app()._dataini.ok()))
{
const TDate datapross = sog.get_date(SOG_DATA_PROS);
filtrato = (datapross >= app()._dataini);
}
if ((filtrato) && (app()._datafin.ok()))
{
const TDate datapross = sog.get_date(SOG_DATA_PROS);
filtrato = (datapross <= app()._datafin);
}
if ((filtrato) && (app()._motivo.not_empty()))
{
TLocalisamfile contsan(LF_CONTSAN);
contsan.setkey(2);
contsan.put(CON_DATACON, sog.get(SOG_DATASTATO));
contsan.put(CON_CODICE, sog.get(SOG_CODICE));
if (contsan.read() == NOERR)
{
if (app()._motivo == contsan.get(CON_MOTIVO))
filtrato = TRUE;
else
filtrato = FALSE;
}
else
filtrato = FALSE;
}
return filtrato;
}
@ -209,12 +238,18 @@ bool TStampaSospesi::set_print(int m)
add_file(LF_SOGGETTI);
// filtro per sezioni selezionati
filtra_sezioni();
_motivo = _msk->get(F_MOTIVO);
TString filtro;
// filtro per tipo sospensione
const TString16 tiposo = _msk->get(F_TIPO);
if (tiposo.not_empty() && tiposo.ok())
current_cursor()->setfilter(format("STATO == \"%s\"",(const char*)tiposo));
filtro << '(' << SOG_STATO << "== \"" << tiposo << "\")";
else
current_cursor()->setfilter("TCS->S6 == \"S\"", TRUE);
filtro << "TCS->S6 == \"S\"";
const TString16 prosstipo = _msk->get(F_PROSSTIPO);
if (prosstipo.not_empty())
filtro << " && (" << SOG_PROS_STATO << "== \"" << prosstipo << "\")";
current_cursor()->setfilter(filtro, TRUE);
// filtro per categorie
_categorie.destroy();
const TString16 catpri = _msk->get(F_CAT1);
@ -235,6 +270,8 @@ bool TStampaSospesi::set_print(int m)
_categorie.add((const char*) catqui);
if (catses.not_empty() && catses.ok())
_categorie.add((const char*) catses);
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
current_cursor()->set_filterfunction(filter_func_sospesi);
reset_print();
crea_intestazione();
@ -284,6 +321,7 @@ bool TStampaSospesi::user_create()
_rel->add("LCP", "CODTAB==DOM_CODLOC",1,0,ALIAS_LCP);
_rel->add(LF_COMUNI, "COM==DOM_CODCOM");
_rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT");
_contsan = new TLocalisamfile(LF_CONTSAN);
add_cursor(new TCursor(_rel,"", 3));
_msk = new TMask("at2100a");
TConfig config(CONFIG_STUDIO);
@ -299,6 +337,7 @@ bool TStampaSospesi::user_destroy()
delete _msk;
delete _rel;
delete _form_eti;
delete _contsan;
return TRUE;
}

View File

@ -23,8 +23,14 @@
#define F_CAT6 211
#define F_D_CAT6 212
#define F_TIPO 301
#define F_D_TIPO 302
#define F_TIPO 301
#define F_D_TIPO 302
#define F_PROSSTIPO 303
#define F_D_PROSSTIPO 304
#define F_DATAINI 305
#define F_DATAFIN 306
#define F_MOTIVO 307
#define F_D_MOTIVO 308
#define F_ELENCO 401
#define F_ETICHETTE 402

View File

@ -1,5 +1,26 @@
#include "at2100a.h"
TOOLBAR "" 0 20 0 2
BUTTON F_ELENCO 9 2
BEGIN
PROMPT -13 -11 "Elenco"
MESSAGE EXIT,F_ELENCO
END
BUTTON F_ETICHETTE 9 2
BEGIN
PROMPT -23 -11 "Etichette"
MESSAGE EXIT,F_ETICHETTE
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -33 -11 ""
END
ENDPAGE
PAGE "Stampa soggetti sospesi" -1 -1 78 20
GROUPBOX DLG_NULL 77 4
@ -244,14 +265,14 @@ BEGIN
FLAGS "D"
END
GROUPBOX DLG_NULL 77 3
GROUPBOX DLG_NULL 77 6
BEGIN
PROMPT 1 10 "Tipo sospensione"
PROMPT 1 10 "Opzioni per la stampa"
END
STRING F_TIPO 2
BEGIN
PROMPT 2 11 ""
PROMPT 2 11 "Tipo sospensione "
FLAGS "U"
USE TCS SELECT S6="S"
INPUT CODTAB F_TIPO
@ -266,30 +287,60 @@ END
STRING F_D_TIPO 30
BEGIN
PROMPT 8 11 ""
PROMPT 27 11 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 77 4
STRING F_PROSSTIPO 2
BEGIN
PROMPT 1 13 "Stampa"
PROMPT 2 12 "Prossimo tipo "
FLAGS "U"
USE TCS
INPUT CODTAB F_PROSSTIPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT F_PROSSTIPO CODTAB
OUTPUT F_D_PROSSTIPO S0
CHECKTYPE NORMAL
WARNING "Codice non presente"
HELP "Prossimo tipo"
END
BUTTON F_ELENCO 9 2
STRING F_D_PROSSTIPO 30
BEGIN
PROMPT -13 14 "Elenco"
MESSAGE EXIT,F_ELENCO
PROMPT 27 12 ""
FLAGS "D"
END
BUTTON F_ETICHETTE 9 2
DATE F_DATAINI
BEGIN
PROMPT -23 14 "Etichette"
MESSAGE EXIT,F_ETICHETTE
PROMPT 2 13 "Data pross. tipo dal "
END
BUTTON DLG_QUIT 9 2
DATE F_DATAFIN
BEGIN
PROMPT -33 14 ""
PROMPT 34 13 "al "
END
STRING F_MOTIVO 4
BEGIN
PROMPT 2 14 "Motivo "
FLAGS "U"
USE MTC
INPUT CODTAB F_MOTIVO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT F_MOTIVO CODTAB
OUTPUT F_D_MOTIVO S0
CHECKTYPE NORMAL
WARNING "Codice non presente"
HELP "Motivo del controllo: vuoto = tutti"
END
STRING F_D_MOTIVO 30
BEGIN
PROMPT 27 14 ""
FLAGS "D"
END
ENDPAGE