Ultimato collegamento con EasyDoc
git-svn-id: svn://10.65.10.50/trunk@5471 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1e3e665e63
commit
1e90bd48fb
@ -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));
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user