Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@12995 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
brugno 2005-04-22 11:18:23 +00:00
parent 147654f3e1
commit f15009b25f
6 changed files with 118 additions and 91 deletions

View File

@ -17,6 +17,57 @@
// TImmissioneDocumenti_app
///////////////////////////////////////////////////////////
// Inizializzazioni
void TImmissioneDocumenti_app::init_tabs()
{
TToken_string pagenames;
int items;
_tabs.destroy();
_filters.destroy();
pagenames = "";
TConfig configfile("ci0400.ini");
configfile.list_paragraphs(_tabs);
items = _tabs.items();
const short id = F_AL01;
for (int i = 0; i < items; i++)
{
pagenames.add(_tabs.row(i));
_filters.add(configfile.get("Filtro",_tabs.row(i)));
_mask->activate_almanac(id + i, i, TDate(TODAY));
}
_mask->set_caption(pagenames);
_mask->disable_page(items);
}
void TImmissioneDocumenti_app::init_flags()
{
int items;
TDate currdate;
TDate currstart;
TString filter;
filter << "ANNO==\"" << _year << "\"";
TRelation relation(LF_DOC);
TSorted_cursor cursor(&relation, "ANNO", filter);
items =cursor.items();
for (cursor=0;cursor.pos()<items;++cursor)
{
currdate = relation.lfile().get_date(DOC_DATADOC);
_flags.set(currdate-_newyearsday, 1);
}
}
// Overrides
bool TImmissioneDocumenti_app::create()
@ -40,20 +91,23 @@ void TImmissioneDocumenti_app::main_loop()
{
while (_mask->run() == K_ENTER)
{
_mask->open_inner_sheet(_mask->selected_day(),_filters.row(_mask->curr_page()));
TDate selday = _mask->selected_day();
int currpage = _mask->curr_page();
// _mask->open_inner_sheet(selday,_filters.row(currpage));
}
}
// Chiamate dalla maschera
void TImmissioneDocumenti_app::change_year(int newyear)
void TImmissioneDocumenti_app::change_year(int newyear, bool init_flg)
{
_year = newyear;
_newyearsday.set_day(1);
_newyearsday.set_month(1);
_newyearsday.set_year(_year);
init_flags();
if (init_flg) init_flags();
}
bool TImmissioneDocumenti_app::has_documents(TDate& day)
@ -61,57 +115,6 @@ bool TImmissioneDocumenti_app::has_documents(TDate& day)
return ((_flags)[day-_newyearsday]);
}
// Inizializzazioni
void TImmissioneDocumenti_app::init_tabs()
{
TString pagename;
TString currfilter;
int items;
_tabs.destroy();
_filters.destroy();
TConfig configfile("ci0300.ini");
configfile.list_paragraphs(_tabs);
items = _tabs.items();
const short id = F_AL01;
for (int i = 0; i < items; i++)
{
pagename.format("Pagina %d",i + 1);
currfilter = configfile.get("Filtro",_tabs.row(i));
// TMask_field* currpage = _mask->find_by_fieldname(pagename); ??? cazzo e'
// currpage->set_prompt(_tabs.row(i));
_filters.add(currfilter);
_mask->activate_almanac(id + i, i, TDate(TODAY));
}
_mask->disable_pages();
}
void TImmissioneDocumenti_app::init_flags()
{
int items;
TDate currdate;
TDate currstart;
TString filter;
filter << "ANNO==\"" << _year << "\"";
TRelation relation(LF_DOC);
TSorted_cursor cursor(&relation, "ANNO", filter);
items =cursor.items();
for (cursor=0;cursor.pos()<items;++cursor)
{
currdate = relation.lfile().get_date(DOC_DATADOC);
_flags.set(currdate-_newyearsday, 1); // cazzo e' ? da un errore fatale
}
}
///////////////////////////////////////////////////////////
// TImmissioneDocumenti_mask
///////////////////////////////////////////////////////////

View File

@ -56,10 +56,10 @@ protected:
public:
bool has_documents(TDate& day); // passata come funzione alla maschera
void change_year(int newyear); // passata come funzione alla maschera
void change_year(int newyear, bool init_flg = true); // passata come funzione alla maschera
public:
TImmissioneDocumenti_app() : _flags(366), _year(TDate(TODAY).year()), _newyearsday(1,1,_year) {}
TImmissioneDocumenti_app() : _flags(366) { change_year(TDate(TODAY).year(), false); }
virtual ~TImmissioneDocumenti_app() {}
};

5
ci/ci0400.ini Executable file
View File

@ -0,0 +1,5 @@
[Fatture]
Filtro = F01
[Bolle]
Filtro = B01

View File

@ -17,13 +17,13 @@ END
LIST F_CHANGEMONTH 10
BEGIN
PROMPT 18 -11 "Mese "
PROMPT 18 -11 " "
FLAGS "M"
END
NUMBER F_CHANGEYEAR 4
NUMBER F_CHANGEYEAR 10
BEGIN
PROMPT 44 -11 "Anno "
PROMPT 44 -11 ""
FLAGS "A"
END

View File

@ -4,6 +4,7 @@
#include <xvtility.h>
#include <defmask.h>
#include <utility.h> // file functions
#include <xvt.h>
#include "cilib.h"
#include "cimsk.h"
@ -121,6 +122,8 @@ void TAlmanac_field::set_selected_day(int nday)
{
if(nday>=1 && nday<=TDate::last_day(_selecteddate.month(),_selecteddate.year()))
{
TAlmanac_mask& m = (TAlmanac_mask&)mask();
_selecteddate.set_day(nday);
win().force_update();
}
@ -163,11 +166,13 @@ void TAlmanac_window::update()
TDate cdate;
COLOR col_f, col_b;
RCT rct; xvt_vobj_get_client_rect(win(), &rct);
RCT rcttd;
TString str;
int rct_w, rct_h;
int rct_t, rct_l;
int pad;
int row;
int fh;
TAlmanac_field & o = (TAlmanac_field&)owner();
TField_window::update();
@ -176,49 +181,57 @@ void TAlmanac_window::update()
rct_w = ((rct.right - rct.left) / 9);
rct_h = ((rct.bottom - rct.top) / 9);
pad = - o.padding();
pad = o.padding();
row = 3;
set_font("Verdana", XVT_FS_BOLD);
set_color(COLOR_BLACK, COLOR_WHITE);
fh = 2 + xvt_dwin_get_font_size_mapped(win());
if (o.show_month_name())
{
str.format("%s", itom(cdate.month()));
str.format("%s %d", itom(cdate.month()),cdate.year());
rct_l = rct.left + rct_w;
rct_t = rct.top + rct_h;
stringat(rct_l + pad + 2, rct_t + pad + 2, str);
xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1);
}
for (int i=1;i<7;i++)
for (int i=1;i<=7;i++)
{
str.format("%c", itow(i)[0]);
rct_l = rct.left + rct_w*i;
rct_t = rct.top + rct_h*2;
stringat(rct_l + pad + 2, rct_t + pad + 2, str);
xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1);
}
set_color(COLOR_GRAY, COLOR_LTGRAY);
while (!cdate.is_end_month())
{
if (o.is_date_void(cdate))
col_b=COLOR_LTGRAY;
col_b=COLOR_WHITE;
else
col_b=COLOR_YELLOW;
col_b=COLOR_LTGRAY;
if (o.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);
set_pen(col_f);
set_brush(col_b);
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);
rcttd.top = rct_t + pad;
rcttd.left = rct_l + pad;
rcttd.bottom = rct_t + rct_h - pad;
rcttd.right = rct_l + rct_w - pad;
xvt_dwin_draw_rect(win(), &rcttd);
xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1);
if ((++cdate).wday()==1) row++;
}
@ -228,31 +241,40 @@ void TAlmanac_window::update()
bool TAlmanac_window::on_key(KEY key)
{
TAlmanac_field & o = (TAlmanac_field&)owner();
int smonth, syear;
smonth = o.selected_month();
syear = o.selected_year();
switch (key)
{
case K_RIGHT:
o.move_selected_day(1);
return true;
break;
case K_LEFT:
o.move_selected_day(-1);
return true;
break;
case K_UP:
o.move_selected_day(-7);
return true;
break;
case K_DOWN:
o.move_selected_day(+7);
return true;
default:
break;
default:
return TField_window::on_key(key);
}
return TField_window::on_key(key);
if(smonth!=o.selected_month())
o.mask().set(F_CHANGEMONTH, o.selected_month(), true);
if(syear!=o.selected_year())
o.mask().set(F_CHANGEYEAR, o.selected_year(), true);
return true;
}
void TAlmanac_window::handler(WINDOW win, EVENT* ep)
{
TDate cdate;
TDate cdate, fdate;
RCT rct; xvt_vobj_get_client_rect(win, &rct);
int rct_w, rct_h;
int pnt_r, pnt_c;
@ -261,26 +283,23 @@ void TAlmanac_window::handler(WINDOW win, EVENT* ep)
switch(ep->type)
{
case E_MOUSE_DBL:
case E_MOUSE_DOWN:
case E_MOUSE_DBL:
{
cdate = o.selected_date();
cdate.set_day(1);
fdate = o.selected_date();
fdate.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;
pnt_c = (ep->v.mouse.where.h) / rct_w;
pnt_r = (ep->v.mouse.where.v) / rct_h;
delta = pnt_c*pnt_r - (27+cdate.wday());
if (delta>=1&&delta<=TDate::last_day(o.selected_date().month(), o.selected_date().year()))
{
o.set_selected_day(delta);
o.on_key(K_SPACE);
}
delta = 7*pnt_r + pnt_c - (7*(3+cdate.week()-fdate.week()) + cdate.wday());
o.move_selected_day(delta);
if (ep->type==E_MOUSE_DBL) o.mask().stop_run(K_ENTER);
}
break;
default:
TField_window::handler(win, ep);
break;

View File

@ -83,7 +83,7 @@ public:
// @access Public Member
public:
// @cmember Costruttore
TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _padding(0) { }
TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _padding(2) { }
// @cmember Distruttore
virtual ~TAlmanac_field() { }
};
@ -118,7 +118,7 @@ public:
// @cmember Costruttore
TAlmanac_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner);
// @cmember Distruttore
virtual ~TAlmanac_window() { }
virtual ~TAlmanac_window() { set_scroll_max(0,0); _pixmap=0; }
};
///////////////////////////////////////////////////////////