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
#ifdef XVAGA
#define MEN_FILE "bacampo.men"
#define MEN_FILE "bamenu.men"
#else
#define MEN_FILE "baprassi.men"
#endif
@ -1290,18 +1290,15 @@ bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
int TMenu_application::do_level()
{
const TSubmenu& curr = _menu.current();
const int width = 78;
const int height = 18;
const int bwidth = 20;
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?");
_mask = &mask;
const int x = width / 2;
const int x = mask.columns() / 2;;
int y = 1;
TString caption;
@ -1320,21 +1317,13 @@ int TMenu_application::do_level()
mask.disable(id);
}
mask.add_static(DLG_NULL, 0, "Cerca", 1,-3);
TEdit_field& ef = mask.add_string(DLG_USER, 0, "", -12, -3, 50, "", bwidth+1);
TEdit_field& ef = mask.add_string(DLG_USER, 0, "Cerca ", 1, -3, 50, "", 50);
ef.set_handler(menu_find_handler);
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)
{
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.first_focus(101+_menu.selected());
@ -1914,90 +1903,6 @@ long TMenu_application::handler(WINDOW win, EVENT* ep)
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
///////////////////////////////////////////////////////////
@ -2661,14 +2566,12 @@ int main(int argc, char** argv)
{
TApplication::check_parameters(argc, argv);
#ifdef XVGUY
if (user().blank())
{
char name[16];
if (aga_get_user_name(name, 16))
user() = name;
}
#endif
if (user().blank())
{
TConfig prawin(CONFIG_INSTALL, "Main");
@ -2677,24 +2580,6 @@ int main(int argc, char** argv)
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())
{
TMenu_application *ma = new TMenu_application(menu);

View File

@ -77,13 +77,11 @@ void TPackFiles_application::search_blanks(TSystemisamfile& f)
f.open(_excllock, TRUE);
const long records = f.items();
TProgind p(records, "Ricerca records vuoti in corso...", TRUE, TRUE, 70);
TString k;
for (long i = 0; f.status() == NOERR && i < records; i++)
{
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)
if (f.curr().empty() || k.trim().empty()) // Teoricamente ce ne sarebbe uno solo...
{ // ma se l'indice e' rovinato possono esserci piu' records vuoti
@ -113,8 +111,12 @@ void TPackFiles_application::main_loop()
TString cmd;
TDir d;
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))
continue;
d.get(i);

View File

@ -1,6 +1,6 @@
#include <sys/stat.h>
#include <agasys.h>
#include <agasys.h>
#include <applicat.h>
#include <defmask.h>
#include <dongle.h>
@ -936,7 +936,7 @@ protected:
virtual const TFilename& build_export_path(TFilename& path) 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 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
{
TString msg;
msg << "Creazione del file temporaneo " << archive << "...";
msg << "Creazione del file compresso " << archive << "...";
TIndwin waitw(100,msg,FALSE,FALSE);
TWait_cursor hourglass;
#ifdef XVAGA
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
@ -1641,55 +1632,47 @@ bool TCreadischi_mask::move_file(const TFilename& file, const char* dir) const
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;
if (size > 0L)
const size_t tot_size = ::fsize(archive);
if (chunk_size > 0 && chunk_size < tot_size)
{
TFilename sommario(archive);
sommario.ext("ini");
size -= ::fsize(sommario);
const long minsize = 360*1024L;
if (size < minsize)
size = minsize;
DIRECTORY curdir, tmpdir;
xvt_fsys_get_dir(&curdir); // Legge directory corrente
// Costruisce percorso assoluto dello splitter
TFilename cmd;
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
xvt_fsys_convert_str_to_dir((char*)archive.path(), &tmpdir);
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);
chunk_size -= ::fsize(sommario);
const long minsize = 720*1024L;
if (chunk_size < minsize)
chunk_size = minsize;
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;
src.ext("");
src << d;
src.ext("zip");
if (::fexist(src))
disks = d;
else
break;
}
FILE* inf = fopen(archive, "rb");
if (inf == NULL)
return 0;
TString msg; msg << "Separazione del file " << archive << "...";
TProgind pi(tot_size, msg, FALSE, TRUE);
byte* buff = new byte[chunk_size];
for (int d = 1; ; d++)
{
const size_t r = fread(buff, 1, chunk_size, inf);
pi.addstatus(r);
if (r > 0)
{
TFilename chunk(archive);
chunk.ext(""); chunk << d; chunk.ext("zip");
FILE* ouf = fopen(chunk, "wb");
fwrite(buff, r, 1, ouf);
fclose(ouf);
disks = d;
}
else
break;
}
delete buff;
fclose(inf);
::remove(archive);
}
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
return TRUE;
}
zip_file(archivio, filelist); // Compatto gli eventuali ultimi rimasti
::remove(filelist); // elimina il file lista-file
msg.cut(0);
msg << "Separazione del file " << archivio << " ...";
TIndwin pi(60, msg, FALSE, FALSE);
const long size = get_long(F_DISKSIZE) * 1024;
const size_t size = get_long(F_DISKSIZE) * 1024;
const int disks = split_file(archivio, size);
// 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 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++)
{
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
<< " del modulo " << main_module << " ...";
pi.set_text(msg);
pi.addstatus(1);
do_events();
bool ok = TRUE;

View File

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

View File

@ -1,3 +1,4 @@
#include <agasys.h>
#include <applicat.h>
#include <defmask.h>
#include <dongle.h>
@ -8,8 +9,6 @@
#include <sheet.h>
#include <utility.h>
#include <agasys.h>
#include "ba1.h"
#include "ba1500.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)
// (installazione da directory con .zip)
TInstall_ini *ini;
ini = new TInstall_ini(ininame);
TInstall_ini* ini = new TInstall_ini(ininame);
ini->write_protect();
lastpatch=ini->get_int("Patch",module);
lastrelease=ini->get("Versione",module);
@ -728,46 +726,48 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
msg << " del modulo '" << module << "' in corso...";
TProgind pi(dischi, msg, FALSE, TRUE);
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++)
{
cmdline = path;
cmdline.add(module);
TFilename chunk = path;
chunk.add(module);
if (patchlevel > 0)
{
TString16 name;
name.format("%04da", patchlevel);
cmdline << name;
chunk << name;
}
else
cmdline << "inst";
cmdline << d << ".zip";
chunk << "inst";
chunk << d << ".zip";
if (internet && !cmdline.exist())
if (internet && !chunk.exist())
{
TFilename remote = cmdline.name();
TFilename remote = chunk.name();
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);
}
ok = cmdline.exist();
if (!ok && !internet) // Chiedi cambio disco (sole se non sta scaricando da internet)
ok = chunk.exist();
if (!ok && !internet) // Chiedi cambio disco (solo se non sta scaricando da internet)
{
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;
ok = fexist(cmdline);
ok = chunk.exist();
if (!ok)
message_box("Impossibile trovare il file '%s'",(const char*)cmdline);
message_box("Impossibile trovare il file '%s'",(const char*)chunk);
}
}
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))
{
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)
{
TWait_cursor hourglass;
#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
fcopy(chunk, totti, d > 1); // Somma il chunk al totale
pi.addstatus(1);
}
}
aga_unzip(totti, tempdir); // Scompatta il file totale
::remove(totti);
// ***************
// trasferimento
if (ok)
{
// si assicura che sia leggibile il .ini del primo disco
do {
cmdline = path;
do
{
TFilename cmdline = path;
cmdline.add(ininame.name());
ok = fexist(cmdline);
ok = cmdline.exist();
if (!ok)
{
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;
exdir = firm2dir(-1); exdir.add(dst.name()); exdir.ext("");
TString cmdline;
cmdline << "unzip.pif -o " << dst << " -d " << exdir;
TExternal_app app(cmdline);
app.run(FALSE, FALSE, FALSE, FALSE);
aga_unzip(dst, exdir);
}
}
}

View File

@ -125,7 +125,6 @@ bool TQuery_application::create()
{
open_files(LF_SOCI, LF_ANAG, LF_NDITTE,0);
_mask = new TMask("ba5000");
dispatch_e_menu(MENU_ITEM(1));
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;
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
_rel_fis = new TRelation(LF_ANAG);

View File

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

View File

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

View File

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

View File

@ -1,213 +1,16 @@
#define STRICT
#define XVT_INCL_NATIVE
#include <xvt.h>
#include <applicat.h>
#include <execp.h>
#include <filetext.h>
#include <isam.h>
#include "ce0.h"
#include <anagr.h>
#include <anafis.h>
#include <anagiu.h>
#include <nditte.h>
#include <unloc.h>
class TSESA_anagr : public TSkeleton_application
int main(int argc,char** argv)
{
protected:
virtual void main_loop();
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++)
{
if (isdigit(*c))
{
*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)
const int r = (argc > 1) ? (argv[1][1]-'0') : 0;
switch (r)
{
error_box("Errore %d nell'esecuzione del programma %s",
err, (const char*)cmdline);
return;
case 3: ce0400(argc,argv); break;
case 4: ce0500(argc,argv); break;
case 8: ce0900(argc,argv); break;
default: ce0100(argc,argv); break;
}
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;
}

View File

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

View File

@ -81,7 +81,7 @@ bool TConversione_ce_mask::already_converted(long ditta)
TFilename ditce = prefix().get_studio();
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())
{
long d = oldfile.get_long("CACDD");
@ -289,7 +289,7 @@ int TConversione_cespiti::conv_file(const TFilename& ofname, int nflogicnum)
d.eod() = 0L;
d.put(nflogicnum);
TExternisamfile oldfile(ofname, FALSE, FALSE);
TExternisamfile oldfile(ofname,(bool) FALSE,(bool) FALSE);
TLocalisamfile* newfile = NULL;
const TRectype& oldrec = oldfile.curr();
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)
{
long oldditta = -1, ditta = -1;
TExternisamfile oldfile(ofname, FALSE, FALSE);
TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TTable* newfile = NULL;
TConfig config("ce0900.ini", tab);
@ -672,7 +672,7 @@ int TConversione_cespiti::conv_inifile(const TFilename& ofname, const char* ofpa
int err = f.pack();
if (err == NOERR)
{
TExternisamfile oldfile(ofname, FALSE, FALSE);
TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TLocalisamfile* newfile = new TLocalisamfile(nflogicnum);
TConfig config("ce0900.ini", (const char*) ofpar);
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 ditta;
TExternisamfile oldfile(ofname, FALSE, FALSE);
TExternisamfile oldfile(ofname,(bool)FALSE,(bool)FALSE);
TConfig newconfig(which_config, "ce");
TConfig config("ce0900.ini", (const char*) ofpar);
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
{
TString _str;
protected:
void add_num(const TRectype& rec, const char* name, char segno);
@ -141,9 +143,16 @@ public:
void add_rec(const TRectype& rec, char segno = '+');
TTotalizer& operator+=(TTotalizer& tot);
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)
{
real num = rec.get(name);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -158,7 +158,7 @@ BEGIN
FLAGS "D"
END
STRING O_NATURA_TRANS 1
STRING O_NATURA_TRANS 1
BEGIN
PROMPT 2 7 "Natura transazione "
FLAGS "DU"
@ -170,13 +170,13 @@ BEGIN
FLAGS "DZ"
END
NUMBER O_NOMENCLATURA2 2
NUMBER O_NOMENCLATURA2 2
BEGIN
PROMPT 58 7 ""
FLAGS "DZ"
END
NUMBER O_NOMENCLATURA3 2
NUMBER O_NOMENCLATURA3 2
BEGIN
PROMPT 63 7 ""
FLAGS "DZ"
@ -302,9 +302,9 @@ STRING F_PARTITA_IVA 12
BEGIN
PROMPT 51 13 "Partita IVA "
USE LF_CLIFO KEY 5
INPUT TIPOCF O_TIPO_CF SELECT
INPUT STATOPAIV O_STATO
INPUT PAIV O_PARTITA_IVA
INPUT TIPOCF F_TIPO_CF SELECT
INPUT STATOPAIV F_STATO
INPUT PAIV F_PARTITA_IVA
DISPLAY "Stato" STATOPAIV
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Codice" CODCF
@ -324,13 +324,13 @@ BEGIN
FLAGS "D"
END
STRING F_NATURA_TRANS 1
STRING F_NATURA_TRANS 1
BEGIN
PROMPT 2 15 "Natura transazione "
FLAGS "U"
USE %INT
INPUT CODTAB F_NATURA_TRANS
DISPLAY "Codice" CODTAB
INPUT CODTAB F_NATURA_TRANS
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT F_NATURA_TRANS CODTAB
FIELD NATURA
@ -357,7 +357,7 @@ BEGIN
WARNING "Nomenclatura combinata assente"
END
NUMBER F_NOMENCLATURA2 2
NUMBER F_NOMENCLATURA2 2
BEGIN
PROMPT 58 15 ""
FLAGS "Z"
@ -368,7 +368,7 @@ BEGIN
WARNING "Nomenclatura combinata assente"
END
NUMBER F_NOMENCLATURA3 2
NUMBER F_NOMENCLATURA3 2
BEGIN
PROMPT 63 15 ""
FLAGS "Z"
@ -420,4 +420,4 @@ END
ENDPAGE
ENDMASK
ENDMASK

View File

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

View File

@ -286,7 +286,11 @@ long TApplication::handler(WINDOW win, EVENT* ep)
{
on_firm_change();
on_config_change();
#ifdef XVAGA
return 1;
#else
do_events();
#endif
}
else
stop_run();
@ -516,7 +520,7 @@ const char* TApplication::get_module_name() const
}
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);
}
}
@ -527,18 +531,10 @@ const char* TApplication::get_module_name() const
void TApplication::set_perms()
{
#ifndef _DEMO_
_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);
_user_aut.set(0, TRUE); // Attiva la BASE
TString& utente = user();
if (utente.empty() && god_mode("PrassiForever"))
if (utente.empty() && god_mode("AdminForever"))
utente = ::dongle().administrator();
if (utente.not_empty())
@ -674,7 +670,7 @@ void TApplication::run(
cfg.about_box_ID = 0;
cfg.base_appl_name = (char*)base.name();
cfg.appl_name = (char*)title;
cfg.taskwin_title = "PR.A.S.S.I.";
cfg.taskwin_title = "CAMPO";
set_xvt_hooks();
@ -684,7 +680,7 @@ void TApplication::run(
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, '.');
year = vep.get_int(1);
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();
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);
return valid;
}
@ -711,9 +707,8 @@ void TApplication::about() const
}
else
{
#include <prassi.ver>
message_box("Versione %s\nProgramma %s\nLibreria del %s\nN.ro di serie %u-%s",
VERSION, (const char*)n.name(), __DATE__, ser_no, INTERNAL_VERSION);
message_box("Versione 2.00\nProgramma %s\nLibreria del %s\nNumero di serie %u\nUtente %s",
(const char*)n.name(), __DATE__, ser_no, (const char*)user());
}
}
@ -752,32 +747,18 @@ void TApplication::enable_menu_item(
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 ok = TRUE;
#ifdef DBG
// Ignora i bit di attivazione della chiave programmatori (sempre attivati)
if (get_serial_number() == 0)
checktype = CHK_USER;
#endif
#ifndef _DEMO_
// Testa bit di attivazione della chiave
// Ignora i bit di attivazione della chiave programmatori (sempre attivati)
if (get_serial_number() == 0)
checktype = CHK_USER;
if (checktype == CHK_ALL || checktype == CHK_DONGLE)
ok = _dongle_aut[module];
ok = dongle().active(module);
#endif
// Testa bit di attivazione dell'utente
@ -1101,4 +1082,4 @@ bool TSkeleton_application::menu(MENU_TAG tag)
if (tag == BAR_ITEM(1))
main_loop();
return FALSE;
}
}

View File

@ -43,8 +43,6 @@ class TApplication
const char** _argv_;
// @cmember:(INTERNAL) Ora di inizio utilizzo del programma (per versioni DEMO)
time_t _start_time;
// @cmember:(INTERNAL) Array di autorizzazione concessa della chiavi
TBit_array _dongle_aut;
// @cmember:(INTERNAL) Array di autorizzazione concessa all'utente
TBit_array _user_aut;
// @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
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???
bool add_menu(TString_array& menu, MENU_TAG id = 0);
// @cmember Elimina il menu' <p id> (Ritorna se ce l'ha fatta???)

View File

@ -1,14 +1,9 @@
#include <direct.h>
#if XVT_OS == XVT_OS_WIN
#define XVT_INCL_NATIVE
#define STRICT
#endif
#include <agasys.h>
#include <archives.h>
#include <config.h>
#include <defmask.h>
#include <execp.h>
#include <isam.h>
#include <mask.h>
#include <os_dep.h>
@ -17,101 +12,10 @@
#include <urldefid.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
///////////////////////////////////////////////////////////
// @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
{
fl.destroy();
@ -151,14 +55,6 @@ int TArchive::build_backup_list(int mode, long firm, TString_array& fl) const
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();
}
@ -223,13 +119,6 @@ int TArchive::build_restore_list(
else
continue;
}
if (name.compare("cesp", -1, TRUE) == 0)
{
if (mode & 0x10)
mode &= ~0x10;
else
continue;
}
TFilename fn(firm2dir(-1)); // __ptprf
fn.add(name);
@ -283,438 +172,6 @@ bool TArchive::write_ini(TFilename& work, int disk, long tot, const char* desc,
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
{
TFilename dest(dir);
@ -758,6 +215,50 @@ bool TArchive::move_file(const TFilename& file, const char* dir) const
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(
const char* filename, // @parm Nome del file da spezzare
char floppy, // @parm Floppy su cui scaricare il file
@ -783,33 +284,23 @@ bool TArchive::fsplit_zip(
const long minsize = 360*1024L;
if (size < minsize)
size = minsize;
// Costruisce percorso dello splitter
TFilename cmd("zipsplit.pif");
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);
if (!split_file(archive, size))
return error_box("Errore durante lo splitting del file %s", (const char*)archive);
size = ::fsize(archive);
::remove(archive);
for (int d = 1; ; d++)
for (int d = 0; ; d++)
{
TString16 ext; ext.format("z%02d", d);
TFilename src(archive);
src.ext("");
src << d;
src.ext("zip");
src.ext(ext);
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();
}
@ -819,7 +310,7 @@ bool TArchive::fsplit_zip(
ini.add("backup.ini");
TConfig c(ini, archive.name());
c.set("Size", size);
c.set("Disk", d);
c.set("Disk", d+1);
c.set("Description", desc);
c.set("Date", TDate(TODAY).string());
}
@ -833,40 +324,6 @@ bool TArchive::fsplit_zip(
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
// @mfunc Effettua il backup della directory
@ -887,12 +344,8 @@ bool TArchive::zip(
const TString16 old(prefix().name());
prefix().set(NULL);
const TFilename workdir(dir);
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";
const TFilename workdir = dir;
const TString name = workdir.name();
// Nome del file compresso
TFilename work; work.tempdir(); work.add(name); work.ext("zip");
@ -906,32 +359,8 @@ bool TArchive::zip(
FILE* flist = fopen(ZIPLIST, "w");
fprintf(flist, "*.*");
fclose(flist);
copy_zipper(workdir);
// 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;
bool ok = ::aga_zip_filelist(ZIPLIST, work);
if (ok)
ok = fsplit_zip(work, floppy, desc);
else
@ -978,8 +407,6 @@ bool TArchive::unzip(
TFilename output(dir);
output = output.name();
if (output.compare("com", -1, TRUE) == 0)
output = "datcom";
output.ext("zip");
if (!yesno_box("Attenzione l'archivio %c:%s verra' ripristinato\n"
@ -1010,16 +437,22 @@ bool TArchive::unzip(
cfg << floppy << ':';
cfg.add("backup.ini");
TConfig c(cfg, output.name());
long total_size = c.get_long("Size");
long read_size = 0;
for (int d = 1; read_size < total_size; d++)
const unsigned long total_size = c.get_long("Size");
unsigned long read_size = 0;
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;
src << floppy << ':' << SLASH << output.name();
src.ext("");
src << d << ".zip";
src.ext(ext);
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())
{
if (!yesno_box("Impossibile aprire il file %s:\nSi desidera ritentare?",
@ -1029,21 +462,17 @@ bool TArchive::unzip(
if (src.exist())
{
TFilename cmd;
cmd << "unzip.pif -o " << src << " -d " << work;
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;
}
fcopy(src, restored, d > 0);
read_size = ::fsize(restored);
}
else
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);
@ -1064,8 +493,6 @@ bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
return ok;
}
#if XVT_OS == XVT_OS_WIN32
bool TArchive::backup(const char* dir, char floppy, const char* desc, bool)
{
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);
}
#endif

View File

@ -1,10 +1,6 @@
#ifndef __ARCHIVES_H
#define __ARCHIVES_H
#ifndef __STDIO_H
#include <stdio.h>
#endif
#ifndef __STRINGS_H
#include <strings.h>
#endif
@ -13,8 +9,6 @@
// TArchive
///////////////////////////////////////////////////////////
class ALArchive;
// @doc EXTERNAL
// @class TArchive | Classe per effettuare compressione e archiviazione di dati
@ -26,32 +20,17 @@ class TArchive : public TObject
// @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
protected:
// @cmember Ritorna la dimensione del file <p f>
long fsize(FILE* f) const;
// @cmember Sposta il file nella directory dir
bool move_file(const TFilename& file, const char* dir) const;
// @cmember Spezza il file.zip in modo da farlo stare sul dischetto
// @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
bool fsplit_zip(const char* filename, char floppy, const char* desc = "") const;
// @cmember Ricostruisce la lista dei file contenuti nel backup
@ -62,10 +41,6 @@ protected:
// @cmember Costruisce la lista delle directory da scompattare
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
public:
@ -79,11 +54,6 @@ public:
// @cmember Effettua il restore della ditta
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
bool zip(const char* dir, char floppy, const char* desc);
// @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;
TAG4INFO tags[MaxKeys+1];
char s[82];
char s[256];
INDEX4 * w = NULL;
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 ;
handle=DB_open(filename,1,0); /* Exclusive mode open */
if (handle > -1)
if (handle >= 0)
{
int i;
char *ff = find_slash_backslash((char *)filename);

View File

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

View File

@ -11,7 +11,7 @@
#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_DARK_COLOR = COLOR_GRAY;
COLOR BTN_BACK_COLOR = COLOR_LTGRAY;
@ -24,7 +24,7 @@ COLOR DISABLED_COLOR = COLOR_DKGRAY;
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
COLOR FOCUS_COLOR = NORMAL_COLOR;
COLOR FOCUS_BACK_COLOR = COLOR_YELLOW;
bool CAMPI_SCAVATI = FALSE;
bool CAMPI_SCAVATI = TRUE;
bool AUTOSELECT = FALSE;
#ifndef STX_DATA
@ -430,7 +430,7 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
{
height = -top;
top += max_rct.bottom;
y = 22 - height/ROWY;
y = (max_rct.bottom-height)/ROWY; // 22 - height/ROWY;
}
else
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)
{
width = max_rct.right - left + dx * CHARX;
#ifndef XVAGA
if (!tag && dx == 0 && y > 0) // Aggiusta toolbar
top++;
#endif
}
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;
case a_xvt_post:
if (notify_xvt)
if (notify_xvt && xiev->v.xvte.type != 0)
{
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);
if (xiev->v.xvte.type == E_MOUSE_UP)
_button_blocked = FALSE;

View File

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

View File

@ -30,15 +30,10 @@
#ifndef _DEMO_
#define PANDLL
extern "C"
{
#include "skeytsr.h"
}
#include "skeylink.h"
HIDDEN KEY_NET* _eutron_key = NULL;
#pragma pack(1)
#pragma pack(push, 1)
struct TEutronHeader
{
@ -71,6 +66,8 @@ struct TEutronFooter
TEutronFooter();
};
#pragma pack(pop)
TEutronFooter::TEutronFooter()
{
const int s = sizeof(TEutronFooter);
@ -100,8 +97,6 @@ bool TEutronFooter::valid()
return _checksum == checksum(FALSE);
}
#pragma pack()
#endif // _DEMO_
///////////////////////////////////////////////////////////
@ -186,9 +181,9 @@ const TString& TDongle::administrator(TString* pwd)
if (_admin.empty())
{
#ifdef XVAGA
_admin = "PRASSI";
#else
_admin = "ADMIN";
#else
_admin = "PRASSI";
#endif
}
else
@ -222,7 +217,7 @@ void TDongle::garble(word* data) const
break;
case _dongle_eutron:
if (_eutron_key)
{
{
_eutron_key->net_command = NET_KEY_ACCESS;
_eutron_key->command = SCRAMBLING_MODE;
memcpy(_eutron_key->data, data, 8);
@ -406,11 +401,13 @@ bool TDongle::hardlock_login(bool test_all_keys)
bool TDongle::eutron_login(bool test_all_keys)
{
bool ok = FALSE;
if (_eutron_key == NULL)
_eutron_key = new KEY_NET;
memset(_eutron_key, 0, sizeof(KEY_NET));
_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",
"AGA.CAMPO", "25EBAI" };
@ -663,15 +660,15 @@ bool TDongle::read_words(word reg, word len, word* ud) const
if (_eutron_key)
{
_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* number = (word*)(&_eutron_key->data[2]);
while (len > 0)
{
*pointer = reg;
*number = (len <= 16) ? len : 16;
smartlink(_eutron_key);
ok = _eutron_key->status == ST_OK;
if (ok)
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)
{
_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* number = (word*)(&_eutron_key->data[2]);
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
{
main_app().begin_wait();
if (relation())
{
out << *relation() << "\nEND" << endl;
@ -4272,8 +4270,6 @@ void TForm::print_on(ostream& out) const
print_section(out, 'F');
out << "END" << endl;
main_app().end_wait();
}
@ -4477,8 +4473,6 @@ void TForm::read(
_editlevel= lev;
_desc= desc;
main_app().begin_wait();
if (_code.not_empty())
{
// extract base form name
@ -4572,8 +4566,6 @@ void TForm::read(
_fontsize = pr.get_char_size();
}
set_fink_mode(TRUE);
main_app().end_wait();
}
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
{
// WinManager.free_handle();
XVT_IMAGE i = xvt_image_read_bmp((char*)n);
XVT_IMAGE i = xvt_image_read((char*)n);
// WinManager.lock_handle();
if (i != NULL) set(i);

View File

@ -4,32 +4,25 @@
#include <stdlib.h>
#include <sys/stat.h>
#include <codeb.h>
#define __ISAM_CPP
#include <expr.h>
#include <execp.h>
#include <progind.h>
#include <codeb.h>
#include <config.h>
#include <execp.h>
#include <expr.h>
#include <extcdecl.h>
#include <mailbox.h>
#include <postman.h>
#include <prefix.h>
#include <progind.h>
#include <relation.h>
#include <scanner.h>
#include <utility.h>
#include <memo.h>
#include <varrec.h>
#include <codeb.h>
#include <lffiles.h>
#include <tabutil.h>
#ifdef DBG
#define JOURNAL
#endif
#ifdef JOURNAL
#include <journal.h>
@ -1730,7 +1723,7 @@ TExternisamfile::~TExternisamfile()
void TExternisamfile::init(const char* name, bool exclusive, bool index)
{
_name = name; // qui
_name = name;
_name.ext("dbf");
// Espande il nome!
@ -2726,7 +2719,7 @@ void TMemo_data::copy(const TMemo_data& m)
void TRectype::init(int 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);
@ -2747,7 +2740,7 @@ TRectype::TRectype(int logicnum)
: _memo_data(NULL)
{
init(logicnum); //qui
init(logicnum);
}
@ -2763,7 +2756,7 @@ TRectype::TRectype(const TRectype& r)
_memo_data(NULL)
{
init(r._logicnum); //qui
init(r._logicnum);
if (r._memo_data)
{
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( );
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);
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 ) )
{
if (_memo_data->is_dirty(i))
@ -3090,9 +3083,9 @@ const TString& TRectype::get(const char* fieldname) const
if (orig)
{
TCodeb_handle cb_handle = prefix().get_handle(orig);
CHECKD(cb_handle >= 0, "Can't read memo from file ", orig); //qui
DB_go(cb_handle, _memo_data->recno()); //qui
_memo_data->add(DB_memoptr(orig, fieldname), index);
CHECKD(cb_handle >= 0, "Can't read memo from file ", orig);
DB_go(cb_handle, _memo_data->recno());
_memo_data->add(DB_memoptr(cb_handle, fieldname), index);
}
else
NFCHECK("Valid memo recno with null memo file");

View File

@ -618,11 +618,11 @@ public:
int update(const TTrec& newrec, bool vis = TRUE);
// @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
int packfile(bool vis = TRUE, bool zap = FALSE);
int packfile(bool vis = FALSE, bool zap = FALSE);
// @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
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
{ return owner().dirty(); }
// @cmember Permette di indicare se e' stata modificata una cella dello spreadsheet
void set_dirty(bool spork = TRUE)
{ owner().set_dirty(spork); _row_dirty = spork; _cell_dirty = spork;}
void set_dirty(byte spork = TRUE)
{ owner().set_dirty(spork); _row_dirty = _cell_dirty = spork!=0; }
// @cmember Ritorna il valore della variabile active
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 fax = FALSE;
#ifndef XVAGA
if (_printertype == winprinter)
{
const char* name = (const char*)((TPrinter*)this)->get_printrcd() + 4;
fax = strncmp(name, "FaxMan", 6) == 0;
}
#endif
return fax;
}
@ -1062,67 +1064,54 @@ void TPrinter::read_configuration(
_fontname = iniptr->get("Font", NULL, -1, XVT_FFN_FIXED); // Nome 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
_isgraphics = iniptr->get_bool("Graphic", NULL, -1, FALSE); // Grafica attiva
_isgraphics = iniptr->get_bool("Graphic", NULL, -1, TRUE); // Grafica attiva
#ifdef XVAGA
bool read_rcd = TRUE;
bool read_rcd = FALSE;
const TString& host = iniptr->get("Host");
if (host.not_empty())
{
char hostname[32];
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"
"si desidera applicarle ugualmente alla stazione %s?", (const char*)host, hostname);
}
}
if (read_rcd)
#endif
if (iniptr->exist("rcd", 0))
if (read_rcd)
{
int size, i = 0;
byte* rcd = (byte*)get_printrcd(&size);
if (_print_rcd != NULL)
xvt_print_destroy(_print_rcd);
_print_rcd = xvt_print_create_by_name(&_print_rcd_size, _prname);
TToken_string s(256);
if (_print_rcd != NULL && iniptr->exist("rcd", 0))
{
TToken_string s(256);
int i = 0;
for (int index = 0; ; index++)
{
s = iniptr->get("rcd", NULL, index);
if (s.not_empty())
{
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);
}
else
break;
}
}
#ifdef XVAGA
// Devo leggere tutti numeri, anche se sono di pìù di quelli attuali!
for (int index = 0; ; index++)
{
s = iniptr->get("rcd", NULL, index);
if (s.not_empty())
{
for (const char* n = s.get(0); n; n = s.get())
rcd[i++] = (byte)atoi(n);
}
else
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;
}
#endif
if (xvt_print_is_valid(_print_rcd))
{
init_formlen();
}
else
if (!xvt_print_is_valid(get_printrcd()))
{
error_box("Attenzione: la stampante corrente non e' valida.\n"
"Si prega di selezionare e registrare una nuova stampante.");
set_printrcd();
}
}
init_formlen();
_prname = (const char*)get_printrcd() + 4; // Deep hacking
}
delete iniptr; iniptr = NULL;
@ -1130,7 +1119,7 @@ void TPrinter::read_configuration(
if (_printerfile.empty())
{
_printerfile.tempdir();
_printerfile << '/';
_printerfile << SLASH;
}
if (_config == "Printer" || _printertype == winprinter)
@ -1171,16 +1160,16 @@ void TPrinter::save_configuration()
prini.set("Graphic", _isgraphics ? "X" : ""); // Grafica attiva
#ifdef XVAGA
char hostname[32];
char hostname[80];
aga_get_host_name(hostname, sizeof(hostname));
prini.set("Host", hostname);
prini.set("User", user());
#endif
int n = 0, index = 0;
int n = 0, index = 0;
TToken_string val(256);
int rcdsize;
int rcdsize;
byte* rcd = (byte*)get_printrcd(&rcdsize);
for (int i = 0; i < rcdsize; i++)
@ -2008,7 +1997,6 @@ int TPrinter::calc_font_size(int columns) const
return fd._size;
}
int TPrinter::calc_num_cols() const
{
int numcols;

View File

@ -105,11 +105,13 @@ void TPrintwin::paint_background(long j)
case 'i':
id = (byte)(rwd[cnt++])-1; // Numero immagine
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)
y2 = (byte)(rwd[cnt++]); // Altezza destinazione (in caratteri)
if (id >= 0)
{
#ifndef XVAGA
// Ai tempi non veniva in mente un modo peggiore
const short width = LEN_SPACES(win(), x2); // Larghezza in pixel
TImage* i = (TImage*)_images.objptr(id);
@ -119,7 +121,8 @@ void TPrintwin::paint_background(long j)
const TImage src(a.row(id));
if (src.ok())
{
i = new TImage(src, width, _chary*y2);
// memorizzo l'immagine in risoluzione di stampa! Visto che ho RAM da buttare.
i = new TImage(src, width, _chary*y2);
_images.add(i, id);
}
}
@ -137,6 +140,28 @@ void TPrintwin::paint_background(long j)
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;
case 'W':
@ -205,7 +230,6 @@ void TPrintwin::paint_row(long j)
if (_chary > 1)
{
_txt.read_line(j);
int pos = 0;
@ -221,7 +245,7 @@ void TPrintwin::paint_row(long j)
if (bg != fg) // Testo vero
{
set_color(fg, bg);
set_font(printer().fontname(), st, _char_size);
set_font(printer().fontname(), st, _char_size);
const char* beg = cp;
while (*beg)
@ -321,16 +345,20 @@ bool TPrintwin::do_print()
int page = 0;
bool ok = TRUE;
RCT* rct;
while (ok && !_aborted)
{
_aborted = xvt_print_open_page(_printrcd) == 0;
while (!_aborted && ok
&& (rct = xvt_print_get_next_band()) != NULL)
while (!_aborted && ok)
{
set_font(XVT_FFN_SYSTEM, XVT_FS_NONE, _char_size);
set_font(printer().fontname(), XVT_FS_NONE, _char_size);
ok = print_band(page, *rct);
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);
LEN_SPACES(win(), -1); // Resetta bene le dimensioni font
ok = print_band(page, *rct);
}
}
_aborted |= (xvt_print_close_page(_printrcd) == 0);
page++;

View File

@ -57,7 +57,7 @@ TIndwin::TIndwin(long max, const char* txt, bool cancel, bool bar, int div)
}
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();
do_events();
}

View File

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

View File

@ -140,8 +140,8 @@ long double abs(long double a) ;
#endif
#ifndef GMDOTH
#include <gmsys1.h>
#include <gfd.h>
#include "../gfm/gmsys1.h"
#include "../gfm/gfd.h"
#endif
// @doc EXTERNAL
@ -198,12 +198,12 @@ public:
DEC* ptr() const
{ return (DEC*)&_dec; }
// @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
// 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
char* string(const char* picture) const;
const char* string(const char* picture) const;
// @cmember Ritorna la precisione del reale (numero di decimali)
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
{
// TString* s = new TString(size());
// s->set(_str);
TString* s = new TString(_str);
return s;
}

View File

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

View File

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

View File

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

View File

@ -502,8 +502,9 @@ bool TSchedaPercipienti::pag_select (TMask_field& f, KEY k)
else
{
if (mesec != datapag.month() || annoc != datapag.year())
{
// TBI inserire un'altra riga di versamento (?)
;
}
}
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)
{
TLocalisamfile anag (LF_ANAG, FALSE);
TLocalisamfile comuni (LF_COMUNI, FALSE);
TLocalisamfile anag (LF_ANAG);
TLocalisamfile comuni (LF_COMUNI);
long codanagr;
char tipoa;
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 ((key == K_TAB) && f.shown)
if ((key == K_TAB) && f.shown())
{
const long coddip = atol(f.get());
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.set_dirty();
key == K_TAB;
key = K_TAB;
}
if (key == K_TAB && f.focusdirty() ||
@ -943,7 +943,7 @@ bool TQuadroC_E2::ricalcola_imposte_d(TMask_field& f, KEY key)
{
f.reset();
f.set_dirty();
key == K_TAB;
key = K_TAB;
}
if (key == K_TAB && f.focusdirty() ||
@ -991,7 +991,7 @@ bool TQuadroC_E2::ricalcola_imposte_e(TMask_field& f, KEY key)
{
f.reset();
f.set_dirty();
key == K_TAB;
key = K_TAB;
}
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.set_dirty();
key == K_TAB;
key = K_TAB;
}
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.set_dirty();
key == K_TAB;
key = K_TAB;
}
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;
case 3:
m72400(argc,argv); break;
case 4:
stampa_quadro(argc,argv); break;
case 5:
stampa_riepilogo(argc,argv); break;
// case 4: non usate a menu!!
// stampa_quadro(argc,argv); break;
// case 5:
// stampa_riepilogo(argc,argv); break;
default:
break;
}

View File

@ -121,7 +121,7 @@ class TAzzeramento_archivi : public TRelation_application
static void after_reset_BASEBIS(TRectype& rec);
// validazione e azioni su schede percipienti
bool is_resetable(const TRectype& rec);
int is_resetable(const TRectype& rec);
// handler di campi
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)
{
// verifica se la scheda è azzerabile
bool isresetable = app().is_resetable(rec);
int isresetable = app().is_resetable(rec);
// scheda da non azzerare
if (!isresetable)
if (isresetable == 0)
return FALSE;
// scheda da loggare
@ -875,7 +875,7 @@ void TAzzeramento_archivi::after_reset_BASEBIS(TRectype& rec)
// FALSE - la scheda non è azzerabile;
// TRUE - la scheda è azzerabile;
// 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
TLocalisamfile rpag(LF_RPAG);
@ -1078,7 +1078,7 @@ bool TAzzeramento_archivi::F_AZZQUA_hnd(TMask_field& f, KEY k)
}
// funzione principale di lancio applicazione
int Azzeramento_archivi(int argc, char* argv[])
int azzeramento_archivi(int argc, char* argv[])
{
TAzzeramento_archivi a(*argv[2]);
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();
if (ok)
{
rec.tipo_record(' '); // Invalida il record
(*_in_stream) >> rec;
ok = rec.valid();
}
@ -1311,7 +1312,7 @@ bool TTrasferimento770::split(const char* path)
else
error_box("Tipo record non riconosciuto: %c", tipo_rec);
if (magnetic && written > records_per_disk)
if (magnetic && written >= records_per_disk)
break;
}

View File

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

View File

@ -162,14 +162,20 @@ void TFormDylog::transfer_section(TPrint_section& body, TRecordDylog& rec,
TToken_string trc(32, ',');
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++)
{
TForm_item& fi = body.field(f);
str = fi.get(); str.trim();
if (fi.shown() && str.not_empty())
if (fi.shown() && fi.enabled())
{
trc = fi.get_special_value("DYLOG");
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);
for (; err == NOERR; err = next())
for (int err = first(); err == NOERR; err = next())
{
// Inizializza record col primo modulo
TRecordDylog rec(td, cfdich);
@ -601,6 +607,7 @@ bool TTrasferimentoDylog::read(TRecordDylog& rec)
bool ok = _in_stream != NULL && !_in_stream->eof();
if (ok)
{
rec.tipo_record(NULL); // Invalida il record
(*_in_stream) >> rec;
ok = rec.valid();
}
@ -623,7 +630,6 @@ bool TTrasferimentoDylog::split(const char* path)
{
close();
long totale[32]; memset(totale, 0, sizeof(totale));
long records = 0;
TRecordDylog rec;
@ -678,11 +684,7 @@ bool TTrasferimentoDylog::split(const char* path)
}
}
// Compila record di testata
// Scrive record testata
// Azzera totali
memset(totale, 0, sizeof(totale));
long written = 0;
while (read(rec))
@ -691,12 +693,9 @@ bool TTrasferimentoDylog::split(const char* path)
written++;
pi.addstatus(1);
if (magnetic && written > records_per_disk)
if (magnetic && written >= records_per_disk)
break;
}
// Compila record di coda
// Scrive record di coda
}
return TRUE;
}

View File

@ -5,7 +5,7 @@ Module = 0
Item_01 = "Modello 740", "740 -t -cCONF740.FPW", ""
Item_02 = "Modello 750", "750 -t -cCONF750.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_06 = "Gestione ICI", "gici -t /cPRAWIN.INI", ""
Item_06 = "Gestione ICI", "gici -t /cCAMPO.INI", ""

View File

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

View File

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

View File

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

View File

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

View File

@ -147,7 +147,7 @@ BEGIN
FIELD 42->QLSERIE
END
NUMERO 9 15
VALUTA 9 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@cRit. effettuate" "Rit. effettuate"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
@ -158,7 +158,7 @@ BEGIN
PICTURE "###.###.###.###^^^"
END
NUMERO 10 15
VALUTA 10 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@cImp. Versato" "Imp. Versato"
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
qnr.zero();
qnr.put("CODDITTA",codditta);
qnr.read()==NOERR;
qnr.read() = NOERR;
ditta=qnr.get_long("CODDITTA");
if (ditta!=codditta) return 0;
@ -493,7 +493,7 @@ int TRigheQT::fill(const long codditta,TLocalisamfile& qt)
_data.destroy();
qt.zero();
qt.put("CODDITTA",codditta);
qt.read()==NOERR;
qt.read() = NOERR;
ditta=qt.get_long("CODDITTA");
if (ditta!=codditta) return 0;
@ -541,7 +541,7 @@ int TRighePS::fill(const long codditta,TLocalisamfile& ps)
_data.destroy();
ps.zero();
ps.put("CODDITTA",codditta);
ps.read()==NOERR;
ps.read() = NOERR;
ditta=ps.get_long("CODDITTA");
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 long fis = riga.get_long(2);
const long nofis = riga.get_long(3);
const bool LastFis = (bool)riga.get_int(4);
const bool LastNoFis = (bool)riga.get_int(5);
const bool LastFis = riga.get_int(4) != 0;
const bool LastNoFis = riga.get_int(5) != 0;
// I gruppi dich-estinti hanno totali comuni
// 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 long fis = riga.get_long(2);
const long nofis = riga.get_long(3);
const bool LastFis = (bool)riga.get_int(4);
const bool LastNoFis = (bool)riga.get_int(5);
const bool LastFis = riga.get_int(4) != 0;
const bool LastNoFis = riga.get_int(5) != 0;
// I gruppi dich-estinti hanno totali comuni
// 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];
cur.setregion(filter, filter);
ok |= cur.items() > 0;
ok |= (cur.items() > 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 (indice.items() > 0) // Usa indice alternativo
stampero_ultimo &= pos == indice.items()-1;
stampero_ultimo &= (pos == indice.items()-1);
else // Usa indice del cursore
stampero_ultimo &= cur.pos() == cur.items()-1;
stampero_ultimo &= (cur.pos() == cur.items()-1);
}
pr.formlen(dic_form_len());

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
[PRASSIOR_000]
[ORMENU_000]
Caption = "Ordini"
Picture = <or01.bmp>
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 <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 <mainmenu.url>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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