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() TPrimanota_application::TPrimanota_application()
: _rel(NULL), _mode(0), _iva(nessuna_iva), _causale(NULL), _giornale(NULL), : _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)); memset(_msk, 0, sizeof(_msk));
} }

View File

@ -72,7 +72,9 @@ class TPrimanota_application : public TRelation_application
TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili 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 showpartite_handler(TMask_field& f, KEY k);
static bool speserimb_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; } TString_array& pag_rows() { return _pag_rows; }
TImporto get_cgs_imp(int n); TImporto get_cgs_imp(int n);
bool easydoc_installed() const; bool easydoc_installed();
bool easydoc_connected() const; bool easydoc_connected();
bool run_easydoc(const char* azione) const; bool run_easydoc(const char* azione) const;
TPrimanota_application(); TPrimanota_application();

View File

@ -3,6 +3,7 @@
#include <modaut.h> #include <modaut.h>
#include <utility.h> #include <utility.h>
#include <varmask.h> #include <varmask.h>
#include <windows.h>
#include "cg2100.h" #include "cg2100.h"
#include "cg2102.h" #include "cg2102.h"
@ -385,14 +386,32 @@ bool TPrimanota_application::prorata_handler(TMask_field& f, KEY k)
// Gestione EasyDoc // Gestione EasyDoc
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
bool TPrimanota_application::easydoc_installed() const bool TPrimanota_application::easydoc_installed()
{ {
bool ok = has_module(AIAUT); // check autorization
ok &= fexist("C:/EASYDOC/EASYDOC.EXE"); 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; return ok;
} }
bool TPrimanota_application::easydoc_connected() const bool TPrimanota_application::easydoc_connected()
{ {
return easydoc_installed(); return easydoc_installed();
} }
@ -401,30 +420,72 @@ bool TPrimanota_application::run_easydoc(const char* azione) const
{ {
const TMask& m = curr_mask(); const TMask& m = curr_mask();
TString cmdline = "c:/EASYDOC/EASYDOC "; TString cmdline = _EasyDocPath;
TFilename ininame; TFilename ininame;
if (azione && *azione) if (azione && *azione)
{ {
ininame.tempdir(); ininame.add("easydoc.ini"); // linea comando EasyDoc
ininame.tempdir();
ininame.add("easydoc.ini");
cmdline << ' ' << ininame; 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); ini.set("Azione", azione);
TFilename archivio = get_firm_dir(); archivio.add("easydoc.mdb");
ini.set("Archivio", archivio); ini.set("Archivio", archivio);
ini.set("Cartella", "mov"); ini.set("Cartella", "Movimenti primanota");
ini.set("Campo1", m.get(F_NUMREG)); ini.set("Campo0", m.get(F_NUMREG));
if (stricmp("Azione", "Scan") == 0 || stricmp("Azione", "Aggiungi") == 0) 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_paragraph("DefinizioneDoc1");
ini.set("Descrizione", m.get(F_DESCR)); 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); TExternal_app app(cmdline);
bool ok = app.run(FALSE, FALSE) == 0; bool ok = app.run(FALSE, FALSE) == 0;
if (ininame.not_empty()) if (ininame.not_empty())
::remove(ininame); ::remove(ininame);