Patch level : 10.0 NO PATCH
Files correlati : pd6411 Ricompilazione Demo : [ ] Commento : Aggiunto il programma che aggiunge righe listino da un documento git-svn-id: svn://10.65.10.50/branches/R_10_00@21034 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
74ecc8ba11
commit
2c7872ed27
@ -43,6 +43,7 @@ Quadratore dei movimenti di Analitica (Habilita)
|
||||
|
||||
PD6411
|
||||
Gestione Listini per Gruppo Merceologico (Haba)
|
||||
Importatore righe listino da documento (Haba)
|
||||
|
||||
|
||||
- PG -------------------------------------------------------------------------------------------------------------
|
||||
|
114
ps/pd6411200.cpp
Executable file
114
ps/pd6411200.cpp
Executable file
@ -0,0 +1,114 @@
|
||||
#include <applicat.h>
|
||||
|
||||
#include "../ve/velib.h"
|
||||
|
||||
class TAggiungi_listini_haba_app : public TSkeleton_application
|
||||
{
|
||||
private:
|
||||
TFilename _ini_name;
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
void check_doc();
|
||||
|
||||
public:
|
||||
bool load_ini(bool check);
|
||||
};
|
||||
|
||||
|
||||
/////////// Definizione delle funzioni membro ////////////
|
||||
|
||||
bool TAggiungi_listini_haba_app::load_ini(bool check)
|
||||
{
|
||||
//argc é un intero che specifica quanti parametri vengono passati al programma dalla linea di comando
|
||||
const int args = argc();
|
||||
|
||||
const int narg = check ? 3 : 2;
|
||||
|
||||
//argv é un array di null-terminated strings
|
||||
if (args <= narg)
|
||||
return false;
|
||||
|
||||
const TFixed_string arg = argv(narg);
|
||||
if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I'))
|
||||
return false;
|
||||
|
||||
_ini_name = arg.mid(2);
|
||||
if (_ini_name.blank() && args > 3)
|
||||
_ini_name = argv(3);
|
||||
|
||||
//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;
|
||||
}
|
||||
|
||||
void TAggiungi_listini_haba_app::check_doc()
|
||||
{
|
||||
TConfig ini(_ini_name, "33");
|
||||
TString4 para; para.format("%d", LF_DOC);
|
||||
const int anno = ini.get_int(DOC_ANNO, para);
|
||||
TString4 mese; mese.format("%2d", TDate(ini.get(DOC_DATADOC)).month());
|
||||
|
||||
TTable listini("LGM");
|
||||
|
||||
for(int i = 1; ; i++)
|
||||
{
|
||||
TString4 riga; riga.format("%d,%d", LF_RIGHEDOC, i);
|
||||
|
||||
if(!ini.set_paragraph(riga))
|
||||
break;
|
||||
|
||||
if(ini.get(RDOC_CODARTMAG).empty())
|
||||
continue;
|
||||
|
||||
const TString& codart = ini.get(RDOC_CODART);
|
||||
const real importo(ini.get(RDOC_PREZZO));
|
||||
const TString& spessore = ini.get(RDOC_LIVELLO);
|
||||
|
||||
const TRectype& art = cache().get(LF_ANAMAG, codart);
|
||||
const TString16 gruppo = art.get(ANAMAG_GRMERC);
|
||||
|
||||
TString80 codtab;
|
||||
codtab << gruppo << mese << spessore;
|
||||
|
||||
listini.put("CODTAB", codtab);
|
||||
if(listini.read() != NOERR)
|
||||
{
|
||||
listini.put("CODTAB", codtab);
|
||||
listini.put("R0", importo);
|
||||
listini.rewrite_write();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TAggiungi_listini_haba_app::main_loop() //definizione della member function main_loop, della classe TAggiungi_listini_haba_app
|
||||
{
|
||||
TString sw(argv(2)); sw.upper();
|
||||
const bool chk_doc = sw == "-V";
|
||||
|
||||
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(chk_doc))
|
||||
{
|
||||
error_box(TR("Impossibile aprire il file '%s'"), (const char*)_ini_name);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
check_doc();
|
||||
message_box(TR("Importazione listini completata"));
|
||||
}
|
||||
}
|
||||
|
||||
////// Esecuzione del programma ///////////
|
||||
|
||||
int pd6411200(int argc, char** argv)
|
||||
{
|
||||
TAggiungi_listini_haba_app app;
|
||||
app.run(argc,argv,"Listini Haba");
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user