Patch level : 02.00.303

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Ripotata la versione Partners 2.0 patch 302 sul main trunk


git-svn-id: svn://10.65.10.50/trunk@10387 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2002-07-03 14:48:48 +00:00
parent f991f0834a
commit 3849f63cf0
92 changed files with 1224 additions and 1916 deletions

View File

@ -31,7 +31,7 @@
#define PREFERRED_MENU M_STYLE #define PREFERRED_MENU M_STYLE
#ifdef XVAGA #ifdef XVAGA
#define MEN_FILE "bacampo.men" #define MEN_FILE "bamenu.men"
#else #else
#define MEN_FILE "baprassi.men" #define MEN_FILE "baprassi.men"
#endif #endif
@ -1290,18 +1290,15 @@ bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
int TMenu_application::do_level() int TMenu_application::do_level()
{ {
const TSubmenu& curr = _menu.current(); const TSubmenu& curr = _menu.current();
const int width = 78;
const int height = 18;
const int bwidth = 20; const int bwidth = 20;
TImage& image = _menu.image(curr.picture()); TImage& image = _menu.image(curr.picture());
TPicture_mask mask(curr.caption(), width, height, &image); TPicture_mask mask(curr.caption(), -4, -2, &image);
CHECK(_mask == NULL, "Two masks are better than one?"); CHECK(_mask == NULL, "Two masks are better than one?");
_mask = &mask; _mask = &mask;
const int x = width / 2; const int x = mask.columns() / 2;;
int y = 1; int y = 1;
TString caption; TString caption;
@ -1320,21 +1317,13 @@ int TMenu_application::do_level()
mask.disable(id); mask.disable(id);
} }
mask.add_static(DLG_NULL, 0, "Cerca", 1,-3); TEdit_field& ef = mask.add_string(DLG_USER, 0, "Cerca ", 1, -3, 50, "", 50);
TEdit_field& ef = mask.add_string(DLG_USER, 0, "", -12, -3, 50, "", bwidth+1);
ef.set_handler(menu_find_handler); ef.set_handler(menu_find_handler);
const bool top = _menu.at_top(); const bool top = _menu.at_top();
TButton_field& bf = mask.add_button(DLG_QUIT, 0, "Fine", top ? -22 : -12, -1, bwidth, 2); TButton_field& bf = mask.add_button(DLG_QUIT, 0, "Fine", -12, -1, bwidth, 2);
if (!top) if (!top)
{
RCT e_rct; ef.get_rect(e_rct); // Rettangolo cerca
RCT b_rct; bf.get_rect(b_rct); // Rettangolo bottone
b_rct.left = e_rct.left-2; // Aggiusta rettangolo
b_rct.right = e_rct.right+2;
bf.set_rect(b_rct); // Modifica bottone
mask.add_button(DLG_CANCEL, 0, "Menu precedente", -22, -1, bwidth, 2); mask.add_button(DLG_CANCEL, 0, "Menu precedente", -22, -1, bwidth, 2);
}
mask.first_focus(101+_menu.selected()); mask.first_focus(101+_menu.selected());
@ -1914,90 +1903,6 @@ long TMenu_application::handler(WINDOW win, EVENT* ep)
return ret; return ret;
} }
#ifndef XVGUY
HIDDEN bool convert(const char* menuname)
{
TString tag(_MAX_FNAME);
_splitpath(menuname, NULL, NULL, tag.get_buffer(_MAX_FNAME), NULL);
tag.upper();
TFilename outname = tag; outname.ext("men");
FILE* out = fopen(outname, "w");
if (out == NULL)
{
error_box("Can't write output file %s", (const char*)outname);
return FALSE;
}
TToken_string line;
TString256 tmp;
int lastid = -1;
int lastitem = 0;
TScanner mnu(menuname);
while (mnu.ok())
{
line = mnu.line();
if (line.empty())
break;
int menuid = line.get_int(0);
if (menuid != lastid)
{
if (lastid >= 0)
fputc('\n', out);
fprintf(out, "[%s_%03d]\n", (const char*)tag, menuid);
fprintf(out, "Caption = \"%s\"\n", line.get());
fprintf(out, "Picture = <ba%02d.bmp>\n", line.get_int());
fprintf(out, "Module = %d\n", line.get_int());
fputs("Flags = \"\"\n", out);
lastid = menuid;
lastitem = 0;
}
else
{
tmp.format("Item_%02d = \"%s\", ", ++lastitem, line.get());
TString256 action = line.get();
int jump = atoi(action);
if (jump > 0 && jump < 730)
{
action.format("[%s_%03d]", (const char*)tag, jump);
tmp << action;
}
else
{
if (action == "DISABLED")
action.cut(0);
tmp << '\"' << action << "\", \"";
if (action.empty())
tmp << 'D';
if (action.compare("cg", 2, TRUE) == 0)
tmp << 'F';
const char* mod = line.get(); // Eventuale 'P'assword
if (mod && *mod == 'P')
tmp << 'P';
tmp << '\"';
}
tmp << '\n';
fputs(tmp, out);
}
}
fclose(out);
return TRUE;
}
#endif
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TMenu_tree // TMenu_tree
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -2661,14 +2566,12 @@ int main(int argc, char** argv)
{ {
TApplication::check_parameters(argc, argv); TApplication::check_parameters(argc, argv);
#ifdef XVGUY
if (user().blank()) if (user().blank())
{ {
char name[16]; char name[16];
if (aga_get_user_name(name, 16)) if (aga_get_user_name(name, 16))
user() = name; user() = name;
} }
#endif
if (user().blank()) if (user().blank())
{ {
TConfig prawin(CONFIG_INSTALL, "Main"); TConfig prawin(CONFIG_INSTALL, "Main");
@ -2677,24 +2580,6 @@ int main(int argc, char** argv)
TFilename menu = (argc < 2) ? MEN_FILE : argv[1]; TFilename menu = (argc < 2) ? MEN_FILE : argv[1];
#ifndef XVAGA
TString ext = menu.ext(); ext.lower();
if (ext == "men" && !menu.exist())
ext.cut(0);
if (ext != "men")
{
if (ext.empty())
menu.ext("mnu");
TFilename newmenu(menu);
newmenu.ext("men");
if (newmenu == "prassi.men")
newmenu == "baprassi.men";
if (menu.exist() && !newmenu.exist())
convert(menu);
menu = newmenu;
}
#endif
if (menu.exist()) if (menu.exist())
{ {
TMenu_application *ma = new TMenu_application(menu); TMenu_application *ma = new TMenu_application(menu);

View File

@ -77,13 +77,11 @@ void TPackFiles_application::search_blanks(TSystemisamfile& f)
f.open(_excllock, TRUE); f.open(_excllock, TRUE);
const long records = f.items(); const long records = f.items();
TProgind p(records, "Ricerca records vuoti in corso...", TRUE, TRUE, 70);
TString k; TString k;
for (long i = 0; f.status() == NOERR && i < records; i++) for (long i = 0; f.status() == NOERR && i < records; i++)
{ {
f.readat(i + 1); // Legge per numero di record, evitando falli di indice... f.readat(i + 1); // Legge per numero di record, evitando falli di indice...
p.setstatus(i + 1);
k = f.curr().key(); // Chiave 1; non puo' essere vuota (anche perche' no si puo' scrivere un record vuoto) k = f.curr().key(); // Chiave 1; non puo' essere vuota (anche perche' no si puo' scrivere un record vuoto)
if (f.curr().empty() || k.trim().empty()) // Teoricamente ce ne sarebbe uno solo... if (f.curr().empty() || k.trim().empty()) // Teoricamente ce ne sarebbe uno solo...
{ // ma se l'indice e' rovinato possono esserci piu' records vuoti { // ma se l'indice e' rovinato possono esserci piu' records vuoti
@ -113,8 +111,12 @@ void TPackFiles_application::main_loop()
TString cmd; TString cmd;
TDir d; TDir d;
TDir ds; TDir ds;
for (int i = 2; i<=items; i++) // Skip LF_DIR TProgind p(items, "Compattazione in corso...", TRUE, TRUE );
for (long i = 2; i<=items; i++) // Skip LF_DIR
{ {
p.setstatus(i);
if (p.iscancelled())
break;
if (!_selsheet->checked(i-1)) if (!_selsheet->checked(i-1))
continue; continue;
d.get(i); d.get(i);

View File

@ -1,6 +1,6 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <agasys.h>
#include <agasys.h>
#include <applicat.h> #include <applicat.h>
#include <defmask.h> #include <defmask.h>
#include <dongle.h> #include <dongle.h>
@ -936,7 +936,7 @@ protected:
virtual const TFilename& build_export_path(TFilename& path) const; virtual const TFilename& build_export_path(TFilename& path) const;
virtual bool zip_file(const char* archive, const char* file) const; virtual bool zip_file(const char* archive, const char* file) const;
virtual int split_file(const TFilename& file, long size) const; virtual int split_file(const TFilename& file, size_t size) const;
virtual bool move_file(const TFilename& file, const char* dir) const; virtual bool move_file(const TFilename& file, const char* dir) const;
virtual bool zip_module(const TString& module, bool agg, int patch_level) const; virtual bool zip_module(const TString& module, bool agg, int patch_level) const;
@ -1580,21 +1580,12 @@ void TFascicolator_mask::save()
bool TCreadischi_mask::zip_file(const char* archive, const char* listfile) const bool TCreadischi_mask::zip_file(const char* archive, const char* listfile) const
{ {
TString msg; TString msg;
msg << "Creazione del file temporaneo " << archive << "..."; msg << "Creazione del file compresso " << archive << "...";
TIndwin waitw(100,msg,FALSE,FALSE); TIndwin waitw(100,msg,FALSE,FALSE);
TWait_cursor hourglass; TWait_cursor hourglass;
#ifdef XVAGA
return aga_zip_filelist(listfile, archive); return aga_zip_filelist(listfile, archive);
#else
TFilename cmd;
int err=0;
cmd << "zip.pif " << archive << ' ' << listfile;
TExternal_app app(cmd);
err = app.run(FALSE, FALSE, FALSE, FALSE);
return err == 0;
#endif
} }
bool TCreadischi_mask::move_file(const TFilename& file, const char* dir) const bool TCreadischi_mask::move_file(const TFilename& file, const char* dir) const
@ -1641,55 +1632,47 @@ bool TCreadischi_mask::move_file(const TFilename& file, const char* dir) const
return write_ok; return write_ok;
} }
int TCreadischi_mask::split_file(const TFilename& archive, long size) const // Dato il file Pippo.zip lo splitta in Pippo1.zip, Pippo2.zip, Pippo?.zip
int TCreadischi_mask::split_file(const TFilename& archive, size_t chunk_size) const
{ {
TWait_cursor hourglass;
int disks = 1; int disks = 1;
if (size > 0L) const size_t tot_size = ::fsize(archive);
if (chunk_size > 0 && chunk_size < tot_size)
{ {
TFilename sommario(archive); TFilename sommario(archive);
sommario.ext("ini"); sommario.ext("ini");
size -= ::fsize(sommario); chunk_size -= ::fsize(sommario);
const long minsize = 360*1024L; const long minsize = 720*1024L;
if (size < minsize) if (chunk_size < minsize)
size = minsize; chunk_size = minsize;
DIRECTORY curdir, tmpdir; FILE* inf = fopen(archive, "rb");
xvt_fsys_get_dir(&curdir); // Legge directory corrente if (inf == NULL)
return 0;
// Costruisce percorso assoluto dello splitter TString msg; msg << "Separazione del file " << archive << "...";
TFilename cmd; TProgind pi(tot_size, msg, FALSE, TRUE);
xvt_fsys_convert_dir_to_str(&curdir, cmd.get_buffer(), cmd.size());
cmd.add("zipsplit.pif");
cmd << " -n " << size << " -b " << archive.path() << ' ' << archive;
// Salta alla directory temporanea byte* buff = new byte[chunk_size];
xvt_fsys_convert_str_to_dir((char*)archive.path(), &tmpdir); for (int d = 1; ; d++)
xvt_fsys_set_dir(&tmpdir);
// Esegue lo splitter nella directory temporanea
TExternal_app app(cmd);
int err = app.run(FALSE, FALSE, FALSE, FALSE);
// Torna nella directory principale
xvt_fsys_set_dir(&curdir);
if (err != NOERR)
return error_box("Errore %d durante lo splitting del file %s",
err, (const char*)archive);
// Conta il numero di dischetti generati
TFilename src;
for (int d = 2; ; d++)
{ {
src = archive; const size_t r = fread(buff, 1, chunk_size, inf);
src.ext(""); pi.addstatus(r);
src << d; if (r > 0)
src.ext("zip"); {
if (::fexist(src)) TFilename chunk(archive);
chunk.ext(""); chunk << d; chunk.ext("zip");
FILE* ouf = fopen(chunk, "wb");
fwrite(buff, r, 1, ouf);
fclose(ouf);
disks = d; disks = d;
}
else else
break; break;
} }
delete buff;
fclose(inf);
::remove(archive); ::remove(archive);
} }
else else
@ -1899,14 +1882,11 @@ bool TCreadischi_mask::zip_module(const TString& main_module, bool agg, int patc
::remove(filelist); // elimina il file lista-file ::remove(filelist); // elimina il file lista-file
return TRUE; return TRUE;
} }
zip_file(archivio, filelist); // Compatto gli eventuali ultimi rimasti zip_file(archivio, filelist); // Compatto gli eventuali ultimi rimasti
::remove(filelist); // elimina il file lista-file ::remove(filelist); // elimina il file lista-file
msg.cut(0); const size_t size = get_long(F_DISKSIZE) * 1024;
msg << "Separazione del file " << archivio << " ...";
TIndwin pi(60, msg, FALSE, FALSE);
const long size = get_long(F_DISKSIZE) * 1024;
const int disks = split_file(archivio, size); const int disks = split_file(archivio, size);
// Memorizza il numero dei dischetti nel sommario // Memorizza il numero dei dischetti nel sommario
@ -1916,6 +1896,8 @@ bool TCreadischi_mask::zip_module(const TString& main_module, bool agg, int patc
const char drive = toupper(path[0]); const char drive = toupper(path[0]);
const bool floppy = os_is_removable_drive(path); const bool floppy = os_is_removable_drive(path);
msg = "Creazione file "; msg << archivio;
TProgind pi(disks, msg, FALSE, TRUE);
for (int d = 1; d <= disks && !aborted; d++) for (int d = 1; d <= disks && !aborted; d++)
{ {
if (floppy) if (floppy)
@ -1931,6 +1913,7 @@ bool TCreadischi_mask::zip_module(const TString& main_module, bool agg, int patc
msg << "Generazione del disco " << d << " di " << disks msg << "Generazione del disco " << d << " di " << disks
<< " del modulo " << main_module << " ..."; << " del modulo " << main_module << " ...";
pi.set_text(msg); pi.set_text(msg);
pi.addstatus(1);
do_events(); do_events();
bool ok = TRUE; bool ok = TRUE;

View File

@ -1,6 +1,6 @@
#include "ba1600a.h" #include "ba1600a.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 -2 0 2
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
@ -18,22 +18,22 @@ PAGE "Generazione dischetti" -1 -1 78 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "Parametri unita'" PROMPT 1 0 "@bParametri disco destinazione"
END END
NUMBER F_DISKSIZE 5 NUMBER F_DISKSIZE 5
BEGIN BEGIN
PROMPT 2 1 "Dimensione (K) " PROMPT 2 1 "Dimensione (Kb) "
END END
STRING F_DISKPATH 50 40 STRING F_DISKPATH 80 40
BEGIN BEGIN
PROMPT 25 1 "Percorso " PROMPT 26 1 "Percorso "
END END
SPREADSHEET F_SHEET SPREADSHEET F_SHEET
BEGIN BEGIN
PROMPT 1 4 "" PROMPT 1 3 ""
ITEM "Modulo@30" ITEM "Modulo@30"
ITEM "Cod." ITEM "Cod."
ITEM "Versione" ITEM "Versione"

View File

@ -1,3 +1,4 @@
#include <agasys.h>
#include <applicat.h> #include <applicat.h>
#include <defmask.h> #include <defmask.h>
#include <dongle.h> #include <dongle.h>
@ -8,8 +9,6 @@
#include <sheet.h> #include <sheet.h>
#include <utility.h> #include <utility.h>
#include <agasys.h>
#include "ba1.h" #include "ba1.h"
#include "ba1500.h" #include "ba1500.h"
#include "ba1600.h" #include "ba1600.h"
@ -694,8 +693,7 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
{ {
// esiste un particolare .ini con formato XXinst.ini (moduli) o con XX9999a.ini (patch) // esiste un particolare .ini con formato XXinst.ini (moduli) o con XX9999a.ini (patch)
// (installazione da directory con .zip) // (installazione da directory con .zip)
TInstall_ini *ini; TInstall_ini* ini = new TInstall_ini(ininame);
ini = new TInstall_ini(ininame);
ini->write_protect(); ini->write_protect();
lastpatch=ini->get_int("Patch",module); lastpatch=ini->get_int("Patch",module);
lastrelease=ini->get("Versione",module); lastrelease=ini->get("Versione",module);
@ -729,45 +727,47 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
TProgind pi(dischi, msg, FALSE, TRUE); TProgind pi(dischi, msg, FALSE, TRUE);
TFilename tempdir; tempdir.tempdir(); TFilename tempdir; tempdir.tempdir();
TFilename cmdline; // File tottale dei vari sotto-zip
TFilename totti = tempdir; totti.add(module); totti.ext("zip");
for (int d = 1; d <= dischi && ok; d++) for (int d = 1; d <= dischi && ok; d++)
{ {
cmdline = path; TFilename chunk = path;
cmdline.add(module); chunk.add(module);
if (patchlevel > 0) if (patchlevel > 0)
{ {
TString16 name; TString16 name;
name.format("%04da", patchlevel); name.format("%04da", patchlevel);
cmdline << name; chunk << name;
} }
else else
cmdline << "inst"; chunk << "inst";
cmdline << d << ".zip"; chunk << d << ".zip";
if (internet && !cmdline.exist()) if (internet && !chunk.exist())
{ {
TFilename remote = cmdline.name(); TFilename remote = chunk.name();
remote.insert(http_path, 0); remote.insert(http_path, 0);
if (!http_get(http_server, remote, cmdline)) if (!http_get(http_server, remote, chunk))
error_box("Errore di trasferimento del file '%s'", (const char*)remote); error_box("Errore di trasferimento del file '%s'", (const char*)remote);
} }
ok = cmdline.exist(); ok = chunk.exist();
if (!ok && !internet) // Chiedi cambio disco (sole se non sta scaricando da internet) if (!ok && !internet) // Chiedi cambio disco (solo se non sta scaricando da internet)
{ {
while (!ok) while (!ok)
{ {
if (askdisk(path,cmdline,d,dischi,(const char*)ini->get("Descrizione"))==K_QUIT) if (askdisk(path,chunk,d,dischi,(const char*)ini->get("Descrizione"))==K_QUIT)
break; break;
ok = fexist(cmdline); ok = chunk.exist();
if (!ok) if (!ok)
message_box("Impossibile trovare il file '%s'",(const char*)cmdline); message_box("Impossibile trovare il file '%s'",(const char*)chunk);
} }
} }
if (ok) if (ok)
{ {
const long required = fsize(cmdline) * (dischi-d+1) * 4; const long required = fsize(chunk) * (dischi-d+1) * 4;
if (!os_test_disk_free_space(tempdir, required)) if (!os_test_disk_free_space(tempdir, required))
{ {
ok = yesno_box("Lo spazio su disco potrebbe essere insufficiente:\n" ok = yesno_box("Lo spazio su disco potrebbe essere insufficiente:\n"
@ -777,27 +777,23 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
if (ok) if (ok)
{ {
TWait_cursor hourglass; fcopy(chunk, totti, d > 1); // Somma il chunk al totale
#ifdef XVAGA
aga_unzip(cmdline, tempdir);
#else
cmdline.insert("unzip.pif -o ", 0);
cmdline << " -d " << tempdir;
TExternal_app app(cmdline);
ok = app.run(FALSE, FALSE, FALSE, FALSE) == 0;
#endif
pi.addstatus(1); pi.addstatus(1);
} }
} }
aga_unzip(totti, tempdir); // Scompatta il file totale
::remove(totti);
// *************** // ***************
// trasferimento // trasferimento
if (ok) if (ok)
{ {
// si assicura che sia leggibile il .ini del primo disco // si assicura che sia leggibile il .ini del primo disco
do { do
cmdline = path; {
TFilename cmdline = path;
cmdline.add(ininame.name()); cmdline.add(ininame.name());
ok = fexist(cmdline); ok = cmdline.exist();
if (!ok) if (!ok)
{ {
if (askdisk(path,cmdline,1,dischi,(const char*)ini->get("Descrizione"))==K_QUIT) if (askdisk(path,cmdline,1,dischi,(const char*)ini->get("Descrizione"))==K_QUIT)

View File

@ -456,12 +456,7 @@ void TArchive_app::load_zip_files(const TFilename& floppy_path)
{ {
TFilename exdir; TFilename exdir;
exdir = firm2dir(-1); exdir.add(dst.name()); exdir.ext(""); exdir = firm2dir(-1); exdir.add(dst.name()); exdir.ext("");
aga_unzip(dst, exdir);
TString cmdline;
cmdline << "unzip.pif -o " << dst << " -d " << exdir;
TExternal_app app(cmdline);
app.run(FALSE, FALSE, FALSE, FALSE);
} }
} }
} }

View File

@ -125,7 +125,6 @@ bool TQuery_application::create()
{ {
open_files(LF_SOCI, LF_ANAG, LF_NDITTE,0); open_files(LF_SOCI, LF_ANAG, LF_NDITTE,0);
_mask = new TMask("ba5000"); _mask = new TMask("ba5000");
dispatch_e_menu(MENU_ITEM(1));
return TSkeleton_application::create(); return TSkeleton_application::create();
; ;
} }

View File

@ -485,7 +485,7 @@ bool TAnaprint_app::user_create()
_bk_ditta = _bk_ana = _bk_socio = _bk_attiv = _bk_registro = _bk_unloc = -1; _bk_ditta = _bk_ana = _bk_socio = _bk_attiv = _bk_registro = _bk_unloc = -1;
TToken_string rxp(40); TToken_string rxp(40);
TProgind p(5, "Preparazione archivi\rPrego attendere", FALSE, TRUE, 30); TProgind p(5, "Preparazione archivi\rPrego attendere", FALSE, TRUE);
// setup relation // setup relation
_rel_fis = new TRelation(LF_ANAG); _rel_fis = new TRelation(LF_ANAG);

View File

@ -1,16 +1,16 @@
[PRASSI_000] [MENU_000]
Caption = "Menu Principale" Caption = "Menu Principale"
Picture = <ba00.bmp> Picture = <ba00.bmp>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Anagrafiche di base", [PRASSI_001] Item_01 = "Anagrafiche di base", [MENU_001]
Item_02 = "Amministrazione", <cgarea.men> Item_02 = "Amministrazione", <cgarea.men>
Item_03 = "Acquisti e vendite", <vearea.men> Item_03 = "Acquisti e vendite", <vearea.men>
Item_04 = "Magazzino e Produzione", <mgarea.men> Item_04 = "Magazzino e Produzione", <mgarea.men>
Item_11 = "Comunicazione", [PRASSI_019] Item_11 = "Comunicazione", [MENU_019]
Item_11 = "Manutenzione", [PRASSI_015] Item_11 = "Manutenzione", [MENU_015]
[PRASSI_001] [MENU_001]
Caption = "Gestione Anagrafiche" Caption = "Gestione Anagrafiche"
Picture = <ba01.bmp> Picture = <ba01.bmp>
Module = 0 Module = 0
@ -19,14 +19,14 @@ Item_01 = "Persone fisiche", "ba4 -1 F", ""
Item_02 = "Persone giuridiche", "ba4 -1 G", "" Item_02 = "Persone giuridiche", "ba4 -1 G", ""
Item_03 = "Ditte", "ba4 -2", "" Item_03 = "Ditte", "ba4 -2", ""
Item_04 = "Ricerca Soci", "ba5", "" Item_04 = "Ricerca Soci", "ba5", ""
Item_05 = "Tabelle ministeriali", [PRASSI_011] Item_05 = "Tabelle ministeriali", [MENU_011]
Item_06 = "Tabelle", [PRASSI_002] Item_06 = "Tabelle", [MENU_002]
Item_07 = "Stampa anagrafiche", "ba6 -0", "" Item_07 = "Stampa anagrafiche", "ba6 -0", ""
Item_08 = "Stampa tabelle", [PRASSI_003] Item_08 = "Stampa tabelle", [MENU_003]
Item_09 = "Stampa tabelle ministeriali", [PRASSI_012] Item_09 = "Stampa tabelle ministeriali", [MENU_012]
Item_10 = "Stampa fogli libri bollati", "ba3 -2", "" Item_10 = "Stampa fogli libri bollati", "ba3 -2", ""
[PRASSI_002] [MENU_002]
Caption = "Tabelle" Caption = "Tabelle"
Picture = <ba02.bmp> Picture = <ba02.bmp>
Module = 0 Module = 0
@ -43,7 +43,7 @@ Item_09 = "Vecchi cod.Attivita'", "ba3 -0 %ois", ""
Item_10 = "Stati esteri", "ba3 -0 %sta", "" Item_10 = "Stati esteri", "ba3 -0 %sta", ""
Item_11 = "Gestione profili deleghe e distinte", "ba2 -0", "" Item_11 = "Gestione profili deleghe e distinte", "ba2 -0", ""
[PRASSI_003] [MENU_003]
Caption = "Stampa tabelle" Caption = "Stampa tabelle"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0
@ -59,7 +59,7 @@ Item_08 = "Cariche sociali", "ba3 -1 %crs", ""
Item_09 = "Vecchi cod.Attivita'", "ba3 -1 %ois", "" Item_09 = "Vecchi cod.Attivita'", "ba3 -1 %ois", ""
Item_10 = "Stati esteri", "ba3 -1 %sta", "" Item_10 = "Stati esteri", "ba3 -1 %sta", ""
[PRASSI_011] [MENU_011]
Caption = "Tabelle ministeriali" Caption = "Tabelle ministeriali"
Picture = <ba02.bmp> Picture = <ba02.bmp>
Module = 0 Module = 0
@ -72,7 +72,7 @@ Item_05 = "Uffici IVA", "ba3 -0 %uiv", ""
Item_06 = "Uffici registro", "ba3 -0 %ure", "" Item_06 = "Uffici registro", "ba3 -0 %ure", ""
Item_07 = "Centri servizio", "ba3 -0 %ucs", "" Item_07 = "Centri servizio", "ba3 -0 %ucs", ""
[PRASSI_012] [MENU_012]
Caption = "Stampa tabelle ministeriali" Caption = "Stampa tabelle ministeriali"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0
@ -84,7 +84,7 @@ Item_04 = "Uffici IVA", "ba3 -1 %uiv", ""
Item_05 = "Uffici registro", "ba3 -1 %ure", "" Item_05 = "Uffici registro", "ba3 -1 %ure", ""
Item_06 = "Centri servizio", "ba3 -1 %ucs", "" Item_06 = "Centri servizio", "ba3 -1 %ucs", ""
[PRASSI_015] [MENU_015]
Caption = "Manutenzione" Caption = "Manutenzione"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0
@ -96,9 +96,9 @@ Item_04 = "Attivazione moduli", "ba1 -4", ""
Item_05 = "Installazione moduli", "ba1 -6", "" Item_05 = "Installazione moduli", "ba1 -6", ""
Item_06 = "Creazione dischi di installazione", "ba1 -5", "" Item_06 = "Creazione dischi di installazione", "ba1 -5", ""
Item_07 = "Backup", "ba2 -1", "" Item_07 = "Backup", "ba2 -1", ""
Item_08 = "Conversione all'Euro", [PRASSI_883] Item_08 = "Conversione all'Euro", [MENU_883]
[PRASSI_019] [MENU_019]
Caption = "Comunicazione" Caption = "Comunicazione"
Picture = <ba05.bmp> Picture = <ba05.bmp>
Module = 0 Module = 0
@ -107,7 +107,7 @@ Item_02 = "Gestione Fax", "bafax -s", ""
Item_03 = "Archivio fax spediti e ricevuti", disabled Item_03 = "Archivio fax spediti e ricevuti", disabled
Item_04 = "Archivio contatti telefonici", disabled Item_04 = "Archivio contatti telefonici", disabled
[PRASSI_883] [MENU_883]
Caption = "Conversione all'Euro" Caption = "Conversione all'Euro"
Picture = <ba00.bmp> Picture = <ba00.bmp>
Module = 0 Module = 0
@ -115,25 +115,25 @@ Item_01 = "Creazione nuova area dati in Euro", "baeur -0"
Item_02 = "Conversione ditte in Euro", "baeur -1" Item_02 = "Conversione ditte in Euro", "baeur -1"
Item_03 = "Chiusura/Apertura in Euro", "baeur -3", "F" Item_03 = "Chiusura/Apertura in Euro", "baeur -3", "F"
Item_04 = "Apertura magazzino", "baeur -5", "F" Item_04 = "Apertura magazzino", "baeur -5", "F"
Item_05 = "Stampe magazzino",[PRASSI_884], "" Item_05 = "Stampe magazzino",[MENU_884], ""
Item_06 = "Conversione cespiti",[PRASSI_885], "" Item_06 = "Conversione cespiti",[MENU_885], ""
Item_07 = "Manutenzione",[PRASSI_886], "" Item_07 = "Manutenzione",[MENU_886], ""
[PRASSI_884] [MENU_884]
Caption = "Stampe magazzino in Euro" Caption = "Stampe magazzino in Euro"
Picture = <mg00.bmp> Picture = <mg00.bmp>
Module = 32 Module = 32
Item_01 = "Stampa inventario", "baeur -7" Item_01 = "Stampa inventario", "baeur -7"
Item_02 = "Stampa storico", "baeur -8" Item_02 = "Stampa storico", "baeur -8"
[PRASSI_885] [MENU_885]
Caption = "Conversione cespiti" Caption = "Conversione cespiti"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
Item_01 = "Conversione cespiti", "ceeur -0" Item_01 = "Conversione cespiti", "ceeur -0"
Item_02 = "Controllo arrotondamenti", "ceeur -1" Item_02 = "Controllo arrotondamenti", "ceeur -1"
[PRASSI_886] [MENU_886]
Caption = "Manutenzione" Caption = "Manutenzione"
Picture = <ba00.bmp> Picture = <ba00.bmp>
Module = 0 Module = 0

View File

@ -16,7 +16,7 @@ BEGIN
KEY 1 KEY 1
USE CMS USE CMS
INPUT CODTAB F_CODICE INPUT CODTAB F_CODICE
DISPLAY "Codice@10" CODTAB DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_CODICE CODTAB OUTPUT F_CODICE CODTAB
OUTPUT F_DESCR S0 OUTPUT F_DESCR S0
@ -30,8 +30,8 @@ BEGIN
KEY 2 KEY 2
USE CMS KEY 2 USE CMS KEY 2
INPUT S0 F_DESCR INPUT S0 F_DESCR
DISPLAY "Descrizione@60" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice@10" CODTAB DISPLAY "Codice@20" CODTAB
COPY OUTPUT F_CODICE COPY OUTPUT F_CODICE
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Manca la descrizione" WARNING "Manca la descrizione"

View File

@ -2,10 +2,10 @@
Caption = "Amministrazione" Caption = "Amministrazione"
Picture = <cg00.bmp> Picture = <cg00.bmp>
Module = 0 Module = 0
Item_01 = "Contabilita' generale", <cgprassi.men> Item_01 = "Contabilita' generale", <cgmenu.men>
Item_02 = "Gestione cespiti", <ceprassi.men> Item_02 = "Gestione cespiti", <cemenu.men>
Item_03 = "Gestione percipienti", <77prassi.men> Item_03 = "Gestione percipienti", <77menu.men>
Item_04 = "Contabilita analitica", <procomm.men> Item_04 = "Contabilita analitica", <procomm.men>
Item_05 = "Bilanci e Analisi", <abprassi.men> Item_05 = "Bilanci e Analisi", <abmenu.men>
Item_06 = "Elenchi Intracomunitari", <inprassi.men> Item_06 = "Elenchi Intracomunitari", <inmenu.men>

View File

@ -1,213 +1,16 @@
#define STRICT #include <xvt.h>
#define XVT_INCL_NATIVE
#include <applicat.h> #include "ce0.h"
#include <execp.h>
#include <filetext.h>
#include <isam.h>
#include <anagr.h> int main(int argc,char** argv)
#include <anafis.h>
#include <anagiu.h>
#include <nditte.h>
#include <unloc.h>
class TSESA_anagr : public TSkeleton_application
{ {
protected: const int r = (argc > 1) ? (argv[1][1]-'0') : 0;
virtual void main_loop(); switch (r)
public:
bool is_sigla32() const;
bool split_address(TString& addr, TString& civ) const;
int write(TLocalisamfile& file, bool re);
};
bool TSESA_anagr::is_sigla32() const
{
char szBuffer[80];
GetPrivateProfileString("SIGLAPP",
"Driver32", "", szBuffer, sizeof(szBuffer), "odbc.ini");
return *szBuffer != '\0';
}
bool TSESA_anagr::split_address(TString& addr, TString& civ) const
{
bool ok = FALSE;
char* comma = strchr(addr, ',');
if (comma == NULL)
comma = strrchr(addr, ' ');
if (comma)
{ {
for (const char* c = comma+1; *c; c++) case 3: ce0400(argc,argv); break;
{ case 4: ce0500(argc,argv); break;
if (isdigit(*c)) case 8: ce0900(argc,argv); break;
{ default: ce0100(argc,argv); break;
*comma = '\0';
civ = comma+1;
civ = civ.left(10);
ok = TRUE;
break;
} }
}
}
addr.ltrim();
addr = addr.left(35);
return ok;
}
int TSESA_anagr::write(TLocalisamfile& file, bool re)
{
int err = re ? file.rewrite() : file.write();
if (err != NOERR)
err = re ? file.write() : file.rewrite();
return err;
}
void TSESA_anagr::main_loop()
{
TFilename tmp; tmp.tempdir();
TString cmdline(80);
cmdline = "dump";
if (is_sigla32())
cmdline << "32";
else
cmdline << "16";
cmdline << " ditte " << tmp;
TExternal_app app(cmdline);
int err = app.run(FALSE,3);
if (err != 0)
{
error_box("Errore %d nell'esecuzione del programma %s",
err, (const char*)cmdline);
return;
}
TFilename txt = tmp; txt.add("ditte.txt");
TFilename ini = tmp; ini.add("ditte.ini");
TFile_text file(txt, ini);
err = file.open('r');
if (err != 0)
{
::remove(ini); // Lo rimuove in caso crei vuoto il TConfig di TFile_text
error_box("Aggiornamento anagrafiche non effettuato:\n"
"impossibile aprire il file %s", (const char*)txt);
return;
}
TLocalisamfile ditte(LF_NDITTE);
TLocalisamfile anag(LF_ANAG);
TLocalisamfile anafis(LF_ANAGFIS);
TLocalisamfile anagiu(LF_ANAGGIU);
TLocalisamfile unloc(LF_UNLOC);
TString ragsoc, comres, locres, indres, civres, capres;
TRecord_text rec;
for (long rig = 1; file.read(rec) == 0; rig++)
{
const long codditta = atol(file.get_field(rec, "CODDITTA"));
if (codditta <= 0)
{
error_box("Codice ditta non valido alla riga %ld.", rig);
continue;
}
const char tipoa = file.get_field(rec, "PERS_FIS") == "S" ? 'F' : 'G';
ragsoc = file.get_field(rec, "RAGSOC");
comres = file.get_field(rec, "COMUNE");
locres = file.get_field(rec, "LOCALITA");
indres = file.get_field(rec, "INDIR1");
indres << file.get_field(rec, "INDIR2");
split_address(indres, civres);
ditte.zero();
ditte.put(NDT_CODDITTA, codditta);
int err = ditte.read(_isequal, _lock);
ditte.put(NDT_CODDITTA, codditta);
ditte.put(NDT_TIPOA, tipoa);
ditte.put(NDT_CODANAGR, codditta);
ditte.put(NDT_RAGSOC, ragsoc);
err = write(ditte, err == NOERR);
if (err != NOERR)
error_box("Errore %d in scrittura\ndella ditta %ld", err, codditta);
anag.put(ANA_TIPOA, tipoa);
anag.put(ANA_CODANAGR, codditta);
err = anag.read(_isequal, _lock);
anag.put(ANA_TIPOA, tipoa);
anag.put(ANA_CODANAGR, codditta);
anag.put(ANA_RAGSOC, ragsoc);
anag.put(ANA_COMRES, comres);
anag.put(ANA_INDRES, indres);
anag.put(ANA_CIVRES, civres);
anag.put(ANA_CAPRES, capres);
anag.put(ANA_COFI, file.get_field(rec, "CODFISCALE"));
anag.put(ANA_PAIV, file.get_field(rec, "PART_IVA"));
err = write(anag, err == NOERR);
if (err != NOERR)
error_box("Errore %d in scrittura\ndell'anagrafica %ld", err, codditta);
if (tipoa == 'F')
{
anafis.put(ANF_CODANAGR, codditta);
err = anafis.read(_isequal, _lock);
anafis.put(ANF_CODANAGR, codditta);
anafis.put(ANF_SESSO, file.get_field(rec, "SESSO"));
anafis.put(ANF_DATANASC, file.get_field(rec, "NASCITA"));
anafis.put(ANF_COMNASC, file.get_field(rec, "COMNASC"));
err = write(anafis, err == NOERR);
if (err != NOERR)
error_box("Errore %d in scrittura\ndella persona fisica %ld", err, codditta);
}
else
{
anagiu.put(ANG_CODANAGR, codditta);
err = anagiu.read(_isequal, _lock);
anagiu.put(ANG_CODANAGR, codditta);
anagiu.put(ANG_NATGIU, file.get_field(rec, "NAT_GIURID"));
err = write(anagiu, err == NOERR);
if (err != NOERR)
error_box("Errore %d in scrittura\ndella persona giuridica %ld", err, codditta);
}
unloc.put(ULC_CODDITTA, codditta);
unloc.put(ULC_CODULC, 1);
err = unloc.read(_isequal, _lock);
unloc.put(ULC_CODDITTA, codditta);
unloc.put(ULC_CODULC, 1);
unloc.put(ULC_COMULC, comres);
unloc.put(ULC_INDULC, indres);
unloc.put(ULC_CIVULC, civres);
unloc.put(ULC_CAPULC, capres);
unloc.put(ULC_COMCCIAA, comres);
unloc.put(ULC_COMTRIB, comres);
err = write(unloc, err == NOERR);
if (err != NOERR)
error_box("Errore %d in scrittura\ndell'unita' locale della ditta %ld", err, codditta);
}
if (rig <= 1)
warning_box("Non e' stata trasferita nessuna ditta");
remove(txt);
remove(ini);
}
int main(int argc, char** argv)
{
TSESA_anagr app;
app.run(argc, argv, "Aggiornamento anagrafiche");
exit(0);
return 0; return 0;
} }

View File

@ -1,5 +1,3 @@
#include <default.url> #include <default.url>
#include <mainmenu.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"

View File

@ -81,7 +81,7 @@ bool TConversione_ce_mask::already_converted(long ditta)
TFilename ditce = prefix().get_studio(); TFilename ditce = prefix().get_studio();
ditce.add("cesp/ditce"); ditce.add("cesp/ditce");
TExternisamfile oldfile(ditce, FALSE, FALSE); TExternisamfile oldfile(ditce,(bool) FALSE,(bool) FALSE);
for (err = oldfile.first(); err == NOERR; err = oldfile.next()) for (err = oldfile.first(); err == NOERR; err = oldfile.next())
{ {
long d = oldfile.get_long("CACDD"); long d = oldfile.get_long("CACDD");
@ -289,7 +289,7 @@ int TConversione_cespiti::conv_file(const TFilename& ofname, int nflogicnum)
d.eod() = 0L; d.eod() = 0L;
d.put(nflogicnum); d.put(nflogicnum);
TExternisamfile oldfile(ofname, FALSE, FALSE); TExternisamfile oldfile(ofname,(bool) FALSE,(bool) FALSE);
TLocalisamfile* newfile = NULL; TLocalisamfile* newfile = NULL;
const TRectype& oldrec = oldfile.curr(); const TRectype& oldrec = oldfile.curr();
TString s; TString s;
@ -420,7 +420,7 @@ void TConversione_cespiti::zap_table(const char* tab) const
int TConversione_cespiti::conv_tab(const TFilename& ofname, const char* tab) int TConversione_cespiti::conv_tab(const TFilename& ofname, const char* tab)
{ {
long oldditta = -1, ditta = -1; long oldditta = -1, ditta = -1;
TExternisamfile oldfile(ofname, FALSE, FALSE); TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TTable* newfile = NULL; TTable* newfile = NULL;
TConfig config("ce0900.ini", tab); TConfig config("ce0900.ini", tab);
@ -672,7 +672,7 @@ int TConversione_cespiti::conv_inifile(const TFilename& ofname, const char* ofpa
int err = f.pack(); int err = f.pack();
if (err == NOERR) if (err == NOERR)
{ {
TExternisamfile oldfile(ofname, FALSE, FALSE); TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TLocalisamfile* newfile = new TLocalisamfile(nflogicnum); TLocalisamfile* newfile = new TLocalisamfile(nflogicnum);
TConfig config("ce0900.ini", (const char*) ofpar); TConfig config("ce0900.ini", (const char*) ofpar);
TAssoc_array& fieldlist = config.list_variables(); TAssoc_array& fieldlist = config.list_variables();
@ -747,7 +747,7 @@ int TConversione_cespiti::conv_par(const TFilename& ofname, const char* ofpar, i
{ {
long oldditta = -1; long oldditta = -1;
long ditta; long ditta;
TExternisamfile oldfile(ofname, FALSE, FALSE); TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TConfig newconfig(which_config, "ce"); TConfig newconfig(which_config, "ce");
TConfig config("ce0900.ini", (const char*) ofpar); TConfig config("ce0900.ini", (const char*) ofpar);
TAssoc_array& fieldlist = config.list_variables(); TAssoc_array& fieldlist = config.list_variables();

View File

@ -134,6 +134,8 @@ bool TPR_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
class TTotalizer : public TAssoc_array class TTotalizer : public TAssoc_array
{ {
TString _str;
protected: protected:
void add_num(const TRectype& rec, const char* name, char segno); void add_num(const TRectype& rec, const char* name, char segno);
@ -141,9 +143,16 @@ public:
void add_rec(const TRectype& rec, char segno = '+'); void add_rec(const TRectype& rec, char segno = '+');
TTotalizer& operator+=(TTotalizer& tot); TTotalizer& operator+=(TTotalizer& tot);
real get_num(const char* name); real get_num(const char* name);
const TString& get(const char* name) { return get_num(name).string(); } const TString& get(const char* name);
}; };
const TString& TTotalizer::get(const char* name)
{
_str = get_num(name).string();
return _str;
}
void TTotalizer::add_num(const TRectype& rec, const char* name, char segno) void TTotalizer::add_num(const TRectype& rec, const char* name, char segno)
{ {
real num = rec.get(name); real num = rec.get(name);

View File

@ -107,7 +107,7 @@ bool TECUP_app::promis_filter(const TRelation* rel)
return FALSE; return FALSE;
if (a._veidip < 2) if (a._veidip < 2)
return cespi.get_bool(CESPI_VEIDIP) == a._veidip; return cespi.get_bool(CESPI_VEIDIP) == (a._veidip != 0);
return TRUE; return TRUE;
} }

View File

@ -1,16 +1,16 @@
[PRASSICE_001] [CEMENU_001]
Caption = "Gestione cespiti" Caption = "Gestione cespiti"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
Flags = "" Flags = ""
Item_01 = "Anagrafiche", [PRASSICE_002], "" Item_01 = "Anagrafiche", [CEMENU_002], ""
Item_02 = "Tabelle comuni", [PRASSICE_003], "" Item_02 = "Tabelle comuni", [CEMENU_003], ""
Item_03 = "Stampa tabelle comuni", [PRASSICE_004], "" Item_03 = "Stampa tabelle comuni", [CEMENU_004], ""
Item_04 = "Scelta ditta", [PRASSICE_005], "F" Item_04 = "Scelta ditta", [CEMENU_005], "F"
Item_05 = "Conversione", "ce0 -8" Item_05 = "Conversione", "ce0 -8"
[PRASSICE_002] [CEMENU_002]
Caption = "Anagrafiche" Caption = "Anagrafiche"
Picture = <ba01.bmp> Picture = <ba01.bmp>
Module = 0 Module = 0
@ -19,7 +19,7 @@ Item_01 = "Persone fisiche", "ba4 -1 F", ""
Item_02 = "Persone giuridiche", "ba4 -1 G", "" Item_02 = "Persone giuridiche", "ba4 -1 G", ""
Item_03 = "Ditte", "ba4 -2", "" Item_03 = "Ditte", "ba4 -2", ""
[PRASSICE_003] [CEMENU_003]
Caption = "Tabelle comuni" Caption = "Tabelle comuni"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -30,7 +30,7 @@ Item_03 = "Specie", "ce0 -0 %cat", ""
Item_04 = "Categorie", "ce0 -0 %cac", "" Item_04 = "Categorie", "ce0 -0 %cac", ""
Item_05 = "Tipi movimento", "ce0 -0 %tmc" , "" Item_05 = "Tipi movimento", "ce0 -0 %tmc" , ""
[PRASSICE_004] [CEMENU_004]
Caption = "Stampa tabelle comuni" Caption = "Stampa tabelle comuni"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 11 Module = 11
@ -40,20 +40,20 @@ Item_02 = "Specie", "ba3 -1 %cat", ""
Item_03 = "Categorie", "ba3 -1 %cac", "" Item_03 = "Categorie", "ba3 -1 %cac", ""
Item_04 = "Tipi movimento", "ba3 -1 %tmc" , "" Item_04 = "Tipi movimento", "ba3 -1 %tmc" , ""
[PRASSICE_005] [CEMENU_005]
Caption = "Scelta ditta" Caption = "Scelta ditta"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
Flags = "F" Flags = "F"
Item_01 = "Tabelle ditta", [PRASSICE_006] Item_01 = "Tabelle ditta", [CEMENU_006]
Item_02 = "Stampa tabelle ditta", [PRASSICE_007] Item_02 = "Stampa tabelle ditta", [CEMENU_007]
Item_03 = "Collegamenti contabili", [PRASSICE_008] Item_03 = "Collegamenti contabili", [CEMENU_008]
Item_04 = "Operaz. giornal. e fine eserc.", [PRASSICE_009] Item_04 = "Operaz. giornal. e fine eserc.", [CEMENU_009]
Item_05 = "Stampe giornaliere", [PRASSICE_010] Item_05 = "Stampe giornaliere", [CEMENU_010]
Item_06 = "Stampe di fine esercizio", [PRASSICE_011] Item_06 = "Stampe di fine esercizio", [CEMENU_011]
Item_07 = "Servizi", [PRASSICE_012] Item_07 = "Servizi", [CEMENU_012]
[PRASSICE_006] [CEMENU_006]
Caption = "Tabelle ditta" Caption = "Tabelle ditta"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -64,7 +64,7 @@ Item_03 = "Impianti", "ce0 -0 cim" , ""
Item_04 = "Esercizi", "ce0 -0 cce", "F" Item_04 = "Esercizi", "ce0 -0 cce", "F"
Item_05 = "Esercizi contabili", "cg0 -5 esc", "F" Item_05 = "Esercizi contabili", "cg0 -5 esc", "F"
[PRASSICE_007] [CEMENU_007]
Caption = "Stampa tabelle ditta" Caption = "Stampa tabelle ditta"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 11 Module = 11
@ -74,7 +74,7 @@ Item_02 = "Localizzazioni", "ba3 -1 loc", ""
Item_03 = "Impianti", "ba3 -1 cim" , "" Item_03 = "Impianti", "ba3 -1 cim" , ""
Item_04 = "Esercizi", "ba3 -1 cce", "F" Item_04 = "Esercizi", "ba3 -1 cce", "F"
[PRASSICE_008] [CEMENU_008]
Caption = "Collegamenti contabili" Caption = "Collegamenti contabili"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -86,7 +86,7 @@ Item_04 = "St. contr. colleg. contab. cat/ces", "", ""
Item_05 = "Trasferimento movimenti provvisori", "", "" Item_05 = "Trasferimento movimenti provvisori", "", ""
Item_06 = "Trasferimento movimenti definitivi", "", "" Item_06 = "Trasferimento movimenti definitivi", "", ""
[PRASSICE_009] [CEMENU_009]
Caption = "Operazioni giornaliere e fine esercizio" Caption = "Operazioni giornaliere e fine esercizio"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -99,7 +99,7 @@ Item_05 = "Forzatura ammortamento su cespiti", "ce1 -0", "F"
Item_06 = "Forzatura ammortamento su movimenti", "ce1 -1", "F" Item_06 = "Forzatura ammortamento su movimenti", "ce1 -1", "F"
Item_07 = "Esecuzione calcolo ammortamenti", "ce2 -0", "F" Item_07 = "Esecuzione calcolo ammortamenti", "ce2 -0", "F"
[PRASSICE_010] [CEMENU_010]
Caption = "Stampe giornaliere" Caption = "Stampe giornaliere"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -109,7 +109,7 @@ Item_02 = "Lista movimenti", "ce3 -5", "F"
Item_03 = "Lista cespiti ad uso promiscuo", "ce3 -6", "F" Item_03 = "Lista cespiti ad uso promiscuo", "ce3 -6", "F"
Item_04 = "Lista cespiti a fine esercizio", "ce3 -7", "F" Item_04 = "Lista cespiti a fine esercizio", "ce3 -7", "F"
[PRASSICE_011] [CEMENU_011]
Caption = "Stampe di fine esercizio" Caption = "Stampe di fine esercizio"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11
@ -119,7 +119,7 @@ Item_02 = "Prospetto cespiti", "ce3 -2", "F"
Item_03 = "Prospetto rivalutazioni", "ce3 -3", "F" Item_03 = "Prospetto rivalutazioni", "ce3 -3", "F"
Item_04 = "Registro cespiti", "ce3 -0", "F" Item_04 = "Registro cespiti", "ce3 -0", "F"
[PRASSICE_012] [CEMENU_012]
Caption = "Servizi" Caption = "Servizi"
Picture = <ce00.bmp> Picture = <ce00.bmp>
Module = 11 Module = 11

View File

@ -1,2 +1,3 @@
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,2 +1,3 @@
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -3,11 +3,14 @@
// Prima nota // Prima nota
#include <mainmenu.url> #include <mainmenu.url>
SUBMENU M_FONT "~Opzioni" SUBMENU M_FONT "~Opzioni"
MENU M_FONT MENU M_FONT
ITEM MENU_ITEM(1) "~Colori righe" ITEM MENU_ITEM(1) "~Colori righe"
// Gestione movimenti provvisori
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1) MENU MENU_BAR(1)
SUBMENU M_FILE "~File" SUBMENU M_FILE "~File"

View File

@ -1,4 +1,5 @@
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>
@ -10,12 +11,9 @@ MENUBAR MENU_BAR(2)
MENU MENU_BAR(2) MENU MENU_BAR(2)
SUBMENU M_FILE "~File" SUBMENU M_FILE "~File"
SUBMENU M_EDIT "~Modifica"
ITEM BAR_ITEM(1) "~Scelta parametri" ITEM BAR_ITEM(1) "~Scelta parametri"
ITEM BAR_ITEM(2) "~Ricalcolo" ITEM BAR_ITEM(2) "~Ricalcolo"
ITEM BAR_ITEM(3) "~Disco" ITEM BAR_ITEM(3) "~Disco"
SUBMENU M_HELP "~Help"
/* ---------------------------------------------------- /* ----------------------------------------------------
* cg3 -5 * cg3 -5
@ -25,8 +23,7 @@ MENU MENU_BAR(2)
MENUBAR MENU_BAR(5) MENUBAR MENU_BAR(5)
MENU MENU_BAR(5) MENU MENU_BAR(5)
SUBMENU MENU_FILE "~File" SUBMENU M_FILE "~File"
SUBMENU M_EDIT "~Modifica"
SUBMENU M_FONT "~Opzioni" SUBMENU M_FONT "~Opzioni"
SUBMENU M_HELP "~Help" SUBMENU M_HELP "~Help"
@ -34,3 +31,4 @@ MENU M_FONT
ITEM MENU_ITEM(1) "~Colori righe" ITEM MENU_ITEM(1) "~Colori righe"

View File

@ -1,3 +1,4 @@
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,2 +1,4 @@
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

260
cg/cgmenu.men Executable file
View File

@ -0,0 +1,260 @@
[CGMENU_004]
Caption = "Contabilita'"
Picture = <cg01.bmp>
Module = 7
Flags = ""
Item_01 = "Persone fisiche", "ba4 -1 F", ""
Item_02 = "Persone giuridiche", "ba4 -1 G", ""
Item_03 = "Ditte", "ba4 -2", ""
Item_04 = "Tabelle studio", [CGMENU_005]
Item_05 = "Stampa tabelle studio", [CGMENU_006]
Item_06 = "Scelta contabilita'", [CGMENU_013]
Item_07 = "IVA", [CGMENU_010]
Item_08 = "Parametri di studio", "cg5 -0", ""
Item_09 = "Gestione Libro Unico", [CGMENU_014]
Item_10 = "Invio", [CGMENU_019]
Item_11 = "Ricezione", [CGMENU_020]
Item_12 = "Moduli aggiuntivi", <cgaddon.men>
[CGMENU_005]
Caption = "Tabelle studio"
Picture = <ba01.bmp>
Module = 0
Flags = ""
Item_01 = "Condizioni di pagamento", "ba3 -6", ""
Item_02 = "Classificazione pagamenti", "ba3 -0 %clr", ""
Item_03 = "Descrizioni aggiuntive", "ba3 -0 %dpn", ""
Item_04 = "Codici IVA", "ba3 -0 %iva", ""
Item_05 = "Codici Attivita'", "ba3 -0 %ais", ""
Item_06 = "Libri sociali", "ba3 -0 %itl", ""
Item_07 = "Banche", "ba3 -0 %ban", ""
Item_08 = "IV direttiva CEE", "ba3 -0 %ivd", ""
Item_09 = "Valute", "ba3 -0 %val", ""
Item_10 = "Lingue", "ba3 -0 %lng", ""
Item_11 = "Versamenti ed interessi IVA", "ba3 -0 %ver", ""
Item_12 = "Profili estratto conto", "sc3 -0", ""
[CGMENU_006]
Caption = "Stampa tabelle studio"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_01 = "Condizioni di pagamento", "ba3 -9", ""
Item_02 = "Classificazione pagamenti", "ba3 -1 %clr", ""
Item_03 = "Descrizioni aggiuntive", "ba3 -1 %dpn", ""
Item_04 = "Codici IVA", "ba3 -1 %iva", ""
Item_05 = "Codici Attivita'", "ba3 -1 %ais", ""
Item_06 = "Libri sociali", "ba3 -1 %itl", ""
Item_07 = "Banche", "ba3 -1 %ban", ""
Item_08 = "IV direttiva CEE", "ba3 -7 S", ""
Item_09 = "Valute", "ba3 -1 %val", ""
Item_10 = "Lingue", "ba3 -1 %lng", ""
Item_11 = "Versamenti ed interessi IVA", "ba3 -1 %ver", ""
[CGMENU_007]
Caption = "Tabelle ditta"
Picture = <cg01.bmp>
Module = 7
Flags = ""
Item_01 = "Parametri ditta", "cg5 -1", "F"
Item_02 = "Registri", "ba3 -0 reg", ""
Item_03 = "Piano dei conti", "cg0 -0", "F"
Item_04 = "Causali", "cg0 -4", "F"
Item_05 = "Clienti/Fornitori", "cg0 -1", "F"
Item_06 = "Agenti", "pr0 -4", ""
Item_07 = "Cambi giornalieri", "ba3 -0 cam", ""
Item_08 = "Esercizi", "cg0 -5 esc", "F"
Item_09 = "Commesse", "ba3 -0 cms", ""
Item_10 = "Fasi commesse", "ba3 -0 fsc", ""
[CGMENU_008]
Caption = "Stampa tabelle ditta"
Picture = <ba03.bmp>
Module = 7
Flags = ""
Item_01 = "Registri", "ba3 -1 reg", ""
Item_02 = "Piano dei conti", "cg1 -0", "F"
Item_03 = "Causali", "cg1 -6", "F"
Item_04 = "Clienti/Fornitori", "cg1 -1", "F"
Item_05 = "Cambi giornalieri", "ba3 -1 cam", ""
Item_06 = "IV direttiva CEE", "ba3 -7 D", ""
[CGMENU_009]
Caption = "Prima nota"
Picture = <cg01.bmp>
Module = 7
Flags = ""
Item_01 = "Prima nota", "cg2 -0", "F"
Item_02 = "Gestione movimenti provvisori", "cg2 -1", "F"
Item_03 = "Visualizzazione mastrini", "cg3 -5", "F"
Item_04 = "IVA", [CGMENU_010]
Item_05 = "Lista movimenti", "cg3 -0 M", "F"
Item_06 = "Lista fatture per clienti/fornitori", "cg3 -0 C", "F"
Item_07 = "Stampa Mastrini", "cg3 -1", "F"
Item_08 = "Stampa Riepiloghi", "cg3 -4", "F"
Item_09 = "Visualizzazione saldi", "cg5 -2", "F"
Item_10 = "Ricalcolo saldi", "cg4 -0", "F"
Item_11 = "Bilancio", "cg1 -4", "F"
Item_12 = "Bilancio IV direttiva CEE", "cg1 -5", "F"
Item_13 = "Giornale", "cg3 -3", "F"
Item_14 = "Saldaconto", <scmenu.men>
[CGMENU_010]
Caption = "IVA"
Picture = <cg01.bmp>
Module = 5
Flags = ""
Item_01 = "Parametri liquidazione", "cg5 -3", "F"
Item_02 = "Liquidazione", "cg4 -2", "F"
Item_03 = "Visualizzazione liquidazione", "cg5 -5", "F"
Item_04 = "Prospetto dich. IVA periodica", "cg5 -7", "F"
Item_05 = "Riepilogo progressivi", "cg0 -3", "F"
Item_06 = "Stampa registri", "cg4 -3", "F"
Item_07 = "Liste fatture", [CGMENU_026]
Item_08 = "Gestione acconti IVA", [CGMENU_027]
Item_09 = "Gestione versamenti IVA", [CGMENU_022]
Item_10 = "Gestione autotrasportatori", "cg4 -9", "F"
[CGMENU_011]
Caption = "Tabelle ministeriali"
Picture = <ba01.bmp>
Module = 0
Flags = ""
Item_01 = "Comuni", "ba4 -0", ""
Item_02 = "Regioni", "ba3 -0 %rgi", ""
Item_03 = "Uffici concessioni", "ba3 -0 %ucc", ""
Item_04 = "Uffici imposte dirette", "ba3 -0 %uid", ""
Item_05 = "Uffici IVA", "ba3 -0 %uiv", ""
Item_06 = "Uffici registro", "ba3 -0 %ure", ""
Item_07 = "Centri servizio", "ba3 -0 %ucs", ""
[CGMENU_012]
Caption = "Stampa tabelle ministeriali"
Picture = <ba03.bmp>
Module = 0
Flags = ""
Item_01 = "Comuni", "ba6 -1", ""
Item_02 = "Uffici concessioni", "ba3 -1 %ucc", ""
Item_03 = "Uffici imposte dirette", "ba3 -1 %uid", ""
Item_04 = "Uffici IVA", "ba3 -1 %uiv", ""
Item_05 = "Uffici registro", "ba3 -1 %ure", ""
Item_06 = "Centri servizio", "ba3 -1 %ucs", ""
[CGMENU_013]
Caption = "Scelta contabilita'"
Picture = <cg01.bmp>
Module = 0
Flags = "F"
Item_01 = "Tabelle ditta", [CGMENU_007]
Item_02 = "Stampa tabelle ditta", [CGMENU_008]
Item_03 = "Prima nota", [CGMENU_009]
Item_04 = "Operazioni di inizio fine es.", [CGMENU_021]
Item_05 = "Servizio", [CGMENU_016]
[CGMENU_014]
Caption = "Gestione libro unico"
Picture = <cg01.bmp>
Module = 7
Flags = ""
Item_01 = "Gestione libro unico", "ba3 -0 %lbu", ""
Item_02 = "Gestione indici libro unico", "ba3 -8", ""
Item_03 = "Tabella vidimazioni", "ba3 -0 %vid", ""
Item_04 = "Stampa indici libro unico", "ba3 -5", ""
Item_05 = "Stampa indici libro unico per ditta", "ba3 -5 A", ""
Item_06 = "Ripristino indici libro unico", "cg5 -4 inl", "F"
[CGMENU_016]
Caption = "Servizio"
Picture = <ba04.bmp>
Module = 0
Flags = ""
Item_01 = "Copia Archivi", "cg4 -1", "F"
Item_02 = "Ripristino stampa registri", "cg5 -4", "F"
Item_03 = "Aggiornamento Tipo Conto", "cg1 -2 T", "FP"
Item_04 = "Aggiornamento Tipo Att. su mov.IVA", "cg1 -2 A", "FP"
Item_05 = "Aggiornamento flag op.Intrac.", "cg1 -2 I", "FP"
Item_06 = "Rinumerazione n° Protocollo", "cg1 -2 P", "FP"
Item_07 = "Aggiornamento Codice Attivita'", "cg1 -2 C", "FP"
Item_08 = "Riorganizzazione codici esercizio", "cg1 -2 E", "FP"
Item_09 = "Correzione righe di prima nota", "cg1 -2 Z", "FP"
Item_10 = "Impostazione mese liquidazione", "cg1 -2 M", "FP"
Item_11 = "Collegamento bilanci", [CGMENU_025]
[CGMENU_019]
Caption = "Invio"
Picture = <ba06.bmp>
Module = 0
Flags = ""
Item_01 = "Tabella studio per invio", "cg6 -4 %INS", "F"
Item_02 = "Tabella ditta per invio", "cg6 -4 %IND", "F"
Item_03 = "Invio contabilita' a sistema", "cg6 -8 S", "F"
Item_04 = "Invio contabilita' a PC", "cg6 -8 P", "F"
Item_05 = "Ripristino movimenti da inviare", "cg6 -8 R", "F"
Item_06 = "Eliminazione file invio", "cg6 -8 C", "FP"
[CGMENU_020]
Caption = "Ricezione"
Picture = <ba06.bmp>
Module = 0
Flags = ""
Item_01 = "Tabella ditte per ricezione", "cg6 -2 %TRA", "F"
Item_02 = "Ricezione archivi da sistema", "cg6 -3 S", "F"
Item_03 = "Ricezione archivi da PC", "cg6 -3 P", "F"
Item_04 = "Scelta ditta per ricezione", "cg6 -7 S", "F"
Item_05 = "Ricezione tabelle", "cg6 -5 T", "F"
Item_06 = "Lista controllo movimenti", "cg6 -6", "F"
Item_07 = "Ricezione movimenti", "cg6 -5 M", "F"
Item_08 = "Visualiz. stato ricezione", "cg6 -7 V", "F"
Item_09 = "Variazione p.n. da ricevere", "cg6 -7 P", "F"
Item_10 = "Variazione iva da ricevere", "cg6 -7 I", "F"
Item_11 = "Annul. movimenti da ricevere", "cg6 -7 A", "F"
Item_12 = "Variazione saldaconto da ricevere", "cg6 -7 B", "F"
[CGMENU_021]
Caption = "Operazioni di inizio fine es."
Picture = <cg01.bmp>
Module = 0
Flags = ""
Item_01 = "Apertura nuovo esercizio", "cg4 -4 C", "F"
Item_02 = "Apertura nuovo esercizio IVA", "cg4 -4 I", "F"
Item_03 = "Chiusura/Apertura conti", "cg4 -5", "F"
[CGMENU_022]
Caption = "Gestione versamenti IVA"
Picture = <cg01.bmp>
Module = 0
Flags = ""
Item_01 = "Estrazione versamenti", "cg4 -2 -D", "F"
Item_02 = "Gestione versamenti", "ba3 -0 %del", ""
Item_03 = "Stampa versamenti", "cg1 -3", "F"
Item_04 = "Gestione profili deleghe e distinte", "ba2 -0", ""
[CGMENU_025]
Caption = "Collegamento bilanci"
Picture = <cg01.bmp>
Module = 7
Flags = ""
Item_01 = "Ricezione conti e periodi", "trrice", ""
Item_02 = "Tabella piano dei conti", "ab0 -1", ""
Item_03 = "Tabella periodi di bilancio", "ab0 -0 %pdb", ""
Item_04 = "Copia aggancio piano dei conti", "vcopia", ""
Item_05 = "Calcolo bilanci", "cb0000", ""
[CGMENU_026]
Caption = "Liste fatture"
Picture = <cg01.bmp>
Module = 0
Flags = ""
Item_01 = "Lista fatture con iva indetraibile", "cg3 -6 I", "F"
Item_02 = "Lista fatture per tipo costo/ricavo", "cg3 -6 C", "F"
Item_03 = "Lista fatture intracomunitarie", "cg3 -6 N", "F"
[CGMENU_027]
Caption = "Gestione acconti IVA"
Picture = <cg01.bmp>
Module = 0
Flags = ""
Item_01 = "Calcolo acconti", "cg4 -2 -A", "F"
Item_02 = "Gestione acconti", "cg4 -6", "F"
Item_03 = "Creazione versam. per acconti", "cg4 -7", "F"
Item_04 = "Visualizzazione liquidaz. acconti", "cg4 -8", "F"

View File

@ -1,15 +1,15 @@
[PRASSIDB_001] [DBMENU_001]
Caption = "Gestione distinta base" Caption = "Gestione distinta base"
Picture = <db01.bmp> Picture = <db01.bmp>
Module = 35 Module = 35
Flags = "" Flags = ""
Item_01 = "Archivi", [PRASSIDB_010] Item_01 = "Archivi", [DBMENU_010]
Item_02 = "Stampe archivi", [PRASSIDB_020] Item_02 = "Stampe archivi", [DBMENU_020]
Item_03 = "Stampe", [PRASSIDB_040] Item_03 = "Stampe", [DBMENU_040]
Item_04 = "Servizi", [PRASSIDB_030] Item_04 = "Servizi", [DBMENU_030]
Item_05 = "Configurazione distinta base", [PRASSIDB_080] Item_05 = "Configurazione distinta base", [DBMENU_080]
[PRASSIDB_010] [DBMENU_010]
Caption = "Gestione archivi" Caption = "Gestione archivi"
Picture = <db01.bmp> Picture = <db01.bmp>
Module = 35 Module = 35
@ -19,7 +19,7 @@ Item_01 = "Tabella lavorazioni", "db0 -0 LAV", "F"
Item_01 = "Tabella ordinamenti", "db0 -0 ORD", "F" Item_01 = "Tabella ordinamenti", "db0 -0 ORD", "F"
Item_01 = "Tabella variabili", "db0 -0 VAR", "F" Item_01 = "Tabella variabili", "db0 -0 VAR", "F"
[PRASSIDB_020] [DBMENU_020]
Caption = "Stampa archivi" Caption = "Stampa archivi"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 35 Module = 35
@ -30,7 +30,7 @@ Item_03 = "Tabella ordinamenti", "ba3 -1 ORD", "F"
Item_04 = "Tabella variabili", "ba3 -1 VAR", "F" Item_04 = "Tabella variabili", "ba3 -1 VAR", "F"
[PRASSIDB_040] [DBMENU_040]
Caption = "Stampa" Caption = "Stampa"
Picture = <db01.bmp> Picture = <db01.bmp>
Module = 35 Module = 35
@ -38,7 +38,7 @@ Flags = ""
Item_01 = "Esplosione distinte", "db1 -0", "F" Item_01 = "Esplosione distinte", "db1 -0", "F"
Item_02 = "Implosione", "db1 -2", "F" Item_02 = "Implosione", "db1 -2", "F"
[PRASSIDB_030] [DBMENU_030]
Caption = "Servizi" Caption = "Servizi"
Picture = <db01.bmp> Picture = <db01.bmp>
Module = 35 Module = 35

View File

@ -1,4 +1,4 @@
[PRASSIEF_001] [EFMENU_001]
Caption = "Gestione effetti" Caption = "Gestione effetti"
Picture = <ef01.bmp> Picture = <ef01.bmp>
Module = 34 Module = 34

View File

@ -3,7 +3,4 @@
#define QFIRMNAME "A.G.A. Informatica Srl" #define QFIRMNAME "A.G.A. Informatica Srl"
#include <default.url> #include <default.url>
#include <mainmenu.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"

View File

@ -50,7 +50,7 @@ END
STRINGA 4 1 STRINGA 4 1
BEGIN BEGIN
KEY "Tipo riepilogo" KEY "Tipo riepilogo"
PROMPT 39 16 "" PROMPT 40 16 "" //1 dx
END END
END END
@ -436,7 +436,8 @@ NUMERO 3 15
BEGIN BEGIN
KEY "Ammontare complessivo sezione 1" KEY "Ammontare complessivo sezione 1"
PROMPT 25 6 "" PROMPT 25 6 ""
PICTURE "###.###.###.^^^" PICTURE "###.###.###"
MESSAGE _IMP
END END
NUMERO 4 3 NUMERO 4 3
@ -455,10 +456,11 @@ NUMERO 6 15
BEGIN BEGIN
KEY "Ammontare complessivo sezione 2" KEY "Ammontare complessivo sezione 2"
PROMPT 64 6 "" PROMPT 64 6 ""
PICTURE "###.###.###.^^^" PICTURE "###.###.###"
MESSAGE _IMP
END END
DATA 7 10 DATA 8 10
BEGIN BEGIN
KEY "Data di stampa" KEY "Data di stampa"
PROMPT 6 10 "" PROMPT 6 10 ""
@ -523,24 +525,33 @@ END
NUMERO 4 12 NUMERO 4 12
BEGIN BEGIN
KEY "Ammontare operazioni in lire" KEY "Ammontare operazioni in Euro" //++
PROMPT 25 1 "" PROMPT 23 1 "" //2 sx
FIELD 135->AMMLIRE FIELD 135->AMMLIRE
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END
STRINGA 51 3
BEGIN
PROMPT 35 1 "" //2 sx
FIELD 135->CODVAL
FLAGS "H"
END END
NUMERO 5 12 NUMERO 5 12
BEGIN BEGIN
KEY "Ammontare operazioni in valuta" KEY "Ammontare operazioni in valuta"
PROMPT 37 1 "" PROMPT 35 1 "" //2 sx
FIELD 135->AMMVALUTA FIELD 135->AMMVALUTA
PICTURE "#.###.###,@@" MESSAGE _IMP
PICTURE "####.###.###"
END END
STRINGA 6 1 STRINGA 6 1
BEGIN BEGIN
KEY "Natura della transazione" KEY "Natura della transazione"
PROMPT 50 1 "" PROMPT 49 1 "" //1 sx
FIELD 135->NATURA FIELD 135->NATURA
END END
@ -549,65 +560,67 @@ BEGIN
KEY "Nomenclatura combinata" KEY "Nomenclatura combinata"
PROMPT 53 1 "" PROMPT 53 1 ""
FIELD 135->NOMENCL FIELD 135->NOMENCL
PICTURE "@@@@@@@@"
END END
NUMERO 8 10 NUMERO 8 9
BEGIN BEGIN
KEY "Massa netta in kilogrammi" KEY "Massa netta in kilogrammi"
PROMPT 62 1 "" PROMPT 62 1 ""
FIELD 135->MASSAKG FIELD 135->MASSAKG
PICTURE "######,@@@" PICTURE "#########"
MESSAGE _ROUND,0
END END
NUMERO 9 10 NUMERO 9 9
BEGIN BEGIN
KEY "Massa in unita' supplementare" KEY "Massa in unita' supplementare"
PROMPT 73 1 "" PROMPT 72 1 "" //1 sx
FIELD 135->MASSAUMS FIELD 135->MASSAUMS
PICTURE "######,@@@" PICTURE "#########"
MESSAGE _ROUND,0
END END
NUMERO 10 12 NUMERO 10 12
BEGIN BEGIN
KEY "Valore statistico" KEY "Valore statistico"
PROMPT 84 1 "" PROMPT 82 1 "" //2 sx
FIELD 135->VALSTAT FIELD 135->VALSTAT
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
STRINGA 11 1 STRINGA 11 1
BEGIN BEGIN
KEY "Codice consegna" KEY "Codice consegna"
PROMPT 97 1 "" PROMPT 96 1 "" //1 sx
FIELD 135->CONSEGNA[1,1] FIELD 135->CONSEGNA[1,1]
END END
STRINGA 12 1 STRINGA 12 1
BEGIN BEGIN
KEY "Modo di trasporto" KEY "Modo di trasporto"
PROMPT 100 1 "" PROMPT 99 1 "" //1 sx
FIELD 135->TRASPORTO FIELD 135->TRASPORTO
END END
STRINGA 13 2 STRINGA 13 2
BEGIN BEGIN
KEY "Paese destinazione/provenienza" KEY "Paese destinazione/provenienza"
PROMPT 103 1 "" PROMPT 102 1 "" //1 sx
FIELD 135->PAESE FIELD 135->PAESE
END END
STRINGA 14 2 STRINGA 14 2
BEGIN BEGIN
KEY "Paese di origine" KEY "Paese di origine"
PROMPT 107 1 "" PROMPT 106 1 "" //1 sx
FIELD 135->PAESEORIG FIELD 135->PAESEORIG
END END
STRINGA 15 2 STRINGA 15 2
BEGIN BEGIN
KEY "Provincia di destinazione" KEY "Provincia di destinazione"
PROMPT 111 1 "" PROMPT 110 1 "" //1 sx
FIELD 135->PROV FIELD 135->PROV
END END
@ -618,21 +631,23 @@ SECTION FOOTER ODD 31
NUMERO 1 12 NUMERO 1 12
BEGIN BEGIN
KEY "Riporto dalla pagina precedente" KEY "Riporto dalla pagina precedente"
PROMPT 25 1 "" PROMPT 23 1 "" //2 sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 2 12 NUMERO 2 12
BEGIN BEGIN
KEY "Totale" KEY "Totale riepiloghi"
PROMPT 25 3 "" PROMPT 23 3 "" //2 sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 3 3 NUMERO 3 3
BEGIN BEGIN
KEY "Numero di pagina" KEY "Numero di pagina"
PROMPT 111 3 "" PROMPT 110 3 "" //1 sx
END END
END END
@ -650,6 +665,7 @@ NUMERO 2 1
BEGIN BEGIN
KEY "Trimestre" KEY "Trimestre"
PROMPT 29 15 "" PROMPT 29 15 ""
PICTURE ""
END END
NUMERO 3 6 NUMERO 3 6
@ -681,16 +697,16 @@ END
NUMERO 2 2 NUMERO 2 2
BEGIN BEGIN
KEY "Mese del periodo di riferimento" KEY "Mese del periodo di riferimento (riempito da programma)"
PROMPT 7 1 "" PROMPT 7 1 ""
FIELD 135->PERETT PICTURE "#@"
END END
NUMERO 3 2 NUMERO 3 1
BEGIN BEGIN
KEY "Trimestre del periodo di riferimento" KEY "Trimestre del periodo di riferimento (riempito da programma)"
PROMPT 11 1 "" PROMPT 11 1 ""
FIELD 135->PERETT PICTURE "@"
END END
NUMERO 4 4 NUMERO 4 4
@ -723,67 +739,88 @@ END
NUMERO 8 12 NUMERO 8 12
BEGIN BEGIN
KEY "Ammontare operazioni in lire" KEY "Ammontare operazioni in Euro"
PROMPT 41 1 "" PROMPT 39 1 "" //2 sx
FIELD 135->AMMLIRE FIELD 135->AMMLIRE
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END
STRINGA 91 3
BEGIN
PROMPT 35 1 "" //2 sx
FIELD 135->CODVAL
FLAGS "H"
END END
NUMERO 9 12 NUMERO 9 12
BEGIN BEGIN
KEY "Ammontare operazioni in valuta" KEY "Ammontare operazioni in valuta"
PROMPT 52 1 "" PROMPT 52 1 "" //2 sx
FIELD 135->AMMVALUTA FIELD 135->AMMVALUTA
PICTURE "#.###.###,@@" MESSAGE _IMP
PICTURE "####.###.###"
END END
STRINGA 10 1 STRINGA 10 1
BEGIN BEGIN
KEY "Natura della transazione" KEY "Natura della transazione"
PROMPT 66 1 "" PROMPT 65 1 "" //1 sx
FIELD 135->NATURA FIELD 135->NATURA
END END
STRINGA 11 8 STRINGA 11 8
BEGIN BEGIN
KEY "Nomenclatura combinata" KEY "Nomenclatura combinata"
PROMPT 69 1 "" PROMPT 68 1 "" //1 sx
FIELD 135->NOMENCL FIELD 135->NOMENCL
PICTURE "@@@@@@@@"
END END
NUMERO 12 12 NUMERO 12 12
BEGIN BEGIN
KEY "Valore statistico" KEY "Valore statistico"
PROMPT 80 1 "" PROMPT 78 1 "" //2 sx
FIELD 135->VALSTAT FIELD 135->VALSTAT
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
END END
SECTION FOOTER EVEN 36 SECTION FOOTER EVEN 36
STRINGA 4 1
BEGIN
KEY "Segno riporto rettifiche"
PROMPT 37 1 ""
END
NUMERO 1 12 NUMERO 1 12
BEGIN BEGIN
KEY "Riporto dala pagina precedente" KEY "Riporto dalla pagina precedente"
PROMPT 41 1 "" PROMPT 39 1 "" //2 sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END
STRINGA 7 1
BEGIN
KEY "Segno Totale rettifiche"
PROMPT 37 3 ""
END END
NUMERO 2 12 NUMERO 2 12
BEGIN BEGIN
KEY "Totale" KEY "Totale rettifiche"
PROMPT 41 3 "" PROMPT 39 3 "" //2 sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 3 3 NUMERO 3 3
BEGIN BEGIN
KEY "Numero di pagina" KEY "Numero di pagina"
PROMPT 89 4 "" PROMPT 87 4 "" //2 sx
END END
END END

View File

@ -436,7 +436,8 @@ NUMERO 3 15
BEGIN BEGIN
KEY "Ammontare complessivo sezione 1" KEY "Ammontare complessivo sezione 1"
PROMPT 25 6 "" PROMPT 25 6 ""
PICTURE "###.###.###.^^^" PICTURE "###.###.###"
MESSAGE _IMP
END END
NUMERO 4 3 NUMERO 4 3
@ -455,7 +456,8 @@ NUMERO 6 15
BEGIN BEGIN
KEY "Ammontare complessivo sezione 2" KEY "Ammontare complessivo sezione 2"
PROMPT 64 6 "" PROMPT 64 6 ""
PICTURE "###.###.###.^^^" PICTURE "###.###.###"
MESSAGE _IMP
END END
DATA 7 10 DATA 7 10
@ -523,16 +525,17 @@ END
NUMERO 4 12 NUMERO 4 12
BEGIN BEGIN
KEY "Ammontare operazioni in lire" KEY "Ammontare operazioni in euro"
PROMPT 25 1 "" PROMPT 23 1 "" //2sx
FIELD 135->AMMLIRE FIELD 135->AMMLIRE
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
STRINGA 6 1 STRINGA 6 1
BEGIN BEGIN
KEY "Natura della transazione" KEY "Natura della transazione"
PROMPT 37 1 "" PROMPT 36 1 "" //1sx
FIELD 135->NATURA FIELD 135->NATURA
END END
@ -541,31 +544,33 @@ BEGIN
KEY "Nomenclatura combinata" KEY "Nomenclatura combinata"
PROMPT 39 1 "" PROMPT 39 1 ""
FIELD 135->NOMENCL FIELD 135->NOMENCL
PICTURE "@@@@@@@@"
END END
NUMERO 8 10 NUMERO 8 9
BEGIN BEGIN
KEY "Massa netta in kilogrammi" KEY "Massa netta in kilogrammi"
PROMPT 49 1 "" PROMPT 48 1 "" //1sx
FIELD 135->MASSAKG FIELD 135->MASSAKG
PICTURE "######,@@@" PICTURE "#########"
MESSAGE _ROUND,0
END END
NUMERO 9 10 NUMERO 9 9
BEGIN BEGIN
KEY "Massa in unita' supplementare" KEY "Massa in unita' supplementare"
PROMPT 60 1 "" PROMPT 58 1 "" //2sx
FIELD 135->MASSAUMS FIELD 135->MASSAUMS
PICTURE "######,@@@" PICTURE "#########"
MESSAGE _ROUND,0
END END
NUMERO 10 12 NUMERO 10 12
BEGIN BEGIN
KEY "Valore statistico" KEY "Valore statistico"
PROMPT 71 1 "" PROMPT 69 1 "" //2sx
FIELD 135->VALSTAT FIELD 135->VALSTAT
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
STRINGA 11 1 STRINGA 11 1
@ -578,21 +583,21 @@ END
STRINGA 12 1 STRINGA 12 1
BEGIN BEGIN
KEY "Modo di trasporto" KEY "Modo di trasporto"
PROMPT 87 1 "" PROMPT 86 1 "" //1sx
FIELD 135->TRASPORTO FIELD 135->TRASPORTO
END END
STRINGA 13 2 STRINGA 13 2
BEGIN BEGIN
KEY "Paese destinazione" KEY "Paese destinazione"
PROMPT 90 1 "" PROMPT 89 1 "" //1sx
FIELD 135->PAESE FIELD 135->PAESE
END END
STRINGA 14 2 STRINGA 14 2
BEGIN BEGIN
KEY "Provincia Origine" KEY "Provincia Origine"
PROMPT 94 1 "" PROMPT 93 1 "" //1sx
FIELD 135->PROV FIELD 135->PROV
END END
@ -603,21 +608,23 @@ SECTION FOOTER ODD 31
NUMERO 1 12 NUMERO 1 12
BEGIN BEGIN
KEY "Riporto dalla pagina precedente" KEY "Riporto dalla pagina precedente"
PROMPT 25 1 "" PROMPT 23 1 "" //2sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 2 12 NUMERO 2 12
BEGIN BEGIN
KEY "Totale" KEY "Totale"
PROMPT 25 3 "" PROMPT 23 3 "" //2sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 3 3 NUMERO 3 3
BEGIN BEGIN
KEY "Numero di pagina" KEY "Numero di pagina"
PROMPT 95 3 "" PROMPT 94 3 "" //1sx
END END
END END
@ -666,16 +673,16 @@ END
NUMERO 2 2 NUMERO 2 2
BEGIN BEGIN
KEY "Mese del periodo di riferimento" KEY "Mese del periodo di riferimento (Settato da programma)"
PROMPT 7 1 "" PROMPT 7 1 ""
FIELD 135->PERETT PICTURE "#@"
END END
NUMERO 3 2 NUMERO 3 1
BEGIN BEGIN
KEY "Trimestre del periodo di riferimento" KEY "Trimestre del periodo di riferimento (Settato da programma)"
PROMPT 11 1 "" PROMPT 11 1 ""
FIELD 135->PERETT PICTURE "@"
END END
NUMERO 4 4 NUMERO 4 4
@ -708,16 +715,17 @@ END
NUMERO 8 12 NUMERO 8 12
BEGIN BEGIN
KEY "Ammontare operazioni in lire" KEY "Ammontare operazioni in euro"
PROMPT 41 1 "" PROMPT 39 1 "" //2sx
FIELD 135->AMMLIRE FIELD 135->AMMLIRE
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
STRINGA 10 1 STRINGA 10 1
BEGIN BEGIN
KEY "Natura della transazione" KEY "Natura della transazione"
PROMPT 53 1 "" PROMPT 52 1 "" //1sx
FIELD 135->NATURA FIELD 135->NATURA
END END
@ -726,41 +734,54 @@ BEGIN
KEY "Nomenclatura combinata" KEY "Nomenclatura combinata"
PROMPT 56 1 "" PROMPT 56 1 ""
FIELD 135->NOMENCL FIELD 135->NOMENCL
PICTURE "@@@@@@@@"
END END
NUMERO 12 12 NUMERO 12 12
BEGIN BEGIN
KEY "Valore statistico" KEY "Valore statistico"
PROMPT 67 1 "" PROMPT 65 1 "" //2sx
FIELD 135->VALSTAT FIELD 135->VALSTAT
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
END END
SECTION FOOTER EVEN 36 SECTION FOOTER EVEN 36
STRINGA 4 1
BEGIN
KEY "Segno riporto rettifiche"
PROMPT 37 1 ""
END
NUMERO 1 12 NUMERO 1 12
BEGIN BEGIN
KEY "Riporto dala pagina precedente" KEY "Riporto dala pagina precedente"
PROMPT 41 1 "" PROMPT 39 1 "" //2sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END
STRINGA 7 1
BEGIN
KEY "Segno Totale rettifiche"
PROMPT 37 3 ""
END END
NUMERO 2 12 NUMERO 2 12
BEGIN BEGIN
KEY "Totale" KEY "Totale"
PROMPT 41 3 "" PROMPT 39 3 "" //2sx
PICTURE "####.###.^^^" PICTURE "####.###.###"
MESSAGE _IMP
END END
NUMERO 3 3 NUMERO 3 3
BEGIN BEGIN
KEY "Numero di pagina" KEY "Numero di pagina"
PROMPT 75 4 "" PROMPT 74 4 "" //1sx
END END
END END

View File

@ -302,9 +302,9 @@ STRING F_PARTITA_IVA 12
BEGIN BEGIN
PROMPT 51 13 "Partita IVA " PROMPT 51 13 "Partita IVA "
USE LF_CLIFO KEY 5 USE LF_CLIFO KEY 5
INPUT TIPOCF O_TIPO_CF SELECT INPUT TIPOCF F_TIPO_CF SELECT
INPUT STATOPAIV O_STATO INPUT STATOPAIV F_STATO
INPUT PAIV O_PARTITA_IVA INPUT PAIV F_PARTITA_IVA
DISPLAY "Stato" STATOPAIV DISPLAY "Stato" STATOPAIV
DISPLAY "Partita IVA@12" PAIV DISPLAY "Partita IVA@12" PAIV
DISPLAY "Codice" CODCF DISPLAY "Codice" CODCF

View File

@ -1,13 +1,13 @@
[PRASSIIN_001] [INMENU_001]
Caption = "Elenchi Intracomunitari" Caption = "Elenchi Intracomunitari"
Picture = <ba00.bmp> Picture = <ba00.bmp>
Module = 18 Module = 18
Flags = "" Flags = ""
Item_01 = "Tabelle", [PRASSIIN_002] Item_01 = "Tabelle", [INMENU_002]
Item_02 = "Stampa Tabelle", [PRASSIIN_003] Item_02 = "Stampa Tabelle", [INMENU_003]
Item_03 = "Gestione movimenti", [PRASSIIN_004] Item_03 = "Gestione movimenti", [INMENU_004]
[PRASSIIN_002] [INMENU_002]
Caption = "Tabelle" Caption = "Tabelle"
Picture = <ba01.bmp> Picture = <ba01.bmp>
Module = 0 Module = 0
@ -18,7 +18,7 @@ Item_03 = "Natura Transazione", "ba3 -0 %int", ""
Item_04 = "Condizioni di consegna", "ba3 -0 %icc", "" Item_04 = "Condizioni di consegna", "ba3 -0 %icc", ""
Item_05 = "Modalita' di trasporto", "ba3 -0 %imt", "" Item_05 = "Modalita' di trasporto", "ba3 -0 %imt", ""
[PRASSIIN_003] [INMENU_003]
Caption = "Stampa Tabelle" Caption = "Stampa Tabelle"
Picture = <ba01.bmp> Picture = <ba01.bmp>
Module = 0 Module = 0
@ -29,7 +29,7 @@ Item_03 = "Natura Transazione", "ba3 -1 %int", ""
Item_04 = "Condizioni di consegna", "ba3 -1 %icc", "" Item_04 = "Condizioni di consegna", "ba3 -1 %icc", ""
Item_05 = "Modalita' di trasporto", "ba3 -1 %imt", "" Item_05 = "Modalita' di trasporto", "ba3 -1 %imt", ""
[PRASSIIN_004] [INMENU_004]
Caption = "Gestione movimenti" Caption = "Gestione movimenti"
Picture = <ba00.bmp> Picture = <ba00.bmp>
Module = 18 Module = 18

View File

@ -286,7 +286,11 @@ long TApplication::handler(WINDOW win, EVENT* ep)
{ {
on_firm_change(); on_firm_change();
on_config_change(); on_config_change();
#ifdef XVAGA
return 1;
#else
do_events(); do_events();
#endif
} }
else else
stop_run(); stop_run();
@ -516,7 +520,7 @@ const char* TApplication::get_module_name() const
} }
if (!ok) if (!ok)
{ {
error_box("Il modulo '%s' non e' autorizzato", (const char*)module); error_box("Il modulo '%s' non e' autorizzato per l'utente %s", (const char*)module, ((const char*)user()));
module.cut(0); module.cut(0);
} }
} }
@ -527,18 +531,10 @@ const char* TApplication::get_module_name() const
void TApplication::set_perms() void TApplication::set_perms()
{ {
#ifndef _DEMO_ _user_aut.set(0, TRUE); // Attiva la BASE
_dongle_aut.set(0, TRUE);
for (int i = 1 ; i < ENDAUT; i++)
{
const bool val = ::dongle().active(i);
_dongle_aut.set(i, val);
}
#endif
_user_aut.set(0, TRUE);
TString& utente = user(); TString& utente = user();
if (utente.empty() && god_mode("PrassiForever")) if (utente.empty() && god_mode("AdminForever"))
utente = ::dongle().administrator(); utente = ::dongle().administrator();
if (utente.not_empty()) if (utente.not_empty())
@ -674,7 +670,7 @@ void TApplication::run(
cfg.about_box_ID = 0; cfg.about_box_ID = 0;
cfg.base_appl_name = (char*)base.name(); cfg.base_appl_name = (char*)base.name();
cfg.appl_name = (char*)title; cfg.appl_name = (char*)title;
cfg.taskwin_title = "PR.A.S.S.I."; cfg.taskwin_title = "CAMPO";
set_xvt_hooks(); set_xvt_hooks();
@ -684,7 +680,7 @@ void TApplication::run(
bool TApplication::get_version_info(int& year, int& release, int& tag, int& patch) bool TApplication::get_version_info(int& year, int& release, int& tag, int& patch)
{ {
const char* const VERSIONANDPATCH = "Don't cry for me Argentina.1998.01.00.000.1999"; const char* const VERSIONANDPATCH = "Don't cry for me Argentina.2002.02.00.000.2004";
TToken_string vep(VERSIONANDPATCH, '.'); TToken_string vep(VERSIONANDPATCH, '.');
year = vep.get_int(1); year = vep.get_int(1);
release = vep.get_int(); release = vep.get_int();
@ -692,7 +688,7 @@ bool TApplication::get_version_info(int& year, int& release, int& tag, int& patc
patch = vep.get_int(); patch = vep.get_int();
int checksum = vep.get_int(); int checksum = vep.get_int();
bool valid = year >= 1997 && release > 0 && tag >= 0 && patch >= 0 && bool valid = year >= 2002 && release > 0 && tag >= 0 && patch >= 0 &&
checksum == (year + release + tag + patch); checksum == (year + release + tag + patch);
return valid; return valid;
} }
@ -711,9 +707,8 @@ void TApplication::about() const
} }
else else
{ {
#include <prassi.ver> message_box("Versione 2.00\nProgramma %s\nLibreria del %s\nNumero di serie %u\nUtente %s",
message_box("Versione %s\nProgramma %s\nLibreria del %s\nN.ro di serie %u-%s", (const char*)n.name(), __DATE__, ser_no, (const char*)user());
VERSION, (const char*)n.name(), __DATE__, ser_no, INTERNAL_VERSION);
} }
} }
@ -752,32 +747,18 @@ void TApplication::enable_menu_item(
xvt_menu_update(TASK_WIN); xvt_menu_update(TASK_WIN);
} }
// @cmember Setta il cursore a clessidra (To be removed soon)
void TApplication::begin_wait()
{
::begin_wait();
}
// @cmember Setta il cursore standard (To be removed soon)
void TApplication::end_wait()
{
::end_wait();
}
bool TApplication::has_module(int module, int checktype) const bool TApplication::has_module(int module, int checktype) const
{ {
bool ok = TRUE; bool ok = TRUE;
#ifdef DBG
#ifndef _DEMO_
// Ignora i bit di attivazione della chiave programmatori (sempre attivati) // Ignora i bit di attivazione della chiave programmatori (sempre attivati)
if (get_serial_number() == 0) if (get_serial_number() == 0)
checktype = CHK_USER; checktype = CHK_USER;
#endif
#ifndef _DEMO_
// Testa bit di attivazione della chiave
if (checktype == CHK_ALL || checktype == CHK_DONGLE) if (checktype == CHK_ALL || checktype == CHK_DONGLE)
ok = _dongle_aut[module]; ok = dongle().active(module);
#endif #endif
// Testa bit di attivazione dell'utente // Testa bit di attivazione dell'utente

View File

@ -43,8 +43,6 @@ class TApplication
const char** _argv_; const char** _argv_;
// @cmember:(INTERNAL) Ora di inizio utilizzo del programma (per versioni DEMO) // @cmember:(INTERNAL) Ora di inizio utilizzo del programma (per versioni DEMO)
time_t _start_time; time_t _start_time;
// @cmember:(INTERNAL) Array di autorizzazione concessa della chiavi
TBit_array _dongle_aut;
// @cmember:(INTERNAL) Array di autorizzazione concessa all'utente // @cmember:(INTERNAL) Array di autorizzazione concessa all'utente
TBit_array _user_aut; TBit_array _user_aut;
// @cmember:(INTERNAL) Array di valori dei modi speciali // @cmember:(INTERNAL) Array di valori dei modi speciali
@ -196,11 +194,6 @@ public:
// @cmember Ritorna la directory in cui si trovano i dati della ditta corrente // @cmember Ritorna la directory in cui si trovano i dati della ditta corrente
const char* get_firm_dir() const; const char* get_firm_dir() const;
// @cmember Setta il cursore a clessidra
void begin_wait();
// @cmember Setta il cursore standard
void end_wait();
// @cmember Interfaccia runtime del menu' della finestra principale??? // @cmember Interfaccia runtime del menu' della finestra principale???
bool add_menu(TString_array& menu, MENU_TAG id = 0); bool add_menu(TString_array& menu, MENU_TAG id = 0);
// @cmember Elimina il menu' <p id> (Ritorna se ce l'ha fatta???) // @cmember Elimina il menu' <p id> (Ritorna se ce l'ha fatta???)

View File

@ -1,14 +1,9 @@
#include <direct.h> #include <direct.h>
#if XVT_OS == XVT_OS_WIN #include <agasys.h>
#define XVT_INCL_NATIVE
#define STRICT
#endif
#include <archives.h> #include <archives.h>
#include <config.h> #include <config.h>
#include <defmask.h> #include <defmask.h>
#include <execp.h>
#include <isam.h> #include <isam.h>
#include <mask.h> #include <mask.h>
#include <os_dep.h> #include <os_dep.h>
@ -17,101 +12,10 @@
#include <urldefid.h> #include <urldefid.h>
#include <utility.h> #include <utility.h>
#if XVT_OS == XVT_OS_WIN
#include <al.h>
///////////////////////////////////////////////////////////
// TProgress_win declaration
///////////////////////////////////////////////////////////
class TProgress_win : public TMask
{
ALWindowsMessage* _monitor;
TArchive* _arc;
protected:
static bool cancel_handler(TMask_field&, KEY k);
public:
ALWindowsMessage* monitor() const { return _monitor; }
TProgress_win(const char* title, TArchive* = NULL);
~TProgress_win();
};
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TArchive // TArchive
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// @doc EXTERNAL
// @mfunc Funzione per richiedere all'utente il dischetto e per controllare la
// corretta sequenza dei dischetti da inserire
//
// @rdesc Ritorna il puntatore al file presente (o meno) sul dischetto
FILE* TArchive::ask_disk(
TFilename& name, // @parm Nome del file da creare/cercare su disco
int disk, // @parm Numero progressivo del set
char floppy, // @parm Drive sul quale effettuare l'operazione (A, B, C, ...)
bool lettura) const // @parm Indica il modo di apertura del file:
//
// @flag TRUE | Apre il file in lettura
// @flag FALSE | Apre il file in scrittura
{
TFilename prev(name);
TString16 ext; ext.format("%03d", disk-1);
prev.ext(ext); // File precedente
bool first = TRUE;
do
{
if (first)
{
message_box("Inserire il disco %d nel drive %c:\n"
"File '%s'", disk, floppy, (const char*)prev.name());
first = FALSE;
}
else
{
const bool ok = yesno_box("Inserire il disco %d nel drive %c\n"
"Estrarre il disco %d e continuare?",
disk, floppy, disk-1);
if (!ok) return NULL;
}
} while (prev.exist()); // Non facciamo i furbetti!
ext.format("%03d", disk);
name.ext(ext); // File attuale
FILE* f = NULL;
bool retry = TRUE;
while (retry)
{
f = fopen(name, lettura ? "rb" : "wb");
if (f == NULL)
retry = yesno_box("Il file %s non e' %s: riprovare?",
(const char*)name, lettura ? "accessibile" : "scrivibile");
else
{
setvbuf(f, NULL, _IOFBF, BUFSIZE);
retry = FALSE;
}
}
return f;
}
#endif
long TArchive::fsize(FILE* f) const
{
CHECK(f, "Can't measure NULL file");
fseek(f, 0, SEEK_END);
const long s = ftell(f);
fseek(f, 0, SEEK_SET);
return s;
}
int TArchive::build_backup_list(int mode, long firm, TString_array& fl) const int TArchive::build_backup_list(int mode, long firm, TString_array& fl) const
{ {
fl.destroy(); fl.destroy();
@ -151,14 +55,6 @@ int TArchive::build_backup_list(int mode, long firm, TString_array& fl) const
fl.add(name); fl.add(name);
} }
if (mode & 0x10)
{
TFilename name(firm2dir(-1)); // __ptprf
name.add("cesp"); // Aggiungi Cespiti
if (fexist(name))
fl.add(name);
}
return fl.items(); return fl.items();
} }
@ -223,13 +119,6 @@ int TArchive::build_restore_list(
else else
continue; continue;
} }
if (name.compare("cesp", -1, TRUE) == 0)
{
if (mode & 0x10)
mode &= ~0x10;
else
continue;
}
TFilename fn(firm2dir(-1)); // __ptprf TFilename fn(firm2dir(-1)); // __ptprf
fn.add(name); fn.add(name);
@ -283,438 +172,6 @@ bool TArchive::write_ini(TFilename& work, int disk, long tot, const char* desc,
return ok; return ok;
} }
#if XVT_OS == XVT_OS_WIN
// @doc EXTERNAL
// @mfunc Spezza il file in modo da farlo stare sul dischetto
//
// @rdesc Ritorna se e' riuscito a spezzare il file
bool TArchive::fsplit(
const char* filename, // @parm Nome del file da spezzare
char floppy, // @parm Floppy su cui scaricare il file
const char* desc) const // @parm Descrizione dell'archivio
{
const TFilename from(filename); // File da splittare
FILE* i = fopen(from, "rb");
if (i == NULL)
return error_box("Impossibile aprire il file '%s'", from);
setvbuf(i, NULL, _IOFBF, BUFSIZE);
const long tot = fsize(i);
long scritti = 0;
TFilename work;
work << floppy << ":/" << from.name(); // File su dischetto
if (!os_test_disk_free_space(work, tot))
{
TString16 dev("A:\\*.*"); dev[0] = floppy;
TString_array dir;
if (list_files(dev, dir) > 1)
{
fclose(o);
::remove(work);
warning_box("Il salvataggio del file %s, generato dalla procedura, richiederà più di un dischetto: "
"il floppy inserito risulta contenere uno o più files. E' consigliabile "
"utilizzare dischetti vuoti o formattati per ridurre il loro numero.\n"
"OK per continuare.", (const char*)from.name());
o = fopen(work, "wb");
}
}
int disk = 1;
if (!write_ini(work, disk, tot, desc, floppy))
return FALSE;
TString msg("Archiviazione di "); msg << work << " (" << (tot/1024) << "K)";
TProgind w(tot, msg, TRUE, TRUE);
TString buffer(BUFSIZE);
bool ok = TRUE;
while (ok)
{
const size_t letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
if (o != NULL)
ok = (letti > 0) ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
else
ok = FALSE;
if (!ok)
{
if (o != NULL)
{
chsize(fileno(o),scritti); // Must truncate output file or some information will be rewritten on next disk!
scritti = 0; // Reset count bytes written to disk.
fclose(o);
}
o = ask_disk(work, ++disk, floppy, FALSE);
ok = o != NULL;
if (ok)
{
TFilename parag(work.name()); parag.ext("");
TFilename ini("a:/backup.ini"); ini[0] = floppy;
if (!write_ini(work, disk, tot, desc, floppy))
break;
ok = (letti > 0) ? (fwrite((char*)(const char*)buffer, letti, 1, o) == 1) : TRUE;
if (!ok)
error_box("Impossibile scrivere i dati sul dischetto");
else
scritti +=letti;
}
}
else
scritti += letti;
w.addstatus(letti);
if (ok)
ok = !w.iscancelled();
if (letti < BUFSIZE)
break;
}
fclose(i);
if (o != NULL) fclose(o);
return ok;
}
// @doc EXTERNAL
// @mfunc Ricostruisce il file spezzato
//
// @rdesc Ritorna se e' riuscito a ricostruire il file
bool TArchive::fbuild(
const char* filename, // @parm Nome del file da ricostrutire
char floppy) const // @parm Floppy da cui recupare i pezzi del file
{
const TFilename work(filename);
FILE* o = fopen(work, "wb"), *i = NULL;
if (o == NULL)
return error_box("Impossibile creare il file '%s'", (const char*)work);
setvbuf(o, NULL, _IOFBF, BUFSIZE);
long totale = 0L; // Bytes letti
long max = 1440000L; // Bytes da leggere
TFilename name; // Nome del file su dischetto
name << floppy << ":/" << work.name();
TString256 msg("Ripristino da "); msg << name;
TProgind w(max, msg, TRUE, TRUE, 40);
int disk = 0;
TString buffer(BUFSIZE);
bool ok = TRUE;
while (ok)
{
size_t letti = 0;
if (i != NULL)
{
letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
ok = letti > 0;
}
else
ok = FALSE;
if (!ok) // Richiedi nuovo disco
{
if (i != NULL) fclose(i);
i = ask_disk(name, ++disk, floppy, TRUE);
ok = i != NULL;
if (ok)
{
if (disk == 1)
{
TFilename ini("a:/backup.ini"); ini[0] = floppy;
if (ini.exist())
{
TFilename parag(name.name()); parag.ext("");
TConfig c(ini, parag);
max = c.get_long("Size");
}
else ok = yesno_box("Manca il file %s: continuare ugualmente?", (const char*)ini);
}
w.setmax(max);
if (ok) // Leggi primo blocco di bytes
{
letti = fread((char*)(const char*)buffer, 1, BUFSIZE, i);
ok = letti > 0;
}
}
}
if (ok) // La lettura e stata fatta bene
{
ok = fwrite((char*)(const char*)buffer, 1, letti, o) == letti;
if (ok)
{
w.addstatus(letti);
totale += letti;
ok = !w.iscancelled();
}
else
error_box("Impossibile scrivere i dati sul file %s", (const char*)work);
}
if (!ok || totale == max) // Esci in caso di errore o se hai finito
break;
}
fclose(o);
if (i != NULL) fclose(i);
return ok;
}
// @doc EXTERNAL
// @mfunc Effettua il backup della ditta o della directory
//
// @rdesc Ritorna il risultato dell'operazione
bool TArchive::backup(
const char* dir, // @parm Directory di cui effettuare il backup
char floppy, // @parm Floppy su cui effettuare il backup
const char* desc, // @parm Descrizione da assegnare al backup
bool)
// @syntax bool backup(const char* dir, char floppy, const char* desc, bool pr_set);
// @syntax bool backup(long firm, char floppy, const char* desc, bool pr_set);
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
{
const TString16 old(prefix().name());
if (pr_set)
prefix().set(NULL);
DIRECTORY curdir;
xvt_fsys_get_dir(&curdir);
if (dir[1] == ':')
_chdrive(toupper(dir[0]) - '@');
chdir(dir);
const TFilename d(dir);
const TString16 name(d.name());
TFilename work; work.tempdir(); work.add(name); work.ext("gal");
// Cancella eventuali gal residui
TString_array gals;
list_files("*.000", gals);
list_files("*.gal", gals);
for (int g = gals.items()-1; g >= 0; g--)
::remove(gals.row(g));
_arc = new ALArchive(work);
TString title("Archiviazione di "); title << name;
TProgress_win w(title, this);
ALEntryList list(w.monitor());
_arc->AddWildCardFiles(list, "*.*", 1);
w.open_modal();
_arc->Create( list );
w.close_modal();
bool ok = _arc->mStatus == AL_SUCCESS;
if (ok)
ok = fsplit(work, floppy, desc);
else
error_box("Compressione degli archivi errata o incompleta:\n%s",
_arc->mStatus.GetStatusDetail());
delete _arc; _arc = NULL;
remove(work);
xvt_fsys_set_dir(&curdir);
if (pr_set)
prefix().set(old);
return ok;
}
bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool pr_set)
{
TString_array fl;
const int num_ditte = build_backup_list(mode, firm, fl);
bool ok = TRUE;
for (int f = 0; f < num_ditte; f++)
{
ok = backup(fl.row(f), floppy, desc);
if (!ok) break;
}
return ok;
}
// @doc EXTERNAL
// @mfunc Effettua il restore della ditta o dell directory
//
// @rdesc Ritorna il risultato dell'operazione
bool TArchive::restore(
const char* dir, // @parm Directory di cui effettuare il restore
char floppy, // @parm Floppy da cui leggere i dati
bool tmp, // @parm Directory temporanea da utilizzare
bool)
// @syntax bool restore(const char* dir, char floppy, bool temp, bool pr_set);
// @syntax bool restore(long firm, char floppy, bool temp, bool pr_set);
{
TFilename work;
if (tmp)
work.tempdir();
else
work = dir;
TFilename output(dir);
output = output.name(); output.ext("gal");
if (!yesno_box("Attenzione l'archivio sul disco %c: verra' ripristinato\n"
"nella cartella %s. Continuare?", floppy, (const char*)work))
return FALSE;
xvt_fsys_save_dir();
if (work[1] == ':')
_chdrive(toupper(work[0]) - '@');
bool ok = chdir(work) == 0;
if (!ok)
{
ok = yesno_box("Non esiste la cartella %s: si desidera crearla?", (const char*)work);
if (ok)
{
make_dir(work);
ok = chdir(work) == 0;
}
if (!ok)
return error_box("Impossibile accedere a %s", (const char*)work);
}
const TString16 old(prefix().name());
prefix().set(NULL);
ok = fbuild(output, floppy);
if (ok)
{
_arc = new ALArchive(output);
TAssoc_array subdirs; // Array delle sottocartellle da creare
TProgress_win w("Ripristino", this);
ALEntryList list(w.monitor());
_arc->ReadDirectory(list);
// Naviga attraverso l'archivio e compone l'array delle cartelle da creare
ALEntry *entry = list.GetFirstEntry();
TFilename path;
while (entry)
{
path = entry->mpStorageObject->mName;
path = path.path();
if (path.not_empty() && subdirs.objptr(path) == NULL) // Se non c'e' lo aggiunge alla lista
if (!fexist(path))
subdirs.add(path,path);
entry = entry->GetNextEntry();
}
// Scorre la lista delle sottocartelle da creare
for (TFilename* p = (TFilename*)subdirs.first_item(); p != NULL; p = (TFilename*)subdirs.succ_item())
{
p->rtrim(1); // Strip trailing /
make_dir(*p);
}
w.open_modal();
_arc->Extract( list );
ok = _arc->mStatus == AL_SUCCESS;
if (!ok) error_box("Ripristino degli archivi errato o incompleto:\n%s",
_arc->mStatus.GetStatusString());
w.close_modal();
delete _arc; _arc = NULL;
remove(output);
}
xvt_fsys_restore_dir();
prefix().set(old);
return ok;
}
bool TArchive::restore(int mode, long firm, char floppy, bool temp, bool pr_set)
{
bool ok = TRUE;
while (ok && mode != 0)
{
TString_array fl;
const int num_ditte = build_restore_list(mode, firm, floppy, fl);
if (num_ditte <= 0)
break;
for (int f = 0; f < num_ditte; f++)
{
const TToken_string& code = fl.row(f);
ok = restore(code, floppy, temp);
}
}
return ok;
}
void TArchive::stop_job()
{
if (_arc != NULL)
_arc->GetStorageObject()->mStatus.SetError(AL_USER_ABORT, "Interrotto dall'utente");
}
///////////////////////////////////////////////////////////
// TProgress_win implementation
///////////////////////////////////////////////////////////
TProgress_win::TProgress_win(const char* title, TArchive* arc)
: TMask(title, 1, 60, 5), _arc(arc), _monitor(NULL)
{
RCT rct;
xvt_rect_set(&rct, CHARX, CHARY, 58*CHARX, 5*CHARY/2);
WINDOW wtxt = xvt_ctl_create(WC_EDIT, &rct, "", win(), CTL_FLAG_DISABLED, (long)this, 101);
xvt_rect_set(&rct, 28*CHARX, 3*CHARY, 33*CHARX, 9*CHARY/2);
WINDOW wnum = xvt_ctl_create(WC_EDIT, &rct, "", win(), CTL_FLAG_DISABLED, (long)this, 102);
add_button(DLG_USER, 0, "Cancel", -11, -1, 10, 2, "", BMP_CANCEL);
set_handler(DLG_USER, cancel_handler);
HWND txt = (HWND)xvt_vobj_get_attr(wtxt, ATTR_NATIVE_WINDOW);
HWND num = (HWND)xvt_vobj_get_attr(wnum, ATTR_NATIVE_WINDOW);
_monitor = new ALWindowsMessage(AL_MONITOR_OBJECTS, txt, AL_SEND_RATIO, num);
}
TProgress_win::~TProgress_win()
{
if (_monitor) delete _monitor;
}
bool TProgress_win::cancel_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TProgress_win& m = (TProgress_win&)f.mask();
if (m._arc != NULL)
m._arc->stop_job();
}
return TRUE;
}
#endif
bool TArchive::move_file(const TFilename& file, const char* dir) const bool TArchive::move_file(const TFilename& file, const char* dir) const
{ {
TFilename dest(dir); TFilename dest(dir);
@ -758,6 +215,50 @@ bool TArchive::move_file(const TFilename& file, const char* dir) const
return write_ok; return write_ok;
} }
bool TArchive::split_file(const TFilename& archive, unsigned long max_chunk) const
{
TFilename output(archive);
output.ext("z00");
int disk = 0;
unsigned long scritti = 0;
FILE* i = fopen(archive, "rb");
if (i == NULL)
return FALSE;
FILE* o = fopen(output, "wb");
const int BUFSIZE = 1024*16;
TString buf(BUFSIZE);
char* buffer = buf.get_buffer();
bool ok = TRUE;
while (ok)
{
const size_t letti = fread(buffer, 1, BUFSIZE, i);
if (letti == 0)
break;
if (scritti >= max_chunk)
{
fclose(o);
TString16 ext; ext.format("z%02d", ++disk);
output.ext(ext);
o = fopen(output, "wb");
scritti = 0;
}
ok = fwrite(buffer, letti, 1, o) > 0;
scritti += letti;
}
fclose(i);
fclose(o);
return ok;
}
bool TArchive::fsplit_zip( bool TArchive::fsplit_zip(
const char* filename, // @parm Nome del file da spezzare const char* filename, // @parm Nome del file da spezzare
char floppy, // @parm Floppy su cui scaricare il file char floppy, // @parm Floppy su cui scaricare il file
@ -784,32 +285,22 @@ bool TArchive::fsplit_zip(
if (size < minsize) if (size < minsize)
size = minsize; size = minsize;
// Costruisce percorso dello splitter if (!split_file(archive, size))
TFilename cmd("zipsplit.pif"); return error_box("Errore durante lo splitting del file %s", (const char*)archive);
cmd << " -n " << (long)size << " -b " << archive.path() << ' ' << archive;
// Esegue lo splitter nella directory temporanea
TExternal_app app(cmd);
int err = app.run(FALSE, FALSE, FALSE, FALSE);
if (err != NOERR)
return error_box("Errore %d durante lo splitting del file %s",
err, (const char*)archive);
size = ::fsize(archive); size = ::fsize(archive);
::remove(archive); ::remove(archive);
for (int d = 1; ; d++) for (int d = 0; ; d++)
{ {
TString16 ext; ext.format("z%02d", d);
TFilename src(archive); TFilename src(archive);
src.ext(""); src.ext(ext);
src << d;
src.ext("zip");
if (src.exist()) if (src.exist())
{ {
if (d > 1) if (d > 0)
{ {
message_box("Inserire il disco %d nel drive %c:", d, floppy); message_box("Inserire il disco %d nel drive %c:", d+1, floppy);
do_events(); do_events();
} }
@ -819,7 +310,7 @@ bool TArchive::fsplit_zip(
ini.add("backup.ini"); ini.add("backup.ini");
TConfig c(ini, archive.name()); TConfig c(ini, archive.name());
c.set("Size", size); c.set("Size", size);
c.set("Disk", d); c.set("Disk", d+1);
c.set("Description", desc); c.set("Description", desc);
c.set("Date", TDate(TODAY).string()); c.set("Date", TDate(TODAY).string());
} }
@ -833,40 +324,6 @@ bool TArchive::fsplit_zip(
return TRUE; return TRUE;
} }
const char* const file[] = { "zip.pif", "zip386.bat", "zip386.exe", "ziplist.txt", NULL };
bool TArchive::copy_zipper(const char* dir) const
{
bool ok = TRUE;
TFilename dest;
for (int f = 0; ok && file[f]; f++)
{
dest = dir;
dest.add(file[f]);
ok &= ::fcopy(file[f], dest);
}
return ok;
}
bool TArchive::remove_zipper(const char* dir) const
{
TFilename dest;
for (int f = 0; file[f]; f++)
{
dest = dir;
dest.add(file[f]);
::remove(dest);
}
return TRUE;
}
void TArchive::add_zipper_list(TString& str) const
{
for (int f = 0; file[f]; f++)
str << ' ' << file[f];
}
// @doc EXTERNAL // @doc EXTERNAL
// @mfunc Effettua il backup della directory // @mfunc Effettua il backup della directory
@ -887,12 +344,8 @@ bool TArchive::zip(
const TString16 old(prefix().name()); const TString16 old(prefix().name());
prefix().set(NULL); prefix().set(NULL);
const TFilename workdir(dir); const TFilename workdir = dir;
const TString name = workdir.name();
TString16 name(workdir.name());
// Trasforma com in datcom altrimenti lo splitter lo trasforma in com1 e com2!
if (name.compare("com", -1, TRUE) == 0)
name = "datcom";
// Nome del file compresso // Nome del file compresso
TFilename work; work.tempdir(); work.add(name); work.ext("zip"); TFilename work; work.tempdir(); work.add(name); work.ext("zip");
@ -907,31 +360,7 @@ bool TArchive::zip(
fprintf(flist, "*.*"); fprintf(flist, "*.*");
fclose(flist); fclose(flist);
copy_zipper(workdir); bool ok = ::aga_zip_filelist(ZIPLIST, work);
// Esegui lo zippatore
TFilename cmd = workdir;
cmd.add("zip.pif");
cmd << ' ' << work << ' ' << ZIPLIST << " -D -r";
TExternal_app zipapp(cmd);
int err = zipapp.run(FALSE, FALSE, FALSE, FALSE);
// Elimina files temporanei dallo zip
/*
cmd = workdir;
cmd.add("zip386.exe");
cmd << ' ' << work << " -d";
add_zipper_list(cmd);
TExternal_app zipdel(cmd);
zipdel.run(FALSE, FALSE, FALSE, FALSE);
*/
// Elimina i file temporanei dalla directory
remove_zipper(workdir);
// Splitta su floppy
bool ok = err == 0;
if (ok) if (ok)
ok = fsplit_zip(work, floppy, desc); ok = fsplit_zip(work, floppy, desc);
else else
@ -978,8 +407,6 @@ bool TArchive::unzip(
TFilename output(dir); TFilename output(dir);
output = output.name(); output = output.name();
if (output.compare("com", -1, TRUE) == 0)
output = "datcom";
output.ext("zip"); output.ext("zip");
if (!yesno_box("Attenzione l'archivio %c:%s verra' ripristinato\n" if (!yesno_box("Attenzione l'archivio %c:%s verra' ripristinato\n"
@ -1010,16 +437,22 @@ bool TArchive::unzip(
cfg << floppy << ':'; cfg << floppy << ':';
cfg.add("backup.ini"); cfg.add("backup.ini");
TConfig c(cfg, output.name()); TConfig c(cfg, output.name());
long total_size = c.get_long("Size"); const unsigned long total_size = c.get_long("Size");
long read_size = 0; unsigned long read_size = 0;
for (int d = 1; read_size < total_size; d++)
TFilename restored;
restored = work;
restored.add(output.name());
restored.ext("zip");
for (int d = 0; read_size < total_size; d++)
{ {
TString16 ext; ext.format("z%02d", d);
TFilename src; TFilename src;
src << floppy << ':' << SLASH << output.name(); src << floppy << ':' << SLASH << output.name();
src.ext(""); src.ext(ext);
src << d << ".zip";
message_box("Inserire il disco %d contenente il file %s", d, (const char*)src); message_box("Inserire il disco %d contenente il file %s", d+1, (const char*)src);
while (!src.exist()) while (!src.exist())
{ {
if (!yesno_box("Impossibile aprire il file %s:\nSi desidera ritentare?", if (!yesno_box("Impossibile aprire il file %s:\nSi desidera ritentare?",
@ -1029,21 +462,17 @@ bool TArchive::unzip(
if (src.exist()) if (src.exist())
{ {
TFilename cmd; fcopy(src, restored, d > 0);
cmd << "unzip.pif -o " << src << " -d " << work; read_size = ::fsize(restored);
TExternal_app app(cmd);
int err = app.run(FALSE, FALSE, FALSE, FALSE);
if (err == 0)
read_size += ::fsize(src);
else
{
error_box("Errore %d durante il ripristino del file %s", err, (const char*)src);
break;
}
} }
else else
break; break;
} }
ok = read_size == total_size;
if (ok)
ok = ::aga_unzip(restored, work);
else
error_box("Il file %s non è stato ripristinato completamente", (const char*)restored);
prefix().set(old); prefix().set(old);
@ -1064,8 +493,6 @@ bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
return ok; return ok;
} }
#if XVT_OS == XVT_OS_WIN32
bool TArchive::backup(const char* dir, char floppy, const char* desc, bool) bool TArchive::backup(const char* dir, char floppy, const char* desc, bool)
{ {
return zip(dir, floppy, desc); return zip(dir, floppy, desc);
@ -1086,5 +513,4 @@ bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool)
return unzip(mode, firm, floppy, tmp); return unzip(mode, firm, floppy, tmp);
} }
#endif

View File

@ -1,10 +1,6 @@
#ifndef __ARCHIVES_H #ifndef __ARCHIVES_H
#define __ARCHIVES_H #define __ARCHIVES_H
#ifndef __STDIO_H
#include <stdio.h>
#endif
#ifndef __STRINGS_H #ifndef __STRINGS_H
#include <strings.h> #include <strings.h>
#endif #endif
@ -13,8 +9,6 @@
// TArchive // TArchive
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class ALArchive;
// @doc EXTERNAL // @doc EXTERNAL
// @class TArchive | Classe per effettuare compressione e archiviazione di dati // @class TArchive | Classe per effettuare compressione e archiviazione di dati
@ -26,31 +20,16 @@ class TArchive : public TObject
// @access:(INTERNAL) Private Member // @access:(INTERNAL) Private Member
{ {
#if XVT_OS == XVT_OS_WIN
// @ccost:(INTERNAL) BUFSIZE | 4096*7 | Dimensione del buffer di lettura/scrittura su dischetto
enum { BUFSIZE = 4096*7 };
// @cmember:(INTERNAL) Oggetto per la gestione di archivi (vedi <c ALArchive>)
ALArchive* _arc;
// @cmember Funzione per richiedere all'utente il dischetto e per controllare la
// corretta sequenza dei dischetti da inserire
FILE* ask_disk(TFilename& name, int disk, char floppy, bool lettura) const;
// @cmember Spezza il file in modo da farlo stare sul dischetto
bool fsplit(const char* filename, char floppy, const char* desc = "") const;
// @cmember Ricostruisce il file spezzato
bool fbuild(const char* filename, char floppy) const;
#endif
// @access Protected Member // @access Protected Member
protected: protected:
// @cmember Ritorna la dimensione del file <p f>
long fsize(FILE* f) const;
// @cmember Sposta il file nella directory dir // @cmember Sposta il file nella directory dir
bool move_file(const TFilename& file, const char* dir) const; bool move_file(const TFilename& file, const char* dir) const;
// @cmember Spezza un file in pezzi da max_chunk
bool split_file(const TFilename& archive, unsigned long max_chunk) const;
// @cmember Spezza il file.zip in modo da farlo stare sul dischetto // @cmember Spezza il file.zip in modo da farlo stare sul dischetto
bool fsplit_zip(const char* filename, char floppy, const char* desc = "") const; bool fsplit_zip(const char* filename, char floppy, const char* desc = "") const;
@ -62,10 +41,6 @@ protected:
// @cmember Costruisce la lista delle directory da scompattare // @cmember Costruisce la lista delle directory da scompattare
int build_restore_list(int& mode, long firm, char floppy, TString_array& fl) const; int build_restore_list(int& mode, long firm, char floppy, TString_array& fl) const;
bool copy_zipper(const char* dir) const;
bool remove_zipper(const char* dir) const;
void add_zipper_list(TString& str) const;
// @access Public Member // @access Public Member
public: public:
@ -79,11 +54,6 @@ public:
// @cmember Effettua il restore della ditta // @cmember Effettua il restore della ditta
bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE); bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
#if XVT_OS == XVT_OS_WIN
// @cmember Interrompe le operazioni
void stop_job();
#endif
// @cmember Effettua il backup della directory // @cmember Effettua il backup della directory
bool zip(const char* dir, char floppy, const char* desc); bool zip(const char* dir, char floppy, const char* desc);
// @cmember Effettua il backup della ditta // @cmember Effettua il backup della ditta

View File

@ -788,7 +788,7 @@ int DB_packindex(short vis, const char * filename, RecDes *r, long *peod, bool a
{ {
int rt=0,handle; int rt=0,handle;
TAG4INFO tags[MaxKeys+1]; TAG4INFO tags[MaxKeys+1];
char s[82]; char s[256];
INDEX4 * w = NULL; INDEX4 * w = NULL;
strcpy(s,"Ricostruzione indici file : "); strcpy(s,"Ricostruzione indici file : ");
@ -796,7 +796,7 @@ int DB_packindex(short vis, const char * filename, RecDes *r, long *peod, bool a
code_base.autoOpen=0 ; code_base.autoOpen=0 ;
handle=DB_open(filename,1,0); /* Exclusive mode open */ handle=DB_open(filename,1,0); /* Exclusive mode open */
if (handle > -1) if (handle >= 0)
{ {
int i; int i;
char *ff = find_slash_backslash((char *)filename); char *ff = find_slash_backslash((char *)filename);

View File

@ -699,14 +699,20 @@ TConfig::TConfig(int which_config, const char* paragraph)
case CONFIG_DITTA: case CONFIG_DITTA:
_file = firm2dir(prefix().get_codditta()); _file = firm2dir(prefix().get_codditta());
_file.add("ditta.ini"); _file.add("ditta.ini");
if (!fexist(_file) && fexist("ditta.ini")) if (!_file.exist())
fcopy("ditta.ini", _file); {
TFilename oldfile = firm2dir(prefix().get_codditta());
oldfile.add("prassid.ini"); // Old config file!
if (oldfile.exist())
fcopy(oldfile, _file);
}
break; break;
case CONFIG_STUDIO: case CONFIG_STUDIO:
case CONFIG_USER: case CONFIG_USER:
case CONFIG_STAMPE: case CONFIG_STAMPE:
_file = firm2dir(-1); // Directory dati _file = firm2dir(-1); // Directory dati
_file.add("config"); // Directory config _file.add("config"); // + Directory config
if (!_file.exist()) // Creala se necessario if (!_file.exist()) // Creala se necessario
make_dir(_file); make_dir(_file);
@ -715,7 +721,13 @@ TConfig::TConfig(int which_config, const char* paragraph)
case CONFIG_STUDIO: case CONFIG_STUDIO:
_file.add("studio.ini"); _file.add("studio.ini");
if (!_file.exist() && fexist("studio.ini")) if (!_file.exist() && fexist("studio.ini"))
fcopy("studio.ini", _file); {
TFilename old = _file.path();
old.add("prassis.ini"); // Old config file!
if (old.exist())
fcopy(old, _file);
}
break; break;
case CONFIG_STAMPE: case CONFIG_STAMPE:
_file.add("print.ini"); _file.add("print.ini");
@ -754,8 +766,7 @@ TConfig::TConfig(int which_config, const char* paragraph)
paragraph = "GODMODE"; paragraph = "GODMODE";
break; break;
default: default:
_file = "prassi.ini"; NFCHECK("Chi usa questo strano .ini?");
NFCHECK("Chi usa prassi.ini?");
break; break;
} }
#ifdef DBG #ifdef DBG
@ -775,4 +786,3 @@ TConfig::~TConfig()
if (_dirty) if (_dirty)
_write_file(); _write_file();
} }

View File

@ -11,7 +11,7 @@
#include <statbar.h> #include <statbar.h>
COLOR MASK_BACK_COLOR = COLOR_LTGRAY; COLOR MASK_BACK_COLOR = MAKE_COLOR(201,194,188); // COLOR_LTGRAY;
COLOR MASK_LIGHT_COLOR = COLOR_WHITE; COLOR MASK_LIGHT_COLOR = COLOR_WHITE;
COLOR MASK_DARK_COLOR = COLOR_GRAY; COLOR MASK_DARK_COLOR = COLOR_GRAY;
COLOR BTN_BACK_COLOR = COLOR_LTGRAY; COLOR BTN_BACK_COLOR = COLOR_LTGRAY;
@ -24,7 +24,7 @@ COLOR DISABLED_COLOR = COLOR_DKGRAY;
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR; COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
COLOR FOCUS_COLOR = NORMAL_COLOR; COLOR FOCUS_COLOR = NORMAL_COLOR;
COLOR FOCUS_BACK_COLOR = COLOR_YELLOW; COLOR FOCUS_BACK_COLOR = COLOR_YELLOW;
bool CAMPI_SCAVATI = FALSE; bool CAMPI_SCAVATI = TRUE;
bool AUTOSELECT = FALSE; bool AUTOSELECT = FALSE;
#ifndef STX_DATA #ifndef STX_DATA
@ -430,7 +430,7 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
{ {
height = -top; height = -top;
top += max_rct.bottom; top += max_rct.bottom;
y = 22 - height/ROWY; y = (max_rct.bottom-height)/ROWY; // 22 - height/ROWY;
} }
else else
height = max_rct.bottom - top + dy * ROWY; height = max_rct.bottom - top + dy * ROWY;
@ -439,8 +439,10 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
if (dx <= 0) if (dx <= 0)
{ {
width = max_rct.right - left + dx * CHARX; width = max_rct.right - left + dx * CHARX;
#ifndef XVAGA
if (!tag && dx == 0 && y > 0) // Aggiusta toolbar if (!tag && dx == 0 && y > 0) // Aggiusta toolbar
top++; top++;
#endif
} }
if (x < 0) left = (max_rct.right - width) / 2; if (x < 0) left = (max_rct.right - width) / 2;
@ -594,10 +596,10 @@ HIDDEN void xi_event_handler(XI_OBJ* itf, XI_EVENT* xiev)
} }
break; break;
case a_xvt_post: case a_xvt_post:
if (notify_xvt) if (notify_xvt && xiev->v.xvte.type != 0)
{ {
TWindow* w = (TWindow*)xi_get_app_data(itf); TWindow* w = (TWindow*)xi_get_app_data(itf);
if (w != NULL) if (w != NULL && w->win() != NULL_WIN)
w->handler(w->win(), &xiev->v.xvte); w->handler(w->win(), &xiev->v.xvte);
if (xiev->v.xvte.type == E_MOUSE_UP) if (xiev->v.xvte.type == E_MOUSE_UP)
_button_blocked = FALSE; _button_blocked = FALSE;

View File

@ -4,9 +4,7 @@
#define __DATE_CPP #define __DATE_CPP
#include <date.h> #include <date.h>
#ifndef FOXPRO
#include <real.h> #include <real.h>
#endif
#include <strings.h> #include <strings.h>
#define DAYYEAR 365 #define DAYYEAR 365
@ -16,7 +14,6 @@
// Utility functions // Utility functions
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
HIDDEN TString __date_tmp_string(80);
HIDDEN const byte _days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; HIDDEN const byte _days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
TDate::TDate(const TDate &d) : _val(d._val) TDate::TDate(const TDate &d) : _val(d._val)
@ -259,17 +256,15 @@ char* TDate::string(
sep='\0'; sep='\0';
} }
TString df(16), yf(16), mf(16); TString80 df, yf, mf;
bool letterflag = FALSE; bool letterflag = FALSE;
// format day // format day
if (dayf == letters) if (dayf == letters)
{ {
#ifndef FOXPRO
const real ddd(day()); const real ddd(day());
df = ddd.string("LETTERE"); df = ddd.string("LETTERE");
letterflag = TRUE; letterflag = TRUE;
#endif
} }
else if (dayf == weekday) else if (dayf == weekday)
{ {
@ -282,11 +277,9 @@ char* TDate::string(
// format year // format year
if (yearf == letters) if (yearf == letters)
{ {
#ifndef FOXPRO
const real ddd(year()); const real ddd(year());
yf = ddd.string("LETTERE"); yf = ddd.string("LETTERE");
letterflag = TRUE; letterflag = TRUE;
#endif
} }
else else
if (yearf == brief) if (yearf == brief)
@ -313,8 +306,7 @@ char* TDate::string(
// build date string // build date string
TString& dfm = __date_tmp_string; TString& dfm = get_tmp_string(80);
dfm.cut(0);
switch (ord) switch (ord)
{ {

View File

@ -30,15 +30,10 @@
#ifndef _DEMO_ #ifndef _DEMO_
#define PANDLL #include "skeylink.h"
extern "C"
{
#include "skeytsr.h"
}
HIDDEN KEY_NET* _eutron_key = NULL; HIDDEN KEY_NET* _eutron_key = NULL;
#pragma pack(1) #pragma pack(push, 1)
struct TEutronHeader struct TEutronHeader
{ {
@ -71,6 +66,8 @@ struct TEutronFooter
TEutronFooter(); TEutronFooter();
}; };
#pragma pack(pop)
TEutronFooter::TEutronFooter() TEutronFooter::TEutronFooter()
{ {
const int s = sizeof(TEutronFooter); const int s = sizeof(TEutronFooter);
@ -100,8 +97,6 @@ bool TEutronFooter::valid()
return _checksum == checksum(FALSE); return _checksum == checksum(FALSE);
} }
#pragma pack()
#endif // _DEMO_ #endif // _DEMO_
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -186,9 +181,9 @@ const TString& TDongle::administrator(TString* pwd)
if (_admin.empty()) if (_admin.empty())
{ {
#ifdef XVAGA #ifdef XVAGA
_admin = "PRASSI";
#else
_admin = "ADMIN"; _admin = "ADMIN";
#else
_admin = "PRASSI";
#endif #endif
} }
else else
@ -406,11 +401,13 @@ bool TDongle::hardlock_login(bool test_all_keys)
bool TDongle::eutron_login(bool test_all_keys) bool TDongle::eutron_login(bool test_all_keys)
{ {
bool ok = FALSE; bool ok = FALSE;
if (_eutron_key == NULL) if (_eutron_key == NULL)
_eutron_key = new KEY_NET; _eutron_key = new KEY_NET;
memset(_eutron_key, 0, sizeof(KEY_NET)); memset(_eutron_key, 0, sizeof(KEY_NET));
_eutron_key->net_command = NET_KEY_OPEN; _eutron_key->net_command = NET_KEY_OPEN;
_eutron_key->command = LOCATING_MODE; // _eutron_key->command = LOCATING_MODE;
_eutron_key->status = ST_HW_FAILURE; // Don't leave ST_OK = 0 here!
const char* labels[5] = { "AGA.INFORMATICA", "AGA.PRASSI", "AGA.PROCOM", const char* labels[5] = { "AGA.INFORMATICA", "AGA.PRASSI", "AGA.PROCOM",
"AGA.CAMPO", "25EBAI" }; "AGA.CAMPO", "25EBAI" };
@ -663,15 +660,15 @@ bool TDongle::read_words(word reg, word len, word* ud) const
if (_eutron_key) if (_eutron_key)
{ {
_eutron_key->net_command = NET_KEY_ACCESS; _eutron_key->net_command = NET_KEY_ACCESS;
memcpy(&_eutron_key->command, BLOCK_READING_MODE, 2); _eutron_key->command = BLOCK_READING_MODE;
word* pointer = (word*)(&_eutron_key->data[0]); word* pointer = (word*)(&_eutron_key->data[0]);
word* number = (word*)(&_eutron_key->data[2]); word* number = (word*)(&_eutron_key->data[2]);
while (len > 0) while (len > 0)
{ {
*pointer = reg; *pointer = reg;
*number = (len <= 16) ? len : 16; *number = (len <= 16) ? len : 16;
smartlink(_eutron_key); smartlink(_eutron_key);
ok = _eutron_key->status == ST_OK; ok = _eutron_key->status == ST_OK;
if (ok) if (ok)
memcpy(ud, &_eutron_key->data[4], (*number)*2); memcpy(ud, &_eutron_key->data[4], (*number)*2);
@ -722,7 +719,7 @@ bool TDongle::write_words(word reg, word len, word* data) const
if (_eutron_key) if (_eutron_key)
{ {
_eutron_key->net_command = NET_KEY_ACCESS; _eutron_key->net_command = NET_KEY_ACCESS;
memcpy(&_eutron_key->command, BLOCK_WRITING_MODE, 2); _eutron_key->command = BLOCK_WRITING_MODE;
word* pointer = (word*)(&_eutron_key->data[0]); word* pointer = (word*)(&_eutron_key->data[0]);
word* number = (word*)(&_eutron_key->data[2]); word* number = (word*)(&_eutron_key->data[2]);
while (len > 0) while (len > 0)

View File

@ -4256,8 +4256,6 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
void TForm::print_on(ostream& out) const void TForm::print_on(ostream& out) const
{ {
main_app().begin_wait();
if (relation()) if (relation())
{ {
out << *relation() << "\nEND" << endl; out << *relation() << "\nEND" << endl;
@ -4272,8 +4270,6 @@ void TForm::print_on(ostream& out) const
print_section(out, 'F'); print_section(out, 'F');
out << "END" << endl; out << "END" << endl;
main_app().end_wait();
} }
@ -4477,8 +4473,6 @@ void TForm::read(
_editlevel= lev; _editlevel= lev;
_desc= desc; _desc= desc;
main_app().begin_wait();
if (_code.not_empty()) if (_code.not_empty())
{ {
// extract base form name // extract base form name
@ -4572,8 +4566,6 @@ void TForm::read(
_fontsize = pr.get_char_size(); _fontsize = pr.get_char_size();
} }
set_fink_mode(TRUE); set_fink_mode(TRUE);
main_app().end_wait();
} }
void TForm::set_compulsory_specials() void TForm::set_compulsory_specials()

View File

@ -40,7 +40,7 @@ XVT_IMAGE TImage::load(
const char* n) // @parm Nome del file contenente l'immagine const char* n) // @parm Nome del file contenente l'immagine
{ {
// WinManager.free_handle(); // WinManager.free_handle();
XVT_IMAGE i = xvt_image_read_bmp((char*)n); XVT_IMAGE i = xvt_image_read((char*)n);
// WinManager.lock_handle(); // WinManager.lock_handle();
if (i != NULL) set(i); if (i != NULL) set(i);

View File

@ -4,32 +4,25 @@
#include <stdlib.h> #include <stdlib.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <codeb.h>
#define __ISAM_CPP #define __ISAM_CPP
#include <expr.h>
#include <execp.h>
#include <progind.h>
#include <codeb.h>
#include <config.h> #include <config.h>
#include <execp.h>
#include <expr.h>
#include <extcdecl.h> #include <extcdecl.h>
#include <mailbox.h> #include <mailbox.h>
#include <postman.h> #include <postman.h>
#include <prefix.h> #include <prefix.h>
#include <progind.h>
#include <relation.h> #include <relation.h>
#include <scanner.h> #include <scanner.h>
#include <utility.h> #include <utility.h>
#include <memo.h> #include <memo.h>
#include <varrec.h> #include <varrec.h>
#include <codeb.h>
#include <lffiles.h>
#include <tabutil.h>
#ifdef DBG
#define JOURNAL
#endif
#ifdef JOURNAL #ifdef JOURNAL
#include <journal.h> #include <journal.h>
@ -1730,7 +1723,7 @@ TExternisamfile::~TExternisamfile()
void TExternisamfile::init(const char* name, bool exclusive, bool index) void TExternisamfile::init(const char* name, bool exclusive, bool index)
{ {
_name = name; // qui _name = name;
_name.ext("dbf"); _name.ext("dbf");
// Espande il nome! // Espande il nome!
@ -2726,7 +2719,7 @@ void TMemo_data::copy(const TMemo_data& m)
void TRectype::init(int logicnum) void TRectype::init(int logicnum)
{ {
_logicnum = logicnum; _logicnum = logicnum;
CHECK(_logicnum > 0,"Impossibile costruire un record di un file esterno"); // qui CHECK(_logicnum > 0,"Impossibile costruire un record di un file esterno");
_length = prefix().get_reclen(logicnum); _length = prefix().get_reclen(logicnum);
@ -2747,7 +2740,7 @@ TRectype::TRectype(int logicnum)
: _memo_data(NULL) : _memo_data(NULL)
{ {
init(logicnum); //qui init(logicnum);
} }
@ -2763,7 +2756,7 @@ TRectype::TRectype(const TRectype& r)
_memo_data(NULL) _memo_data(NULL)
{ {
init(r._logicnum); //qui init(r._logicnum);
if (r._memo_data) if (r._memo_data)
{ {
init_memo(r._memo_data->recno(), r._memo_data->file()); init_memo(r._memo_data->recno(), r._memo_data->file());
@ -2792,7 +2785,7 @@ void TRectype::unknown_field(const char* name) const
} }
} }
void TRectype::write_memo(TIsam_handle file, const TRecnotype recno) //qui void TRectype::write_memo(TIsam_handle file, const TRecnotype recno)
{ {
const RecDes *r = rec_des( ); const RecDes *r = rec_des( );
TIsam_handle orig = _memo_data->file(); TIsam_handle orig = _memo_data->file();
@ -2815,9 +2808,9 @@ void TRectype::write_memo(TIsam_handle file, const TRecnotype recno) //qui
} }
} }
CHECK( _memo_data->recno() > 0, "Maiale! Non fare le GO con _recno < 0 " ); CHECK( recno > 0, "Maiale! Non fare le GO con _recno < 0 " );
TCodeb_handle cb_handle = prefix().get_handle(file); TCodeb_handle cb_handle = prefix().get_handle(file);
DB_go( cb_handle, _memo_data->recno()); DB_go( cb_handle, recno);
for( int i = _memo_data->last( ); i > 0; i = _memo_data->pred( i ) ) for( int i = _memo_data->last( ); i > 0; i = _memo_data->pred( i ) )
{ {
if (_memo_data->is_dirty(i)) if (_memo_data->is_dirty(i))
@ -3090,9 +3083,9 @@ const TString& TRectype::get(const char* fieldname) const
if (orig) if (orig)
{ {
TCodeb_handle cb_handle = prefix().get_handle(orig); TCodeb_handle cb_handle = prefix().get_handle(orig);
CHECKD(cb_handle >= 0, "Can't read memo from file ", orig); //qui CHECKD(cb_handle >= 0, "Can't read memo from file ", orig);
DB_go(cb_handle, _memo_data->recno()); //qui DB_go(cb_handle, _memo_data->recno());
_memo_data->add(DB_memoptr(orig, fieldname), index); _memo_data->add(DB_memoptr(cb_handle, fieldname), index);
} }
else else
NFCHECK("Valid memo recno with null memo file"); NFCHECK("Valid memo recno with null memo file");

View File

@ -618,11 +618,11 @@ public:
int update(const TTrec& newrec, bool vis = TRUE); int update(const TTrec& newrec, bool vis = TRUE);
// @cmember Esegue sia <mf TSystemisamfile::packfile> e <mf TSystemisamfile::packindex> // @cmember Esegue sia <mf TSystemisamfile::packfile> e <mf TSystemisamfile::packindex>
int pack(bool vis = TRUE, bool ask = TRUE); int pack(bool vis = FALSE, bool ask = TRUE);
// @cmember Rimuove fisicamente i record cancellati // @cmember Rimuove fisicamente i record cancellati
int packfile(bool vis = TRUE, bool zap = FALSE); int packfile(bool vis = FALSE, bool zap = FALSE);
// @cmember Rimuove fisicamente gli indici cancellati // @cmember Rimuove fisicamente gli indici cancellati
int packindex(bool vis = TRUE, bool ask = TRUE); int packindex(bool vis = FALSE, bool ask = TRUE);
// @cmember Importa un file ascii // @cmember Importa un file ascii
int load(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool extended = FALSE) ; int load(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool extended = FALSE) ;

View File

@ -1,103 +0,0 @@
#ifndef __MSHELL_H
#define __MSHELL_H
#error Obsolete include
#ifdef XVT_OS
#ifdef __cplusplus
extern "C" {
#endif
#if XVT_OS == XVT_OS_NOTUSED
#define ALIGNSIZE sizeof(double)
#define CALCSIZE(x) ((((x) + (ALIGNSIZE - 1)) / ALIGNSIZE) * ALIGNSIZE)
#define malloc(a) win_malloc((a))
#define realloc(a,b) win_realloc((a), (b))
#define free(a) win_free((a))
#define calloc(a,b) win_calloc((a), (b))
#define strdup(a) win_strdup((a))
void setmemsize(long);
char* win_malloc(size_t);
char* win_realloc(char*, size_t);
void win_free(char*);
char* win_calloc(size_t, size_t);
char* win_strdup(char*);
#else
/*
#define malloc(a) xvt_fmalloc((a))
#define realloc(a,b) xvt_frealloc((a), (b))
#define free(a) xvt_ffree((a))
#define calloc(a,b) xvt_calloc((a), (b))
#define strdup(a) xvt_strdup((a))
#define setmemsize(a)
char *xvt_calloc(size_t, size_t);
char *xvt_strdup(char*);
*/
#endif
#ifdef __cplusplus
};
#endif
#else
#define size_t unsigned
#define MEMLIST
#define MEMWHERE
/* interface functions */
unsigned long memused(void);
void memdisplay(FILE *);
/* interface macros */
#define ALIGNSIZE sizeof(double)
#define CALCSIZE(x) ((((x) + (ALIGNSIZE - 1)) / ALIGNSIZE) * ALIGNSIZE)
/* interface functions to access only through macros */
#ifdef MEMWHERE
#ifdef __cplusplus
extern "C" {
#endif
char *memalloc(size_t, char *, int);
char *memrealloc(char *, size_t, char *, int);
void memfree(char *, char *, int);
char *memcalloc(size_t, size_t, char *, int);
char *memstrdup(char *, char *, int);
#else
char *memalloc(size_t);
char *memrealloc(char *);
void memfree(char *);
char *memcalloc(size_t, size_t);
char *memstrdup(char *);
#ifdef __cplusplus
};
#endif
#endif
/* Interface macros */
#ifndef __MSHELL__
#ifdef MEMWHERE
#define malloc(a) memalloc((a), __FILE__, __LINE__)
#define realloc(a,b) memrealloc((a), (b), __FILE__, __LINE__)
#define free(a) memfree((a), __FILE__, __LINE__)
#define calloc(a,b) memcalloc((a), (b), __FILE__, __LINE__)
#define strdup(a) memstrdup((a), __FILE__, __LINE__)
#else
#define malloc(a) memalloc((a))
#define realloc(a,b) memrealloc((a), (b))
#define free(a) memfree((a))
#define calloc(a,b) memcalloc((a), (b))
#define strdup(a) memstrdup((a))
#endif
#endif
#endif /* XVT_OS */
#endif /* __MSHELL_H */

View File

@ -341,8 +341,8 @@ public:
byte dirty() const byte dirty() const
{ return owner().dirty(); } { return owner().dirty(); }
// @cmember Permette di indicare se e' stata modificata una cella dello spreadsheet // @cmember Permette di indicare se e' stata modificata una cella dello spreadsheet
void set_dirty(bool spork = TRUE) void set_dirty(byte spork = TRUE)
{ owner().set_dirty(spork); _row_dirty = spork; _cell_dirty = spork;} { owner().set_dirty(spork); _row_dirty = _cell_dirty = spork!=0; }
// @cmember Ritorna il valore della variabile active // @cmember Ritorna il valore della variabile active
bool active() const bool active() const

View File

@ -1,3 +0,0 @@
#define VERSION "98.5"
#define INTERNAL_VERSION "2"

View File

@ -1021,11 +1021,13 @@ TPrinter::TPrinter()
bool TPrinter::isfax() const bool TPrinter::isfax() const
{ {
bool fax = FALSE; bool fax = FALSE;
#ifndef XVAGA
if (_printertype == winprinter) if (_printertype == winprinter)
{ {
const char* name = (const char*)((TPrinter*)this)->get_printrcd() + 4; const char* name = (const char*)((TPrinter*)this)->get_printrcd() + 4;
fax = strncmp(name, "FaxMan", 6) == 0; fax = strncmp(name, "FaxMan", 6) == 0;
} }
#endif
return fax; return fax;
} }
@ -1062,67 +1064,54 @@ void TPrinter::read_configuration(
_fontname = iniptr->get("Font", NULL, -1, XVT_FFN_FIXED); // Nome del font _fontname = iniptr->get("Font", NULL, -1, XVT_FFN_FIXED); // Nome del font
_ch_size = iniptr->get_int("Size", NULL, -1, 12); // Dimensione del font _ch_size = iniptr->get_int("Size", NULL, -1, 12); // Dimensione del font
_lines_per_inch = iniptr->get_int("Lines", NULL, -1, 6); // Linee per pollice _lines_per_inch = iniptr->get_int("Lines", NULL, -1, 6); // Linee per pollice
_isgraphics = iniptr->get_bool("Graphic", NULL, -1, FALSE); // Grafica attiva _isgraphics = iniptr->get_bool("Graphic", NULL, -1, TRUE); // Grafica attiva
bool read_rcd = FALSE;
#ifdef XVAGA
bool read_rcd = TRUE;
const TString& host = iniptr->get("Host"); const TString& host = iniptr->get("Host");
if (host.not_empty()) if (host.not_empty())
{ {
char hostname[32]; char hostname[32];
aga_get_host_name(hostname, sizeof(hostname)); aga_get_host_name(hostname, sizeof(hostname));
if (host != hostname) read_rcd = (host == hostname); // Safe to read
{ if (!read_rcd)
read_rcd = yesno_box("Le impostazioni della stampante sono relative alla stazione di lavoro %s:\n" read_rcd = yesno_box("Le impostazioni della stampante sono relative alla stazione di lavoro %s:\n"
"si desidera applicarle ugualmente alla stazione %s?", (const char*)host, hostname); "si desidera applicarle ugualmente alla stazione %s?", (const char*)host, hostname);
} }
}
if (read_rcd) if (read_rcd)
#endif
if (iniptr->exist("rcd", 0))
{ {
int size, i = 0; if (_print_rcd != NULL)
byte* rcd = (byte*)get_printrcd(&size); xvt_print_destroy(_print_rcd);
_print_rcd = xvt_print_create_by_name(&_print_rcd_size, _prname);
if (_print_rcd != NULL && iniptr->exist("rcd", 0))
{
TToken_string s(256); TToken_string s(256);
int i = 0;
#ifdef XVAGA
// Devo leggere tutti numeri, anche se sono di pìù di quelli attuali!
for (int index = 0; ; index++) for (int index = 0; ; index++)
{ {
s = iniptr->get("rcd", NULL, index); s = iniptr->get("rcd", NULL, index);
if (s.not_empty()) if (s.not_empty())
{ {
for (const char* n = s.get(0); n; n = s.get()) byte* rcd = (byte*)_print_rcd;
for (const char* n = s.get(0); n != NULL && i < _print_rcd_size; n = s.get())
rcd[i++] = (byte)atoi(n); rcd[i++] = (byte)atoi(n);
} }
else else
break; break;
} }
#else
for (int index = 0; i < size; index++)
{
s = iniptr->get("rcd", NULL, index);
if (*s)
{
for (const char* n = s.get(0); n && i < size; n = s.get())
rcd[i++] = (byte)atoi(n);
} }
else
break; if (!xvt_print_is_valid(get_printrcd()))
}
#endif
if (xvt_print_is_valid(_print_rcd))
{
init_formlen();
}
else
{ {
error_box("Attenzione: la stampante corrente non e' valida.\n" error_box("Attenzione: la stampante corrente non e' valida.\n"
"Si prega di selezionare e registrare una nuova stampante."); "Si prega di selezionare e registrare una nuova stampante.");
set_printrcd(); set_printrcd();
} }
init_formlen();
_prname = (const char*)get_printrcd() + 4; // Deep hacking
} }
delete iniptr; iniptr = NULL; delete iniptr; iniptr = NULL;
@ -1130,7 +1119,7 @@ void TPrinter::read_configuration(
if (_printerfile.empty()) if (_printerfile.empty())
{ {
_printerfile.tempdir(); _printerfile.tempdir();
_printerfile << '/'; _printerfile << SLASH;
} }
if (_config == "Printer" || _printertype == winprinter) if (_config == "Printer" || _printertype == winprinter)
@ -1171,7 +1160,7 @@ void TPrinter::save_configuration()
prini.set("Graphic", _isgraphics ? "X" : ""); // Grafica attiva prini.set("Graphic", _isgraphics ? "X" : ""); // Grafica attiva
#ifdef XVAGA #ifdef XVAGA
char hostname[32]; char hostname[80];
aga_get_host_name(hostname, sizeof(hostname)); aga_get_host_name(hostname, sizeof(hostname));
prini.set("Host", hostname); prini.set("Host", hostname);
prini.set("User", user()); prini.set("User", user());
@ -2008,7 +1997,6 @@ int TPrinter::calc_font_size(int columns) const
return fd._size; return fd._size;
} }
int TPrinter::calc_num_cols() const int TPrinter::calc_num_cols() const
{ {
int numcols; int numcols;

View File

@ -105,11 +105,13 @@ void TPrintwin::paint_background(long j)
case 'i': case 'i':
id = (byte)(rwd[cnt++])-1; // Numero immagine id = (byte)(rwd[cnt++])-1; // Numero immagine
y1 = (byte)(rwd[cnt++])-1; // Riga sorgente y1 = (byte)(rwd[cnt++])-1; // Riga sorgente
x1 = (byte)(rwd[cnt++])-1; // Colonna destinazione x1 = (byte)(rwd[cnt++])-1; // Colonna sorgente
x2 = (byte)(rwd[cnt++]); // Larghezza destinazione (in caratteri) x2 = (byte)(rwd[cnt++]); // Larghezza destinazione (in caratteri)
y2 = (byte)(rwd[cnt++]); // Altezza destinazione (in caratteri) y2 = (byte)(rwd[cnt++]); // Altezza destinazione (in caratteri)
if (id >= 0) if (id >= 0)
{ {
#ifndef XVAGA
// Ai tempi non veniva in mente un modo peggiore
const short width = LEN_SPACES(win(), x2); // Larghezza in pixel const short width = LEN_SPACES(win(), x2); // Larghezza in pixel
TImage* i = (TImage*)_images.objptr(id); TImage* i = (TImage*)_images.objptr(id);
@ -119,6 +121,7 @@ void TPrintwin::paint_background(long j)
const TImage src(a.row(id)); const TImage src(a.row(id));
if (src.ok()) if (src.ok())
{ {
// memorizzo l'immagine in risoluzione di stampa! Visto che ho RAM da buttare.
i = new TImage(src, width, _chary*y2); i = new TImage(src, width, _chary*y2);
_images.add(i, id); _images.add(i, id);
} }
@ -137,6 +140,28 @@ void TPrintwin::paint_background(long j)
i->draw(win(), dst, src); i->draw(win(), dst, src);
} }
} }
#else
if (y1 == 0) // Disegno solo una volta per tutte alla prima fetta!
{
TImage* i = (TImage*)_images.objptr(id);
if (i == NULL)
{
// memorizzo l'immagine così com'è alla risoluzione originale!
const TString_array& a = printer().image_names();
i = new TImage(a.row(id));
_images.add(i, id);
}
if (i != NULL && i->ok())
{
RCT dst;
dst.left = LEN_SPACES(win(), x1) + _hofs;
dst.top = _chary*rw + _vofs;
dst.right = dst.left + LEN_SPACES(win(), x2);
dst.bottom = dst.top + _chary*y2;
i->draw(win(), dst);
}
}
#endif
} }
break; break;
case 'W': case 'W':
@ -205,7 +230,6 @@ void TPrintwin::paint_row(long j)
if (_chary > 1) if (_chary > 1)
{ {
_txt.read_line(j); _txt.read_line(j);
int pos = 0; int pos = 0;
@ -321,17 +345,21 @@ bool TPrintwin::do_print()
int page = 0; int page = 0;
bool ok = TRUE; bool ok = TRUE;
RCT* rct;
while (ok && !_aborted) while (ok && !_aborted)
{ {
_aborted = xvt_print_open_page(_printrcd) == 0; _aborted = xvt_print_open_page(_printrcd) == 0;
while (!_aborted && ok while (!_aborted && ok)
&& (rct = xvt_print_get_next_band()) != NULL)
{ {
set_font(XVT_FFN_SYSTEM, XVT_FS_NONE, _char_size); const RCT* rct = xvt_print_get_next_band();
ok = rct != NULL;
if (ok)
{
// set_font(XVT_FFN_SYSTEM, XVT_FS_NONE, _char_size);
set_font(printer().fontname(), XVT_FS_NONE, _char_size); set_font(printer().fontname(), XVT_FS_NONE, _char_size);
LEN_SPACES(win(), -1); // Resetta bene le dimensioni font
ok = print_band(page, *rct); ok = print_band(page, *rct);
} }
}
_aborted |= (xvt_print_close_page(_printrcd) == 0); _aborted |= (xvt_print_close_page(_printrcd) == 0);
page++; page++;
} }

View File

@ -57,7 +57,7 @@ TIndwin::TIndwin(long max, const char* txt, bool cancel, bool bar, int div)
} }
if (cancel) if (cancel)
_cancel = new TPushbutton_control(win(), DLG_CANCEL, -11, -1, 10, 2, "", "Annulla", BMP_CANCEL); _cancel = new TPushbutton_control(win(), DLG_CANCEL, -11, -1, 12, 2, "", "Annulla", BMP_CANCEL);
open_modal(); open_modal();
do_events(); do_events();
} }

View File

@ -472,6 +472,9 @@ real& real::operator /= (const real & b)
#ifdef DBG #ifdef DBG
if (dst == GM_NULL) if (dst == GM_NULL)
{ {
TString& tmp = get_tmp_string();
char * __string = tmp.get_buffer(256);
errname (__string, gmec ()); errname (__string, gmec ());
error_box ("Division error: %s", __string); error_box ("Division error: %s", __string);
} }
@ -519,7 +522,7 @@ long real::integer () const
// @mfunc Trasforma un reale in stringa // @mfunc Trasforma un reale in stringa
// //
// @rdesc Ritorna la stringa nella lunghezza richiesta // @rdesc Ritorna la stringa nella lunghezza richiesta
char *real::string ( const char *real::string (
int len, // @parm Lunghezza della stringa (compreso decimali) int len, // @parm Lunghezza della stringa (compreso decimali)
int dec, // @parm Numero di decimali (default UNDEFINED) int dec, // @parm Numero di decimali (default UNDEFINED)
char pad) const // @parm Carattere di riempimento (default ' ') char pad) const // @parm Carattere di riempimento (default ' ')
@ -542,6 +545,9 @@ char *real::string (
else else
__tmp_real.trail(); __tmp_real.trail();
TString& tmp = get_tmp_string();
char* __string = tmp.get_buffer(len);
dtoa (__string, __tmp_real.ptr ()); dtoa (__string, __tmp_real.ptr ());
int lun = strlen (__string); int lun = strlen (__string);
@ -581,6 +587,8 @@ istream & operator >> (
real & a) // @parm Indirizzo in cui posizionare il numero real & a) // @parm Indirizzo in cui posizionare il numero
{ {
char __string[80];
in >> __string; in >> __string;
atod (a.ptr (), __string); atod (a.ptr (), __string);
a.trail(); a.trail();

View File

@ -140,8 +140,8 @@ long double abs(long double a) ;
#endif #endif
#ifndef GMDOTH #ifndef GMDOTH
#include <gmsys1.h> #include "../gfm/gmsys1.h"
#include <gfd.h> #include "../gfm/gfd.h"
#endif #endif
// @doc EXTERNAL // @doc EXTERNAL
@ -198,12 +198,12 @@ public:
DEC* ptr() const DEC* ptr() const
{ return (DEC*)&_dec; } { return (DEC*)&_dec; }
// @cmember Trasforma un reale in stringa // @cmember Trasforma un reale in stringa
char* string(int len = 0, int dec = UNDEFINED, char pad = ' ') const; const char* string(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
// @cmember Trasforma un reale in stringa (chiama <mf real::string>), ma // @cmember Trasforma un reale in stringa (chiama <mf real::string>), ma
// ritorna il formato italiano // ritorna il formato italiano
char* stringa(int len = 0, int dec = UNDEFINED, char pad = ' ') const; const char* stringa(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
// @cmember Ritorna la stringa con il formato passato // @cmember Ritorna la stringa con il formato passato
char* string(const char* picture) const; const char* string(const char* picture) const;
// @cmember Ritorna la precisione del reale (numero di decimali) // @cmember Ritorna la precisione del reale (numero di decimali)
int precision() const; int precision() const;

181
include/skeylink.h Executable file
View File

@ -0,0 +1,181 @@
#ifndef __SKEYLINK_H
#define __SKEYLINK_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __SKEYDRV_H
#define __SKEYDRV_H
/*
Smartkey commands
*/
#define MAKE_KEY_CODE(low,high) (((unsigned short)(low)) | (((unsigned short)(high)) << 8))
#define SCRAMBLING_MODE 's'
#define READING_MODE 'r'
#define WRITING_MODE 'w'
#define FIXING_MODE 'f'
#define LOCATING_MODE 'l'
#define COMPARING_MODE 'c'
#define PROGRAMMING_MODE 'p'
#define MODEL_READING_MODE 'm'
#define ENCRYPTING_MODE 'e'
#define BLOCK_READING_MODE MAKE_KEY_CODE('b','r')
#define BLOCK_WRITING_MODE MAKE_KEY_CODE('b','w')
/*
Smartkey NEW commands
*/
#define SERIAL_NUMBER_READING_MODE 'n'
#define FIX_READING_MODE 'x'
#define EXT_MODEL_READING_MODE 'h'
#define FAIL_COUNTER_READING_MODE 'a'
/*
Legacy commands
*/
#define DEACTIVATE_ACCESS_MODE MAKE_KEY_CODE('d','d')
#define ACTIVATE_ACCESS_MODE MAKE_KEY_CODE('d','a')
#define ANTIHACKER_MODE 't'
/*
Smartkey models
*/
#define SKEY_NONE '0' /* No Smartkey */
#define SKEY_FX '1' /* Smartkey mod. FX */
#define SKEY_PR '2' /* Smartkey mod. PR */
#define SKEY_EP '3' /* Smartkey mod. EP */
#define SKEY_NET_5 '4' /* Smartkey mod. NET 5 users */
#define SKEY_NET_10 '5' /* Smartkey mod. NET 10 users */
#define SKEY_NET_25 '6' /* Smartkey mod. NET 25 users */
#define SKEY_NET_50 '7' /* Smartkey mod. NET 50 users */
#define SKEY_NET_NL '8' /* Smartkey mod. NET no limit */
#define SKEY_SP '9' /* Smartkey mod. SP */
#define SKEY_NET 'A' /* Smartkey mod. NET */
#define SKEY_SB 'B' /* Smartkey mod. SB */
#define SKEY_WI 'C' /* Smartkey mod. WI */
/*
Return codes
*/
#define ST_OK 0 /* No errors */
#define ST_NONE_KEY -1 /* No Smartkey present */
#define ST_SYNT_ERR -2 /* Syntax error */
#define ST_LABEL_FAILED -3 /* Uncorrect label */
#define ST_PW_DATA_FAILED -4 /* Uncorrect password or data */
#define ST_EXEC_ERROR -16 /* Max exec reached */
#define ST_HW_FAILURE -20 /* Smartkey damaged */
/*
Field length
*/
#define LABEL_LENGTH 16
#define PASSWORD_LENGTH 16
#define DATA_LENGTH 64
#define EXTENDED_DATA_LENGTH 352
#define SCRAMBLE_LENGTH 8
/*
Communication structure definition
*/
#pragma pack(push,1)
typedef struct __SKEY_DATA {
short lpt;
short command;
unsigned char label[LABEL_LENGTH];
unsigned char password[PASSWORD_LENGTH];
unsigned char data[DATA_LENGTH];
short fail_counter;
short status;
unsigned char ext_data[EXTENDED_DATA_LENGTH];
} SKEY_DATA;
#pragma pack(pop)
#endif /* __SKEYDRV_H */
/*
Smartkey net command codes
*/
#define NET_KEY_OPEN 'O'
#define NET_KEY_ACCESS 'A'
#define NET_KEY_CLOSE 'C'
/*
Smartkey command codes
*/
#define USER_NUMBER_MODE 'U'
/*
Net return codes
*/
#define ST_NET_ERROR -5 /* Lan error */
#define ST_CLOSE_ERROR -6 /* Attempting to CLOSE without OPENing */
#define ST_ACCESS_ERROR -7 /* Attempting to ACCESS without OPENing */
#define ST_USER_ERROR -8 /* Max user reached */
#define ST_NET_PWD_ERR -9 /* Net password wrong */
#define ST_TSR_NOT_INST -10 /* SKEYSRV not found */
#define ST_INIT_ERROR -11 /* Insufficient PC memory */
#define ST_PATH_ERR -12 /* Path error of file not found */
#define ST_DRIVER_NOT_INST -13 /* SKEYTSR not installed */
#define ST_TOO_MANY_OPEN_KEY -14 /* Too many open SmartKey */
#define ST_NET_PASS_INVALID -15 /* Invalid net password */
#define ST_NET_CONF_ERROR -21 /* Configuration error in INI/Registry/Environment */
#define ST_NET_ANP_INIT_ERROR -22 /* Error inizializing the ANP protocol */
#define ST_NET_TCPIP_INIT_ERROR -23 /* Error inizializing the TCPIP protocol */
#define ST_NET_NOVELL_INIT_ERROR -24 /* Error inizializing the Novell protocol */
#define ST_NET_LOCAL_INIT_ERROR -25 /* Error inizializing the Local protocol */
#define ST_NET_KEY_NOT_MAP -26 /* Not MAP programmed key found when MAP is requested */
/*
Code returned in data[0] after NET_OPEN
*/
#define NET_TYPE_LOCAL 0
#define NET_TYPE_IPX 1
#define NET_TYPE_ANP 2
#define NET_TYPE_TCPIP 3
/*
Structure definition
*/
#pragma pack(push,1)
typedef struct __KEY_NET {
short net_command;
unsigned long net_password;
short lpt;
short command;
unsigned char label[LABEL_LENGTH];
unsigned char password[PASSWORD_LENGTH];
unsigned char data[DATA_LENGTH];
short fail_counter;
short status;
unsigned char ext_data[EXTENDED_DATA_LENGTH];
} KEY_NET;
#pragma pack(pop)
/*
int smartlink_inizialize(void)
Inizialize the smartlink driver
Return 0 if successfull
void smartlink_deinizialize(void)
Deinizialize the smartlink driver
Return 0 if successfull
short smartlink(KEY_NET* key)
Call the driver.
Return key->k.status code
*/
short __cdecl smartlink(KEY_NET*);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,125 +0,0 @@
/* -------------------------------------------------------------------- */
/* */
/* EUTRON */
/* */
/* Via Gandhi 12 - 24048 Treviolo BG - Italy */
/* */
/* Tel. +39-35-201003 - Fax +39-35-201277 - BBS +39-35-201144 */
/* */
/* -------------------------------------------------------------------- */
/* */
/* Language : C */
/* Application : SkeyTsr */
/* Module : skeytsr.h */
/* Version : 1.0 */
/* Date : 8.2.1996 */
/* Note : */
/* */
/* -------------------------------------------------------------------- */
#ifndef INC_SKEYTSR_H
#define INC_SKEYTSR_H
/* -------------------------------------------------------------------- */
/* Smartkey mode codes */
/* -------------------------------------------------------------------- */
#define SCRAMBLING_MODE 's'
#define READING_MODE 'r'
#define WRITING_MODE 'w'
#define FIXING_MODE 'f'
#define LOCATING_MODE 'l'
#define COMPARING_MODE 'c'
#define PROGRAMMING_MODE 'p'
#define MODEL_READING_MODE 'm'
#define ENCRYPTING_MODE 'e'
#define BLOCK_READING_MODE "br"
#define BLOCK_WRITING_MODE "bw"
/* -------------------------------------------------------------------- */
/* Smartkey models */
/* -------------------------------------------------------------------- */
#define SKEY_NONE '0' /* No Smartkey */
#define SKEY_FX '1' /* Smartkey mod. FX */
#define SKEY_PR '2' /* Smartkey mod. PR */
#define SKEY_EP '3' /* Smartkey mod. EP */
#define SKEY_NET_5 '4' /* Smartkey mod. NET 5 users */
#define SKEY_NET_10 '5' /* Smartkey mod. NET 10 users */
#define SKEY_NET_25 '6' /* Smartkey mod. NET 25 users */
#define SKEY_NET_50 '7' /* Smartkey mod. NET 50 users */
#define SKEY_NET_NL '8' /* Smartkey mod. NET no limit */
#define SKEY_SP '9' /* Smartkey mod. SP */
#define SKEY_NET 'A' /* Smartkey mod. NET */
/* -------------------------------------------------------------------- */
/* Return codes */
/* -------------------------------------------------------------------- */
#define ST_OK 0 /* No errors */
#define ST_NONE_KEY -1 /* No Smartkey present */
#define ST_SYNT_ERR -2 /* Syntax error */
#define ST_LABEL_FAILED -3 /* Uncorrect label */
#define ST_PW_DATA_FAILED -4 /* Uncorrect password or data */
#define ST_NET_ERROR -5 /* Lan error */
#define ST_CLOSE_ERROR -6 /* Attempting to CLOSE without */
/* OPENing */
#define ST_ACCESS_ERROR -7 /* Attempting to ACCESS without */
/* OPENing */
#define ST_USER_ERROR -8 /* Max user reached */
#define ST_NET_PWD_ERR -9 /* Net password wrong */
#define ST_TSR_NOT_INST -10 /* SKEYSRV not found */
#define ST_INIT_ERROR -11 /* Insufficient PC memory */
#define ST_PATH_ERR -12 /* Path error or file not found */
#define ST_DRIVER_NOT_INST -13 /* SKEYTSR not installed */
#define ST_TOO_MANY_OPEN_KEY -14 /* Too many open SmartKey */
#define ST_NET_PASS_INVALID -15 /* Invalid net password */
#define ST_EXEC_ERROR -16 /* Max exec reached */
#define ST_HW_FAILURE -20 /* Smartkey damaged */
/* -------------------------------------------------------------------- */
/* Field length */
/* -------------------------------------------------------------------- */
#define LABEL_LENGTH 16
#define PASSWORD_LENGTH 16
#define DATA_LENGTH 64
#define EXTENDED_DATA_LENGTH 352
#define SCRAMBLE_LENGTH 8
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
#define NET_KEY_OPEN 'O'
#define NET_KEY_ACCESS 'A'
#define NET_KEY_CLOSE 'C'
#define USER_NUMBER_MODE 'U'
/* -------------------------------------------------------------------- */
/* Communication structure definition */
/* -------------------------------------------------------------------- */
#pragma pack(1)
typedef struct smartkey {
short net_command;
unsigned long net_password;
short lpt;
short command;
unsigned char label[LABEL_LENGTH];
unsigned char password[PASSWORD_LENGTH];
unsigned char data[DATA_LENGTH];
short fail_counter;
short status;
unsigned char ext_data[EXTENDED_DATA_LENGTH];
} KEY_NET;
#pragma pack()
/* -------------------------------------------------------------------- */
/* Interface function prototype */
/* -------------------------------------------------------------------- */
short smartlink(KEY_NET *pSkey);
#endif

View File

@ -291,8 +291,6 @@ TObject* TString::dup() const
// //
// @rdesc Ritorna il puntatore alla stringa duplicata // @rdesc Ritorna il puntatore alla stringa duplicata
{ {
// TString* s = new TString(size());
// s->set(_str);
TString* s = new TString(_str); TString* s = new TString(_str);
return s; return s;
} }

View File

@ -819,34 +819,38 @@ void TViswin::paint_background(
y2 = (byte)(rwd[cnt++]); // Altezza destinazione (in caratteri) y2 = (byte)(rwd[cnt++]); // Altezza destinazione (in caratteri)
if (id >= 0) if (id >= 0)
{ {
const int width = tabx(x2);
TImage* i = (TImage*)_images.objptr(id); TImage* i = (TImage*)_images.objptr(id);
if (i == NULL && y1 == 0) if (i == NULL)
{ {
const TString_array& a = pr.image_names(); const TString_array& a = pr.image_names();
const TImage src(a.row(id)); const TImage src(a.row(id));
if (src.ok()) if (src.ok())
{ {
i = new TImage(src, width, y2*CHARY); i = new TImage(src, x2*CHARX, y2*CHARY);
_images.add(i, id); _images.add(i, id);
} }
} }
if (i && i->ok()) if (i && i->ok())
{ {
short delta = tabx(short(origin().x - x1)); // Primo pixel sorgente int delta = short(origin().x - x1); // Prima colonna sorgente
if (delta < 0) delta = 0; if (delta < 0) delta = 0;
if (delta < width)
if (delta < x2)
{ {
const int scroll = (row == 1) ? 2 : 0; const int scroll = (row == 1) ? 2 : 0; // Aggiungi un paio di pixel negli scroll
PNT p; p.h = delta; p.v = taby(y1); PNT p; p.h = delta*CHARX; p.v = y1*CHARY;
RCT src; xvt_rect_set(&src, p.h, p.v, width, min(p.v+taby(1)+scroll , i->height()));
RCT src; xvt_rect_set(&src, p.h, p.v, (x2-delta)*CHARX, min(p.v+CHARY, i->height()));
if (src.top < i->height()) if (src.top < i->height())
{ {
short px = short(x1-origin().x); int px = int(x1-origin().x);
if (px < 0) px = 0; px += X_OFFSET; if (px < 0) px = 0; px += X_OFFSET;
p.h = tabx(px); p.v = taby(row); RCT dst;
RCT dst = src; xvt_rect_set_pos(&dst, p); dst.left = tabx(px);
dst.top = taby(row);
dst.right = dst.left + tabx(x2-delta);
dst.bottom = dst.top + taby(1)+scroll;
i->draw(win(), dst, src); i->draw(win(), dst, src);
} }
} }
@ -2362,6 +2366,7 @@ void TViswin::close_print ()
if (_print_button) if (_print_button)
_print_button->enable(); _print_button->enable();
enable_menu_item(M_VISWIN_PRINT, TRUE); enable_menu_item(M_VISWIN_PRINT, TRUE);
// build bookmark menu tree // build bookmark menu tree
_bookmarks = &(printer().get_bookmarks()); _bookmarks = &(printer().get_bookmarks());
if (_bookmarks->items() > 0) if (_bookmarks->items() > 0)

View File

@ -195,7 +195,7 @@ void TEvent_manager::push(WINDOW w, const EVENT& e)
_e[_end] = e; _e[_end] = e;
const int next = (_end+1) % MAX; const int next = (_end+1) % MAX;
if (next == _begin) if (next == _begin)
warning_box("Hey, clicca piu' piano!"); warning_box("Hey %s, clicca piu' piano!", (const char*)user());
else else
_end = next; _end = next;
} }

View File

@ -172,7 +172,7 @@ bool TSchedaPercipienti::setta_nprog(TMask& m, const bool variazione, const char
return TRUE; return TRUE;
// istanza e inizializza chiave file schede // istanza e inizializza chiave file schede
TLocalisamfile scperc(LF_SCPERC, FALSE); TLocalisamfile scperc(LF_SCPERC);
scperc.zero(); scperc.zero();
scperc.put("CODDITTA", codditta); scperc.put("CODDITTA", codditta);
scperc.put("TIPOA", tipoa); scperc.put("TIPOA", tipoa);
@ -1881,6 +1881,7 @@ Pag_struct& TSchedaPercipienti::calcola_riga_pag(Pag_struct& s,
TSheet_field& TSchedaPercipienti::enable_pag_sheet(TMask& m, const TString& quadro) const TSheet_field& TSchedaPercipienti::enable_pag_sheet(TMask& m, const TString& quadro) const
{ {
TSheet_field* s = NULL; TSheet_field* s = NULL;
TSheet_field& s_C = (TSheet_field&)m.field(F_PAGAMENTI_C); TSheet_field& s_C = (TSheet_field&)m.field(F_PAGAMENTI_C);
if (quadro == "SC" || quadro == "SE") if (quadro == "SC" || quadro == "SE")
{ {

View File

@ -502,8 +502,9 @@ bool TSchedaPercipienti::pag_select (TMask_field& f, KEY k)
else else
{ {
if (mesec != datapag.month() || annoc != datapag.year()) if (mesec != datapag.month() || annoc != datapag.year())
{
// TBI inserire un'altra riga di versamento (?) // TBI inserire un'altra riga di versamento (?)
; }
} }
selected.set(numpag); selected.set(numpag);

View File

@ -290,8 +290,8 @@ bool TDati_anagrafici::anagr_dich_handler(TMask_field& m, KEY k)
bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k) bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k)
{ {
TLocalisamfile anag (LF_ANAG, FALSE); TLocalisamfile anag (LF_ANAG);
TLocalisamfile comuni (LF_COMUNI, FALSE); TLocalisamfile comuni (LF_COMUNI);
long codanagr; long codanagr;
char tipoa; char tipoa;
TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom; TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom;

View File

@ -473,7 +473,7 @@ bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key)
{ {
if (!f.mask().is_running()) return TRUE; if (!f.mask().is_running()) return TRUE;
if ((key == K_TAB) && f.shown) if ((key == K_TAB) && f.shown())
{ {
const long coddip = atol(f.get()); const long coddip = atol(f.get());
if (coddip==0) return TRUE; if (coddip==0) return TRUE;

View File

@ -885,7 +885,7 @@ bool TQuadroC_E2::ricalcola_imposte_c(TMask_field& f, KEY key)
{ {
f.reset(); f.reset();
f.set_dirty(); f.set_dirty();
key == K_TAB; key = K_TAB;
} }
if (key == K_TAB && f.focusdirty() || if (key == K_TAB && f.focusdirty() ||
@ -943,7 +943,7 @@ bool TQuadroC_E2::ricalcola_imposte_d(TMask_field& f, KEY key)
{ {
f.reset(); f.reset();
f.set_dirty(); f.set_dirty();
key == K_TAB; key = K_TAB;
} }
if (key == K_TAB && f.focusdirty() || if (key == K_TAB && f.focusdirty() ||
@ -991,7 +991,7 @@ bool TQuadroC_E2::ricalcola_imposte_e(TMask_field& f, KEY key)
{ {
f.reset(); f.reset();
f.set_dirty(); f.set_dirty();
key == K_TAB; key = K_TAB;
} }
if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 104) if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 104)
@ -1033,7 +1033,7 @@ bool TQuadroC_E2::ricalcola_imposte_e1(TMask_field& f, KEY key)
{ {
f.reset(); f.reset();
f.set_dirty(); f.set_dirty();
key == K_TAB; key = K_TAB;
} }
if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 105) if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 105)
@ -1075,7 +1075,7 @@ bool TQuadroC_E2::ricalcola_imposte_e2(TMask_field& f, KEY key)
{ {
f.reset(); f.reset();
f.set_dirty(); f.set_dirty();
key == K_TAB; key = K_TAB;
} }
if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 103) if (key == K_TAB && f.focusdirty() || key == K_ENTER && f.dlg() == 103)

View File

@ -15,10 +15,10 @@ int main(int argc,char** argv)
m72300(argc,argv); break; m72300(argc,argv); break;
case 3: case 3:
m72400(argc,argv); break; m72400(argc,argv); break;
case 4: // case 4: non usate a menu!!
stampa_quadro(argc,argv); break; // stampa_quadro(argc,argv); break;
case 5: // case 5:
stampa_riepilogo(argc,argv); break; // stampa_riepilogo(argc,argv); break;
default: default:
break; break;
} }

View File

@ -121,7 +121,7 @@ class TAzzeramento_archivi : public TRelation_application
static void after_reset_BASEBIS(TRectype& rec); static void after_reset_BASEBIS(TRectype& rec);
// validazione e azioni su schede percipienti // validazione e azioni su schede percipienti
bool is_resetable(const TRectype& rec); int is_resetable(const TRectype& rec);
// handler di campi // handler di campi
static bool F_ANNODIC_hnd(TMask_field& f, KEY key); static bool F_ANNODIC_hnd(TMask_field& f, KEY key);
@ -738,10 +738,10 @@ void TAzzeramento_archivi::elab_selezionate(const bool azzsch, const bool azzqua
bool TAzzeramento_archivi::validate_record_SCPERC(const TRectype& rec) bool TAzzeramento_archivi::validate_record_SCPERC(const TRectype& rec)
{ {
// verifica se la scheda è azzerabile // verifica se la scheda è azzerabile
bool isresetable = app().is_resetable(rec); int isresetable = app().is_resetable(rec);
// scheda da non azzerare // scheda da non azzerare
if (!isresetable) if (isresetable == 0)
return FALSE; return FALSE;
// scheda da loggare // scheda da loggare
@ -875,7 +875,7 @@ void TAzzeramento_archivi::after_reset_BASEBIS(TRectype& rec)
// FALSE - la scheda non è azzerabile; // FALSE - la scheda non è azzerabile;
// TRUE - la scheda è azzerabile; // TRUE - la scheda è azzerabile;
// 2 - la scheda è da loggare; // 2 - la scheda è da loggare;
bool TAzzeramento_archivi::is_resetable(const TRectype& rec) int TAzzeramento_archivi::is_resetable(const TRectype& rec)
{ {
// apro file e inizializzo chiave pagamenti // apro file e inizializzo chiave pagamenti
TLocalisamfile rpag(LF_RPAG); TLocalisamfile rpag(LF_RPAG);
@ -1078,7 +1078,7 @@ bool TAzzeramento_archivi::F_AZZQUA_hnd(TMask_field& f, KEY k)
} }
// funzione principale di lancio applicazione // funzione principale di lancio applicazione
int Azzeramento_archivi(int argc, char* argv[]) int azzeramento_archivi(int argc, char* argv[])
{ {
TAzzeramento_archivi a(*argv[2]); TAzzeramento_archivi a(*argv[2]);
a.run(argc, argv, "Azzeramento archivi"); a.run(argc, argv, "Azzeramento archivi");

View File

@ -1197,6 +1197,7 @@ bool TTrasferimento770::read(TRecord770& rec)
bool ok = _in_stream != NULL && !_in_stream->eof(); bool ok = _in_stream != NULL && !_in_stream->eof();
if (ok) if (ok)
{ {
rec.tipo_record(' '); // Invalida il record
(*_in_stream) >> rec; (*_in_stream) >> rec;
ok = rec.valid(); ok = rec.valid();
} }
@ -1311,7 +1312,7 @@ bool TTrasferimento770::split(const char* path)
else else
error_box("Tipo record non riconosciuto: %c", tipo_rec); error_box("Tipo record non riconosciuto: %c", tipo_rec);
if (magnetic && written > records_per_disk) if (magnetic && written >= records_per_disk)
break; break;
} }

View File

@ -32,7 +32,7 @@ END
NUMBER F_DADITTA 5 NUMBER F_DADITTA 5
BEGIN BEGIN
PROMPT 1 5 "Da ditta " PROMPT 1 5 "Da ditta "
USE LF_BASE SELECT ANNODIC=#F_ANNO USE LF_BASE
JOIN LF_NDITTE INTO CODDITTA=CODDITTA JOIN LF_NDITTE INTO CODDITTA=CODDITTA
INPUT CODDITTA F_DADITTA INPUT CODDITTA F_DADITTA
DISPLAY "Ditta" CODDITTA DISPLAY "Ditta" CODDITTA

View File

@ -162,14 +162,20 @@ void TFormDylog::transfer_section(TPrint_section& body, TRecordDylog& rec,
TToken_string trc(32, ','); TToken_string trc(32, ',');
TString80 str; TString80 str;
TCursor& cur = *cursor(); // body.update(); // Per un errore sui form 1.4 lo faccio io a mano
body.reset();
for (word i = 0; i < body.fields(); i++)
{
TForm_item& fi = body.field(i);
if (fi.enabled())
fi.update();
}
body.update();
for (word f = 0; f < body.fields(); f++) for (word f = 0; f < body.fields(); f++)
{ {
TForm_item& fi = body.field(f); TForm_item& fi = body.field(f);
str = fi.get(); str.trim(); str = fi.get(); str.trim();
if (fi.shown() && str.not_empty()) if (fi.shown() && fi.enabled())
{ {
trc = fi.get_special_value("DYLOG"); trc = fi.get_special_value("DYLOG");
if (trc.not_empty()) if (trc.not_empty())
@ -331,7 +337,7 @@ long TFormDylog::trasfer(long codditta, TTrasferimentoDylog& file, const char* t
TPrint_section& body = section('B', odd_page); TPrint_section& body = section('B', odd_page);
for (; err == NOERR; err = next()) for (int err = first(); err == NOERR; err = next())
{ {
// Inizializza record col primo modulo // Inizializza record col primo modulo
TRecordDylog rec(td, cfdich); TRecordDylog rec(td, cfdich);
@ -601,6 +607,7 @@ bool TTrasferimentoDylog::read(TRecordDylog& rec)
bool ok = _in_stream != NULL && !_in_stream->eof(); bool ok = _in_stream != NULL && !_in_stream->eof();
if (ok) if (ok)
{ {
rec.tipo_record(NULL); // Invalida il record
(*_in_stream) >> rec; (*_in_stream) >> rec;
ok = rec.valid(); ok = rec.valid();
} }
@ -623,7 +630,6 @@ bool TTrasferimentoDylog::split(const char* path)
{ {
close(); close();
long totale[32]; memset(totale, 0, sizeof(totale));
long records = 0; long records = 0;
TRecordDylog rec; TRecordDylog rec;
@ -678,11 +684,7 @@ bool TTrasferimentoDylog::split(const char* path)
} }
} }
// Compila record di testata
// Scrive record testata
// Azzera totali // Azzera totali
memset(totale, 0, sizeof(totale));
long written = 0; long written = 0;
while (read(rec)) while (read(rec))
@ -691,12 +693,9 @@ bool TTrasferimentoDylog::split(const char* path)
written++; written++;
pi.addstatus(1); pi.addstatus(1);
if (magnetic && written > records_per_disk) if (magnetic && written >= records_per_disk)
break; break;
} }
// Compila record di coda
// Scrive record di coda
} }
return TRUE; return TRUE;
} }

View File

@ -5,7 +5,7 @@ Module = 0
Item_01 = "Modello 740", "740 -t -cCONF740.FPW", "" Item_01 = "Modello 740", "740 -t -cCONF740.FPW", ""
Item_02 = "Modello 750", "750 -t -cCONF750.FPW", "" Item_02 = "Modello 750", "750 -t -cCONF750.FPW", ""
Item_03 = "Modello 760", "760 -t -cCONF760.FPW", "" Item_03 = "Modello 760", "760 -t -cCONF760.FPW", ""
Item_04 = "Modello 770", <77prassi.men> Item_04 = "Modello 770", <77menu.men>
Item_05 = "Dichiarazione IVA", "miva -t", "" Item_05 = "Dichiarazione IVA", "miva -t", ""
Item_06 = "Gestione ICI", "gici -t /cPRAWIN.INI", "" Item_06 = "Gestione ICI", "gici -t /cCAMPO.INI", ""

View File

@ -1,9 +1,10 @@
[Main] [Main]
Demo =
[770] [770]
File(0) = 7700.bmp File(0) = 7700.bmp
File(1) = 77area.men File(1) = 77area.men
Patch = 0 Patch = 180
Versione = 19980104 Versione = 19980104
[771] [771]
@ -154,7 +155,7 @@ File(145) = batbca7.msk
File(146) = batbcaf.msk File(146) = batbcaf.msk
File(147) = batbent.msk File(147) = batbent.msk
File(148) = menu_st.msk File(148) = menu_st.msk
Patch = 0 Patch = 180
Versione = 19980104 Versione = 19980104
[772] [772]
@ -224,21 +225,21 @@ File(211) = recdesc\f76.dir
File(212) = recdesc\f76.trr File(212) = recdesc\f76.trr
File(213) = recdesc\f77.dir File(213) = recdesc\f77.dir
File(214) = recdesc\f77.trr File(214) = recdesc\f77.trr
Patch = 0 Patch = 180
Versione = 19980104 Versione = 19980104
[cg0] [cg0]
File(0) = cg00.bmp File(0) = cg00.bmp
File(1) = cgarea.men File(1) = cgarea.men
Patch = 3 Patch = 126
Versione = 19980104 Versione = 19980104
[77] [77]
Data = 12-10-1998 Data = 02-12-1998
Descrizione = Percipienti (Mod.770) Descrizione = Percipienti (Mod.770)
Dischi = 1 Dischi = 1
Moduli = ba,cg0 Moduli = ba,cg0
Patch = 0 Patch = 180
PostProcess = PostProcess =
PreProcess = PreProcess =
Prezzo(1) = 700,250 Prezzo(1) = 700,250

View File

@ -1,16 +1,16 @@
[PRASSI77_001] [77MENU_001]
Caption = "Gestione percipienti" Caption = "Gestione percipienti"
Picture = <7701.bmp> Picture = <7701.bmp>
Module = 4 Module = 4
Flags = "" Flags = ""
Item_01 = "Attivazione sostituto", "776mod -1", "" Item_01 = "Attivazione sostituto", "776mod -1", ""
Item_02 = "Gestione percipienti", "776mod -0", "" Item_02 = "Gestione percipienti", "776mod -0", ""
Item_03 = "Stampe",[PRASSI77_002] Item_03 = "Stampe",[77MENU_002]
Item_04 = "Tabella causali", "773mod -3 %ca7", "" Item_04 = "Tabella causali", "773mod -3 %ca7", ""
Item_05 = "Azzeramento archivi", "774 -2 T", "" Item_05 = "Azzeramento archivi", "774 -2 T", ""
Item_06 = "Parametri di studio", "773mod -0", "" Item_06 = "Parametri di studio", "773mod -0", ""
[PRASSI77_002] [77MENU_002]
Caption = "Stampe" Caption = "Stampe"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0

View File

@ -67,7 +67,7 @@ KEY "CAUSALE"
PROMPT 2 1 "" PROMPT 2 1 ""
FIELD CAUSALE FIELD CAUSALE
END END
NUMBER 3 14 VALUTA 3 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "@CTotale" "Totale" SPECIAL STRINGA INTESTAZIONE "@CTotale" "Totale"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -77,7 +77,7 @@ PROMPT 3 1 ""
FIELD TOTALE FIELD TOTALE
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 4 14 VALUTA 4 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Spes. Ant." "Spes. Ant." SPECIAL STRINGA INTESTAZIONE "Spes. Ant." "Spes. Ant."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -87,7 +87,7 @@ PROMPT 4 1 ""
FIELD SPESEANT FIELD SPESEANT
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 5 14 VALUTA 5 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Quaota Provv." "quaota Provv." SPECIAL STRINGA INTESTAZIONE "Quaota Provv." "quaota Provv."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -97,7 +97,7 @@ PROMPT 5 1 ""
FIELD QUOTAPRO FIELD QUOTAPRO
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 6 14 VALUTA 6 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile" SPECIAL STRINGA INTESTAZIONE "@CImponibile" "Imponibile"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -107,7 +107,7 @@ PROMPT 6 1 ""
FIELD IMPONIBILE FIELD IMPONIBILE
PICTURE "###.###.###^^^" PICTURE "###.###.###^^^"
END END
NUMBER 7 14 VALUTA 7 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Rit. Op." "Rit. Op." SPECIAL STRINGA INTESTAZIONE "Rit. Op." "Rit. Op."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"

View File

@ -75,7 +75,7 @@ END
STRING 2 5 STRING 2 5
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "@Caus." "Caus." SPECIAL STRINGA INTESTAZIONE "@cCaus." "Caus."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "CAUSALE" KEY "CAUSALE"
@ -107,7 +107,7 @@ END
NUMERO 5 9 NUMERO 5 9
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale" SPECIAL STRINGA INTESTAZIONE "@cAliquota" "Aliquota"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "ALIQUOTA" KEY "ALIQUOTA"
@ -173,7 +173,7 @@ END
VALUTA 11 14 VALUTA 11 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale" SPECIAL STRINGA INTESTAZIONE "@cCompenso" "Compenso"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "AMMONTARE COMPLESSIVO" KEY "AMMONTARE COMPLESSIVO"

View File

@ -147,7 +147,7 @@ BEGIN
FIELD 42->QLSERIE FIELD 42->QLSERIE
END END
NUMERO 9 15 VALUTA 9 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "@cRit. effettuate" "Rit. effettuate" SPECIAL STRINGA INTESTAZIONE "@cRit. effettuate" "Rit. effettuate"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -158,7 +158,7 @@ BEGIN
PICTURE "###.###.###.###^^^" PICTURE "###.###.###.###^^^"
END END
NUMERO 10 15 VALUTA 10 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "@cImp. Versato" "Imp. Versato" SPECIAL STRINGA INTESTAZIONE "@cImp. Versato" "Imp. Versato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"

View File

@ -430,7 +430,7 @@ int TRigheNR::fill(const long codditta,TLocalisamfile& qnr)
// Si posiziona sul primo della ditta corrente // Si posiziona sul primo della ditta corrente
qnr.zero(); qnr.zero();
qnr.put("CODDITTA",codditta); qnr.put("CODDITTA",codditta);
qnr.read()==NOERR; qnr.read() = NOERR;
ditta=qnr.get_long("CODDITTA"); ditta=qnr.get_long("CODDITTA");
if (ditta!=codditta) return 0; if (ditta!=codditta) return 0;
@ -493,7 +493,7 @@ int TRigheQT::fill(const long codditta,TLocalisamfile& qt)
_data.destroy(); _data.destroy();
qt.zero(); qt.zero();
qt.put("CODDITTA",codditta); qt.put("CODDITTA",codditta);
qt.read()==NOERR; qt.read() = NOERR;
ditta=qt.get_long("CODDITTA"); ditta=qt.get_long("CODDITTA");
if (ditta!=codditta) return 0; if (ditta!=codditta) return 0;
@ -541,7 +541,7 @@ int TRighePS::fill(const long codditta,TLocalisamfile& ps)
_data.destroy(); _data.destroy();
ps.zero(); ps.zero();
ps.put("CODDITTA",codditta); ps.put("CODDITTA",codditta);
ps.read()==NOERR; ps.read() = NOERR;
ditta=ps.get_long("CODDITTA"); ditta=ps.get_long("CODDITTA");
if (ditta!=codditta) return 0; if (ditta!=codditta) return 0;
@ -1055,8 +1055,8 @@ bool TStampaBase::print_quadro(const int OffsetDitta, const bool modulaser)
const TipoDitta tipo = (TipoDitta)riga.get_int(1); const TipoDitta tipo = (TipoDitta)riga.get_int(1);
const long fis = riga.get_long(2); const long fis = riga.get_long(2);
const long nofis = riga.get_long(3); const long nofis = riga.get_long(3);
const bool LastFis = (bool)riga.get_int(4); const bool LastFis = riga.get_int(4) != 0;
const bool LastNoFis = (bool)riga.get_int(5); const bool LastNoFis = riga.get_int(5) != 0;
// I gruppi dich-estinti hanno totali comuni // I gruppi dich-estinti hanno totali comuni
// Si presume che nell'array vengano messi nell'ordine dich-estinti // Si presume che nell'array vengano messi nell'ordine dich-estinti

View File

@ -1072,8 +1072,8 @@ bool TStampaQuadro::print_quadro(const int OffsetDitta, const bool modulaser)
const TipoDitta tipo = (TipoDitta)riga.get_int(1); const TipoDitta tipo = (TipoDitta)riga.get_int(1);
const long fis = riga.get_long(2); const long fis = riga.get_long(2);
const long nofis = riga.get_long(3); const long nofis = riga.get_long(3);
const bool LastFis = (bool)riga.get_int(4); const bool LastFis = riga.get_int(4) != 0;
const bool LastNoFis = (bool)riga.get_int(5); const bool LastNoFis = riga.get_int(5) != 0;
// I gruppi dich-estinti hanno totali comuni // I gruppi dich-estinti hanno totali comuni
// Si presume che nell'array vengano messi nell'ordine dich-estinti // Si presume che nell'array vengano messi nell'ordine dich-estinti
@ -1983,7 +1983,7 @@ bool TQuadroG::InitPrint(const long codditta)
{ {
TCursor& cur = (TCursor&)_cursori[c]; TCursor& cur = (TCursor&)_cursori[c];
cur.setregion(filter, filter); cur.setregion(filter, filter);
ok |= cur.items() > 0; ok |= (cur.items() > 0);
cur = 0; cur = 0;
} }

View File

@ -249,9 +249,9 @@ bool TQuadroC::print(const long codditta, const long NumFis, const long NumNoFis
if (stampero_ultimo) if (stampero_ultimo)
{ {
if (indice.items() > 0) // Usa indice alternativo if (indice.items() > 0) // Usa indice alternativo
stampero_ultimo &= pos == indice.items()-1; stampero_ultimo &= (pos == indice.items()-1);
else // Usa indice del cursore else // Usa indice del cursore
stampero_ultimo &= cur.pos() == cur.items()-1; stampero_ultimo &= (cur.pos() == cur.items()-1);
} }
pr.formlen(dic_form_len()); pr.formlen(dic_form_len());

View File

@ -66,7 +66,7 @@ int TResetfile::load_resetable_fields(const RecDes& recd,
continue; continue;
// Descrittore campo // Descrittore campo
RecFieldDes& fieldd = recd.Fd[i]; const RecFieldDes& fieldd = recd.Fd[i];
// non azzero i campi indefiniti // non azzero i campi indefiniti
if (fieldd.TypeF == _nullfld) if (fieldd.TypeF == _nullfld)

View File

@ -4,9 +4,9 @@ Picture = <mg00.bmp>
Module = 0 Module = 0
Flags = "F" Flags = "F"
Item_01 = "Archivi e tabelle di base", [MGAREA_001] Item_01 = "Archivi e tabelle di base", [MGAREA_001]
Item_02 = "Magazzino", <mgprassi.men> Item_02 = "Magazzino", <mgmenu.men>
Item_03 = "Distinta base", <dbprassi.men> Item_03 = "Distinta base", <dbmenu.men>
Item_04 = "M.R.P.", <mrprassi.men> Item_04 = "M.R.P.", <mrmenu.men>
Item_05 = "Servizi", [MGAREA_019] Item_05 = "Servizi", [MGAREA_019]
Item_06 = "Configurazione", [MGAREA_020] Item_06 = "Configurazione", [MGAREA_020]

View File

@ -1,15 +1,15 @@
[PRASSIMG_060] [MGMENU_060]
Caption = "Gestione magazzino" Caption = "Gestione magazzino"
Picture = <mg01.bmp> Picture = <mg01.bmp>
Module = 32 Module = 32
Flags = "" Flags = ""
Item_01 = "Movimenti", [PRASSIMG_063] Item_01 = "Movimenti", [MGMENU_063]
Item_02 = "Stampe", [PRASSIMG_064] Item_02 = "Stampe", [MGMENU_064]
Item_03 = "Tabelle", [PRASSIMG_061] Item_03 = "Tabelle", [MGMENU_061]
Item_04 = "Servizi", [PRASSIMG_070] Item_04 = "Servizi", [MGMENU_070]
Item_05 = "Configurazione magazzino", [PRASSIMG_099] Item_05 = "Configurazione magazzino", [MGMENU_099]
[PRASSIMG_061] [MGMENU_061]
Caption = "Tabelle di magazzino" Caption = "Tabelle di magazzino"
Module = 32 Module = 32
Picture = <mg01.bmp> Picture = <mg01.bmp>
@ -17,7 +17,7 @@ Item_02 = "Gestione tabelle", [MGAREA_006]
Item_03 = "Stampa tabelle", [MGAREA_011] Item_03 = "Stampa tabelle", [MGAREA_011]
[PRASSIMG_063] [MGMENU_063]
Caption = "Movimenti di magazzino" Caption = "Movimenti di magazzino"
Picture = <mg01.bmp> Picture = <mg01.bmp>
Module = 32 Module = 32
@ -26,7 +26,7 @@ Item_01 = "Gestione interattiva", "mg1 -0", "F"
Item_02 = "Ricostruzione saldi", "mg1 -1", "F" Item_02 = "Ricostruzione saldi", "mg1 -1", "F"
Item_03 = "Lista di controllo", "mg4 -0", "F" Item_03 = "Lista di controllo", "mg4 -0", "F"
[PRASSIMG_064] [MGMENU_064]
Caption = "Stampe" Caption = "Stampe"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 32 Module = 32
@ -40,14 +40,14 @@ Item_06 = "Libro giornale", "mg4 -2", "F"
Item_07 = "Lista movimenti", "mg4 -0", "F" Item_07 = "Lista movimenti", "mg4 -0", "F"
Item_08 = "Storico rimanenze", "mg3 -4", "F" Item_08 = "Storico rimanenze", "mg3 -4", "F"
[PRASSIMG_070] [MGMENU_070]
Caption = "Servizi modulo magazzino" Caption = "Servizi modulo magazzino"
Picture = <mg01.bmp> Picture = <mg01.bmp>
Module = 32 Module = 32
Flags = "" Flags = ""
Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F" Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F"
[PRASSIMG_099] [MGMENU_099]
Caption = "Configurazione modulo magazzino" Caption = "Configurazione modulo magazzino"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 32 Module = 32

View File

@ -1,4 +1,4 @@
[PRASSIMR_001] [MRMENU_001]
Caption = "Gestione della produzione" Caption = "Gestione della produzione"
Picture = <mr01.bmp> Picture = <mr01.bmp>
Module = 39 Module = 39
@ -7,13 +7,13 @@ Item_01 = "M.S.P.", "mr2 -2", "F"
Item_02 = "Pianificazione ordini", "mr2 -1", "F" Item_02 = "Pianificazione ordini", "mr2 -1", "F"
Item_03 = "M.R.P.", "mr2 -0", "F" Item_03 = "M.R.P.", "mr2 -0", "F"
Item_04 = "Pianificazione acquisti", "mr2 -3", "F" Item_04 = "Pianificazione acquisti", "mr2 -3", "F"
Item_05 = "Stampe", [PRASSIMR_040] Item_05 = "Stampe", [MRMENU_040]
Item_06 = "Archivi", [PRASSIMR_010] Item_06 = "Archivi", [MRMENU_010]
Item_07 = "Stampe archivi", [PRASSIMR_020] Item_07 = "Stampe archivi", [MRMENU_020]
Item_08 = "Servizi", [PRASSIMR_030] Item_08 = "Servizi", [MRMENU_030]
Item_09 = "Configurazione MRP", [PRASSIMR_080] Item_09 = "Configurazione MRP", [MRMENU_080]
[PRASSIMR_010] [MRMENU_010]
Caption = "Gestione archivi" Caption = "Gestione archivi"
Picture = <mr01.bmp> Picture = <mr01.bmp>
Module = 39 Module = 39
@ -26,7 +26,7 @@ Item_01 = "Tabella impianti", "mr0 -0 IMP", "F"
Item_01 = "Tabella linee di produzione", "mr0 -0 LNP", "F" Item_01 = "Tabella linee di produzione", "mr0 -0 LNP", "F"
Item_01 = "Tabella Articoli/Impianti", "mr0 -0 FIA", "F" Item_01 = "Tabella Articoli/Impianti", "mr0 -0 FIA", "F"
[PRASSIMR_020] [MRMENU_020]
Caption = "Stampa archivi" Caption = "Stampa archivi"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 39 Module = 39
@ -39,7 +39,7 @@ Item_01 = "Tabella impianti", "mr0 -1 IMP", "F"
Item_01 = "Tabella linee di produzione", "mr0 -1 LNP", "F" Item_01 = "Tabella linee di produzione", "mr0 -1 LNP", "F"
[PRASSIMR_040] [MRMENU_040]
Caption = "Stampa" Caption = "Stampa"
Picture = <mr01.bmp> Picture = <mr01.bmp>
Module = 39 Module = 39
@ -51,7 +51,7 @@ Item_01 = "Stampa produzione articoli", "mr1 -0", "F"
Item_01 = "Esplosione distinte", "db1 -0", "F" Item_01 = "Esplosione distinte", "db1 -0", "F"
Item_02 = "Implosione", disabled Item_02 = "Implosione", disabled
[PRASSIMR_030] [MRMENU_030]
Caption = "Servizi" Caption = "Servizi"
Picture = <mr01.bmp> Picture = <mr01.bmp>
Module = 39 Module = 39
@ -60,7 +60,7 @@ Item_01 = "Ricalcolo balance-on-hand", "db2 -3", "F"
[PRASSIMR_080] [MRMENU_080]
Caption = "Configurazione" Caption = "Configurazione"
Picture = <mr01.bmp> Picture = <mr01.bmp>
Module = 39 Module = 39

View File

@ -1,4 +1,4 @@
[PRASSIOR_000] [ORMENU_000]
Caption = "Ordini" Caption = "Ordini"
Picture = <or01.bmp> Picture = <or01.bmp>
Module = 33 Module = 33

View File

@ -1,7 +1,3 @@
#define APPNAME campo
#define QAPPNAME "campo"
#define QFIRMNAME "A.G.A. Informatica Srl"
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,7 +1,3 @@
#define APPNAME campo
#define QAPPNAME "campo"
#define QFIRMNAME "A.G.A. Informatica Srl"
#include <default.url> #include <default.url>
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,15 +1,15 @@
[PRASSIPR_001] [PRMENU_001]
Caption = "Gestione agenti" Caption = "Gestione agenti"
Picture = <pr01.bmp> Picture = <pr01.bmp>
Module = 36 Module = 36
Flags = "" Flags = ""
Item_01 = "Archivi e tabelle", [PRASSIPR_002] Item_01 = "Archivi e tabelle", [PRMENU_002]
Item_02 = "Stampa archivi e tabelle", [PRASSIPR_003] Item_02 = "Stampa archivi e tabelle", [PRMENU_003]
Item_03 = "Provvigioni", "pr0 -6", "F" Item_03 = "Provvigioni", "pr0 -6", "F"
Item_04 = "Stampa provvigioni", [PRASSIPR_004] Item_04 = "Stampa provvigioni", [PRMENU_004]
Item_05 = "Configurazione modulo", [PRASSIPR_010] Item_05 = "Configurazione modulo", [PRMENU_010]
[PRASSIPR_002] [PRMENU_002]
Caption = "Archivi e tabelle" Caption = "Archivi e tabelle"
Picture = <pr01.bmp> Picture = <pr01.bmp>
Module = 0 Module = 0
@ -17,7 +17,7 @@ Flags = ""
Item_03 = "Archivio agenti", "pr0 -4", "F" Item_03 = "Archivio agenti", "pr0 -4", "F"
Item_04 = "Archivio percentuali", "pr0 -5", "F" Item_04 = "Archivio percentuali", "pr0 -5", "F"
[PRASSIPR_003] [PRMENU_003]
Caption = "Stampe archivi e tabelle" Caption = "Stampe archivi e tabelle"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0
@ -25,7 +25,7 @@ Flags = ""
Item_06 = "Stampa archivio agenti", "pr1 -0", "F" Item_06 = "Stampa archivio agenti", "pr1 -0", "F"
Item_07 = "Stampa archivio percentuali", "pr1 -1", "F" Item_07 = "Stampa archivio percentuali", "pr1 -1", "F"
[PRASSIPR_004] [PRMENU_004]
Caption = "Stampe" Caption = "Stampe"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0
@ -35,7 +35,7 @@ Item_05 = "Stampa statistiche", "pr1 -3", "F"
Item_06 = "Stampa distinte versamento", "pr1 -4", "F" Item_06 = "Stampa distinte versamento", "pr1 -4", "F"
[PRASSIPR_010] [PRMENU_010]
Caption = "Configurazione modulo agenti" Caption = "Configurazione modulo agenti"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0

View File

@ -1,4 +1,4 @@
[PRASSISC_001] [SCMENU_001]
Caption = "Saldaconto" Caption = "Saldaconto"
Picture = <sc01.bmp> Picture = <sc01.bmp>
Module = 13 Module = 13
@ -8,9 +8,9 @@ Item_02 = "Stampa scadenzario", "sc2 -1", ""
Item_03 = "Stampa scaduto", "sc2 -2", "" Item_03 = "Stampa scaduto", "sc2 -2", ""
Item_04 = "Stampa estratti conto", "sc2 -0", "" Item_04 = "Stampa estratti conto", "sc2 -0", ""
Item_05 = "Stampa solleciti", "sc2 -3", "" Item_05 = "Stampa solleciti", "sc2 -3", ""
Item_06 = "Servizio", [PRASSISC_002] Item_06 = "Servizio", [SCMENU_002]
[PRASSISC_002] [SCMENU_002]
Caption = "Servizio" Caption = "Servizio"
Picture = <sc01.bmp> Picture = <sc01.bmp>
Module = 13 Module = 13

View File

@ -1,5 +1,2 @@
#define APPNAME campo #include <default.url>
#define QAPPNAME "campo"
#define QFIRMNAME "A.G.A. Informatica Srl"
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,5 +1,2 @@
#define APPNAME campo #include <default.url>
#define QAPPNAME "campo"
#define QFIRMNAME "A.G.A. Informatica Srl"
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,5 +1,2 @@
#define APPNAME campo #include <default.url>
#define QAPPNAME "campo"
#define QFIRMNAME "A.G.A. Informatica Srl"
#include <mainmenu.url> #include <mainmenu.url>

View File

@ -1,15 +1,15 @@
[PRASSISV_000] [SVMENU_000]
Caption = "Statistiche di vendita" Caption = "Statistiche di vendita"
Picture = <sv01.bmp> Picture = <sv01.bmp>
Module = 38 Module = 38
Flags = "" Flags = ""
Item_01 = "Tabelle", [PRASSISV_020] Item_01 = "Tabelle", [SVMENU_020]
//Item_02 = "Stampa Tabelle", [PRASSISV_030] //Item_02 = "Stampa Tabelle", [SVMENU_030]
Item_03 = "Generazione statistiche", [PRASSISV_010] Item_03 = "Generazione statistiche", [SVMENU_010]
Item_04 = "Servizi", [PRASSISV_035] Item_04 = "Servizi", [SVMENU_035]
Item_05 = "Configurazione", [PRASSISV_040] Item_05 = "Configurazione", [SVMENU_040]
[PRASSISV_010] [SVMENU_010]
Caption = "Generazione statistiche" Caption = "Generazione statistiche"
Picture = <sv01.bmp> Picture = <sv01.bmp>
Module = 0 Module = 0
@ -17,21 +17,21 @@ Flags = ""
Item_02 = "Statistiche personalizzate", "sv1 -1", "F" Item_02 = "Statistiche personalizzate", "sv1 -1", "F"
Item_03 = "Schede di vendita", "sv1 -0", "F" Item_03 = "Schede di vendita", "sv1 -0", "F"
[PRASSISV_020] [SVMENU_020]
Caption = "Tabelle" Caption = "Tabelle"
Picture = <sv01.bmp> Picture = <sv01.bmp>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Statistiche personalizzate", "sv0 -0 PSV", "F" Item_01 = "Statistiche personalizzate", "sv0 -0 PSV", "F"
[PRASSISV_030] [SVMENU_030]
Caption = "Stampa tabelle" Caption = "Stampa tabelle"
Picture = <sv01.bmp> Picture = <sv01.bmp>
Module = 0 Module = 0
Flags = "" Flags = ""
[PRASSISV_035] [SVMENU_035]
Caption = "Servizi" Caption = "Servizi"
Picture = <sv01.bmp> Picture = <sv01.bmp>
Module = 0 Module = 0
@ -39,16 +39,16 @@ Flags = ""
Item_01 = "Ricalcolo archivio statistiche", "sv2 -0", "F" Item_01 = "Ricalcolo archivio statistiche", "sv2 -0", "F"
[PRASSISV_040] [SVMENU_040]
Caption = "Configurazione" Caption = "Configurazione"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Configurazione statistiche", "sv0 -3", "F" Item_01 = "Configurazione statistiche", "sv0 -3", "F"
Item_02 = "Configurazione documenti", [PRASSISV_041] Item_02 = "Configurazione documenti", [SVMENU_041]
[PRASSISV_041] [SVMENU_041]
Caption = "Tabelle personalizzazione documenti" Caption = "Tabelle personalizzazione documenti"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0

View File

@ -4,11 +4,11 @@ Picture = <ve00.bmp>
Module = 0 Module = 0
Flags = "F" Flags = "F"
Item_01 = "Archivi e tabelle di base", [ACQVEN_001] Item_01 = "Archivi e tabelle di base", [ACQVEN_001]
Item_02 = "Documenti di vendita", <veprassi.men> Item_02 = "Documenti di vendita", <vemenu.men>
Item_03 = "Effetti", <efprassi.men> Item_03 = "Effetti", <efmenu.men>
Item_04 = "Provvigioni agenti", <prprassi.men> Item_04 = "Provvigioni agenti", <prmenu.men>
Item_05 = "Ordini", <orprassi.men> Item_05 = "Ordini", <ormenu.men>
Item_06 = "Statistiche di vendita", <svprassi.men> Item_06 = "Statistiche di vendita", <svmenu.men>
Item_07 = "Servizi", [ACQVEN_021] Item_07 = "Servizi", [ACQVEN_021]
Item_08 = "Configurazione", [ACQVEN_020] Item_08 = "Configurazione", [ACQVEN_020]
@ -50,7 +50,6 @@ Item_09 = "Spese", "ba3 -0 SPP", "F"
Item_10 = "Prestazioni", "ba3 -0 PRS", "F" Item_10 = "Prestazioni", "ba3 -0 PRS", "F"
Item_11 = "Banche di presentazione", "ef0 -6 BNP", "F" Item_11 = "Banche di presentazione", "ef0 -6 BNP", "F"
Item_12 = "Zone", "ba3 -0 ZON", "F" Item_12 = "Zone", "ba3 -0 ZON", "F"
Item_13 = "Piano dei conti industriale", "ba3 -0 PCI", "F"
[ACQVEN_005] [ACQVEN_005]
Caption = "Tabelle contabili" Caption = "Tabelle contabili"
@ -116,7 +115,6 @@ Item_09 = "Spese", "ba3 -1 SPP", "F"
Item_10 = "Prestazioni", "ba3 -1 PRS", "F" Item_10 = "Prestazioni", "ba3 -1 PRS", "F"
Item_11 = "Banche di presentazione", "ba3 -1 BNP", "F" Item_11 = "Banche di presentazione", "ba3 -1 BNP", "F"
Item_12 = "Zone", "ba3 -1 ZON", "F" Item_12 = "Zone", "ba3 -1 ZON", "F"
Item_13 = "Piano dei conti industriale", "ba3 -1 PCI", "F"
[ACQVEN_010] [ACQVEN_010]
Caption = "Stampa tabelle contabili" Caption = "Stampa tabelle contabili"

View File

@ -1,15 +1,15 @@
[PRASSIVE_032] [VEMENU_032]
Caption = "Gestione documenti" Caption = "Gestione documenti"
Picture = <ve01.bmp> Picture = <ve01.bmp>
Module = 31 Module = 31
Flags = "" Flags = ""
Item_06 = "Documenti interattivi", "ve0 -1", "F" Item_06 = "Documenti interattivi", "ve0 -1", "F"
Item_07 = "Stampe documenti", "ve1 -0", "F" Item_07 = "Stampe documenti", "ve1 -0", "F"
Item_08 = "Elaborazioni differite", [PRASSIVE_050] Item_08 = "Elaborazioni differite", [VEMENU_050]
Item_09 = "Servizi", [PRASSIVE_051] Item_09 = "Servizi", [VEMENU_051]
Item_10 = "Configurazione modulo", [PRASSIVE_052] Item_10 = "Configurazione modulo", [VEMENU_052]
[PRASSIVE_050] [VEMENU_050]
Caption = "Gestione elaborazioni differite" Caption = "Gestione elaborazioni differite"
Picture = <ve01.bmp> Picture = <ve01.bmp>
Module = 0 Module = 0
@ -18,7 +18,7 @@ Item_01 = "Fatturazione bolle", "ve6 -2", "F"
Item_02 = "Contabilizzazione fatture", "ve6 -1", "F" Item_02 = "Contabilizzazione fatture", "ve6 -1", "F"
Item_03 = "Generazione effetti", "ve6 -3", "F" Item_03 = "Generazione effetti", "ve6 -3", "F"
[PRASSIVE_051] [VEMENU_051]
Caption = "Servizi" Caption = "Servizi"
Picture = <ve01.bmp> Picture = <ve01.bmp>
Module = 0 Module = 0
@ -29,15 +29,15 @@ Item_03 = "Cambiamento stato documenti", "ve5 -1", "F"
Item_04 = "Copia documenti", "ve5 -2", "F" Item_04 = "Copia documenti", "ve5 -2", "F"
Item_05 = "Invio e ricezione documenti", "ve5 -3", "F" Item_05 = "Invio e ricezione documenti", "ve5 -3", "F"
[PRASSIVE_052] [VEMENU_052]
Caption = "Configurazione" Caption = "Configurazione"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Personalizzazione documenti", [PRASSIVE_003] Item_01 = "Personalizzazione documenti", [VEMENU_003]
Item_02 = "Stampe pers. documenti", [PRASSIVE_008] Item_02 = "Stampe pers. documenti", [VEMENU_008]
[PRASSIVE_003] [VEMENU_003]
Caption = "Tabelle personalizzazione documenti" Caption = "Tabelle personalizzazione documenti"
Picture = <ba04.bmp> Picture = <ba04.bmp>
Module = 0 Module = 0
@ -51,7 +51,7 @@ Item_06 = "Formule ricalcolo magazzino", "ba3 -0 %FRM", "F"
Item_07 = "Elaborazioni differite", "ba3 -0 %ELD", "F" Item_07 = "Elaborazioni differite", "ba3 -0 %ELD", "F"
Item_08 = "Stati documento", "ba3 -0 %STD", "F" Item_08 = "Stati documento", "ba3 -0 %STD", "F"
[PRASSIVE_008] [VEMENU_008]
Caption = "Stampa tabelle personalizzazione documenti" Caption = "Stampa tabelle personalizzazione documenti"
Picture = <ba03.bmp> Picture = <ba03.bmp>
Module = 0 Module = 0