Patch level : 12.0 1208
Files correlati : bagn011.uml Commento: Aggiunta classe annesso ai file cartacei
This commit is contained in:
parent
46d3688505
commit
46dd112750
@ -8,3 +8,4 @@
|
||||
#define S_ALIAS 102
|
||||
#define S_LINK 103
|
||||
#define S_ID 104
|
||||
#define S_CLASSE 105
|
||||
|
122
src/include/bagn011.uml
Normal file
122
src/include/bagn011.uml
Normal file
@ -0,0 +1,122 @@
|
||||
#include <bagn006.h>
|
||||
//maschera dei collegamenti ad oggetti esterni da archiviare
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK
|
||||
BEGIN
|
||||
PROMPT -15 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_NEWREC
|
||||
BEGIN
|
||||
PROMPT -25 -1 "~Nuovo"
|
||||
PICTURE TOOL_NEWREC
|
||||
END
|
||||
|
||||
BUTTON F_LINK
|
||||
BEGIN
|
||||
PROMPT -35 -1 "~Edit"
|
||||
PICTURE TOOL_EDIT
|
||||
END
|
||||
|
||||
BUTTON F_PRINT
|
||||
BEGIN
|
||||
PROMPT -45 -1 "Stampa"
|
||||
PICTURE TOOL_PRINT
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL
|
||||
BEGIN
|
||||
PROMPT -55 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Oggetti esterni" 0 2 0 0
|
||||
|
||||
SPREADSHEET F_SHEET
|
||||
BEGIN
|
||||
PROMPT 0 4 "Lista"
|
||||
ITEM "File@60"
|
||||
ITEM "Nome@32"
|
||||
ITEM "Link"
|
||||
ITEM "ID@16"
|
||||
ITEM "Classe@10"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
PAGE "Oggetto esterno" -1 -1 60 4
|
||||
|
||||
STRING S_FILE 260 50
|
||||
BEGIN
|
||||
PROMPT 1 1 "File "
|
||||
FLAGS "B"
|
||||
END
|
||||
|
||||
STRING S_ALIAS 50
|
||||
BEGIN
|
||||
PROMPT 1 2 "Alias "
|
||||
FLAGS "DG"
|
||||
END
|
||||
|
||||
BOOLEAN S_LINK
|
||||
BEGIN
|
||||
PROMPT 1 3 "Collegamento esterno"
|
||||
END
|
||||
|
||||
STRING S_ID 16
|
||||
BEGIN
|
||||
PROMPT 1 4 "ID "
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
LISTBOX S_CLASSE 10 50
|
||||
BEGIN
|
||||
PROMPT 1 5 "Classe "
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK
|
||||
BEGIN
|
||||
PROMPT -16 -1 ""
|
||||
END
|
||||
|
||||
BUTTON F_NEWREC
|
||||
BEGIN
|
||||
PROMPT -26 -1 "~Nuovo"
|
||||
PICTURE TOOL_NEWREC
|
||||
END
|
||||
|
||||
BUTTON F_LINK
|
||||
BEGIN
|
||||
PROMPT -36 -1 "~Edit"
|
||||
PICTURE TOOL_EDIT
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC
|
||||
BEGIN
|
||||
PROMPT -46 -1 ""
|
||||
PICTURE TOOL_DELREC
|
||||
END
|
||||
|
||||
BUTTON F_PRINT
|
||||
BEGIN
|
||||
PROMPT -56 -1 "Stampa"
|
||||
PICTURE TOOL_PRINT
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL
|
||||
BEGIN
|
||||
PROMPT -66 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -15,6 +15,8 @@
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <bagn006.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <mapi.h>
|
||||
#include <shellapi.h>
|
||||
@ -77,6 +79,8 @@ bool print_url(const char* url)
|
||||
|
||||
class TGolem_mask : public TMask
|
||||
{
|
||||
bool _archive;
|
||||
|
||||
protected:
|
||||
static bool file_handler(TMask_field& f, KEY k);
|
||||
static bool link_handler(TMask_field& f, KEY k);
|
||||
@ -85,7 +89,7 @@ protected:
|
||||
static bool sheet_notify(TSheet_field& s, int r, KEY k);
|
||||
|
||||
public:
|
||||
TGolem_mask();
|
||||
TGolem_mask(bool archive = false, const char * catdoc = "");
|
||||
};
|
||||
|
||||
bool TGolem_mask::file_handler(TMask_field& f, KEY k)
|
||||
@ -206,6 +210,7 @@ bool TGolem_mask::sheet_notify(TSheet_field& s, int r, KEY k)
|
||||
if (k == K_DEL)
|
||||
{
|
||||
TToken_string row = s.row(r);
|
||||
|
||||
if (row.get_char(2)<=' ')
|
||||
xvt_fsys_remove_file(row.get(0));
|
||||
}
|
||||
@ -248,16 +253,18 @@ bool TGolem_mask::ole_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
TGolem_mask::TGolem_mask()
|
||||
: TMask("bagn006")
|
||||
TGolem_mask::TGolem_mask(bool archive, const char * catdoc)
|
||||
: TMask(archive ? "bagn011" : "bagn006"), _archive(archive)
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
|
||||
sheet.set_notify(sheet_notify);
|
||||
set_handler(F_NEWREC, main_link_handler);
|
||||
set_handler(F_LINK, main_link_handler);
|
||||
set_handler(F_PRINT, main_link_handler);
|
||||
|
||||
TMask& sm = sheet.sheet_mask();
|
||||
|
||||
sm.set_handler(S_FILE, file_handler);
|
||||
sm.set_handler(F_NEWREC, link_handler);
|
||||
sm.set_handler(F_LINK, link_handler);
|
||||
@ -297,6 +304,29 @@ TGolem_mask::TGolem_mask()
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (archive && catdoc && *catdoc)
|
||||
{
|
||||
int idx = 0;
|
||||
TList_field & l = sm.lfield(S_CLASSE);
|
||||
TToken_string codes(" ");
|
||||
TToken_string values("Cartaceo");
|
||||
|
||||
while (true)
|
||||
{
|
||||
TToken_string appo(ini_get_string(CONFIG_DITTA, "F9", "ANNCAT", "", idx++));
|
||||
const TString cat = appo.get(0);
|
||||
|
||||
if (cat == catdoc)
|
||||
{
|
||||
codes.add(appo.get(1));
|
||||
values.add(appo.get(2));
|
||||
}
|
||||
else
|
||||
if (appo == "STOP" || appo.empty()) /* STOP: Riga terminatrice */
|
||||
break;
|
||||
}
|
||||
l.replace_items(codes, values);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -338,7 +368,12 @@ void TGolem_field::set_window_data(const char* data)
|
||||
}
|
||||
|
||||
bool TGolem_field::is_editable() const
|
||||
{ return false; }
|
||||
{ return false; }
|
||||
|
||||
short TGolem_field::dlg() const
|
||||
{
|
||||
return _dlg;
|
||||
}
|
||||
|
||||
void TGolem_field::parse_head(TScanner& scanner)
|
||||
{
|
||||
@ -387,7 +422,7 @@ void TGolem_field::create(WINDOW parent)
|
||||
if (_bmp == 0)
|
||||
_bmp = BMP_OLE;
|
||||
_ctl_data._bmp_up = _bmp;
|
||||
_ctl = new TPushbutton_control(parent, _ctl_data._dlg,
|
||||
_ctl = new TPushbutton_control(parent, _dlg = _ctl_data._dlg,
|
||||
_ctl_data._x, _ctl_data._y,
|
||||
_ctl_data._width+2, _ctl_data._height,
|
||||
_ctl_data._flags, _ctl_data._prompt,
|
||||
@ -410,6 +445,7 @@ bool TGolem_field::autosave(TRelation& r)
|
||||
if (field() != NULL)
|
||||
{
|
||||
TToken_string new_value(get(), '\n');
|
||||
|
||||
if (new_value != _old_value)
|
||||
{
|
||||
TDir dir;
|
||||
@ -491,7 +527,7 @@ bool TGolem_field::on_key(KEY key)
|
||||
bool ok = true;
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TMask* msk = new TGolem_mask;
|
||||
TMask* msk = new TGolem_mask(_archive, _catdoc);
|
||||
TSheet_field& sheet = msk->sfield(F_SHEET);
|
||||
|
||||
TToken_string tmp(get(), '\n');
|
||||
@ -549,8 +585,9 @@ void TGolem_field::update_tool()
|
||||
xvt_toolbar_toggle_control(toolbar(), _dlg, val.full());
|
||||
};
|
||||
|
||||
TGolem_field::TGolem_field(TMask* m, bool tool)
|
||||
: TEditable_field(m), _old_value(80, '\n'), _selected(0), _bmp(0), _tool(tool), _dlg(-1)
|
||||
TGolem_field::TGolem_field(TMask* m, bool tool, bool archive)
|
||||
: TEditable_field(m), _old_value(80, '\n'), _selected(0), _bmp(0), _tool(tool), _dlg(-1),
|
||||
_archive(archive)
|
||||
{ }
|
||||
|
||||
TGolem_field::~TGolem_field()
|
||||
|
@ -275,6 +275,7 @@ void TMask::add_field(TMask_field* f)
|
||||
{
|
||||
const long pos = _field.add(f)+1;
|
||||
const short id = f->dlg();
|
||||
|
||||
if (id > 0 && id < 512)
|
||||
{
|
||||
if (f->is_sheet() && strncmp(_source_file.name(), "lv", 2) != 0)
|
||||
@ -680,6 +681,7 @@ int TMask::id2pos(
|
||||
TMask_field& TMask::field(short id) const
|
||||
{
|
||||
TMask_field* f = find_by_id(id);
|
||||
|
||||
if (f == nullptr)
|
||||
{
|
||||
if (_mask_num == 0)
|
||||
@ -1675,8 +1677,6 @@ void TMask::set(
|
||||
// @syntax set(short fld_id, long n, bool hit);
|
||||
{
|
||||
TMask_field& f = field(fld_id);
|
||||
if (fld_id == 214)
|
||||
int i = 0;
|
||||
|
||||
f.set(s);
|
||||
if ((f.active() || f.ghost()))
|
||||
@ -2020,6 +2020,7 @@ void TMask::autosave(TRelation& r) const
|
||||
FOR_EACH_MASK_FIELD((*this), i, f) if (f->is_loadable())
|
||||
{
|
||||
bool save = f->shown();
|
||||
|
||||
if (!save && f->is_editable())
|
||||
{
|
||||
// tenta di effettuare il save dei campi Edit hidden:
|
||||
@ -2541,13 +2542,14 @@ TGolem_field& TMask::add_golem(
|
||||
int dx, // @parm Larghezza del campo (in caratteri, default 9)
|
||||
int dy, // @parm Altezza del campo (in caratteri, default 1)
|
||||
const char* flags, // @parm Flag di controllo del campo (default "")
|
||||
bool archive,
|
||||
short bmpup, // @parm Icona normale
|
||||
short bmpdn) // @parm Icona premuta
|
||||
|
||||
// @xref <mf TMask::add_static> <mf TMask::add_string> <mf TMask::add_number>
|
||||
// <mf TMask::add_date> <mf TMask::add_radio> <mf TMask::add_memo>
|
||||
{
|
||||
TGolem_field* g = new TGolem_field(this);
|
||||
TGolem_field* g = new TGolem_field(this, false, archive);
|
||||
|
||||
g->construct(id, prompt, x, y, dy, page_win(page), flags, dx, bmpup, bmpdn);
|
||||
add_field(g);
|
||||
@ -2559,9 +2561,10 @@ TGolem_field& TMask::add_golem(
|
||||
// @mfunc Aggiunge runtime un campo golem alla toolbar
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
|
||||
TGolem_field& TMask::add_golem_tool(short id, const char* prompt, const char* flags, short bmpup, short bmpdn)
|
||||
TGolem_field& TMask::add_golem_tool(short id, const char* prompt, const char* flags, bool archive, short bmpup, short bmpdn)
|
||||
{
|
||||
TGolem_field * g = new TGolem_field(this, true);
|
||||
|
||||
TGolem_field * g = new TGolem_field(this, true, archive);
|
||||
|
||||
if (toolbar() == NULL_WIN) // Se non c'e' ancora la toolbar, me l'invento adesso
|
||||
create_bar(1);
|
||||
|
@ -240,11 +240,11 @@ public:
|
||||
// @cmember Aggiunge runtime un group box alla maschera
|
||||
TGroup_field& add_groupbox (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 3, const char* flags = "");
|
||||
// @cmember Aggiunge runtime un campo golem alla maschera
|
||||
TGolem_field& add_golem(short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "", short bmpup = 0, short bmpdn = 0);
|
||||
TGolem_field& add_golem(short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "", bool archive = false, short bmpup = 0, short bmpdn = 0);
|
||||
// @cmember Aggiunge runtime un bottone alla toolbar
|
||||
TButton_tool& add_button_tool(short id, const char* prompt, short bmpup);
|
||||
// @cmember Aggiunge runtime un campo golem alla toolbar
|
||||
TGolem_field& add_golem_tool(short id, const char* prompt, const char* flags, short bmpup = 0, short bmpdn = 0);
|
||||
TGolem_field& add_golem_tool(short id, const char* prompt, const char* flags, bool archive, short bmpup = 0, short bmpdn = 0);
|
||||
|
||||
// @cmember Ritorna il numero di campi della maschera
|
||||
int fields() const
|
||||
|
@ -741,6 +741,16 @@ bool TMask_field::initial_check(KEY k) const
|
||||
return k == K_TAB && !mask().is_running();
|
||||
}
|
||||
|
||||
// @mfunc Verifica se il campo deve essere sottoposto a check iniziale
|
||||
//
|
||||
// @rdesc Ritorna il risultato:
|
||||
//
|
||||
// @flag true | Se il campo e' da sottoporre a check
|
||||
// @flag false | Se il campo non e' da sottoporre checkbool initial_check(KEY k) const
|
||||
bool TMask_field::list_initial_check(KEY k) const
|
||||
{
|
||||
return k == K_SPACE && !mask().is_running();
|
||||
}
|
||||
void TMask_field::send_key(KEY k, short to)
|
||||
{
|
||||
_mask->send_key(k, to, this);
|
||||
|
@ -344,6 +344,7 @@ public:
|
||||
// @cmember Ritorna true se il campo e' di tipo sheet
|
||||
virtual bool is_sheet() const { return false; }
|
||||
|
||||
|
||||
// @cmember Controlla se il check inizialee del campo è da eseguire
|
||||
bool initial_check(KEY k) const;
|
||||
// @cmember Controlla se il check del campo è da eseguire durante l'esecuzione
|
||||
@ -353,6 +354,12 @@ public:
|
||||
// @cmember Controlla se il check del campo è da eseguire
|
||||
bool to_check(KEY k, bool initial = false) const { return (initial && initial_check(k)) || running_check(k) || final_check(k); }
|
||||
|
||||
// @cmember Controlla se il check inizialee del campo è da eseguire
|
||||
bool list_initial_check(KEY k) const;
|
||||
// @cmember Controlla se il check del campo è da eseguire durante l'esecuzione
|
||||
bool list_running_check(KEY k) const { return k == K_SPACE && focusdirty(); }
|
||||
// @cmember Controlla se il check del campo è da eseguire
|
||||
bool list_to_check(KEY k, bool initial = false) const { return (initial && list_initial_check(k)) || list_running_check(k) || final_check(k); }
|
||||
// @cmember Gestisce la chiamata all'handler del campo
|
||||
virtual bool on_hit();
|
||||
|
||||
@ -1355,10 +1362,14 @@ class TGolem_field : public TEditable_field
|
||||
int _dlg;
|
||||
bool _tool;
|
||||
WINDOW _toolbar;
|
||||
bool _archive;
|
||||
TString _catdoc;
|
||||
|
||||
protected: // TEditable_field
|
||||
WINDOW parent() const { return _tool ? _toolbar : TMask_field::parent(); }
|
||||
bool is_kind_of(word cid) const { return cid == CLASS_GOLEM; }
|
||||
virtual word class_id() const { return CLASS_GOLEM; }
|
||||
virtual bool is_kind_of(word cid) const { return cid == CLASS_GOLEM || TEditable_field::is_kind_of(cid); }
|
||||
virtual short dlg() const; // @cmember Ritorna l'identificatore del controllo
|
||||
virtual TString& get_window_data();
|
||||
virtual void set_window_data(const char* data);
|
||||
const WINDOW toolbar() const { return _toolbar; }
|
||||
@ -1378,8 +1389,10 @@ public:
|
||||
virtual bool on_key(KEY k);
|
||||
int selected() const { return _selected; }
|
||||
void update_tool();
|
||||
void set_catdoc(const char * catdoc) { _catdoc = catdoc; }
|
||||
bool is_tool() const { return _tool; }
|
||||
|
||||
TGolem_field(TMask* m, bool tool = false);
|
||||
TGolem_field(TMask* m, bool tool = false, bool archive = false);
|
||||
virtual ~TGolem_field();
|
||||
};
|
||||
|
||||
|
@ -1027,13 +1027,13 @@ TMask * TRelation_application::setup_mask(int mode, TMask * mask)
|
||||
{
|
||||
if (rel->lfile().curr().exist("COLL_GOLEM") && mask->find_by_fieldname("COLL_GOLEM") == nullptr)
|
||||
{
|
||||
TGolem_field & o = mask->add_golem_tool(DLG_OGGETTI, "", "M");
|
||||
TGolem_field & o = mask->add_golem_tool(DLG_OGGETTI, "", "M", false);
|
||||
|
||||
o.set_field("COLL_GOLEM");
|
||||
}
|
||||
if (rel->lfile().curr().exist("CARTACEI") && mask->find_by_fieldname("CARTACEI") == nullptr)
|
||||
{
|
||||
TGolem_field & c = mask->add_golem_tool(DLG_CARTACEI, "", "M", BMP_ARCHIVE);
|
||||
TGolem_field & c = mask->add_golem_tool(DLG_CARTACEI, "", "M", true, BMP_ARCHIVE);
|
||||
|
||||
c.set_field("CARTACEI");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user