53d0dc3d51
Files correlati : lv4.exe Ricompilazione Demo : [ ] Commento : NUovo programma per esportazione bolle in txt (CHIMA) git-svn-id: svn://10.65.10.50/branches/R_10_00@21335 c028cbd2-c16b-5b4b-a496-9718f37d4682
120 lines
3.4 KiB
C++
Executable File
120 lines
3.4 KiB
C++
Executable File
#include <applicat.h>
|
|
|
|
#include "../ve/velib.h"
|
|
#include <utility.h>
|
|
|
|
//////////////////////////////////////////
|
|
//// TSpedisci Bolla ////
|
|
//////////////////////////////////////////
|
|
|
|
//Classe TAggiungi_listini_app
|
|
class TSpedisci_bolla : public TSkeleton_application
|
|
{
|
|
private:
|
|
TFilename _ini_name;
|
|
|
|
protected:
|
|
virtual bool check_autorization() const {return false;}
|
|
|
|
virtual void main_loop();
|
|
void output_doc(const char * outdir);
|
|
|
|
public:
|
|
bool load_ini();
|
|
};
|
|
|
|
|
|
//LOAD_INI: carica il file ini che contiene il documento
|
|
bool TSpedisci_bolla::load_ini()
|
|
{
|
|
if (argc() <= 3)
|
|
return false;
|
|
|
|
const TFixed_string arg = argv(3);
|
|
if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I'))
|
|
return false;
|
|
|
|
_ini_name = arg.mid(2);
|
|
|
|
//controlla che il file su cui deve scrivere ci sia; se non c'é dá una segnalazione di errore
|
|
if (!_ini_name.exist())
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
//CHECK_DOC: scorro il file ini e aggiungo alla tabella dei listini le righe mancanti
|
|
void TSpedisci_bolla::output_doc(const char * outdir)
|
|
{
|
|
TConfig ini(_ini_name, "33");
|
|
TString4 para; para.format("%d", LF_DOC);
|
|
const char provv = ini.get(DOC_PROVV, para)[0];
|
|
const int anno = ini.get_int(DOC_ANNO, para);
|
|
const TString4 codnum = ini.get(DOC_CODNUM, para);
|
|
const long ndoc = ini.get_long(DOC_NDOC, para);
|
|
const long codcf = ini.get_long(DOC_CODCF, para);
|
|
const TDate datadoc(ini.get(DOC_DATADOC, para));
|
|
const int codaut = ini.get_int(DOC_CODAG, para);
|
|
const int codage2 = ini.get_int(DOC_CODAGVIS, para);
|
|
const int codindsp = ini.get_int(DOC_CODINDSP, para);
|
|
TDocumento doc(provv, anno, codnum,ndoc);
|
|
|
|
const int rows = doc.physical_rows();
|
|
TString outrow(30);
|
|
TFilename outname(outdir);
|
|
|
|
outname.add(format("bo%06ld%06ld", codcf, ndoc));
|
|
outname.ext("dat");
|
|
|
|
ofstream outfile(outname);
|
|
|
|
for(int r = 1; r <= rows; r++)
|
|
{
|
|
const TRiga_documento row = doc[r];
|
|
real qta = row.get_real(RDOC_QTA); qta.floor();
|
|
TString16 sqta = qta.string(6, 0, '0');
|
|
const TString codart = row.get(RDOC_CODART);
|
|
const TString caus = row.get(RDOC_CODAGG1);
|
|
real qtarit = row.get_real(RDOC_QTA); qtarit.floor();
|
|
TString16 sqtarit = qtarit.string(6, 0, '0');
|
|
|
|
outrow.cut(0);
|
|
outrow.format("%06ld%2s%06ld%08ld%-20s%6s%04d%3s%06s%04d%04d", codcf, (const char *) codnum.mid(1), ndoc, datadoc.date2ansi(), (const char *) codart, (const char *)sqta, codaut, (const char *)caus, (const char *) sqtarit, codage2, codindsp);
|
|
outfile << outrow << '\n';
|
|
}
|
|
}
|
|
|
|
void TSpedisci_bolla::main_loop() //definizione della member function main_loop, della classe TSpedisci_bolla
|
|
{
|
|
TFilename outdir(argv(2)); outdir.lower();
|
|
|
|
if (outdir.starts_with("-d"))
|
|
{
|
|
outdir = outdir.mid(2);
|
|
|
|
if (outdir.exist())
|
|
{
|
|
open_files(LF_TAB, LF_DOC, LF_RIGHEDOC, 0);
|
|
|
|
//mostra un messaggio di errore se non riesce ad aprire il file richiesto; nota la conversione dei tipi che
|
|
//é da eseguire quando devo passare una TString ad un %s
|
|
if(load_ini())
|
|
output_doc(outdir);
|
|
else
|
|
{
|
|
error_box(TR("Impossibile aprire il file '%s'"), (const char*)_ini_name);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
////// Esecuzione del programma ///////////
|
|
|
|
int lv4800(int argc, char* argv[])
|
|
{
|
|
TSpedisci_bolla app;
|
|
app.run(argc,argv,"Esporta Bolle");
|
|
return 0;
|
|
}
|