Ultimato collegamento con EasyDoc

git-svn-id: svn://10.65.10.50/trunk@5471 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luciano 1997-10-28 15:21:59 +00:00
parent 1e3e665e63
commit 1e90bd48fb
3 changed files with 84 additions and 21 deletions

View File

@ -39,7 +39,7 @@ public:
TPrimanota_application::TPrimanota_application()
: _rel(NULL), _mode(0), _iva(nessuna_iva), _causale(NULL), _giornale(NULL),
_lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _incasso(NULL)
_lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _incasso(NULL), _EasyDocPath("")
{
memset(_msk, 0, sizeof(_msk));
}

View File

@ -72,7 +72,9 @@ class TPrimanota_application : public TRelation_application
TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili
TAssoc_array _colori; // Colori delle righe
TAssoc_array _colori; // Colori delle righe
TString _EasyDocPath; // Path eseguibile EasyDoc
static bool showpartite_handler(TMask_field& f, KEY k);
static bool speserimb_handler(TMask_field& f, KEY k);
@ -287,8 +289,8 @@ public:
TString_array& pag_rows() { return _pag_rows; }
TImporto get_cgs_imp(int n);
bool easydoc_installed() const;
bool easydoc_connected() const;
bool easydoc_installed();
bool easydoc_connected();
bool run_easydoc(const char* azione) const;
TPrimanota_application();

View File

@ -3,6 +3,7 @@
#include <modaut.h>
#include <utility.h>
#include <varmask.h>
#include <windows.h>
#include "cg2100.h"
#include "cg2102.h"
@ -385,14 +386,32 @@ bool TPrimanota_application::prorata_handler(TMask_field& f, KEY k)
// Gestione EasyDoc
///////////////////////////////////////////////////////////
bool TPrimanota_application::easydoc_installed() const
bool TPrimanota_application::easydoc_installed()
{
bool ok = has_module(AIAUT);
ok &= fexist("C:/EASYDOC/EASYDOC.EXE");
// check autorization
if (!has_module(AIAUT))
return FALSE;
// where is EasyDoc installed?
char szBuf[50];
int entrylen = GetPrivateProfileString("Easydoc", "Path", "", szBuf, sizeof(szBuf), "EasyDoc.ini");
// EasyDoc there isn't
if (!entrylen)
return FALSE;
// paste EasyDoc path
szBuf[entrylen] = '\0';
_EasyDocPath = szBuf;
_EasyDocPath << "EASYDOC.EXE";
// is EasyDoc present?
bool ok = fexist(_EasyDocPath);
return ok;
}
bool TPrimanota_application::easydoc_connected() const
bool TPrimanota_application::easydoc_connected()
{
return easydoc_installed();
}
@ -401,30 +420,72 @@ bool TPrimanota_application::run_easydoc(const char* azione) const
{
const TMask& m = curr_mask();
TString cmdline = "c:/EASYDOC/EASYDOC ";
TString cmdline = _EasyDocPath;
TFilename ininame;
if (azione && *azione)
{
ininame.tempdir(); ininame.add("easydoc.ini");
// linea comando EasyDoc
ininame.tempdir();
ininame.add("easydoc.ini");
cmdline << ' ' << ininame;
// path dei dati della ditta
TFilename dati_dir = get_firm_dir();
// completa path relativo,
// ma che male c'era a registrarlo sempre assoluto??
if (dati_dir[1] != ':')
{
TFilename modulename(argv(0));
dati_dir = modulename.path();
dati_dir.add(get_firm_dir());
}
// rimuove barre e controbarre per dargli un aspetto decente
dati_dir.replace('/','\\');
for (int pos = dati_dir.find("\\\\"); pos != -1; pos = dati_dir.find("\\\\"))
dati_dir[pos] = ' ';
dati_dir.strip_spaces();
TConfig ini(ininame, "EASYDOC");
// nome archivio
TFilename archivio(dati_dir);
archivio.add("easydoc.mdb");
// drive di archiviazione
TString drv_di_arch = dati_dir.mid(0,2);
// directory di archiviazione
TString dir_di_arch = dati_dir.mid(2);
dir_di_arch << '\\';
// prepara sempre sezione "EASYDOC"
TConfig ini(ininame, "EASYDOC");
ini.set("Azione", azione);
TFilename archivio = get_firm_dir(); archivio.add("easydoc.mdb");
ini.set("Archivio", archivio);
ini.set("Cartella", "mov");
ini.set("Campo1", m.get(F_NUMREG));
if (stricmp("Azione", "Scan") == 0 || stricmp("Azione", "Aggiungi") == 0)
ini.set("Cartella", "Movimenti primanota");
ini.set("Campo0", m.get(F_NUMREG));
ini.set("Campo1", m.get(F_DATAREG));
ini.set("Descrizione", m.get(F_DESCR));
// prepara la sezione "DefinizioneDoc1" (se non esiste l'archivio mdb)
if (!fexist(archivio))
{
ini.set("Campo2", m.get(F_DATAREG));
ini.set("Descrizione", m.get(F_DESCR));
}
ini.set_paragraph("DefinizioneDoc1");
ini.set("Archivio", archivio);
ini.set("NomeDoc", "Movimenti primanota");
ini.set("DirDiArchiviazione", dir_di_arch);
ini.set("DriveDiArchiviazione", drv_di_arch);
ini.set("DirDocumento", "eddoc");
ini.set("Campo0", "Numero registrazione");
ini.set("Tipo0", "Numero");
ini.set("Campo1", "Data registrazione");
ini.set("Tipo1", "Data");
}
}
TExternal_app app(cmdline);
bool ok = app.run(FALSE, FALSE) == 0;
TExternal_app app(cmdline);
bool ok = app.run(FALSE, FALSE) == 0;
if (ininame.not_empty())
::remove(ininame);