Aggiunta possibilita' di testata su piu' righe separate da \n
git-svn-id: svn://10.65.10.50/trunk@4572 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
89a64e25e7
commit
2782535535
@ -299,6 +299,7 @@ TSpreadsheet::TSpreadsheet(
|
|||||||
{
|
{
|
||||||
int m_width[MAX_COL], v_width[MAX_COL];
|
int m_width[MAX_COL], v_width[MAX_COL];
|
||||||
int fixed_columns = 1; // Number of fixed columns
|
int fixed_columns = 1; // Number of fixed columns
|
||||||
|
int lines_in_header = 1; // Number of header lines
|
||||||
|
|
||||||
TControl::_fld = o;
|
TControl::_fld = o;
|
||||||
sheet_mask().set_sheet(o);
|
sheet_mask().set_sheet(o);
|
||||||
@ -319,20 +320,35 @@ TSpreadsheet::TSpreadsheet(
|
|||||||
const TOperable_field & f = (TOperable_field &) _mask.field(cid); // Field on mask
|
const TOperable_field & f = (TOperable_field &) _mask.field(cid); // Field on mask
|
||||||
|
|
||||||
TString testa(h);
|
TString testa(h);
|
||||||
|
|
||||||
|
char* t = testa.get_buffer();
|
||||||
|
for (int c = 0; t[c]; c++)
|
||||||
|
{
|
||||||
|
if (t[c] == '\\' && (t[c+1] == 'n' || t[c+1] == 'r'))
|
||||||
|
{
|
||||||
|
t[c] = '\n';
|
||||||
|
strcpy(t+c+1, t+c+2);
|
||||||
|
lines_in_header = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const int at = testa.find('@');
|
const int at = testa.find('@');
|
||||||
const int m = f.size(); // Memory width
|
const int m = f.size(); // Memory width
|
||||||
int v = m; // Video width
|
int v = m; // Video width
|
||||||
if (at >= 0)
|
if (at >= 0)
|
||||||
{
|
{
|
||||||
const TString& wi = testa.mid(at+1);
|
const TString& wi = testa.mid(at+1);
|
||||||
v = atoi(wi);
|
v = atoi(wi) ;
|
||||||
|
if (v == 0)
|
||||||
|
v = m;
|
||||||
|
if (f.has_query_button())
|
||||||
|
v++;
|
||||||
if (wi.find('F') >= 0)
|
if (wi.find('F') >= 0)
|
||||||
{
|
{
|
||||||
fixed_columns++;
|
fixed_columns++;
|
||||||
f_width += v+1;
|
f_width += v;
|
||||||
}
|
}
|
||||||
testa.cut(at);
|
testa.cut(at);
|
||||||
v = max(at, v+(f.has_query_button() ? 1 : 0));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -372,7 +388,7 @@ TSpreadsheet::TSpreadsheet(
|
|||||||
listdef->app_data = (long)this;
|
listdef->app_data = (long)this;
|
||||||
XI_LIST_DEF* l = listdef->v.list;
|
XI_LIST_DEF* l = listdef->v.list;
|
||||||
l->width = rct.right - rct.left;
|
l->width = rct.right - rct.left;
|
||||||
l->min_heading_height = xi_button_calc_height_font_id(xvt_default_font());
|
l->min_heading_height = xi_button_calc_height_font_id(xvt_default_font()) * lines_in_header;
|
||||||
l->sizable_columns = TRUE;
|
l->sizable_columns = TRUE;
|
||||||
l->movable_columns = TRUE;
|
l->movable_columns = TRUE;
|
||||||
l->scroll_bar = TRUE;
|
l->scroll_bar = TRUE;
|
||||||
@ -2663,15 +2679,17 @@ void TSheet_field::set_lines_record(TRecord_array & r_a)
|
|||||||
// Certified: ...under debug..
|
// Certified: ...under debug..
|
||||||
TRectype * TSheet_field::putkey(const TRelation& r)
|
TRectype * TSheet_field::putkey(const TRelation& r)
|
||||||
{
|
{
|
||||||
if (_sheetfile) {
|
if (_sheetfile)
|
||||||
|
{
|
||||||
// *******
|
// *******
|
||||||
// costruisce la chiave per il record array
|
// costruisce la chiave per il record array
|
||||||
_sheetfile->zero();
|
_sheetfile->zero();
|
||||||
_file_k_names.restart();
|
|
||||||
_file_k_ids.restart();
|
_file_k_ids.restart();
|
||||||
TString dbfieldname;
|
for (TString16 dbfieldname = _file_k_names.get(0);
|
||||||
while ((dbfieldname=_file_k_names.get())!="") {
|
dbfieldname.not_empty();
|
||||||
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
|
dbfieldname = _file_k_names.get())
|
||||||
|
{
|
||||||
|
TMask_field& f= mask().field(_file_k_ids.get_int());
|
||||||
((TLoadable_field&)f).autoload(r);
|
((TLoadable_field&)f).autoload(r);
|
||||||
_sheetfile->put(dbfieldname, f.get());
|
_sheetfile->put(dbfieldname, f.get());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user