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:
guy 1997-06-09 15:39:33 +00:00
parent 89a64e25e7
commit 2782535535

View File

@ -299,6 +299,7 @@ TSpreadsheet::TSpreadsheet(
{
int m_width[MAX_COL], v_width[MAX_COL];
int fixed_columns = 1; // Number of fixed columns
int lines_in_header = 1; // Number of header lines
TControl::_fld = o;
sheet_mask().set_sheet(o);
@ -319,20 +320,35 @@ TSpreadsheet::TSpreadsheet(
const TOperable_field & f = (TOperable_field &) _mask.field(cid); // Field on mask
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 m = f.size(); // Memory width
int v = m; // Video width
if (at >= 0)
{
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)
{
fixed_columns++;
f_width += v+1;
f_width += v;
}
testa.cut(at);
v = max(at, v+(f.has_query_button() ? 1 : 0));
}
else
{
@ -372,7 +388,7 @@ TSpreadsheet::TSpreadsheet(
listdef->app_data = (long)this;
XI_LIST_DEF* l = listdef->v.list;
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->movable_columns = TRUE;
l->scroll_bar = TRUE;
@ -2663,15 +2679,17 @@ void TSheet_field::set_lines_record(TRecord_array & r_a)
// Certified: ...under debug..
TRectype * TSheet_field::putkey(const TRelation& r)
{
if (_sheetfile) {
if (_sheetfile)
{
// *******
// costruisce la chiave per il record array
_sheetfile->zero();
_file_k_names.restart();
_file_k_ids.restart();
TString dbfieldname;
while ((dbfieldname=_file_k_names.get())!="") {
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
for (TString16 dbfieldname = _file_k_names.get(0);
dbfieldname.not_empty();
dbfieldname = _file_k_names.get())
{
TMask_field& f= mask().field(_file_k_ids.get_int());
((TLoadable_field&)f).autoload(r);
_sheetfile->put(dbfieldname, f.get());
}