Patch level : 2.0 468

Files correlati     : cg4.exe cg4200a.msk
Ricompilazione Demo : [ ]
Commento            :

AO20022
Se lancio una stampa di prova e faccio Fine per uscire dalla Stampa Registri
mi restituisce un errore di cg4.exe. Questo avviene sia che ci siano o meno
dei dati caricati sui registri.

AO20023
Una volta lanciata la stampa di prova a video, se faccio Stampa non stampa
nulla e rimane ancora la stampa in anteprima video.

AO20024
Mentre copia gli archivi da una ditta all'altra mi restituisce un "errore
in compattamento dati. File 19: -69", poi "File 26: -69", "File 27: -69",
"File 20: -69"


git-svn-id: svn://10.65.10.50/trunk@11094 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-05-08 14:42:58 +00:00
parent d633e77e34
commit f4d594d35d
2 changed files with 51 additions and 52 deletions

View File

@ -2,7 +2,6 @@
#include <isam.h>
#include <mask.h>
#include <prefix.h>
#include <utility.h>
#include "cg4.h"
#include "cg4200.h"
@ -14,26 +13,25 @@ class TCopia_archivi : public TSkeleton_application
TMask* _msk;
long _default_firm;
protected:
virtual bool create() ;
virtual bool destroy() ;
virtual void main_loop();
public:
bool copyfile(int logicnum, long from, long to);
bool check_comfile(int logicnum);
void clearivd(long to);
void copyivd(long from, long to);
public:
TCopia_archivi() : _msk(NULL) {}
};
bool TCopia_archivi::check_comfile(int logicnum)
{
TDir dir;
dir.get(logicnum, _nolock, _comdir);
if (fexist(dir.filename()))
TDir dir; dir.get(logicnum, _nolock, _comdir);
const TFilename name = dir.filename();
if (name.exist())
return TRUE;
else
return error_box(FR("Non esiste il file sorgente : archivi comuni - %s"), dir.filename());
@ -41,46 +39,47 @@ bool TCopia_archivi::check_comfile(int logicnum)
bool TCopia_archivi::copyfile(int logicnum, long from, long to)
{
TDir dir;
// Controllo che la destinazione non sia un file comune
set_firm(to);
TDir dir;
dir.get(logicnum, _nolock, _nordir, _sysdirop);
if (dir.is_com())
{
dir.get(logicnum);
return error_box(FR("Non posso copiare su un'archivio comune : ditta %ld - archivio %s"), to, dir.filename());
return error_box(FR("Impossibile copiare su un'archivio comune : ditta %ld - archivio %s"), to, dir.filename());
}
if (from > 0) set_firm(from);
// Scarico il file sorgente su un file di testo
if (from > 0)
set_firm(from);
else
prefix().set("com");
TFilename t; t.tempdir(); t << "/tr" << logicnum << ".txt";
if (t.not_empty()) // dummy test to ensure parenthesis
{
TSystemisamfile file(logicnum);
if (file.dump(t) != NOERR)
return error_box(FR("Impossibile leggere i dati da copiare errore n. %d"), file.status());
}
TFilename t; t.tempdir(); t << "/tr" << logicnum;
TSystemisamfile file(logicnum);
if (file.dump(t) != NOERR)
return error_box(FR("Impossibile leggere i dati da copiare errore n. %d"), file.status());
set_firm(to);
TFilename s; s.tempdir(); s << "/sv" << logicnum;
// Scarico il file destinazione su un file di testo
set_firm(to);
TFilename s; s.tempdir(); s << "/sv" << logicnum << ".txt";
TSystemisamfile file(logicnum);
if (file.dump(s) != NOERR)
return error_box(FR("Impossibile salvare i dati originali errore n. %d"), file.status());
// Azzero il file destinazione
file.zap();
dir.get(logicnum, _lock, _nordir, _sysdirop);
dir.eod() = 0L;
dir.put(logicnum, _nordir, _sysdirop);
file.packfile();
file.packindex();
// Carico nel file destinazione il file di testo precedente
if (file.load(t) != NOERR)
{
error_box(FR("Impossibile scrivere i dati errore n. %d. Cerco di ripristinare i dati originali."), file.status());
dir.get(logicnum, _lock, _nordir, _sysdirop);
dir.eod() = 0L;
dir.put(logicnum, _nordir, _sysdirop);
file.packindex();
error_box(FR("Impossibile scrivere i dati errore n. %d. Ripristino dei dati originali."), file.status());
// Ripristino il backup
file.zap();
if (file.load(s))
error_box(FR("Impossibile scrivere i dati originali errore n. %d"), file.status());
error_box(FR("Impossibile ripristinare i dati originali errore n. %d"), file.status());
return FALSE;
}
return TRUE;
@ -173,7 +172,8 @@ bool TCopia_archivi::create()
bool TCopia_archivi::destroy()
{
if (_msk != NULL) delete _msk;
if (_msk != NULL)
delete _msk;
return TSkeleton_application::destroy();
}
@ -207,42 +207,40 @@ void TCopia_archivi::main_loop()
if (ok || (!copy_pcon && !copy_causali && !copy_clifo))
{
TString256 mess(TR("Attenzione \n"));
TString mess;
mess.format(FR("Attenzione! I seguenti archivi della ditta %ld verranno sovrascritti:\n"), to_firm);
int count = 0;
if (copy_pcon)
{
mess << TR("il piano dei conti");
mess << TR("piano dei conti");
count++;
}
if (copy_causali)
{
if (count > 0) mess << ",\n";
mess << TR(" le causali");
if (count > 0) mess << ", ";
mess << TR(" causali");
count++;
}
if (copy_clifo)
{
if (count > 0) mess << ",\n";
mess << TR(" i clienti e fornitori");
if (count > 0) mess << ", ";
mess << TR("clienti e fornitori");
count++;
}
if (copy_ivd)
{
if (count > 0) mess << ",\n";
mess << TR(" la riclassificazione IV direttiva");
if (count > 0) mess << ", ";
mess << TR("riclassificazione IV direttiva");
count++;
}
mess << TR("\n della ditta ") << to_firm;
if (count > 1)
mess << TR(" saranno sovrascritti");
else
mess << TR(" sara' sovrascritto");
mess << TR(". Devo continuare");
if (yesno_box((const char *) mess))
mess << ".\n" ;
TString msg1 = mess; msg1 << TR("Si desidera continuare?");
if (yesno_box(msg1))
{
mess.rtrim(16); mess << TR(" Devo veramente continuare");
if (yesno_box((const char *) mess))
msg1 = mess; msg1 << TR("Si desidera veramente continuare?");
if (yesno_box(msg1))
{
if (copy_pcon)
{
@ -261,7 +259,8 @@ void TCopia_archivi::main_loop()
}
}
}
else error_box(TR("La copia si puo' effettuare solo se non sono stati registrati movimenti"));
else
error_box(TR("La copia si puo' effettuare solo se non sono stati registrati movimenti"));
set_firm(_default_firm);
}
else error_box(FR("Gli archivi della ditta %ld non sono stati ancora generati"),to_firm);

View File

@ -22,7 +22,7 @@ NUMBER F_FROMFIRM 5
BEGIN
PROMPT 4 5 "Ditta "
USE LF_NDITTE KEY 1
CHECKTYPE NORMAL
CHECKTYPE REQUIRED
INPUT CODDITTA F_FROMFIRM
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC