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:
parent
147654f3e1
commit
f15009b25f
111
ci/ci0400.cpp
111
ci/ci0400.cpp
@ -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
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -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
5
ci/ci0400.ini
Executable file
@ -0,0 +1,5 @@
|
||||
[Fatture]
|
||||
Filtro = F01
|
||||
|
||||
[Bolle]
|
||||
Filtro = B01
|
@ -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
|
||||
|
||||
|
79
ci/cilib.cpp
79
ci/cilib.cpp
@ -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;
|
||||
|
@ -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; }
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user