From 46cf83bbcb3a176bcabcad07d404ae0fce89ee72 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 8 Jun 2007 08:57:04 +0000 Subject: [PATCH] Patch level :4.0 nopatch Files correlati : Ricompilazione Demo : [ ] Commento :eliminati i files che ricompaiono con nome diverso (bainstlib) in BA git-svn-id: svn://10.65.10.50/trunk@15411 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/inst.cpp | 520 ----------------------------------------------- include/inst.h | 70 ------- 2 files changed, 590 deletions(-) delete mode 100755 include/inst.cpp delete mode 100755 include/inst.h diff --git a/include/inst.cpp b/include/inst.cpp deleted file mode 100755 index 4edcb31a6..000000000 --- a/include/inst.cpp +++ /dev/null @@ -1,520 +0,0 @@ -#include -#include -#include -#include -#include -#include "../ba/bainsta.h" - -// ******************************** -// classe TSystemtempfile -// ******************************** - - -// classe provvisoria per i system file temporanei, ovvero file temporanei con -// caricamento/scaricamento -// @doc EXTERNAL - -// @mfunc Importa un file ascii -// -// @rdesc Ritorna NOERR se l'operazione di lettura e' riuscita, altrimenti il codice di -// di errore generato (vedi ). -int TSystemtempfile::load( - const char* from, // @parm Nome del file da importare - char fs, // @parm Carattere separatore di campo (default ) - char fd, // @parm Carattere delimitatore di campi (default '\\0') - char rs, // @parm Carattere separatore di record (default '\\n') - bool vis, // @parm Indica se visualizzare lo stato dell'operazione (default TRUE) - bool extended) // @parm Indica se interpretare alcune stringhe come macro (default FALSE) - -// @comm Se

e' TRUE e trova alcune stringhe col formato %stringa% (es. %frm%) -// ne sostituisce i valori (es. ditta corrente). - -// @xref - -{ - FILE* fl = fopen(from, "r"); - int err=NOERR; - if (fl == NULL) - { - error_box("Non riesco ad aprire il file %s",from); - return 2; - } - TRecnotype r = 0, e = 0, nitems = 0, nread = 0; - TString16 firm, year, attprev("00000"); - - if (extended) - { - TDate d(TODAY); - TLocalisamfile ditte(LF_NDITTE); - - firm.format("%05ld", prefix().get_codditta()); - year.format("%04d", d.year()); - ditte.zero(); - ditte.put("CODDITTA", firm); - if (ditte.read() == NOERR) - attprev = ditte.get("CODATTPREV"); - } - if (fl == NULL) - { - clearerr(fl); - setstatus(err); - return err; - } - char w[80]; - while ((fgets(w, 80, fl) != NULL)) - { - if (strncmp(w, "[Data]", 6) == 0) - { - nitems = ftell(fl); - break; - } - } - fseek(fl, 0L, SEEK_END); - nitems = ftell(fl) - nitems; - fclose(fl); - TScanner f(from); - - //open(); - - TToken_string s(1024, fs); - bool fixedlen = (fs == '\0'); - int nflds = curr().items(); - TArray fld(nflds); - int len[MaxFields]; - TString sfd(3); - TString s1(64); - //bool lcf = FALSE; - - if (f.paragraph("Header")) - { - f.equal(); - const unsigned int level = atoi(f.line()); - const unsigned int stdlev = prefix().get_stdlevel(); - if (level > stdlev) - error_box("L'archivio %s e' stato generato con gli archivi di livello %ld%/%ld.\n Il livello attuale e' %ld/%ld.\n Convertire gli archivi e ripetere l' operazione.", - from, level/100, level%100, stdlev/100, stdlev%100); - //lcf = getlcf(level); - nflds = 0; - TToken_string s2(f.line()); - int p = s2.find('='); - if (p > 0) - { - s1 = s2.left(p); - s2.ltrim(p+1); - } - else s1.cut(0); - while (s1 == "Fields") - { - for (const char * fd = s2.get(); fd != NULL; fd = s2.get()) - { - TToken_string wfd(fd, ','); - fld.add(new TString(wfd.get())); - len[nflds] = wfd.get_int(); - nflds++; - } - s2 = f.line(); - p = s2.find('='); - if (p > 0) - { - s1 = s2.left(p); - s2.ltrim(p+1); - } - else s1.cut(0); - } - } - else - { - for (int j = 0; j < nflds; j++) - { - fld.add(TString(curr().fieldname(j)), j); - const TString & wfld = (const TString & ) fld[j]; - len[j] = (curr().type(wfld) == _datefld) ? 10 : curr().length(wfld); - } - } - if (!f.paragraph("Data")) - { - error_box("Formato dei dati non valido"); - //close(); - err = 1; - setstatus(err); - return err; - } - - if (fd) sfd << fd; - int last = NOERR; - - s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last); - TProgind p(nitems, s1, TRUE, TRUE, 70); - s = f.line(); - while (s.not_empty() && !p.iscancelled()) - { - if (extended) - { - int p, i; - - while ((p = s.find("%yr%")) >= 0) - for (i = 0; i < 4; i++) s[p + i] = year[i]; - while ((p = s.find("%frm%")) >= 0) - for (i = 0; i < 5; i++) s[p + i] = firm[i]; - while ((p = s.find("%att%")) >= 0) - for (i = 0; i < 5; i++) s[p + i] = attprev[i]; - } - if ((r + e) % 50 == 0) - { - s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last); - p.set_text(s1); - } - p.setstatus(nread + 1); - nread += s.len() + 1; - zero(); - if (fixedlen) - { - int pos = 0; - for (int j = 0; j < nflds; j++) - { - s1 = s.mid(pos,len[j]); - s1.rtrim(); - put((const TString&) fld[j], s1); - pos += len[j]; - } - } - else - { - s.restart(); - for (int j = 0; j < nflds; j++) - { - char* s2 = (char*) s.get(); - if (fd) - { - s2++; - s2[strlen(s2) - 1] = '\0'; - } - put((const TString&) fld[j], s2); - } - } - if (write() == NOERR) r++; - else - { -#ifdef DBG - yesnofatal_box("Numero linea relativa all'errore: %ld",r+e+1); -#endif - e++; - last = status(); - } - s = f.line(); - } - s1.format("Imp. archivio %s\n%6ld records %6ld errori - %3d", filename(), r, e, last); - p.set_text(s1); - //close(); - setstatus(err); - return err; -} - -// @mfunc Esporta VERSO un file ascii. -// -// @rdesc Ritorna NOERR se l'operazione di esportazione e' riuscita, altrimenti il codice di -// di errore generato (vedi ). -int TSystemtempfile::dump( - const char* to, // @parm Nome del file verso quale esportare - int nkey, // @parm Numero della chiave di ordinamento con cui scaricare i dati (defualt 1) - char fs, // @parm Carattere seperatore di campo (defualt ) - char fd, // @parm Carattere delimitatore di campo (default '\\0') - char rs, // @parm Carattere separatore di record (default '\\n') - bool vis, // @parm Indica se visualizzare lo stato dell'operazione (defualt TRUE) - bool withdeleted) // @parm Indica se scaricare anche i record cancellati (dafault FALSE) - -// @xref - -{ - FILE* f = fopen(to, "w"); - - if (f == NULL) - { - setstatus(2); - return 2; - } - - if (withdeleted) nkey = 0; - int err = ferror(f); - - //open(FALSE, nkey ? TRUE : FALSE); - TString s(512); - bool fixedlen = (fs == '\0'); - int nflds = curr().items(); - TArray fld(nflds); - TBit_array rjust(nflds); - int len[MaxFields]; - int j; - - for (j = 0; j < nflds; j++) - { - fld.add(TString(curr().fieldname(j)), j); - const TString & wfld = (const TString&) fld[j]; - const TFieldtypes t = curr().type(wfld); - rjust.set(j, t == _intfld || t == _longfld || t == _realfld || - t == _wordfld || t == _intzerofld || t == _longzerofld); - len[j] = (t == _datefld) ? 10 : curr().length(wfld); - } - TRecnotype i = 0; - const TRecnotype nitems = items(); - s.format("Esportazione archivio %s", filename()); - TProgind p(nitems, s, TRUE, TRUE, 70); - TString s1; - - fprintf(f, "[Header]\nVersion=%ld", (long) prefix().filelevel()); - for (int k = 0; k < nflds; k++) - { - if ((k % 10) == 0) fprintf(f, "\nFields="); - else fprintf(f, "|"); - fprintf(f, "%s,%d", (const char *) (const TString&) fld[k], len[k]); - } - fprintf(f, "\n\n[Data]\n"); - if (nkey) - { - setkey(nkey); - for ( first(); status() == NOERR && !p.iscancelled(); next(), i++) - { - p.setstatus(i + 1); - s = ""; - for (j = 0; j < nflds; j++) - { - if (fixedlen) - { - s1 = get((const TString&)fld[j]); - if (rjust[j]) s1.right_just(len[j]); - else s1.left_just(len[j]); - } - else - { - s1 = ""; - if (j && fs) s1 << fs; - if (fd) s1 << fd; - s1 << get((const TString&)fld[j]); - if (fd) s1 << fd; - } - s << s1; - } - fprintf(f, "%s%c", (const char*) s, rs); - } - } - else - { - - for (i = 0; i < nitems && !p.iscancelled(); i++) - { - zero(); - p.setstatus(i + 1); - readat(i + 1); - s=""; - if (withdeleted || curr().valid()) - { - for (j = 0; j < nflds; j++) - { - if (fixedlen) - { - s1 = get((const TString&)fld[j]); - if (rjust[j]) s1.right_just(len[j]); - else s1.left_just(len[j]); - } - else - { - s1 = ""; - if (j && fs) s1 << fs; - if (fd) s1 << fd; - s1 << get((const TString&)fld[j]); - if (fd) s1 << fd; - } - s << s1; - } - fprintf(f, "%s%c", (const char*) s, rs); - } - } - } - p.setstatus(nitems); - //close(); - fclose(f); - setstatus(err); - return err; -} - -// ******************************** -// classe TStd_filename -// ******************************** - -bool TStd_filename::check(bool verbose,const char * n) -{ - if (n && *n) - set(n); - insert("STD\\"); - if (!exist()) - { - *this = name(); - if (!exist()) - { - insert("STD\\"); - insert(prefix().get_studio()); - if (!exist()) - { - if (verbose) - error_box("Non riesco a trovare il file: %s", (const char *)name()); - cut(0); - return FALSE; - } - } - } - return TRUE; -} - -// ******************************** -// classe TInstallmodule_app -// ******************************** - -bool TInstallmodule_app::create() -{ - if (modal()) - { - TString16 maskname; - maskname.format("bainst%02d",module_number()); - _m = new TMask(maskname); - } - else - _m = NULL; - - TConfig praw(CONFIG_INSTALL, "Main"); - _test_database = praw.get("TestDatabase","Main",-1,"Y") != "N"; - - return TSkeleton_application::create(); -} - -bool TInstallmodule_app::destroy() -{ - if (_m) delete _m; - return TSkeleton_application::destroy(); -} - -bool TInstallmodule_app::preload_mask() -{ - if (!test_database()) - { - _m->set(F_DEFAULTSDATA," "); - _m->disable(F_DEFAULTSDATA); - } - else - { - if (load_default_data()) - _m->set(F_DEFAULTSDATA,"X"); - } - return TRUE; -} - -bool TInstallmodule_app::some_to_load() -{ - return _m->get_bool(F_DEFAULTSDATA); -} - -void TInstallmodule_app::main_loop() -{ - bool ok =TRUE; - - if (modal()) - { - preload_mask(); - if (_m->run()!=K_QUIT) - { - if (some_to_load()) - { - install_firm(); - install_com(); - } - } - else - ok =FALSE; - } - if (ok) - post_installer(); -} - -bool TInstallmodule_app::install_firm() -{ - // ciclo su ogni ditta - TStd_filename txtfile(module_code()); - txtfile << "tab.txt"; - if (txtfile.check()) - { - TLocalisamfile ditte(LF_NDITTE); - for (ditte.first(); !ditte.eof() ; ditte.next()) - { - const int newditta=ditte.get_int("CODDITTA"); - if (prefix().exist(newditta)) - { - set_firm(newditta); - TSystemisamfile tab(LF_TAB); - tab.load(txtfile); - } - } - // carica le tabelle nei file di default - TLocalisamfile tampone(LF_TAB); - TSystemtempfile tabstd(LF_TAB); - TFilename stdtabname(prefix().get_studio()); - stdtabname << "STD\\lf0005.txt"; - tabstd.load(txtfile); - tabstd.load(stdtabname); - tabstd.set_autodel(); - TFilename tempfile; - tempfile.temp(); - - // riconverte le macro delle date - tabstd.dump(tempfile); - TScanner scan(tempfile); - FILE *dest=fopen((const char *)stdtabname,"w"); - while (TRUE) { - TString &line=scan.line(); - if (line.empty()) break; - - int pos=(line.find("-0000")); - while (pos >= 0 ) - { - line.overwrite("%yr%",pos+1); - pos=(line.find("-0000")); - } - line << '\n' ; - fputs((const char * )line,dest); - } - fclose(dest); - } - return TRUE; -} - -bool TInstallmodule_app::install_com() -{ - bool ok=TRUE; - TStd_filename txtfile(module_code()); - txtfile << "tabcom.txt"; - if (txtfile.check()) - { - TSystemisamfile tabcom(LF_TABCOM); - tabcom.load(txtfile); - } - return ok; -} - -void TInstallmodule_app::run(int argc, char* argv[]) -{ - const word m = module_number(); - - _modcode = dongle().module_code2name(m); - _modname = dongle().module_code2desc(m); - TString title("Installazione "); - - title << module_name(); - TSkeleton_application::run(argc, argv,(const char* )title); -} - - -void TInstallmodule_app::set_tab_app(const char * appname) -{ - TConfig ditta(CONFIG_DITTA); - ditta.set_paragraph(module_code()); - ditta.set("TabApp",appname); -} - diff --git a/include/inst.h b/include/inst.h deleted file mode 100755 index a5a50c91e..000000000 --- a/include/inst.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __INST_H -#define __INST_H - -#ifndef __APPLICAT_H -#include -#endif - -#ifndef __ISAM_H -#include -#endif - -#ifndef __MASK_H -#include -#endif - -// classe provvisoria per i system file temporanei, ovvero file temporanei con -// caricamento/scaricamento -class TSystemtempfile : public TIsamtempfile -{ -public: -//bool getlcf( long flev); // @parm livello archivi di partenza della convesione - - int load(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool extended = FALSE) ; - - int dump(const char* to, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool withdeleted = FALSE); - - TSystemtempfile(int logicnum) : TIsamtempfile(logicnum,NULL) {} -}; - -class TStd_filename : public TFilename -{ -public: - bool check(bool verbose=FALSE,const char * name=NULL); - ~TStd_filename () {} - TStd_filename () : TFilename(){} - TStd_filename (const char * n) : TFilename(n){} -}; - -class TInstallmodule_app: public TSkeleton_application -{ - bool _is_first_inst , _test_database ; - -protected: - TMask * _m ; - TString _modcode,_modname; - -protected: - void set_tab_app(const char * appname); - bool test_database() {return _test_database;} - const char * module_name() const {return _modname;} - const char * module_code() const {return _modcode;} - - virtual bool load_default_data() const { return TRUE;} - virtual bool modal() const {return TRUE;} - virtual int module_number() const pure; - virtual bool preload_mask(); - virtual bool post_installer() {return TRUE;} - virtual bool some_to_load(); - - virtual bool install_com() ; // setta i dati comuni - virtual bool install_firm() ; // setta i dati ditta - - virtual void main_loop() ; - virtual bool create(); - virtual bool destroy(); -public: - void run(int argc, char* argv[]); -}; - -#endif