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