Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@12958 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c8b6e226d6
commit
2881f95a20
21
ci/ci0.cpp
21
ci/ci0.cpp
@ -1,16 +1,23 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "ci0.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
const int r = (argc > 1) ? argv[1][1] - '0' : 0;
|
||||
switch (r)
|
||||
const int op = (argc > 1) ? argv[1][1] - '0' : 0;
|
||||
switch (op)
|
||||
{
|
||||
// case 1: ca0200(argc,argv); break; // stampa tabelle
|
||||
case 2: ci0300(argc,argv); break; // parametri configurazione Contabilita' Industriale
|
||||
case 3: ci0400(argc,argv); break; // Immssione documenti
|
||||
default: break; // gestione tabelle
|
||||
case 1:
|
||||
// ci0200(argc,argv); // stampa tabelle
|
||||
break;
|
||||
case 2:
|
||||
ci0300(argc,argv); // parametri configurazione Contabilita' Industriale
|
||||
break;
|
||||
case 3:
|
||||
ci0400(argc,argv); // Immssione documenti
|
||||
break;
|
||||
default:
|
||||
// ci0100(argc,argv); // gestione tabelle
|
||||
break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
|
7
ci/ci0.h
Executable file
7
ci/ci0.h
Executable file
@ -0,0 +1,7 @@
|
||||
#ifndef __CI0_H
|
||||
#define __CI0_H
|
||||
|
||||
int ci0300(int argc, char* argv[]); // parametri configurazione Contabilita' Industriale
|
||||
int ci0400(int argc, char* argv[]); // immssione documenti
|
||||
|
||||
#endif // __CI0_H
|
202
ci/ci0300.cpp
Executable file
202
ci/ci0300.cpp
Executable file
@ -0,0 +1,202 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <isam.h>
|
||||
#include <mask.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <relation.h>
|
||||
#include <sheet.h>
|
||||
#include <tabutil.h>
|
||||
|
||||
#include <nditte.h>
|
||||
|
||||
#include "ci0.h"
|
||||
#include "ci0300.h"
|
||||
|
||||
|
||||
class TSelezioneGiorno_mask : public TAutomask
|
||||
{
|
||||
TCursor_sheet* _sheet;
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TCursor_sheet& sheet() {return *_sheet;}
|
||||
TSelezioneGiorno_mask();
|
||||
~TSelezioneGiorno_mask();
|
||||
};
|
||||
|
||||
bool TSelezioneGiorno_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
/*
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_SCELTADITTE:
|
||||
if (e == fe_button)
|
||||
{
|
||||
sheet().run();
|
||||
set(F_DITTESELEZ, sheet().checked());
|
||||
}
|
||||
if (e == fe_close)
|
||||
if (sheet().checked() == 0)
|
||||
return error_box(TR("Non sono state selezionate ditte da convertire"));
|
||||
break;
|
||||
case F_DITTESELEZ:
|
||||
if (e == fe_init)
|
||||
o.set(sheet().checked());
|
||||
break;
|
||||
case F_MINISTERIALI:
|
||||
if (e == fe_init)
|
||||
{
|
||||
TTable cgr("%CGR");
|
||||
const bool empty = cgr.first() != NOERR;
|
||||
o.set(empty ? "X": " ");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
TSelezioneGiorno_mask::TSelezioneGiorno_mask()
|
||||
: TAutomask("ci0300")
|
||||
{
|
||||
// _sheet = new TCursor_sheet(_cur, " |CODDITTA|RAGSOC", TR("Selezione ditte"), HR("@1|Codice|Ragione sociale@50"), 0, 1);
|
||||
// _sheet->check(-1);
|
||||
}
|
||||
|
||||
TSelezioneGiorno_mask::~TSelezioneGiorno_mask()
|
||||
{
|
||||
delete _sheet;
|
||||
}
|
||||
|
||||
class TImmissioneDocumenti: public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual void main_loop();
|
||||
virtual bool destroy(void) ;
|
||||
|
||||
public:
|
||||
TImmissioneDocumenti() {}
|
||||
virtual ~TImmissioneDocumenti() {}
|
||||
};
|
||||
|
||||
bool TImmissioneDocumenti::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TImmissioneDocumenti::destroy()
|
||||
{
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
void TImmissioneDocumenti::main_loop()
|
||||
{
|
||||
/*
|
||||
TSelezioneGiorno_mask msk;
|
||||
if (msk.run() == K_ENTER && yesno_box(TR("Confermare la conversione dei cespiti?")))
|
||||
{
|
||||
msk.lista_ditte(_ditte);
|
||||
if (_ditte.items() == 0)
|
||||
{
|
||||
warning_box(TR("Nessuna ditta selezionata"));
|
||||
return;
|
||||
}
|
||||
open_log();
|
||||
TString80 s;
|
||||
write_log("");
|
||||
write_log("**********************************");
|
||||
s.format(TR("Conversione cespiti del %s"), (const char *) TDate(TODAY).string());
|
||||
write_log(s);
|
||||
write_log("**********************************");
|
||||
write_log("");
|
||||
|
||||
const char* studio = prefix().get_studio();
|
||||
const bool converti_ministeriali = msk.get_bool(F_MINISTERIALI);
|
||||
// conversione archivi
|
||||
TFilename file = studio;
|
||||
file << "cesp/ammce";
|
||||
conv_file(file, 136);
|
||||
file = studio;
|
||||
file << "cesp/ammmv";
|
||||
conv_file(file, 137);
|
||||
file = studio;
|
||||
file << "cesp/catdi";
|
||||
conv_file(file, 138);
|
||||
file = studio;
|
||||
file << "cesp/cespi";
|
||||
conv_file(file, 139);
|
||||
file = studio;
|
||||
file << "cesp/movam";
|
||||
conv_file(file, 141);
|
||||
file = studio;
|
||||
file << "cesp/movce";
|
||||
conv_file(file, 142);
|
||||
file = studio;
|
||||
file << "cesp/salce";
|
||||
conv_file(file, 143);
|
||||
file = studio;
|
||||
file << "cesp/coll01";
|
||||
conv_inifile(file, "COLL01", 140);
|
||||
// conversione tabelle
|
||||
file = studio;
|
||||
file << "cesp/ditcb";
|
||||
conv_tab(file, "CCB");
|
||||
file = studio;
|
||||
file << "cesp/ditce";
|
||||
conv_tab(file, "CCE");
|
||||
file = studio;
|
||||
file << "cesp/tabimp";
|
||||
conv_tab(file, "CIM");
|
||||
file = studio;
|
||||
file << "cesp/tabloc";
|
||||
conv_tab(file, "LOC");
|
||||
if (converti_ministeriali)
|
||||
{
|
||||
file = studio;
|
||||
file << "cesp/tabat";
|
||||
conv_tab(file, "%CAT");
|
||||
file = studio;
|
||||
file << "cesp/tabca";
|
||||
conv_tab(file, "%CAC");
|
||||
file = studio;
|
||||
file << "cesp/tabgr";
|
||||
conv_tab(file, "%CGR");
|
||||
file = studio;
|
||||
file << "cesp/limit";
|
||||
conv_tab(file, "%CLM");
|
||||
file = studio;
|
||||
file << "cesp/tmvce";
|
||||
conv_tab(file, "%TMC");
|
||||
}
|
||||
// conversione parametri
|
||||
file = studio;
|
||||
file << "cesp/ditc01";
|
||||
conv_par(file, "DITC01", CONFIG_DITTA);
|
||||
file = studio;
|
||||
file << "cesp/ditca";
|
||||
conv_par(file, "DITCA", CONFIG_DITTA);
|
||||
message_box("Conversione completata");
|
||||
close_log();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
int ci0300(int argc, char* argv[])
|
||||
{
|
||||
TImmissioneDocumenti a ;
|
||||
a.run(argc, argv, TR("Immissione Documenti"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ci0400(int argc, char* argv[])
|
||||
{
|
||||
TImmissioneDocumenti a ;
|
||||
a.run(argc, argv, TR("Immissione Documenti"));
|
||||
return 0;
|
||||
}
|
13
ci/ci0300.h
Executable file
13
ci/ci0300.h
Executable file
@ -0,0 +1,13 @@
|
||||
#ifndef __CI0300_H
|
||||
#define __CI0300_H
|
||||
|
||||
// DEFINIZIONE CAMPI MASCHERE PER LA GESTIONE DOCUMENTI A CALENDARIO
|
||||
// campi maschera ci0300.uml
|
||||
|
||||
#define F_PREVMONTH 101
|
||||
#define F_NEXTMONTH 102
|
||||
#define F_CHANGEMONTH 103
|
||||
#define F_CHANGEYEAR 104
|
||||
|
||||
|
||||
#endif // __CI0300_H
|
97
ci/ci0300.uml
Executable file
97
ci/ci0300.uml
Executable file
@ -0,0 +1,97 @@
|
||||
#include "ci0300.h"
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
BUTTON DLG_SELECT 10 2
|
||||
BEGIN
|
||||
PROMPT -16 -11 "~Selezione"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
PICTURE BMP_SELECT
|
||||
PICTURE BMP_SELECTDN
|
||||
END
|
||||
|
||||
BUTTON F_PREVMONTH 10 2
|
||||
BEGIN
|
||||
PROMPT -26 -11 "~Precedente"
|
||||
PICTURE BMP_NEWREC
|
||||
PICTURE BMP_NEWRECDN
|
||||
END
|
||||
|
||||
LIST F_CHANGEMONTH 10
|
||||
BEGIN
|
||||
PROMPT -36 -11 "Mese "
|
||||
FLAGS "M"
|
||||
END
|
||||
|
||||
NUMBER F_CHANGEYEAR 4
|
||||
BEGIN
|
||||
PROMPT -46 -11 "Anno "
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
BUTTON F_NEXTMONTH 10 2
|
||||
BEGIN
|
||||
PROMPT -56 -11 "S~uccessivo"
|
||||
PICTURE BMP_NEWREC
|
||||
PICTURE BMP_NEWRECDN
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -66 -11 "~Fine"
|
||||
MESSAGE EXIT,K_QUIT
|
||||
PICTURE BMP_QUIT
|
||||
PICTURE BMP_QUITDN
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 1" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 2" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 3" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 4" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 5" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 6" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 7" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 8" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 9" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Pagina 10" -1 -1 80 20
|
||||
|
||||
ENDPAGE
|
224
ci/ci0400.cpp
Executable file
224
ci/ci0400.cpp
Executable file
@ -0,0 +1,224 @@
|
||||
#include <applicat.h>
|
||||
#include <msksheet.h>
|
||||
#include <relation.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "ef0.h"
|
||||
#include "ef0101.h"
|
||||
#include "ef0400.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//Classe per l'eliminazione di effetti di effetti con selezione per gruppi //
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
class TEliminazione_effetti: public TSkeleton_application
|
||||
{
|
||||
TMask *_msk;
|
||||
TRelation *_rel;
|
||||
TRectype *_from, *_to;
|
||||
virtual bool create() ;
|
||||
virtual bool destroy() ;
|
||||
virtual void main_loop();
|
||||
protected:
|
||||
static bool from_numero_handler(TMask_field& f, KEY k);
|
||||
static bool to_numero_handler(TMask_field& f, KEY k);
|
||||
static bool from_data_handler(TMask_field& f, KEY k);
|
||||
static bool to_data_handler(TMask_field& f, KEY k);
|
||||
static bool conferma_handler(TMask_field& f, KEY k);
|
||||
static bool annulla_handler(TMask_field& f, KEY k);
|
||||
static void elimina();
|
||||
public:
|
||||
TEliminazione_effetti() {};
|
||||
virtual ~TEliminazione_effetti() {};
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TEliminazione_effetti& app(){return (TEliminazione_effetti&)main_app();}
|
||||
|
||||
// crea l'applicazione
|
||||
bool TEliminazione_effetti::create()
|
||||
{
|
||||
_msk = new TMask("ef0400a");
|
||||
_rel = new TRelation(LF_EFFETTI);
|
||||
_rel->first();
|
||||
_from = new TRectype(_rel->lfile().curr());
|
||||
_rel->last();
|
||||
_to = new TRectype(_rel->lfile().curr());
|
||||
_msk->set_handler(F_DA_RIBA, from_numero_handler);
|
||||
_msk->set_handler(F_A_RIBA, to_numero_handler);
|
||||
_msk->set_handler(F_DA_DATA, from_data_handler);
|
||||
_msk->set_handler(F_A_DATA, to_data_handler);
|
||||
_msk->set_handler(DLG_OK, conferma_handler);
|
||||
_msk->set_handler(DLG_CANCEL, annulla_handler);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
// distrugge l'applicazione
|
||||
bool TEliminazione_effetti::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
delete _from;
|
||||
delete _to;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//Carica maschera eliminazione effetti
|
||||
void TEliminazione_effetti::main_loop()
|
||||
{
|
||||
KEY key = K_ENTER;
|
||||
while (key != K_QUIT)//finchè non si chiude la maschera
|
||||
{
|
||||
_msk->reset();
|
||||
key = _msk->run();
|
||||
}
|
||||
}
|
||||
|
||||
//Handler per la gestione della prima chiave (from) del cursore per numero
|
||||
bool TEliminazione_effetti::from_numero_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_TAB)
|
||||
{
|
||||
if (!f.get().empty())// se il campo non è vuoto
|
||||
{
|
||||
TRectype* from = app()._from;
|
||||
long num = m.get_long(F_DA_RIBA);
|
||||
from->put(EFF_NPROGTR, num);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//Handler per la gestione della seconda chiave (to) del cursore per numero
|
||||
bool TEliminazione_effetti::to_numero_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_TAB)
|
||||
{
|
||||
if (!f.get().empty())// se il campo non è vuoto
|
||||
{
|
||||
TRectype* to = app()._to;
|
||||
long num = m.get_long(F_A_RIBA);
|
||||
to->put(EFF_NPROGTR, num);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//Handler per la gestione della prima chiave (from) del cursore per data
|
||||
bool TEliminazione_effetti::from_data_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_TAB)
|
||||
{
|
||||
if (!f.get().empty())// se il campo non è vuoto
|
||||
{
|
||||
TRectype* from = app()._from;
|
||||
TDate data = m.get(F_DA_DATA);
|
||||
long num = m.get_long(F_DA_RIBA);
|
||||
from->put(EFF_NPROGTR, num);
|
||||
from->put(EFF_DATASCAD, data);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//Handler per la gestione della seconda chiave (to) del cursore per numero
|
||||
bool TEliminazione_effetti::to_data_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_TAB)
|
||||
{
|
||||
if (!f.get().empty())// se il campo non è vuoto
|
||||
{
|
||||
TRectype* to = app()._to;
|
||||
TDate data = m.get(F_A_DATA);
|
||||
long num = m.get_long(F_A_RIBA);
|
||||
to->put(EFF_NPROGTR, num);
|
||||
to->put(EFF_DATASCAD, data);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Si effettua l'istanziazione del cursore e si eliminano gli effetti che vi
|
||||
// appartengono
|
||||
void TEliminazione_effetti::elimina()
|
||||
{
|
||||
const TRectype *from = app()._from;
|
||||
const TRectype *to = app()._to;
|
||||
TMask *m = app()._msk;
|
||||
TRelation *rel = app()._rel;
|
||||
TString filter;
|
||||
|
||||
int key;
|
||||
char op1 = m->get(F_TIPOSEL)[0];
|
||||
char op2 = m->get(F_TIPODIST)[0];
|
||||
char op3 = m->get(F_TIPOCANC)[0];
|
||||
switch (op1) //scelgo la chiave per il cursore
|
||||
{
|
||||
case 'N': //selezione effetti per numero
|
||||
key = 1;
|
||||
break;
|
||||
case 'D': //selezione effetti per data
|
||||
key = 3;
|
||||
break;
|
||||
}
|
||||
//scelgo il filtro per il cursore
|
||||
filter << "(TIPOCF=\"" << op2 << "\")";
|
||||
if (op2 == 'C')
|
||||
filter << "||(TIPOCF=\"\")";
|
||||
switch (op3)
|
||||
{
|
||||
case 'S': //cancello effetti stampati
|
||||
filter << "&&(EFFSTAMP=\"X\")";
|
||||
break;
|
||||
case 'C': //cancello effetti contabilizzati
|
||||
filter << "&&(EFFCONT=\"X\")";
|
||||
break;
|
||||
default : //cancello tutti gli effetti
|
||||
break;
|
||||
}
|
||||
TCursor cur(rel,filter,key,from,to); // istanzio il cursore
|
||||
TLocalisamfile& delfile = cur.file();// prendo un riferimento al file
|
||||
long n = cur.items();// prendo il numero di elementi del cursore
|
||||
cur.freeze();// congelo lo stato del cursore
|
||||
for (cur=0; cur.pos() < n; ++cur)// scandisco tutti gli elementi del cursore
|
||||
{
|
||||
TEffetto eff(delfile.curr());// istanzio un effetto
|
||||
eff.remove(delfile); // e lo cancello
|
||||
}
|
||||
}
|
||||
|
||||
//Handler per gestire la conferma della cancellazione degli effetti
|
||||
bool TEliminazione_effetti::conferma_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
if (yesno_box(TR("Si desidera veramente eliminare gli effetti selezionati")))
|
||||
elimina();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Handler per gestire la conferma dell'annullamento dei dati
|
||||
// inseriti nella maschera
|
||||
bool TEliminazione_effetti::annulla_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
if (yesno_box(TR("Si desidera veramente annullare i dati inseriti")))
|
||||
m.reset();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ef0400(int argc, char* argv[])
|
||||
{
|
||||
TEliminazione_effetti a ;
|
||||
a.run(argc, argv, TR("Eliminazione Effetti"));
|
||||
return 0;
|
||||
}
|
15
ci/ci0400.h
Executable file
15
ci/ci0400.h
Executable file
@ -0,0 +1,15 @@
|
||||
#ifndef __EF0400_H
|
||||
#define __EF0400_H
|
||||
|
||||
// DEFINIZIONE CAMPI MASCHERA PER LA ELIMINAZIONE DEGLI EFFETTI
|
||||
// campi maschera ef0400a
|
||||
|
||||
#define F_TIPOSEL 101
|
||||
#define F_TIPOCANC 102
|
||||
#define F_DA_RIBA 103
|
||||
#define F_A_RIBA 104
|
||||
#define F_DA_DATA 105
|
||||
#define F_A_DATA 106
|
||||
#define F_TIPODIST 107
|
||||
|
||||
#endif// __EF0400_H
|
174
ci/cilib.cpp
Executable file
174
ci/cilib.cpp
Executable file
@ -0,0 +1,174 @@
|
||||
#include <config.h>
|
||||
#include <diction.h>
|
||||
#include <prefix.h>
|
||||
#include <progind.h>
|
||||
#include <tabutil.h>
|
||||
#include <xvtility.h>
|
||||
#include <defmask.h>
|
||||
#include <image.h>
|
||||
#include <utility.h> // file functions
|
||||
|
||||
#include "cilib.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAlmanac_field
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
#define almanac_win() ((TAlmanac_window&)win())
|
||||
|
||||
TField_window* TAlmanac_field::create_window(int x, int y, int dx, int dy, WINDOW parent)
|
||||
{
|
||||
return new TAlmanac_window(x, y, dx, dy, parent, this);
|
||||
}
|
||||
|
||||
void TAlmanac_field::set_selected_day(int nday)
|
||||
{
|
||||
if(nday>=1 && nday<=_almanac.last_day())
|
||||
_selectedday=nday;
|
||||
}
|
||||
|
||||
void TAlmanac_field::move_selected_day(int dday)
|
||||
{
|
||||
_selectedday+=dday;
|
||||
if(_selectedday<1) _selectedday=1;
|
||||
if(_selectedday>_almanac.last_day()) _selectedday=_almanac.last_day();
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAlmanac_window
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
#define almanac_fld() ((TAlmanac_field&)owner())
|
||||
|
||||
#define almanac() (((TAlmanac_field&)owner()).almanac())
|
||||
|
||||
void TAlmanac_window::update()
|
||||
{
|
||||
TDate cdate;
|
||||
COLOR col_f, col_b;
|
||||
RCT rct; xvt_vobj_get_client_rect(win(), &rct);
|
||||
TString str;
|
||||
int rct_w, rct_h;
|
||||
int rct_t, rct_l;
|
||||
int pad;
|
||||
int row;
|
||||
|
||||
TField_window::update();
|
||||
|
||||
if (almanac_fld().show_month_name())
|
||||
{
|
||||
// tbc
|
||||
}
|
||||
|
||||
cdate = almanac().month();
|
||||
cdate.set_day(1);
|
||||
|
||||
rct_w = ((rct.right - rct.left) / 9);
|
||||
rct_h = ((rct.bottom - rct.top) / 9);
|
||||
pad = - almanac_fld().padding();
|
||||
row = 3;
|
||||
|
||||
set_color(COLOR_GRAY, COLOR_LTGRAY);
|
||||
|
||||
while (!cdate.is_end_month())
|
||||
{
|
||||
if (almanac().has_documents(cdate))
|
||||
col_b=COLOR_YELLOW;
|
||||
else
|
||||
col_b=COLOR_LTGRAY;
|
||||
|
||||
if (almanac_fld().is_selected(cdate.day()))
|
||||
col_f=COLOR_RED;
|
||||
else
|
||||
col_f=COLOR_GRAY;
|
||||
|
||||
set_color(col_f,col_b);
|
||||
set_font(XVT_FFN_HELVETICA, XVT_FS_BOLD);
|
||||
|
||||
rct_l = rct.left + rct_w*cdate.wday();
|
||||
rct_t = rct.top + rct_h*row;
|
||||
|
||||
str.format("%2d", cdate.day());
|
||||
|
||||
rect(rct_l + pad, rct_t + pad, rct_l + rct_w - pad, rct_t + rct_h - pad);
|
||||
stringat(rct_l + pad + 2, rct_t + pad + 2, str);
|
||||
|
||||
if ((++cdate).wday()==1) row++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool TAlmanac_window::on_key(KEY key)
|
||||
{
|
||||
|
||||
if (key == K_RIGHT)
|
||||
{
|
||||
almanac_fld().move_selected_day(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (key == K_LEFT)
|
||||
{
|
||||
almanac_fld().move_selected_day(-1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (key == K_UP)
|
||||
{
|
||||
almanac_fld().move_selected_day(-7);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (key == K_DOWN)
|
||||
{
|
||||
almanac_fld().move_selected_day(+7);
|
||||
return true;
|
||||
;
|
||||
}
|
||||
|
||||
return TField_window::on_key(key);
|
||||
}
|
||||
|
||||
void TAlmanac_window::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
TDate cdate;
|
||||
RCT rct; xvt_vobj_get_client_rect(win, &rct);
|
||||
int rct_w, rct_h;
|
||||
int pnt_r, pnt_c;
|
||||
int delta;
|
||||
|
||||
switch(ep->type)
|
||||
{
|
||||
case E_MOUSE_DBL:
|
||||
case E_MOUSE_DOWN:
|
||||
{
|
||||
cdate = almanac().month();
|
||||
cdate.set_day(1);
|
||||
|
||||
rct_w = ((rct.right - rct.left) / 9);
|
||||
rct_h = ((rct.bottom - rct.top) / 9);
|
||||
pnt_c = (ep->v.mouse.where.v) % rct_w;
|
||||
pnt_r = (ep->v.mouse.where.h) % rct_h;
|
||||
|
||||
delta = pnt_c*pnt_r - (27+cdate.wday());
|
||||
|
||||
if (delta>=1&&delta<=almanac().last_day())
|
||||
{
|
||||
almanac_fld().set_selected_day(delta);
|
||||
owner().on_key(K_SPACE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
TField_window::handler(win, ep);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TAlmanac_window::TAlmanac_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner)
|
||||
: TField_window(x, y, dx, dy, parent, owner)
|
||||
{
|
||||
}
|
||||
|
79
ci/cilib.h
Executable file
79
ci/cilib.h
Executable file
@ -0,0 +1,79 @@
|
||||
#ifndef __CILIB_H
|
||||
#define __CILIB_H
|
||||
|
||||
#ifndef __AUTOMASK_H
|
||||
#include <automask.h>
|
||||
#endif
|
||||
|
||||
#ifndef __DBLIB_H
|
||||
#include "../db/dblib.h"
|
||||
#endif
|
||||
|
||||
// TAlmanac
|
||||
|
||||
class TAlmanac : public TObject
|
||||
{
|
||||
TDate _curr_month;
|
||||
|
||||
public:
|
||||
const TDate& month() const { return _curr_month; }
|
||||
int last_day() { return TDate::last_day(_curr_month.month(),_curr_month.year()); }
|
||||
|
||||
public:
|
||||
bool has_documents(TDate& tdate) { return false; }
|
||||
|
||||
TAlmanac(int m, int a) : _curr_month(1, m, a) { }
|
||||
TAlmanac() { _curr_month = TODAY; _curr_month.set_day(1); }
|
||||
virtual ~TAlmanac() { }
|
||||
};
|
||||
|
||||
// TAlmanac_field
|
||||
|
||||
class TAlmanac_field : public TWindowed_field
|
||||
{
|
||||
private:
|
||||
TAlmanac _almanac;
|
||||
|
||||
int _padding;
|
||||
bool _showmonthname;
|
||||
int _selectedday;
|
||||
|
||||
protected: // TWindowed_field
|
||||
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
||||
|
||||
public:
|
||||
bool is_selected(int tday) { return (tday==_selectedday); }
|
||||
void set_selected_day(int nday);
|
||||
void move_selected_day(int ddays);
|
||||
|
||||
public:
|
||||
void set_show_month_name(bool on) { _showmonthname = on; }
|
||||
void set_padding(int p) { _padding = p; }
|
||||
|
||||
bool show_month_name() const { return _showmonthname; }
|
||||
int padding() const { return _padding; }
|
||||
|
||||
public:
|
||||
TAlmanac& almanac() { return _almanac; }
|
||||
|
||||
public:
|
||||
TAlmanac_field(TMask* m) : TWindowed_field(m), _almanac(), _showmonthname(true) { }
|
||||
virtual ~TAlmanac_field() { }
|
||||
};
|
||||
|
||||
// TAlmanac_window
|
||||
|
||||
class TAlmanac_window : public TField_window
|
||||
{
|
||||
protected:
|
||||
virtual void update();
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
|
||||
public:
|
||||
virtual bool on_key(KEY k);
|
||||
|
||||
TAlmanac_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner);
|
||||
virtual ~TAlmanac_window() { }
|
||||
};
|
||||
|
||||
#endif
|
63
projects/ci.dsp
Executable file
63
projects/ci.dsp
Executable file
@ -0,0 +1,63 @@
|
||||
# Microsoft Developer Studio Project File - Name="ci" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
|
||||
|
||||
CFG=ci - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ci.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ci.mak" CFG="ci - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "ci - Win32 Release" (based on "Win32 (x86) Generic Project")
|
||||
!MESSAGE "ci - Win32 Debug" (based on "Win32 (x86) Generic Project")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
MTL=midl.exe
|
||||
|
||||
!IF "$(CFG)" == "ci - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
|
||||
!ELSEIF "$(CFG)" == "ci - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "ci___Win32_Debug"
|
||||
# PROP BASE Intermediate_Dir "ci___Win32_Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "../debug"
|
||||
# PROP Intermediate_Dir "../debug"
|
||||
# PROP Target_Dir ""
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "ci - Win32 Release"
|
||||
# Name "ci - Win32 Debug"
|
||||
# End Target
|
||||
# End Project
|
44
projects/ci.dsw
Executable file
44
projects/ci.dsw
Executable file
@ -0,0 +1,44 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "ci"=.\ci.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name ci0
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "ci0"=.\ci0.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
143
projects/ci0.dsp
Executable file
143
projects/ci0.dsp
Executable file
@ -0,0 +1,143 @@
|
||||
# Microsoft Developer Studio Project File - Name="ci0" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=ci0 - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ci0.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ci0.mak" CFG="ci0 - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "ci0 - Win32 Release" (based on "Win32 (x86) Application")
|
||||
!MESSAGE "ci0 - Win32 Debug" (based on "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "ci0 - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "../release"
|
||||
# PROP Intermediate_Dir "../release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /O2 /I "..\include" /I "..\xvaga" /I "..\xi" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XVT" /FR /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /i "..\..\wx240\include" /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
||||
# ADD LINK32 version.lib wsock32.lib kernel32.lib gdi32.lib user32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib comctl32.lib rpcrt4.lib winspool.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /out:"D:\Release\Campo22/ci0.exe"
|
||||
# SUBTRACT LINK32 /map /debug /nodefaultlib
|
||||
|
||||
!ELSEIF "$(CFG)" == "ci0 - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "../debug"
|
||||
# PROP Intermediate_Dir "../debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "..\include" /I "..\xvaga" /I "..\xi" /D "_DEBUG" /D "WIN32" /D "DBG" /D "_WINDOWS" /FR /FD /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /i "..\..\wx240\include" /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 version.lib wsock32.lib kernel32.lib gdi32.lib user32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib comctl32.lib rpcrt4.lib winspool.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\exed\ci0.exe" /pdbtype:sept
|
||||
# SUBTRACT LINK32 /nodefaultlib
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "ci0 - Win32 Release"
|
||||
# Name "ci0 - Win32 Debug"
|
||||
# Begin Group "Sources"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\ci0.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\ci0300.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\cilib.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Headers"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\ci0.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\ci0300.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\cilib.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Masks"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ci\ci0300.uml
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ci0.rc
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\LIB\AgaLibD.lib
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
4
projects/ci0.rc
Executable file
4
projects/ci0.rc
Executable file
@ -0,0 +1,4 @@
|
||||
"9012" ICON DISCARDABLE "../exed/res/exe.ico"
|
||||
|
||||
rcinclude ../../wx240/include/wx/msw/wx.rc
|
||||
|
Loading…
x
Reference in New Issue
Block a user