Patch level : 2.1 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunte fichissime alla stampa report git-svn-id: svn://10.65.10.50/trunk@12180 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0126346ff7
commit
f72c70c29b
@ -100,6 +100,24 @@ bool TReport_base_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_FGCOLOR:
|
||||
if (e == fe_button)
|
||||
{
|
||||
_fgcolor = xvt_dm_post_choose_color(win(), _fgcolor);
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case F_BGCOLOR:
|
||||
if (e == fe_button)
|
||||
{
|
||||
_bgcolor = xvt_dm_post_choose_color(win(), _bgcolor);
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case F_PATTERN:
|
||||
if (e == fe_modify)
|
||||
force_update();
|
||||
break;
|
||||
case F_FONT_SELECT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
@ -240,6 +258,8 @@ void TReport_field_mask::vedo_non_vedo()
|
||||
show(F_DYNAMIC_HEIGHT, type == 'S');
|
||||
show(F_FGCOLOR, type != 'I');
|
||||
show(F_BGCOLOR, type != 'L');
|
||||
show(F_PATTERN, type != 'L' && type != 'I');
|
||||
show(F_RADIUS, type != 'L' && type != 'I');
|
||||
show(F_FONT_SELECT, is_text);
|
||||
show(F_SOURCE, (is_text || type == 'I') && type != 'T');
|
||||
show(F_SOURCE2, is_text && type != 'T');
|
||||
@ -260,7 +280,14 @@ bool TReport_field_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
{
|
||||
case F_TYPE:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
{
|
||||
vedo_non_vedo();
|
||||
if (e == fe_modify)
|
||||
{
|
||||
if (strchr("ELR", o.get()[0]) != NULL && get_int(F_BORDER) == 0)
|
||||
set(F_BORDER, 2); // Propongo un bordo visibile per le linee
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_X:
|
||||
case F_Y:
|
||||
@ -272,20 +299,6 @@ bool TReport_field_mask::on_field_event(TOperable_field& o, TField_event e, long
|
||||
set_num(o.dlg(), num); // Reformat
|
||||
}
|
||||
break;
|
||||
case F_FGCOLOR:
|
||||
if (e == fe_button)
|
||||
{
|
||||
_fgcolor = xvt_dm_post_choose_color(win(), _fgcolor);
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case F_BGCOLOR:
|
||||
if (e == fe_button)
|
||||
{
|
||||
_bgcolor = xvt_dm_post_choose_color(win(), _bgcolor);
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case F_LIST:
|
||||
if (e == fe_close)
|
||||
{
|
||||
@ -364,6 +377,8 @@ void TReport_field_mask::set_field(const TReport_field& rf)
|
||||
str[0] = rf.vertical_alignment();
|
||||
set(F_VALIGN, str);
|
||||
set(F_BORDER, rf.border());
|
||||
set(F_PATTERN, rf.pattern());
|
||||
set_num(F_RADIUS, rf.radius());
|
||||
_fgcolor = rf.fore_color();
|
||||
_bgcolor = rf.back_color();
|
||||
set(F_TEXT, rf.picture());
|
||||
@ -389,14 +404,16 @@ void TReport_field_mask::get_field(TReport_field& rf) const
|
||||
rf.set_size(get_num(F_DX), get_num(F_DY));
|
||||
rf.show(!get_bool(F_HIDDEN));
|
||||
rf.activate(!get_bool(F_DISABLED));
|
||||
rf.hide_zeroes(get_bool(F_HIDE_ZEROES));
|
||||
rf.hide_zeroes(field(F_HIDE_ZEROES).active() && get_bool(F_HIDE_ZEROES));
|
||||
rf.set_dynamic_height(get_bool(F_DYNAMIC_HEIGHT));
|
||||
rf.set_groups(get(F_GROUPS));
|
||||
rf.set_codval(get(F_CODVAL));
|
||||
rf.set_link(get(F_LINK));
|
||||
rf.set_horizontal_alignment(get(F_HALIGN)[0]);
|
||||
rf.set_vertical_alignment(get(F_VALIGN)[0]);
|
||||
rf.set_pattern((PAT_STYLE)get_int(F_PATTERN));
|
||||
rf.set_border(get_int(F_BORDER));
|
||||
rf.set_radius(get_num(F_RADIUS));
|
||||
rf.set_fore_color(_fgcolor);
|
||||
rf.set_back_color(_bgcolor);
|
||||
if (strchr("VP", rf.type()) != NULL)
|
||||
@ -519,6 +536,7 @@ TReport_sheet::TReport_sheet(TReport_section& sec)
|
||||
class TSection_properties_mask : public TReport_base_mask
|
||||
{
|
||||
protected:
|
||||
virtual void update();
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
void set_num(short id, long num);
|
||||
short get_num(short id) const;
|
||||
@ -531,6 +549,25 @@ public:
|
||||
TSection_properties_mask(TReport_section& rs);
|
||||
};
|
||||
|
||||
void TSection_properties_mask::update()
|
||||
{
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
TMask_field& fld = field(i == 0 ? F_FGCOLOR : F_BGCOLOR);
|
||||
if (fld.active() && fld.parent() == win())
|
||||
{
|
||||
RCT rctfld; fld.get_rect(rctfld);
|
||||
const int x = rctfld.right / CHARX + 1;
|
||||
const int y = rctfld.top / ROWY + 1;
|
||||
RCT& rct = resize_rect(x, y, -3, 1, W_PLAIN, win());
|
||||
rct.top = rctfld.top; rct.bottom = rctfld.bottom;
|
||||
xi_draw_3d_rect((XinWindow)win(), (XinRect*)&rct, TRUE, 2, MASK_LIGHT_COLOR,
|
||||
i == 0 ? _fgcolor : _bgcolor, MASK_DARK_COLOR);
|
||||
}
|
||||
}
|
||||
TReport_base_mask::update();
|
||||
}
|
||||
|
||||
void TSection_properties_mask::set_num(short id, long num)
|
||||
{
|
||||
set(id, num2str(num));
|
||||
@ -601,7 +638,13 @@ void TSection_properties_mask::set_section(const TReport_section& rs)
|
||||
set(F_REPEAT, rs.repeat_on_page());
|
||||
set(F_DISABLED, rs.deactivated());
|
||||
|
||||
set(F_BORDER, rs.border());
|
||||
set(F_PATTERN, rs.pattern());
|
||||
set_num(F_RADIUS, rs.radius());
|
||||
_fgcolor = rs.fore_color();
|
||||
_bgcolor = rs.back_color();
|
||||
set_font_info(rs.font());
|
||||
|
||||
set(F_PRESCRIPT, rs.prescript());
|
||||
set(F_POSTSCRIPT, rs.postscript());
|
||||
|
||||
@ -627,6 +670,11 @@ void TSection_properties_mask::get_section(TReport_section& rs) const
|
||||
rs.keep_with_next(get_bool(F_KEEP_WITH_NEXT));
|
||||
rs.set_repeat_on_page(get_bool(F_REPEAT));
|
||||
|
||||
rs.set_pattern((PAT_STYLE)get_int(F_PATTERN));
|
||||
rs.set_border(get_int(F_BORDER));
|
||||
rs.set_radius(get_num(F_RADIUS));
|
||||
rs.set_fore_color(_fgcolor);
|
||||
rs.set_back_color(_bgcolor);
|
||||
TReport_font f;
|
||||
if (get_font_info(f))
|
||||
rs.set_font(f);
|
||||
@ -1098,6 +1146,7 @@ void TReport_mask::section_properties()
|
||||
{
|
||||
case K_ENTER:
|
||||
m.get_section(rs);
|
||||
_tree.goto_node(rs.type(), rs.level());
|
||||
_is_dirty = true;
|
||||
break;
|
||||
case K_DEL:
|
||||
@ -1107,7 +1156,6 @@ void TReport_mask::section_properties()
|
||||
const int l = rs.level();
|
||||
rs.report().kill_section(t, l);
|
||||
_tree.goto_node(t, l-1);
|
||||
tfield(F_SECTIONS).select_current();
|
||||
_is_dirty = true;
|
||||
}
|
||||
break;
|
||||
|
@ -40,6 +40,8 @@
|
||||
#define F_SOURCE2 145
|
||||
#define F_HIDE_DOTS 146
|
||||
#define F_DYNAMIC_HEIGHT 147
|
||||
#define F_RADIUS 148
|
||||
#define F_PATTERN 149
|
||||
|
||||
#define F_LEVEL 160
|
||||
#define F_GROUP_BY 161
|
||||
|
@ -73,15 +73,14 @@ END
|
||||
|
||||
TEXT F_REPORT_TITLE
|
||||
BEGIN
|
||||
PROMPT 41 6 "Corpo di livello 0"
|
||||
PROMPT 41 7 "Corpo di livello 0"
|
||||
END
|
||||
|
||||
REPORT F_REPORT -3 -3
|
||||
BEGIN
|
||||
PROMPT 21 7 ""
|
||||
PROMPT 21 8 ""
|
||||
END
|
||||
|
||||
|
||||
BUTTON F_FLD_ADD 10 2
|
||||
BEGIN
|
||||
PROMPT -16 -1 "Campo +"
|
||||
|
@ -5,13 +5,13 @@ PAGE "Campo" -1 -1 72 17
|
||||
LIST F_TYPE 1 16
|
||||
BEGIN
|
||||
PROMPT 1 0 "Tipo "
|
||||
ITEM "T|Testo"
|
||||
ITEM "T|Testo fisso"
|
||||
ITEM "S|Stringa"
|
||||
ITEM "N|Numero"
|
||||
ITEM "V|Valuta"
|
||||
ITEM "P|Prezzo"
|
||||
ITEM "D|Data"
|
||||
ITEM "A|Array"
|
||||
ITEM "A|Array (Lista)"
|
||||
ITEM "I|Immagine"
|
||||
ITEM "L|Linea"
|
||||
ITEM "R|Rettangolo"
|
||||
@ -157,20 +157,52 @@ BEGIN
|
||||
PROMPT 2 5 "Colore ~Sfondo"
|
||||
END
|
||||
|
||||
BUTTON F_FONT_SELECT 14 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "~Font"
|
||||
END
|
||||
|
||||
LIST F_BORDER 1 12
|
||||
BEGIN
|
||||
PROMPT 2 10 "Bordo "
|
||||
PROMPT 2 7 "Bordo "
|
||||
ITEM "0|Nessuno"
|
||||
MESSAGE HIDE,F_RADIUS
|
||||
ITEM "1|Sottile"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
ITEM "2|Normale"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
ITEM "3|Spesso"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
END
|
||||
|
||||
NUMBER F_RADIUS 3
|
||||
BEGIN
|
||||
PROMPT 32 7 "Raggio smussatura "
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
LIST F_PATTERN 1 18
|
||||
BEGIN
|
||||
PROMPT 2 8 "Stile "
|
||||
ITEM "2|Pieno"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "1|Trasparente"
|
||||
MESSAGE HIDE,F_BGCOLOR
|
||||
ITEM "3|Linee orizzontali"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "4|Linee verticali"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "5|Diagonali \"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "6|Diagonali /"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "7|Griglia"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "8|Griglia diagonale"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
END
|
||||
|
||||
BUTTON F_FONT_SELECT 14 2
|
||||
BEGIN
|
||||
PROMPT 2 10 "~Font"
|
||||
END
|
||||
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
|
@ -91,11 +91,6 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON F_FONT_SELECT 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -3 "~Font"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
@ -113,6 +108,75 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Aspetto" -1 -1 72 16
|
||||
|
||||
LIST F_BORDER 1 12
|
||||
BEGIN
|
||||
PROMPT 2 1 "Bordo "
|
||||
ITEM "0|Nessuno"
|
||||
MESSAGE HIDE,F_RADIUS
|
||||
ITEM "1|Sottile"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
ITEM "2|Normale"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
ITEM "3|Spesso"
|
||||
MESSAGE SHOW,F_RADIUS
|
||||
END
|
||||
|
||||
NUMBER F_RADIUS 3
|
||||
BEGIN
|
||||
PROMPT 26 1 "Raggio smussatura "
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
BUTTON F_FGCOLOR 14 1
|
||||
BEGIN
|
||||
PROMPT 2 2 "Colore ~Bordo"
|
||||
END
|
||||
|
||||
LIST F_PATTERN 1 18
|
||||
BEGIN
|
||||
PROMPT 2 4 "Sfondo "
|
||||
ITEM "1|Trasparente"
|
||||
MESSAGE HIDE,F_BGCOLOR
|
||||
ITEM "2|Pieno"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "3|Linee orizzontali"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "4|Linee verticali"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "5|Diagonali \"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "6|Diagonali /"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "7|Griglia"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
ITEM "8|Griglia diagonale"
|
||||
MESSAGE SHOW,F_BGCOLOR
|
||||
END
|
||||
|
||||
BUTTON F_BGCOLOR 14 1
|
||||
BEGIN
|
||||
PROMPT 2 5 "Colore ~Sfondo"
|
||||
END
|
||||
|
||||
BUTTON F_FONT_SELECT 14 2
|
||||
BEGIN
|
||||
PROMPT 2 10 "~Font"
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Avanzate" -1 -1 50 16
|
||||
|
||||
MEMO F_PRESCRIPT 48 7
|
||||
|
@ -1,49 +0,0 @@
|
||||
PAGE "Monitor" -1 -1 50 20
|
||||
|
||||
LIST 101 24 -3
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
END
|
||||
|
||||
STACK 102 -3 10
|
||||
BEGIN
|
||||
PROMPT 27 0 ""
|
||||
END
|
||||
|
||||
STACK 103 -3 -3
|
||||
BEGIN
|
||||
PROMPT 27 11 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_NEXTREC 9 2
|
||||
BEGIN
|
||||
PROMPT -14 -1 ""
|
||||
PICTURE 124
|
||||
MESSAGE EXIT,K_F11
|
||||
END
|
||||
|
||||
BUTTON DLG_LASTREC 9 2
|
||||
BEGIN
|
||||
PROMPT -24 -1 ""
|
||||
PICTURE 1671
|
||||
MESSAGE EXIT,K_F10
|
||||
END
|
||||
|
||||
BUTTON DLG_ELABORA 9 2
|
||||
BEGIN
|
||||
PROMPT -34 -1 ""
|
||||
PICTURE BMP_LASTREC
|
||||
MESSAGE EXIT,K_F5
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -44 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
134
ba/ba8301.cpp
134
ba/ba8301.cpp
@ -4,6 +4,7 @@
|
||||
#include <diction.h>
|
||||
#include <image.h>
|
||||
#include <mask.h>
|
||||
#include <reprint.h>
|
||||
|
||||
#include "ba8300.h"
|
||||
#include "ba8301.h"
|
||||
@ -321,9 +322,10 @@ class TReport_window : public TField_window
|
||||
PNT _pt_click, _pt_drag_offset;
|
||||
RCT _rct_drag;
|
||||
|
||||
TArray _clipboard;
|
||||
TReport_image_cache _images;
|
||||
|
||||
static TArray _clipboard;
|
||||
|
||||
protected:
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
virtual void update();
|
||||
@ -341,6 +343,7 @@ protected:
|
||||
void popup_cut();
|
||||
void popup_copy();
|
||||
void popup_paste();
|
||||
bool do_zoom(int k, bool reflect);
|
||||
|
||||
int cpi() const;
|
||||
int lpi() const;
|
||||
@ -365,6 +368,8 @@ public:
|
||||
virtual ~TReport_window() { }
|
||||
};
|
||||
|
||||
TArray TReport_window::_clipboard;
|
||||
|
||||
void TReport_window::set_report_section(TReport_section& rs)
|
||||
{
|
||||
_report = &rs.report();
|
||||
@ -372,7 +377,6 @@ void TReport_window::set_report_section(TReport_section& rs)
|
||||
_level = rs.level();
|
||||
}
|
||||
|
||||
|
||||
bool TReport_window::pick(const TPoint& ptlog) const
|
||||
{
|
||||
TReport_section& rs = curr_section();
|
||||
@ -683,6 +687,29 @@ bool TReport_window::test_corner(const RCT& rct, const PNT& pt, PNT& opposite) c
|
||||
return test == 2;
|
||||
}
|
||||
|
||||
bool TReport_window::do_zoom(int k, bool reflect)
|
||||
{
|
||||
const int n = _dpi.v+k;
|
||||
const bool ok = n >= 48 && n < 300;
|
||||
if (ok)
|
||||
{
|
||||
_dpi.h = _dpi.v = n;
|
||||
|
||||
curr_section().unmap_font();
|
||||
force_update();
|
||||
|
||||
if (reflect)
|
||||
{
|
||||
const short buddy = owner().dlg() == F_REPORT ? F_REPORTH : F_REPORT;
|
||||
TWindowed_field& fld = (TWindowed_field&)owner().mask().field(buddy);
|
||||
TReport_window& win = (TReport_window&)fld.win();
|
||||
win.do_zoom(k, false);
|
||||
}
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TReport_window::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
switch (ep->type)
|
||||
@ -840,20 +867,10 @@ void TReport_window::handler(WINDOW win, EVENT* ep)
|
||||
popup_paste();
|
||||
break;
|
||||
case POPUP_ZOOMIN:
|
||||
if (_dpi.v < 300)
|
||||
{
|
||||
_dpi.h = _dpi.v = _dpi.v + 24;
|
||||
curr_section().unmap_font();
|
||||
force_update();
|
||||
}
|
||||
do_zoom(+24, true);
|
||||
break;
|
||||
case POPUP_ZOOMOUT:
|
||||
if (_dpi.v > 48)
|
||||
{
|
||||
_dpi.h = _dpi.v = _dpi.v - 24;
|
||||
curr_section().unmap_font();
|
||||
force_update();
|
||||
}
|
||||
do_zoom(-24, true);
|
||||
break;
|
||||
case POPUP_PROPERTIES:
|
||||
{
|
||||
@ -872,6 +889,19 @@ void TReport_window::handler(WINDOW win, EVENT* ep)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case E_HSCROLL:
|
||||
{ // Riflette l'evento E_HSCROLL sull'altra finestra di anteprima spacciandolo per E_USER
|
||||
const short buddy = owner().dlg() == F_REPORT ? F_REPORTH : F_REPORT;
|
||||
TWindowed_field& fld = (TWindowed_field&)owner().mask().field(buddy);
|
||||
ep->type = E_USER;
|
||||
dispatch_event(fld.win().win(), *ep, false);
|
||||
ep->type = E_HSCROLL;
|
||||
}
|
||||
break;
|
||||
case E_USER:
|
||||
// Mi e' arrivato un E_HSCROLL camuffato E_USER dall'altra finestra di anteprima
|
||||
ep->type = E_HSCROLL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -900,34 +930,57 @@ TPoint TReport_window::dev2log(const PNT& pt) const
|
||||
|
||||
void TReport_window::draw_grid()
|
||||
{
|
||||
const int k = 100;
|
||||
|
||||
clear(COLOR_WHITE);
|
||||
|
||||
const int max = 196;
|
||||
const int k = 100;
|
||||
for (int i = 1; i < max; i++)
|
||||
{
|
||||
set_pen(i%10 ? MAKE_COLOR(232,232,255) : MAKE_COLOR(255,192,255));
|
||||
line(0, i*k, max*k, i*k);
|
||||
line(i*k, 0, i*k, max*k);
|
||||
}
|
||||
|
||||
const TReport_section& rs = curr_section();
|
||||
int x = rs.width();
|
||||
int y = rs.height();
|
||||
|
||||
if (x <= 0) x = 196*k;
|
||||
if (y <= 0) // Sezione ad altezza variabile
|
||||
{
|
||||
for (int i = 0; i < rs.items(); i++)
|
||||
{
|
||||
const TReport_field& rf = rs.field(i);
|
||||
const int fy = rf.get_rect().bottom();
|
||||
const TRectangle& rct = rf.get_rect();
|
||||
const int fy = rct.bottom();
|
||||
if (fy > y) y = fy;
|
||||
}
|
||||
const int mod = y % 100;
|
||||
if (mod != 0) y += 100-mod;
|
||||
const int mod = y % k;
|
||||
if (mod != 0) y += k-mod;
|
||||
}
|
||||
if (y > 0) // Disegna barra di fine sezione
|
||||
|
||||
if (rs.type() == 'B' && rs.level() == 0)
|
||||
x = y = 196*k;
|
||||
|
||||
// Disegna l'eventuale sfondo di sezione
|
||||
const bool draw_back = y > 0 && (rs.border() > 0
|
||||
|| (rs.pattern() >= PAT_SOLID && rs.back_color() != COLOR_WHITE));
|
||||
if (draw_back)
|
||||
{
|
||||
const PNT p = log2dev(0, y);
|
||||
const PNT p = log2dev(x, y);;
|
||||
RCT rct; xvt_rect_set(&rct, 0, 0, p.h, p.v);
|
||||
int rad = 0;
|
||||
if (rs.radius() > 0)
|
||||
{
|
||||
const PNT p0 = log2dev(0,0);
|
||||
const PNT pr = log2dev(rs.radius(),rs.radius());
|
||||
rad = min(pr.h-p0.h, pr.v-p0.v);
|
||||
}
|
||||
advanced_draw_rect(*this, rct, rs.pattern(), rs.border(), rs.fore_color(), rs.back_color(), rad);
|
||||
}
|
||||
|
||||
for (int i = x/k; i > 0; i--)
|
||||
{
|
||||
set_pen(i%10 ? MAKE_COLOR(232,232,255) : MAKE_COLOR(255,192,255));
|
||||
line(0, i*k, x, i*k);
|
||||
line(i*k, 0, i*k, y <= 0 ? x : y);
|
||||
}
|
||||
|
||||
if (y > 0) // Disegna barra di fine sezione
|
||||
{
|
||||
const PNT p = log2dev(x, y);
|
||||
RCT rct; xvt_vobj_get_client_rect(win(), &rct);
|
||||
if (p.v < rct.bottom)
|
||||
{
|
||||
@ -937,7 +990,6 @@ void TReport_window::draw_grid()
|
||||
xvt_dwin_draw_rect(win(), &rct);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TReport_window::draw_broken_paper(const TReport_field& rf)
|
||||
@ -967,6 +1019,12 @@ void TReport_window::draw_broken_paper(const TReport_field& rf)
|
||||
void TReport_window::draw_field(const TReport_field& rf)
|
||||
{
|
||||
RCT r; TWindow::log2dev(rf.get_rect(), r);
|
||||
int rad = 0;
|
||||
if (rf.radius() > 0)
|
||||
{
|
||||
const int width = r.right - r.left;
|
||||
rad = rf.radius() * width / rf.get_rect().width();
|
||||
}
|
||||
|
||||
PAT_STYLE back_pattern = PAT_HOLLOW;
|
||||
const int k = (rf.hidden() ? 1 : 0) + (rf.deactivated() ? 2 : 0);
|
||||
@ -981,7 +1039,7 @@ void TReport_window::draw_field(const TReport_field& rf)
|
||||
switch (rf.type())
|
||||
{
|
||||
case 'E':
|
||||
if (advanced_set_draw_tools(*this, rf.border(), rf.fore_color(), rf.back_color()))
|
||||
if (advanced_set_draw_tools(*this, rf.pattern(), rf.border(), rf.fore_color(), rf.back_color()))
|
||||
xvt_dwin_draw_oval(win(), &r);
|
||||
back_pattern = PAT_HOLLOW;
|
||||
break;
|
||||
@ -993,11 +1051,11 @@ void TReport_window::draw_field(const TReport_field& rf)
|
||||
const TImage* img = _images.image(name);
|
||||
if (img != NULL && img->ok())
|
||||
img->draw(win(), r);
|
||||
advanced_draw_rect(*this, r, rf.border(), rf.fore_color(), COLOR_WHITE);
|
||||
advanced_draw_rect(*this, r, PAT_HOLLOW, rf.border(), rf.fore_color(), COLOR_WHITE, 0);
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
if (advanced_set_draw_tools(*this, rf.border(), rf.fore_color(), COLOR_WHITE))
|
||||
if (advanced_set_draw_tools(*this, PAT_SOLID, rf.border(), rf.fore_color(), COLOR_WHITE))
|
||||
{
|
||||
const PNT f = { r.top, r.left };
|
||||
xvt_dwin_draw_set_pos(win(), f);
|
||||
@ -1007,11 +1065,11 @@ void TReport_window::draw_field(const TReport_field& rf)
|
||||
back_pattern = PAT_HOLLOW;
|
||||
break;
|
||||
case 'R':
|
||||
advanced_draw_rect(*this, r, rf.border(), rf.fore_color(), rf.back_color());
|
||||
advanced_draw_rect(*this, r, rf.pattern(), rf.border(), rf.fore_color(), rf.back_color(), rad);
|
||||
break;
|
||||
case 'T':
|
||||
{
|
||||
advanced_draw_rect(*this, r, rf.border(), rf.fore_color(), rf.back_color());
|
||||
advanced_draw_rect(*this, r, rf.pattern(), rf.border(), rf.fore_color(), rf.back_color(), rad);
|
||||
xvt_dwin_set_font(win(), rf.font().get_xvt_font(*this));
|
||||
set_color(rf.fore_color(), rf.back_color());
|
||||
TString str = rf.picture();
|
||||
@ -1024,9 +1082,9 @@ void TReport_window::draw_field(const TReport_field& rf)
|
||||
else
|
||||
{
|
||||
if (rf.border() <= 0) // Rendi piu' visibile il bordo dei campi che non ce l'hanno
|
||||
advanced_draw_rect(*this, r, 1, COLOR_LTGRAY, COLOR_WHITE);
|
||||
advanced_draw_rect(*this, r, PAT_HOLLOW, 1, COLOR_LTGRAY, COLOR_WHITE, 0);
|
||||
else
|
||||
advanced_draw_rect(*this, r, rf.border(), rf.fore_color(), rf.back_color());
|
||||
advanced_draw_rect(*this, r, rf.pattern(), rf.border(), rf.fore_color(), rf.back_color(), rad);
|
||||
}
|
||||
|
||||
if (rf.link().not_empty())
|
||||
@ -1061,7 +1119,7 @@ void TReport_window::draw_field(const TReport_field& rf)
|
||||
}
|
||||
if (rf.selected())
|
||||
{
|
||||
advanced_set_draw_tools(*this, 0, COLOR_WHITE, COLOR_GRAY);
|
||||
advanced_set_draw_tools(*this, PAT_SOLID, 0, COLOR_WHITE, COLOR_GRAY);
|
||||
const int k = 5;
|
||||
RCT s = r; s.right = s.left+k; s.bottom = s.top+k;
|
||||
xvt_dwin_draw_rect(win(), &s);
|
||||
|
@ -9,7 +9,7 @@ PAGE "Libri sociali" -1 -1 78 9
|
||||
NUMBER FLD_TABITL_CODTAB 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice "
|
||||
FIELD %ITL->CODTAB
|
||||
FIELD CODTAB
|
||||
HELP "Codice del libro sociale"
|
||||
USE %ITL
|
||||
CHECKTYPE REQUIRED
|
||||
@ -25,7 +25,7 @@ END
|
||||
STRING FLD_TABITL_S0 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
FIELD %ITL->S0
|
||||
FIELD S0
|
||||
HELP "Nome del libro sociale"
|
||||
USE %ITL KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
|
Loading…
x
Reference in New Issue
Block a user