Ristrutturato programma editazione form di stampa

git-svn-id: svn://10.65.10.50/trunk@791 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-12-27 14:56:42 +00:00
parent fca7c26f76
commit 471dfd167d
15 changed files with 3444 additions and 2884 deletions

View File

@ -1,14 +1,12 @@
#include <xvt.h>
#include <checks.h>
#include <strings.h>
#include "ba2.h"
#define usage "Error - usage : %s -{0|1|2}"
int main(int argc,char* argv[])
#define usage "Error - usage : %s -{0|2}"
int main(int argc, char** argv)
{
int rt = 0 ;
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
@ -16,13 +14,11 @@ int main(int argc,char* argv[])
switch (r)
{
case 0:
rt = ba2300(argc,argv); break;
case 1:
rt = ba2300(argc,argv) ; break;
rt = ba2100(argc, argv); break;
case 2:
rt = ba2300(argc, argv) ; break;
default:
error_box(usage, argv[0]) ; break;
error_box(usage, argv[0]) ; rt = 1; break;
}
return rt;
}

View File

@ -1,14 +1,8 @@
#ifndef __BA2_H
#define __BA2_H
#ifdef MAIN
#define extern
#endif
#ifdef MAIN
#undef extern
#endif
int ba2100(int argc, char* argv[]);
int ba2300(int argc, char* argv[]);
#endif // __BA2_H
int ba2300(int argc, char** argv);

View File

@ -8,19 +8,41 @@
#define M_FIL1_SAVEAS MENU_FILE_ALT+104
#define M_FIL1_QUIT MENU_FILE_ALT+105
MENU TASK_MENUBAR
SUBMENU MENU_FILE_ALT "~File"
SUBMENU MENU_EDIT "~Stampanti"
MENU MENU_FILE_ALT
ITEM M_FIL1_NEW "~Nuovo"
ITEM M_FIL1_OPEN "~Apri"
ITEM M_FIL1_SAVE "~Salva"
ITEM M_FIL1_SAVEAS "Salva ~Con Nome"
ITEM M_FIL1_SAVEAS "Salva ~con Nome"
ITEM M_FIL1_QUIT "~Esci"
SEPARATOR
ITEM M_FILE_ABOUT "~Informazioni"
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
ITEM MENU_ITEM(11) "~Relazione"
SUBMENU BAR_ITEM(2) "~Intestazione"
SUBMENU BAR_ITEM(3) "~Corpo"
SUBMENU BAR_ITEM(4) "~Pie' di pagina"
MENU BAR_ITEM(2)
ITEM MENU_ITEM(21) "~Normale"
ITEM MENU_ITEM(22) "~Pari"
ITEM MENU_ITEM(23) "~Prima"
ITEM MENU_ITEM(24) "~Ultima"
MENU BAR_ITEM(3)
ITEM MENU_ITEM(31) "~Normale"
ITEM MENU_ITEM(32) "~Pari"
ITEM MENU_ITEM(33) "~Primo"
ITEM MENU_ITEM(34) "~Ultimo"
MENU BAR_ITEM(4)
ITEM MENU_ITEM(41) "~Normale"
ITEM MENU_ITEM(42) "~Pari"
ITEM MENU_ITEM(43) "~Primo"
ITEM MENU_ITEM(44) "~Ultimo"
MENUBAR TASK_MENUBAR + 1
MENU TASK_MENUBAR + 1

View File

@ -1,55 +1,277 @@
#include <applicat.h>
#include <mask.h>
#include <mailbox.h>
#include <form.h>
#include <msksheet.h>
#include <prefix.h>
#include <relation.h>
#include <utility.h>
#include <urldefid.h>
#include "ba2100a.h"
class TestMessages : public TApplication
#include "ba2100.h"
class TForm_editor : public TApplication
{
virtual bool menu(MENU_TAG);
TForm* _form;
protected:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG);
virtual void print();
static bool file_handler(TMask_field& f, KEY k);
bool edit_relation();
bool edit(char s, pagetype p);
public:
TestMessages() : TApplication() {}
virtual ~TestMessages() {}
TForm_editor();
virtual ~TForm_editor();
};
bool TestMessages::create()
TForm_editor::TForm_editor() : _form(NULL)
{}
TForm_editor::~TForm_editor()
{}
bool TForm_editor::create()
{
TApplication::create();
dispatch_e_menu(BAR_ITEM(1));
if (argc() < 3)
return error_box("Specificare il nome del profilo di stampa");
TFilename form(argv(2)); form.ext("frm");
const char mode = argc() > 3 ? toupper(argv(3)[1]) : 'M';
const bool crea = (mode == 'C') || !fexist(form);
if (crea)
{
TFilename base(form.left(3)); base.ext("frm");
if (!fexist(base))
return error_box("Non esiste il file %s", (const char*)base);
if (!fcopy(base, form))
return error_box("Impossibile copiare %s in %s", (const char*)base, (const char*)form);
}
if (!fexist(form))
return error_box("Non esiste il file %s", (const char*)form);
_form = new TForm(form);
enable_menu_item(M_FILE_PRINT);
return TRUE;
}
bool TForm_editor::destroy()
{
delete _form;
return TApplication::destroy();
}
bool TForm_editor::menu(MENU_TAG tag)
{
char sec = 'B';
pagetype pt = odd_page;
switch(tag)
{
case MENU_ITEM(11):
sec = 'R'; pt = odd_page; break;
case MENU_ITEM(21):
sec = 'H'; pt = odd_page; break;
case MENU_ITEM(22):
sec = 'H'; pt = even_page; break;
case MENU_ITEM(23):
sec = 'H'; pt = first_page; break;
case MENU_ITEM(24):
sec = 'H'; pt = last_page; break;
case MENU_ITEM(31):
sec = 'B'; pt = odd_page; break;
case MENU_ITEM(32):
sec = 'B'; pt = even_page; break;
case MENU_ITEM(33):
sec = 'B'; pt = first_page; break;
case MENU_ITEM(34):
sec = 'B'; pt = last_page; break;
case MENU_ITEM(41):
sec = 'F'; pt = odd_page; break;
case MENU_ITEM(42):
sec = 'F'; pt = even_page; break;
case MENU_ITEM(43):
sec = 'F'; pt = first_page; break;
case MENU_ITEM(44):
sec = 'F'; pt = last_page; break;
default:
break;
}
edit(sec, pt);
return TRUE;
}
void TForm_editor::print()
{
_form->print();
}
bool TForm_editor::file_handler(TMask_field& f, KEY k)
{
bool ok = TRUE;
if (k == K_TAB && f.dirty())
{
const char* d = prefhndl->description(f.get());
if (*d == '\0') ok = error_box("Nome di file o tabella errato");
f.mask().set(f.dlg()+1, d);
}
return ok;
}
bool TForm_editor::edit_relation()
{
TMask m("ba2100r");
TSheet_field& s = (TSheet_field&)m.field(F_ITEMS);
s.sheet_mask().set_handler(101, file_handler);
TRelation* & rel = _form->_relation;
TCursor* & cur = _form->_cursor;
if (rel)
{
rel->print_on(s.rows_array());
s.force_update();
s.disable_cell(0, 2); s.disable_cell(0, 4);
}
if (m.run() != K_ENTER || !m.dirty())
return FALSE;
if (rel)
{
delete cur; cur = NULL;
delete rel; rel = NULL;
}
TToken_string& r = s.row(0);
TString16 name = r.get(0);
if (name.not_empty())
{
int logicnum = atoi(name);
r.get(); // Skip description
int alias = 0, to = 0, key = r.get_int(2);
TString80 exp = r.get(4);
rel = (logicnum > 0) ? new TRelation(logicnum) : new TRelation(name);
cur = new TCursor(rel, exp, key);
for (int i = 1; i < s.items(); i++)
{
TToken_string& r = s.row(i);
name = r.get(0); logicnum = atoi(name);
to = name2log(r.get());
key = r.get_int();
alias = r.get_int();
exp = r.get();
const int l = exp.len();
for (int j = 0; j < l; j++)
if (exp[j] == ' ') exp[j] = '|';
if (logicnum > 0)
rel->add(logicnum, exp, key, to, alias); // join file
else
rel->add(name, exp, key, to, alias); // join table
}
}
return TRUE;
}
bool TestMessages::menu(MENU_TAG)
bool TForm_editor::edit(char s, pagetype t)
{
TMask m("ba2100a");
TMailbox mb;
bool dirty = FALSE;
while (m.run() != K_ESC)
if (s == 'R')
dirty = edit_relation();
else
{
TString from(12);
TString to(12);
TString body(60);
TString subj(12);
from = m.get(FLD_FROM);
to = m.get(FLD_TO);
body = m.get(FLD_BODY);
subj = m.get(FLD_SUBJ);
TMessage msg(to, subj, body, from);
mb.send(msg);
}
return FALSE;
TString80 caption;
switch(s)
{
case 'F':
caption << "Pie' di pagina"; break;
case 'H':
caption << "Intestazione"; break;
default:
caption << "Corpo"; break;
}
int test_messages(int argc, char** argv)
switch(t)
{
TestMessages app;
app.run(argc, argv, "Prova invio messaggi");
case first_page:
caption << " della prima pagina"; break;
case even_page:
caption << " delle pagine pari"; break;
case last_page:
caption << " dell'ultima pagina"; break;
default:
caption << " standard"; break;
}
dirty = TRUE;
if (!_form->exist(s, t))
{
const KEY k = yesnocancel_box("La sezione %s non esiste: "
"si desidera ricopiare quella standard",
(const char*)caption);
if (k == K_ESC)
dirty = FALSE;
else
{
TPrint_section* sec = _form->exist(s, t, TRUE);
if (k == K_YES)
{
const TPrint_section* def = _form->exist(s, odd_page);
if (def) *sec = *def;
else dirty = FALSE;
}
}
}
if (dirty)
dirty = _form->section(s, t).edit(caption);
}
if (dirty && yesno_box("Salvare le modifiche?"))
{
CURSOR old = get_cursor(TASK_WIN);
set_cursor(TASK_WIN, CURSOR_WAIT);
const TFilename& n = _form->name();
TFilename bak(n); bak.ext("bak");
rename(n, bak);
ofstream out(n);
_form->print_on(out);
set_cursor(TASK_WIN, old);
}
return dirty;
}
int ba2100(int argc, char* argv[])
{
TForm_editor a;
a.run(argc, argv, "Parametrizzazione stampa");
return 0;
}

31
ba/ba2100.h Executable file
View File

@ -0,0 +1,31 @@
#define F_CLASS 101
#define F_KEY 102
#define F_Y 103
#define F_X 104
#define F_WIDTH 105
#define F_HEIGHT 106
#define F_PROMPT 107
#define F_HIDDEN 108
#define F_DISABLED 109
#define F_AUTOMAGIC 110
#define F_PICTURE 111
#define F_FIELD 113
#define F_FIELD2 114
#define F_GROUP 130
#define F_GROUP1 131
#define F_GROUP2 132
#define F_GROUP3 133
#define F_GROUP4 134
#define F_GROUP5 135
#define F_GROUP6 136
#define F_GROUP7 137
#define F_GROUP8 138
#define F_GROUP9 139
#define F_GROUP10 140
#define F_GROUP11 141
#define F_GROUP12 142
#define F_ITEMS 200
#define F_DECIMALS 206

214
ba/ba2100f.uml Executable file
View File

@ -0,0 +1,214 @@
#include "ba2100.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "CAMPO DI STAMPA" -1 -1 60 14
LIST F_CLASS 10
BEGIN
PROMPT 1 1 "Tipo "
FLAGS "DG"
ITEM "STRINGA|Testo" MESSAGE HIDE,2@|SHOW,F_HEIGHT|HIDE,F_ITEMS
ITEM "NUMERO|Numero" MESSAGE SHOW,2@|HIDE,F_HEIGHT|HIDE,F_ITEMS
ITEM "DATA|Data" MESSAGE HIDE,2@|HIDE,F_HEIGHT|HIDE,F_ITEMS
ITEM "LISTA|Lista" MESSAGE HIDE,2@|HIDE,F_HEIGHT|SHOW,F_ITEMS
END
STRING F_KEY 80 60
BEGIN
PROMPT 1 2 "Descrizione "
HELP "Descrizione del campo da configurare"
END
NUMBER F_Y 3
BEGIN
PROMPT 1 3 "Riga "
HELP "Riga in cui stampare"
END
NUMBER F_X 3
BEGIN
PROMPT 24 3 "Colonna "
HELP "Colonna in cui stampare"
END
NUMBER F_WIDTH 3
BEGIN
PROMPT 1 4 "Larghezza "
HELP "Lunghezza massima da stampare"
END
NUMBER F_HEIGHT 2
BEGIN
PROMPT 24 4 "Altezza "
HELP "Righe massime su cui stampare"
END
NUMBER F_DECIMALS 2
BEGIN
PROMPT 24 4 "Decimali "
HELP "Numero di decimali"
MESSAGE COPY,F_HEIGHT
GROUP 2
END
STRING F_PROMPT 80 60
BEGIN
PROMPT 1 5 "Testo "
HELP "Eventuale testo fisso da stampare"
END
STRING F_PICTURE 80 40
BEGIN
PROMPT 1 6 "Formato "
HELP "Formato di stampa (vedere codici sul manuale)"
END
STRING F_FIELD 40
BEGIN
PROMPT 1 7 "Campo su file "
HELP "Nome del campo su file"
END
STRING F_FIELD2 40
BEGIN
PROMPT 1 8 "II campo "
HELP "Nome del campo su file da utilizzare se il primo e' vuoto"
END
BOOLEAN F_HIDDEN
BEGIN
PROMPT 60 6 "Nascosto"
HELP "Il campo va elaborato ma non stampato"
END
BOOLEAN F_DISABLED
BEGIN
PROMPT 60 7 "Disabilitato"
HELP "Il campo viene completamente ignorato e quindi nemmeno stampato"
END
BOOLEAN F_AUTOMAGIC
BEGIN
PROMPT 60 8 "Automatico"
HELP "Il campo viene calcolato automaticamente"
END
GROUPBOX F_GROUP 78 3
BEGIN
PROMPT 1 9 "Gruppi di stampa"
END
BOOLEAN F_GROUP1
BEGIN
PROMPT 4 10 "1"
END
BOOLEAN F_GROUP2
BEGIN
PROMPT 10 10 "2"
END
BOOLEAN F_GROUP3
BEGIN
PROMPT 16 10 "3"
END
BOOLEAN F_GROUP4
BEGIN
PROMPT 22 10 "4"
END
BOOLEAN F_GROUP5
BEGIN
PROMPT 28 10 "5"
END
BOOLEAN F_GROUP6
BEGIN
PROMPT 34 10 "6"
END
BOOLEAN F_GROUP7
BEGIN
PROMPT 40 10 "7"
END
BOOLEAN F_GROUP8
BEGIN
PROMPT 46 10 "8"
END
BOOLEAN F_GROUP9
BEGIN
PROMPT 52 10 "9"
END
BOOLEAN F_GROUP10
BEGIN
PROMPT 58 10 "10"
END
BOOLEAN F_GROUP11
BEGIN
PROMPT 64 10 "11"
END
BOOLEAN F_GROUP12
BEGIN
PROMPT 70 10 "12"
END
SPREADSHEET F_ITEMS
BEGIN
PROMPT 0 12 "Spreadsheet"
ITEM "Codice@8"
ITEM "Testo@32"
ITEM "Messaggio@80"
END
ENDPAGE
ENDMASK
PAGE "Spreadsheet" -1 -1 46 6
STRING 101 8
BEGIN
PROMPT 1 1 "Codice "
END
STRING 102 32
BEGIN
PROMPT 1 2 "Testo "
FLAGS "_"
END
STRING 103 80 32
BEGIN
PROMPT 1 3 "Messaggio "
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE

80
ba/ba2100r.uml Executable file
View File

@ -0,0 +1,80 @@
#include "ba2100.h"
PAGE "RELAZIONE" -1 -1 78 12
SPREADSHEET F_ITEMS 0 9
BEGIN
PROMPT 0 1 "Spreadsheet"
ITEM "File@4"
ITEM "Descrizione@40"
ITEM "Join@4"
ITEM "Chiave@2"
ITEM "Alias@3"
ITEM "Espressione@40"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
PAGE "Spreadsheet" -1 -1 60 8
STRING 101 4
BEGIN
PROMPT 1 1 "File "
FLAGS "U"
CHECKTYPE REQUIRED
END
STRING 102 40
BEGIN
PROMPT 16 1 ""
FLAGS "D"
END
STRING 103 4
BEGIN
PROMPT 1 2 "Join "
FLAGS "U"
END
NUMBER 104 3
BEGIN
PROMPT 1 3 "Chiave "
FLAGS "U"
END
NUMBER 105 3
BEGIN
PROMPT 1 4 "Alias "
FLAGS "U"
END
STRING 106 40
BEGIN
PROMPT 1 5 "Espr. "
FLAGS "U"
CHECKTYPE REQUIRED
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE

23
ba/ba2100s.uml Executable file
View File

@ -0,0 +1,23 @@
#include "ba2100.h"
PAGE "SEZIONE DI STAMPA" -1 -1 30 5
NUMBER F_HEIGHT 2
BEGIN
PROMPT 1 1 "Altezza "
END
BUTTON DLG_EDIT 10 2
BEGIN
PROMPT -12 -1 ""
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,34 +1,12 @@
#if XVT_OS == XVT_OS_SCOUNIX
// EDIT Printer File
// Utility for printer configuration files editing
// by MB SEP 1993
#ifndef __APPLICAT_H
#include <applicat.h>
#endif
#ifndef __MASK_H
#include <mask.h>
#endif
#ifndef __CHECKS_H
#include <checks.h>
#endif
#ifndef __STRINGS_H
#include <strings.h>
#endif
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __PRINTER_H
#include <printer.h>
#endif
#ifndef __UTILITY_H
#include <utility.h>
#endif
#define __BA2300_CPP
#include <ba2300.h>
@ -301,6 +279,8 @@ bool seek_printer_no(FILE* input, int number, TString& printer, long* pos, bool
fclose(listfile);
return seek_printer(input, printer, pos, justafter);
}
class EPF_Application : public TApplication
{
bool _isnamed;
@ -1044,11 +1024,13 @@ bool EPF_Application::menu(MENU_TAG m)
return TRUE;
}
#endif
int ba2300(int argc, char** argv)
int ba2300(int argc, char* argv[])
{
#if XVT_OS == XVT_OS_SCOUNIX
epf.run(argc, argv, "Manutenzione stampanti");
#endif
return 0;
}

View File

@ -7,20 +7,17 @@ MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Selezione"
MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Selezione"
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Modifica"
/*
* ba3 -4
@ -38,7 +35,6 @@ MENUBAR MENU_BAR(5)
MENU MENU_BAR(5)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Selezione"
/*
* ba3 -6
@ -56,5 +52,4 @@ MENUBAR MENU_BAR(7)
MENU MENU_BAR(7)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Selezione"

View File

@ -19,7 +19,7 @@ END
ENDPAGE
PAGE "Anagrafica persone fisiche" -1 -1 77 20
PAGE "Persone Fisiche" -1 -1 77 20
LIST DLG_NULL 1
BEGIN

View File

@ -17,7 +17,7 @@ END
#include <toolbar.h>
ENDPAGE
PAGE "Anagrafica persone giuridiche" -1 -1 77 20
PAGE "Persone Giuridiche" -1 -1 77 20
LIST DLG_NULL 1
BEGIN
@ -811,7 +811,7 @@ BEGIN
HELP "Numero di azioni emesse dalla societa'"
END
NUMBER FLD_AG4_VALNOM 12
NUMBER FLD_AG4_VALNOM 15
BEGIN
PROMPT 42 6 "Valore nominale "
FIELD LF_ANAGGIU->VALNOM

View File

@ -77,12 +77,14 @@ END
STRING FLD_TABIVA_S6 4
BEGIN
PROMPT 39 3 "C.IVA a cui ventilare "
FLAGS "U"
FIELD S6
COPY USE FLD_TABIVA_CODTAB
INPUT CODTAB FLD_TABIVA_S6
COPY DISPLAY FLD_TABIVA_CODTAB
OUTPUT FLD_TABIVA_S6 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
HELP "Inserire il codice iva a cui ventilare l'imposta"
END

View File

@ -29,7 +29,6 @@ BEGIN
FIELD LF_TABCOM->S0
KEY 2
USE %LNG KEY 2
INPUT CODTAB F_CODICE
INPUT S0 F_DESCR
DISPLAY "Descrizione @50" S0
DISPLAY "Codice" CODTAB

View File

@ -3,7 +3,7 @@
0|Contabilita'|4|7
0|Terreni e fabbricati|tefa -t
0|Modello 740|740 -t
0|Manutenzione|15
0|Manutenzione|15|P
1|Gestione Anagrafiche|1
1|Persone fisiche|ba4 -1 F
1|Persone giuridiche|ba4 -1 G