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:
parent
d633e77e34
commit
f4d594d35d
@ -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);
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user