Aggiunta la classe TBrowse_application (brwapp)
git-svn-id: svn://10.65.10.50/trunk@179 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
dbf10b3937
commit
998f9e637d
18
include/browbar.h
Executable file
18
include/browbar.h
Executable file
@ -0,0 +1,18 @@
|
||||
BUTTON DLG_FINDREC 8 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "Ri~cerca"
|
||||
MESSAGE EXIT,K_F9
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 8 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 8 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
105
include/brwapp.cpp
Executable file
105
include/brwapp.cpp
Executable file
@ -0,0 +1,105 @@
|
||||
// $Id: brwapp.cpp,v 1.1 1994-09-07 15:25:40 alex Exp $
|
||||
|
||||
#include <brwapp.h>
|
||||
#include <mailbox.h>
|
||||
#include <utility.h>
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TBrowse_application
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
bool TBrowse_application::main_loop()
|
||||
{
|
||||
long recins = -1;
|
||||
|
||||
query_mode();
|
||||
curr_mask().open_modal();
|
||||
|
||||
KEY k;
|
||||
|
||||
// Provoca l'autopremimento per il messaggio di LINK
|
||||
if (lnflag()) curr_mask().send_key(K_AUTO_ENTER, 0);
|
||||
|
||||
do
|
||||
{
|
||||
// Seleziona il cursore a freccia
|
||||
set_cursor(TASK_WIN, CURSOR_ARROW);
|
||||
|
||||
// Dis/abilita cambio ditta
|
||||
enable_menu_item(M_FILE_NEW, (curr_mask().mode() == MODE_QUERY));
|
||||
|
||||
|
||||
k = curr_mask().run();
|
||||
|
||||
// Seleziona il cursore a clessidra se necessario
|
||||
if (k != K_QUIT && k != K_F9) set_cursor(TASK_WIN, CURSOR_WAIT);
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case K_ESC:
|
||||
if (curr_mask().query_mode())
|
||||
{
|
||||
curr_mask().reset();
|
||||
set_fixed();
|
||||
}
|
||||
else query_mode();
|
||||
if (lnflag()) k = K_QUIT;
|
||||
break;
|
||||
case K_QUIT:
|
||||
if (curr_mask().mode() == MODE_MOD &&
|
||||
(autoins_caller().not_empty() || lnflag()))
|
||||
recins = file().recno();
|
||||
break;
|
||||
case K_ENTER:
|
||||
if (find(0)) modify_mode();
|
||||
else message_box("Registrazione assente"); // ocio
|
||||
break;
|
||||
case K_F9:
|
||||
search_mode();
|
||||
break;
|
||||
default:
|
||||
setkey();
|
||||
int err = ~NOERR;
|
||||
switch (k)
|
||||
{
|
||||
case K_HOME:
|
||||
err = file().readat(first(), _testandlock);
|
||||
break;
|
||||
case K_NEXT:
|
||||
err = file().reread();
|
||||
err = file().next(_testandlock);
|
||||
break;
|
||||
case K_PREV:
|
||||
err = file().reread();
|
||||
err = file().prev(_testandlock);
|
||||
break;
|
||||
case K_END:
|
||||
err = file().readat(last(), _testandlock);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (err == NOERR || err == _islocked) modify_mode();
|
||||
else query_mode();
|
||||
break;
|
||||
}
|
||||
} while (k != K_QUIT);
|
||||
|
||||
if (curr_mask().is_open())
|
||||
curr_mask().close_modal();
|
||||
|
||||
curr_mask().set_mode(NO_MODE);
|
||||
|
||||
if (recins > 0 && autoins_caller().not_empty())
|
||||
{
|
||||
TMessage msg(autoins_caller(), MSG_AI, format("%ld", recins));
|
||||
msg.send();
|
||||
}
|
||||
if (recins > 0 && lnflag())
|
||||
{
|
||||
TMessage msg(autoins_caller(), MSG_LN, format("%ld", recins));
|
||||
msg.send();
|
||||
}
|
||||
|
||||
return k != K_QUIT;
|
||||
}
|
21
include/brwapp.h
Executable file
21
include/brwapp.h
Executable file
@ -0,0 +1,21 @@
|
||||
#ifndef __BRWAPP_H
|
||||
#define __BRWAPP_H
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#include <relapp.h>
|
||||
#endif
|
||||
|
||||
|
||||
class TBrowse_application : public TRelation_application
|
||||
|
||||
{
|
||||
protected:
|
||||
virtual bool main_loop(); // Ciclo principale
|
||||
|
||||
public:
|
||||
TBrowse_application() {}
|
||||
virtual ~TBrowse_application() {}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -35,7 +35,6 @@ I32=$(IP)window.h $(I23)
|
||||
I43=$(IP)urldefid.h $(IP)defmask.h
|
||||
I45=$(IP)defmask.h
|
||||
I33=$(IP)mask.h $(I32) $(I19) $(I43)
|
||||
I34=
|
||||
I35=
|
||||
I36=$(IP)printer.h $(I10) $(I3) $(I33) $(I13)
|
||||
I24=$(IP)applicat.h $(S1) $(I10) $(I8) $(I36)
|
||||
@ -52,6 +51,7 @@ I50=$(IP)printapp.h $(I24) $(I36) $(I39) $(I10)
|
||||
I51=$(IP)form.h $(I17) $(I36)
|
||||
I52=$(IP)colors.h
|
||||
I53=$(I24) $(I33) $(I39) $(IP)relapp.h
|
||||
I34=$(IP)brwapp.h $(I53)
|
||||
I54=$(I33) $(IP)msksheet.h
|
||||
I55=$(IP)assoc.h
|
||||
I56=$(IP)config.h
|
||||
@ -65,4 +65,5 @@ U1=$(IP)default.url $(I43)
|
||||
E1=$(IP)toolbar.h
|
||||
E2=$(IP)comdcod.h
|
||||
E3=$(IP)comdden.h
|
||||
E4=$(IP)browbar.h
|
||||
|
||||
|
@ -13,6 +13,7 @@ lib: $(LIB) masks
|
||||
$(UPDLIB) $(LIB) $(TMPF)
|
||||
|
||||
$(LIB): $(LIB)(applicat.o) $(LIB)(array.o)\
|
||||
$(LIB)(brwapp.o)\
|
||||
$(LIB)(checks.o)\
|
||||
$(LIB)(date.o)\
|
||||
$(LIB)(expr.o) $(LIB)(execp.o)\
|
||||
@ -40,6 +41,8 @@ $(LIB)(applicat.o): applicat.cpp $(I6) $(I24) $(I32) $(I43) $(I44) $(I5) $(I
|
||||
|
||||
$(LIB)(array.o): array.cpp $(I13)
|
||||
|
||||
$(LIB)(brwapp.o): brwapp.cpp $(I31) $(I34) $(I47)
|
||||
|
||||
$(LIB)(checks.o): checks.cpp $(I23) $(I1) $(I6) $(I24)
|
||||
|
||||
$(LIB)(date.o): date.cpp $(I7) $(I10) $(I6) $(I5)
|
||||
@ -121,4 +124,9 @@ $(EP)bagn002.msk: bagn002.uml bagn002.h
|
||||
|
||||
$(EP)bagn003.msk: bagn003.uml bagn003.h
|
||||
|
||||
$(EP)bagn004.msk: bagn004.uml bagn004.h
|
||||
$(EP)bagn004.msk: bagn004.uml bagn004.h
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
184
include/relapp.h
184
include/relapp.h
@ -1,90 +1,94 @@
|
||||
#ifndef __RELAPP_H
|
||||
#define __RELAPP_H
|
||||
|
||||
#ifndef __APPLICAT_H
|
||||
#include <applicat.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELATION_H
|
||||
#include <relation.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __MASK_H
|
||||
#include <mask.h>
|
||||
#endif
|
||||
|
||||
class TKey_array;
|
||||
|
||||
class TRelation_application : public TApplication
|
||||
{
|
||||
WINDOW _statbar;
|
||||
TMask* _mask;
|
||||
TKey_array* _maskeys;
|
||||
long _first, _last;
|
||||
int _search_id;
|
||||
|
||||
TString _autoins_caller;
|
||||
bool _lnflag;
|
||||
TToken_string _fixed;
|
||||
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
|
||||
bool filter();
|
||||
TLocalisamfile& file() const { return *get_relation()->lfile(); }
|
||||
bool test_key(byte k, bool err);
|
||||
bool save(bool check_dirty);
|
||||
void enable_query();
|
||||
void set_toolbar(bool all);
|
||||
|
||||
void set_fixed(); // Fissa i campi non modificabili
|
||||
int set_mode(int mode); // Seleziona il nuovo modo e ritorna il vecchio
|
||||
void set_limits(byte what = 0x3);
|
||||
bool search_mode(); // Attiva la maschera di ricerca
|
||||
void query_mode(bool pre_ins = FALSE); // Entra in modo ricerca
|
||||
void query_insert_mode() { query_mode(TRUE); }
|
||||
void insert_mode(); // Entra in modo inserimento
|
||||
bool modify_mode(); // Entra in modo modifica
|
||||
bool main_loop(); // Ciclo principale
|
||||
TMask_field* get_search_field() const;
|
||||
void setkey();
|
||||
|
||||
protected:
|
||||
virtual bool menu(MENU_TAG m);
|
||||
|
||||
virtual bool user_create() pure;
|
||||
virtual bool user_destroy() pure;
|
||||
virtual TMask* get_mask(int mode) pure;
|
||||
virtual bool changing_mask(int mode) pure;
|
||||
virtual TRelation* get_relation() const pure;
|
||||
virtual int read(TMask& m);
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual bool remove();
|
||||
virtual const char* get_next_key() { return ""; }
|
||||
virtual bool protected_record(TRectype&) { return FALSE; }
|
||||
virtual void init_query_mode(TMask&) { }
|
||||
virtual void init_query_insert_mode(TMask& m) { init_query_mode(m); }
|
||||
virtual void init_insert_mode(TMask&) { }
|
||||
virtual void init_modify_mode(TMask&) { }
|
||||
virtual void write_enable(const bool on = TRUE) { get_relation()->write_enable(-1, on); }
|
||||
void write_disable() { write_enable(FALSE); }
|
||||
|
||||
bool autonum(TMask* m, bool rec);
|
||||
void set_search_field(short id) { _search_id = id;}
|
||||
bool has_filtered_cursor() const { return filtered() || force_cursor_usage();}
|
||||
|
||||
public:
|
||||
TRelation_application();
|
||||
virtual ~TRelation_application();
|
||||
bool filtered() const { return _fixed.not_empty(); }
|
||||
void set_first(long first) { _first = first;}
|
||||
void set_last(long last) { _last = last;}
|
||||
bool find(byte key = 0);
|
||||
virtual bool force_cursor_usage() const { return FALSE;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __RELAPP_H
|
||||
#define __RELAPP_H
|
||||
|
||||
#ifndef __APPLICAT_H
|
||||
#include <applicat.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RELATION_H
|
||||
#include <relation.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __MASK_H
|
||||
#include <mask.h>
|
||||
#endif
|
||||
|
||||
class TKey_array;
|
||||
|
||||
class TRelation_application : public TApplication
|
||||
{
|
||||
TMask * _mask;
|
||||
TKey_array* _maskeys;
|
||||
long _first, _last;
|
||||
int _search_id;
|
||||
|
||||
TString _autoins_caller;
|
||||
bool _lnflag;
|
||||
TToken_string _fixed;
|
||||
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
|
||||
bool filter();
|
||||
bool test_key(byte k, bool err);
|
||||
bool save(bool check_dirty);
|
||||
void enable_query();
|
||||
void set_toolbar(bool all);
|
||||
|
||||
int set_mode(int mode); // Seleziona il nuovo modo e ritorna il vecchio
|
||||
void set_limits(byte what = 0x3);
|
||||
void query_insert_mode() { query_mode(TRUE); }
|
||||
void insert_mode(); // Entra in modo inserimento
|
||||
virtual bool main_loop(); // Ciclo principale
|
||||
TMask_field* get_search_field() const;
|
||||
|
||||
protected:
|
||||
TLocalisamfile& file() const { return *get_relation()->lfile(); }
|
||||
void set_fixed(); // Fissa i campi non modificabili
|
||||
bool search_mode(); // Attiva la maschera di ricerca
|
||||
void query_mode(bool pre_ins = FALSE); // Entra in modo ricerca
|
||||
bool modify_mode(); // Entra in modo modifica
|
||||
void setkey();
|
||||
bool lnflag() const { return _lnflag;}
|
||||
long first() const { return _first;}
|
||||
long last() const { return _first;}
|
||||
TMask& curr_mask() const { return *_mask; }
|
||||
const TString& autoins_caller() const { return _autoins_caller;}
|
||||
virtual bool menu(MENU_TAG m);
|
||||
|
||||
virtual bool user_create() pure;
|
||||
virtual bool user_destroy() pure;
|
||||
virtual TMask* get_mask(int mode) pure;
|
||||
virtual bool changing_mask(int mode) pure;
|
||||
virtual TRelation* get_relation() const pure;
|
||||
virtual int read(TMask& m);
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual bool remove();
|
||||
virtual const char* get_next_key() { return ""; }
|
||||
virtual bool protected_record(TRectype&) { return FALSE; }
|
||||
virtual void init_query_mode(TMask&) { }
|
||||
virtual void init_query_insert_mode(TMask& m) { init_query_mode(m); }
|
||||
virtual void init_insert_mode(TMask&) { }
|
||||
virtual void init_modify_mode(TMask&) { }
|
||||
virtual void write_enable(const bool on = TRUE) { get_relation()->write_enable(-1, on); }
|
||||
void write_disable() { write_enable(FALSE); }
|
||||
|
||||
bool autonum(TMask* m, bool rec);
|
||||
void set_search_field(short id) { _search_id = id;}
|
||||
bool has_filtered_cursor() const { return filtered() || force_cursor_usage();}
|
||||
|
||||
public:
|
||||
TRelation_application();
|
||||
virtual ~TRelation_application();
|
||||
bool filtered() const { return _fixed.not_empty(); }
|
||||
void set_first(long first) { _first = first;}
|
||||
void set_last(long last) { _last = last;}
|
||||
bool find(byte key = 0);
|
||||
virtual bool force_cursor_usage() const { return FALSE;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user