Patch level : no patch per roberto
Files correlati : si0.exe Ricompilazione Demo : [ ] Commento : MOdulo personalizzazioni Ass. Agricoltori di Ravenna git-svn-id: svn://10.65.10.50/trunk@9968 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7a6ba70158
commit
d6ca44f622
18
si/art.ini
Executable file
18
si/art.ini
Executable file
@ -0,0 +1,18 @@
|
||||
[MAIN]
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE =
|
||||
SKIPLINES =
|
||||
TYPEFIELD = -1
|
||||
|
||||
[RECORD]
|
||||
FIELD(0) = CODART
|
||||
FIELD(1) = DESCR
|
||||
LENGTH(0) = 10
|
||||
LENGTH(1) = 50
|
||||
NAME(0) = Codice Articolo
|
||||
NAME(1) = Descrizione
|
||||
POSITION(0) = 0
|
||||
POSITION(1) = 10
|
||||
USE = 47
|
||||
|
47
si/cli.ini
Executable file
47
si/cli.ini
Executable file
@ -0,0 +1,47 @@
|
||||
[MAIN]
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE = 0
|
||||
SKIPLINES = 0
|
||||
TYPEFIELD = -1
|
||||
|
||||
[RECORD]
|
||||
FIELD(0) =
|
||||
FIELD(1) = CODCF
|
||||
FIELD(2) = RAGSOC
|
||||
FIELD(3) = INDCF
|
||||
FIELD(4) = CAPCF
|
||||
FIELD(5) =
|
||||
FIELD(6) = COFI
|
||||
FIELD(7) = PAIV
|
||||
FIELD(8) = LOCALITACF
|
||||
LENGTH(0) = 1
|
||||
LENGTH(1) = 6
|
||||
LENGTH(2) = 50
|
||||
LENGTH(3) = 51
|
||||
LENGTH(4) = 5
|
||||
LENGTH(5) = 2
|
||||
LENGTH(6) = 16
|
||||
LENGTH(7) = 11
|
||||
LENGTH(8) = 20
|
||||
NAME(0) =
|
||||
NAME(1) = Codice
|
||||
NAME(2) = Ragione sociale
|
||||
NAME(3) = Indirizzo
|
||||
NAME(4) = CAP
|
||||
NAME(5) =
|
||||
NAME(6) = Codice fiscale
|
||||
NAME(7) = Partita IVA
|
||||
NAME(8) = Loacalita'
|
||||
POSITION(0) = 0
|
||||
POSITION(1) = 1
|
||||
POSITION(2) = 7
|
||||
POSITION(3) = 57
|
||||
POSITION(4) = 108
|
||||
POSITION(5) = 113
|
||||
POSITION(6) = 115
|
||||
POSITION(7) = 131
|
||||
POSITION(8) = 142
|
||||
POSITION(9) = 0
|
||||
USE = 20
|
||||
|
42
si/pag.ini
Executable file
42
si/pag.ini
Executable file
@ -0,0 +1,42 @@
|
||||
[MAIN]
|
||||
FIELDSEP =
|
||||
RECORDSEP =
|
||||
RECORDSIZE =
|
||||
SKIPLINES =
|
||||
TYPEFIELD = -1
|
||||
|
||||
[RECORD]
|
||||
FIELD(0) =
|
||||
FIELD(1) = NDOC
|
||||
FIELD(2) = CODART
|
||||
FIELD(3) = QTA
|
||||
FIELD(4) = PREZZO
|
||||
FIELD(5) =
|
||||
FIELD(6) =
|
||||
FIELD(7) =
|
||||
LENGTH(0) = 1
|
||||
LENGTH(1) = 6
|
||||
LENGTH(2) = 10
|
||||
LENGTH(3) = 4
|
||||
LENGTH(4) = 13
|
||||
LENGTH(5) = 2
|
||||
LENGTH(6) = 1
|
||||
LENGTH(7) = 1
|
||||
NAME(0) =
|
||||
NAME(1) = N. documento
|
||||
NAME(2) = Codice articolo, codice spesa o codice prestazione
|
||||
NAME(3) = Quantita'
|
||||
NAME(4) = Prezzo o valore
|
||||
NAME(5) =
|
||||
NAME(6) =
|
||||
NAME(7) =
|
||||
POSITION(0) = 0
|
||||
POSITION(1) = 1
|
||||
POSITION(2) = 7
|
||||
POSITION(3) = 17
|
||||
POSITION(4) = 21
|
||||
POSITION(5) = 34
|
||||
POSITION(6) = 36
|
||||
POSITION(7) = 37
|
||||
USE = 34
|
||||
|
24
si/si0.cpp
Executable file
24
si/si0.cpp
Executable file
@ -0,0 +1,24 @@
|
||||
#include <xvt.h>
|
||||
#include "si0.h"
|
||||
|
||||
int main( int argc, char** argv )
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : 1;
|
||||
|
||||
switch (r)
|
||||
{
|
||||
case 2:
|
||||
rt = si0200( argc, argv ); // Stampe varie
|
||||
break;
|
||||
case 3:
|
||||
rt = si0300( argc, argv ); // per realplast
|
||||
break;
|
||||
default:
|
||||
rt = si0100( argc, argv ); // Ricezione dati
|
||||
break;
|
||||
}
|
||||
exit(rt);
|
||||
return rt;
|
||||
}
|
||||
|
9
si/si0.h
Executable file
9
si/si0.h
Executable file
@ -0,0 +1,9 @@
|
||||
#ifndef __SI0_H
|
||||
#define __SI0_H
|
||||
|
||||
int si0100(int argc, char* argv[]); // Ricezione dati
|
||||
int si0200(int argc, char* argv[]); // Stampe varie
|
||||
int si0300(int argc, char* argv[]); // temp
|
||||
|
||||
#endif // __SI0_H
|
||||
|
3
si/si0.url
Executable file
3
si/si0.url
Executable file
@ -0,0 +1,3 @@
|
||||
#include <default.url>
|
||||
|
||||
#include <mainmenu.url>
|
398
si/si0100.cpp
Executable file
398
si/si0100.cpp
Executable file
@ -0,0 +1,398 @@
|
||||
#include <applicat.h>
|
||||
#include <filetext.h>
|
||||
#include <form.h>
|
||||
#include <mask.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <printer.h>
|
||||
#include <progind.h>
|
||||
#include <utility.h>
|
||||
#include <lffiles.h>
|
||||
|
||||
#include "..\ve\velib.h"
|
||||
#include "si0100a.h"
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// Classe TPag_file customizzata dalla TFile_text //
|
||||
/////////////////////////////////////////////////////
|
||||
class TPag_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TPag_file(const TString& file_name, const TString& config_name);
|
||||
virtual ~TPag_file() { }
|
||||
};
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TPag_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
str = valore;
|
||||
}
|
||||
|
||||
TPag_file::TPag_file(const TString& file_name, const TString& config_name)
|
||||
: TFile_text(file_name, config_name)
|
||||
{
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// Classe TCli_file customizzata dalla TFile_text //
|
||||
/////////////////////////////////////////////////////
|
||||
class TCli_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TCli_file(const TString& file_name, const TString& config_name);
|
||||
virtual ~TCli_file() { }
|
||||
};
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TCli_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
str = valore;
|
||||
}
|
||||
|
||||
TCli_file::TCli_file(const TString& file_name, const TString& config_name)
|
||||
: TFile_text(file_name, config_name)
|
||||
{
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// Classe TArt_file customizzata dalla TFile_text //
|
||||
/////////////////////////////////////////////////////
|
||||
class TArt_file: public TFile_text
|
||||
{
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
|
||||
public:
|
||||
TArt_file(const TString& file_name, const TString& config_name);
|
||||
virtual ~TArt_file() { }
|
||||
};
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
void TArt_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||
{
|
||||
const TString code(s.get(0));
|
||||
TString valore;
|
||||
str = valore;
|
||||
}
|
||||
|
||||
TArt_file::TArt_file(const TString& file_name, const TString& config_name)
|
||||
: TFile_text(file_name, config_name)
|
||||
{
|
||||
}
|
||||
|
||||
class TImport: public TSkeleton_application
|
||||
{
|
||||
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual void main_loop();
|
||||
virtual bool destroy(void) ;
|
||||
void transfer(void);
|
||||
bool check_seq(TConfig & c);
|
||||
bool localita2comune(const TString & cap, const TString & localita, TString & codice);
|
||||
void update_cli(TCli_file & in, TRecord_text & r, TLocalisamfile & cli);
|
||||
void update_art(TArt_file & in, TRecord_text & r, TLocalisamfile & art, TLocalisamfile & umart);
|
||||
void update_doc(TPag_file & in, TRecord_text & r, TDocumento &doc, const char * codnum, const char * tipodoc,
|
||||
const char * tiporiga, const char * codiva);
|
||||
virtual const char * extra_modules() const { return "BA"; }
|
||||
|
||||
public:
|
||||
TImport() {}
|
||||
virtual ~TImport() {}
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TImport& app() { return (TImport&) main_app();}
|
||||
|
||||
// creazione dell'applicazione
|
||||
bool TImport::create()
|
||||
{
|
||||
open_files(LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART,
|
||||
LF_TAB, LF_TABCOM, LF_CLIFO, LF_CFVEN, LF_INDSP, LF_OCCAS, LF_PCON,
|
||||
LF_MOVMAG, LF_RMOVMAG, LF_MAG, LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0);
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
// distruzione dell'applicazione
|
||||
bool TImport::destroy()
|
||||
{
|
||||
return TSkeleton_application::destroy();
|
||||
}
|
||||
|
||||
// carica la maschera
|
||||
void TImport::main_loop()
|
||||
{
|
||||
transfer();
|
||||
}
|
||||
|
||||
// trasferimento dati su file per ct bo
|
||||
void TImport::transfer()
|
||||
{
|
||||
TMask msk("si0100a");
|
||||
TConfig c(CONFIG_STUDIO, "sipag");
|
||||
msk.set(F_FILESEQ, c.get("FileSeq"));
|
||||
msk.set(F_FILEPAG, c.get("FilePag"));
|
||||
msk.set(F_FILECLI, c.get("FileCli"));
|
||||
msk.set(F_FILEART, c.get("FileArt"));
|
||||
|
||||
while (msk.run() != K_QUIT)
|
||||
{
|
||||
c.set("FileSeq", msk.get(F_FILESEQ));
|
||||
c.set("FilePag", msk.get(F_FILEPAG));
|
||||
c.set("FileCli", msk.get(F_FILECLI));
|
||||
c.set("FileArt", msk.get(F_FILEART));
|
||||
|
||||
if (check_seq(c))
|
||||
{
|
||||
TRecord_text rec;
|
||||
TProgind p(3L, "Trasferimento da AS/400");
|
||||
TFilename clisrc(msk.get(F_FILECLI));
|
||||
|
||||
if (clisrc.exist())
|
||||
{
|
||||
TCli_file clifile(clisrc, "cli.ini");
|
||||
TLocalisamfile clienti(LF_CLIFO);
|
||||
|
||||
clifile.open(clisrc,'r');
|
||||
while (clifile.read(rec) == NOERR)
|
||||
update_cli(clifile, rec, clienti);
|
||||
clifile.close();
|
||||
}
|
||||
p.addstatus(1L);
|
||||
|
||||
TFilename artsrc(msk.get(F_FILEART));
|
||||
|
||||
if (artsrc.exist())
|
||||
{
|
||||
TArt_file artfile(artsrc, "art.ini");
|
||||
TLocalisamfile articoli(LF_ANAMAG);
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
|
||||
artfile.open(artsrc,'r');
|
||||
while (artfile.read(rec) == NOERR)
|
||||
update_art(artfile, rec, articoli, umart);
|
||||
artfile.close();
|
||||
}
|
||||
p.addstatus(1L);
|
||||
|
||||
TFilename pagsrc(msk.get(F_FILEPAG));
|
||||
|
||||
if (pagsrc.exist())
|
||||
{
|
||||
TPag_file pagfile(pagsrc, "pag.ini");
|
||||
TDocumento doc;
|
||||
TString codnum(c.get("CodNum"));
|
||||
TString tipodoc(c.get("TipoDoc"));
|
||||
TString tiporiga(c.get("TipoRiga"));
|
||||
TString codiva(c.get("CodIva"));
|
||||
|
||||
|
||||
pagfile.open(pagsrc,'r');
|
||||
while (pagfile.read(rec) == NOERR)
|
||||
update_doc(pagfile, rec, doc, codnum, tipodoc, tiporiga, codiva);
|
||||
pagfile.close();
|
||||
}
|
||||
p.addstatus(1L);
|
||||
|
||||
message_box("Operazione terminata");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//inizializza il cursore
|
||||
bool TImport::check_seq(TConfig & c)
|
||||
{
|
||||
TScanner seq(c.get("FileSeq"));
|
||||
const int expected_seq = c.get_int("Seq") + 1;
|
||||
const int seqnum = seq.integer();
|
||||
|
||||
if (expected_seq != seqnum)
|
||||
return error_box("Il numero di sequenza trovato %d\nnon coincide con quello atteso %d", seqnum, expected_seq);
|
||||
c.set("Seq", seqnum);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int si0100(int argc, char* argv[])
|
||||
{
|
||||
TImport a ;
|
||||
a.run(argc, argv, "Ricezione da AS/400");
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool TImport::localita2comune(const TString & caporig, const TString & localita, TString & codice)
|
||||
{
|
||||
TLocalisamfile comuni (LF_COMUNI);
|
||||
TString16 cap = caporig;
|
||||
bool found = FALSE;
|
||||
|
||||
if (cap.mid(2,1) == "1")
|
||||
{
|
||||
cap = cap.left(3);
|
||||
cap << "00";
|
||||
}
|
||||
|
||||
comuni.setkey(3);
|
||||
comuni.zero();
|
||||
comuni.put("CAPCOM", cap);
|
||||
|
||||
TRectype com (comuni.curr());
|
||||
codice = "";
|
||||
|
||||
for (comuni.read(_isgteq); !comuni.eof() && !found; comuni.next())
|
||||
{
|
||||
if (comuni.curr() != com)
|
||||
break;
|
||||
|
||||
found = localita.left(3) == comuni.get("DENCOM").left(3);
|
||||
if (found)
|
||||
codice = comuni.get("COM");
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
void TImport::update_cli(TCli_file & in, TRecord_text & r, TLocalisamfile & cli)
|
||||
{
|
||||
cli.zero();
|
||||
cli.put("TIPOCF", "C");
|
||||
cli.put("CODCF", in.get_field(r, 1));
|
||||
bool newrec = cli.read() != NOERR;
|
||||
if (newrec)
|
||||
{
|
||||
cli.zero();
|
||||
cli.put("TIPOCF", "C");
|
||||
cli.put("CODCF", in.get_field(r, 1));
|
||||
}
|
||||
|
||||
cli.put("RAGSOC", in.get_field(r, 2));
|
||||
TString80 ind(in.get_field(r, 3));
|
||||
TString80 loc;
|
||||
|
||||
int p = ind.find('-');
|
||||
if (p > 0)
|
||||
{
|
||||
loc = ind.mid(p+1);
|
||||
loc.strip("-");
|
||||
loc.trim();
|
||||
ind.cut(p);
|
||||
ind.trim();
|
||||
}
|
||||
|
||||
p = ind.rfind(',');
|
||||
if (p > 0)
|
||||
{
|
||||
cli.put("INDCF", ind.left(p));
|
||||
cli.put("CIVCF", ind.mid(p+1));
|
||||
}
|
||||
else
|
||||
cli.put("INDCF", ind.left(35));
|
||||
|
||||
TString16 cap(in.get_field(r, 4));
|
||||
|
||||
cli.put("CAPCF", cap);
|
||||
cli.put("COFI", in.get_field(r, 6));
|
||||
cli.put("PAIV", in.get_field(r, 7));
|
||||
|
||||
TString80 localita(in.get_field(r, 8));
|
||||
TString16 codice;
|
||||
|
||||
if (localita2comune(cap, localita, codice) == TRUE)
|
||||
localita = "";
|
||||
|
||||
localita.insert(loc);
|
||||
cli.put("COMCF", codice);
|
||||
cli.put("LOCALITACF", localita);
|
||||
|
||||
if (newrec)
|
||||
cli.write();
|
||||
else
|
||||
cli.rewrite();
|
||||
}
|
||||
|
||||
void TImport::update_art(TArt_file & in, TRecord_text & r, TLocalisamfile & art, TLocalisamfile & umart)
|
||||
{
|
||||
art.zero();
|
||||
art.put("CODART", in.get_field(r, 0));
|
||||
bool newrec = art.read() != NOERR;
|
||||
if (newrec)
|
||||
{
|
||||
art.zero();
|
||||
art.put("CODART", in.get_field(r, 0));
|
||||
}
|
||||
|
||||
art.put("DESCR", in.get_field(r, 1));
|
||||
|
||||
if (newrec)
|
||||
{
|
||||
art.write();
|
||||
umart.zero();
|
||||
umart.put("CODART", in.get_field(r, 0));
|
||||
umart.put("NRIGA", "1");
|
||||
umart.put("UM", "N.");
|
||||
umart.put("FC", "1.00");
|
||||
umart.write();
|
||||
}
|
||||
else
|
||||
art.rewrite();
|
||||
}
|
||||
|
||||
void TImport::update_doc(TPag_file & in, TRecord_text & r, TDocumento &doc, const char * codnum, const char * tipodoc,
|
||||
const char * tiporiga, const char * codiva)
|
||||
{
|
||||
doc.zero();
|
||||
const bool newdoc = doc.read('D', TDate(TODAY).year(), codnum, atol(in.get_field(r, 1))) != NOERR;
|
||||
const TDate oggi(TODAY);
|
||||
|
||||
if (newdoc)
|
||||
{
|
||||
doc.zero();
|
||||
|
||||
TDocumento::set_key(doc, 'D', oggi.year(), codnum, atol(in.get_field(r, 1)));
|
||||
doc.set_tipo(tipodoc);
|
||||
doc.put("TIPOCF", "C");
|
||||
doc.put("CODCF", in.get_field(r, 1));
|
||||
doc.put("DATADOC", oggi);
|
||||
doc.put("DATACONS", oggi);
|
||||
}
|
||||
|
||||
TRiga_documento & riga = doc.new_row(tiporiga);
|
||||
|
||||
const TString & cod = in.get_field(r, 2);
|
||||
riga.put("CODART", cod);
|
||||
riga.put("CODARTMAG", cod);
|
||||
|
||||
TString80 descr = cache().get(LF_ANAMAG, cod, "DESCR");
|
||||
|
||||
riga.put("DESCR", descr);
|
||||
riga.put("CHECKED", "X");
|
||||
doc.put("DATACONS", oggi);
|
||||
|
||||
|
||||
real qta(in.get_field(r, 3));
|
||||
|
||||
if (qta == ZERO)
|
||||
qta = 1.00;
|
||||
|
||||
riga.put("UMQTA", "N.");
|
||||
riga.put("QTA", qta);
|
||||
|
||||
const real prezzo(in.get_field(r, 4));
|
||||
riga.put("PREZZO", prezzo);
|
||||
riga.put("CODIVA", codiva);
|
||||
|
||||
if (newdoc)
|
||||
doc.write();
|
||||
else
|
||||
doc.rewrite();
|
||||
}
|
5
si/si0100a.h
Executable file
5
si/si0100a.h
Executable file
@ -0,0 +1,5 @@
|
||||
#define F_FILESEQ 101
|
||||
#define F_FILEPAG 102
|
||||
#define F_FILECLI 103
|
||||
#define F_FILEART 104
|
||||
|
61
si/si0100a.uml
Executable file
61
si/si0100a.uml
Executable file
@ -0,0 +1,61 @@
|
||||
#include "si0100a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ricezione dati da AS/400" -1 -1 78 20
|
||||
|
||||
GROUPBOX DLG_NULL 77 11
|
||||
BEGIN
|
||||
PROMPT 1 1 "Selezioni per la ricezione"
|
||||
END
|
||||
|
||||
STRING F_FILESEQ 52
|
||||
BEGIN
|
||||
PROMPT 2 3 "Nome file sequenza "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
END
|
||||
|
||||
STRING F_FILEPAG 52
|
||||
BEGIN
|
||||
PROMPT 2 5 "Nome file pagamenti "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
END
|
||||
|
||||
STRING F_FILECLI 52
|
||||
BEGIN
|
||||
PROMPT 2 7 "Nome file clienti "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
END
|
||||
|
||||
STRING F_FILEART 52
|
||||
BEGIN
|
||||
PROMPT 2 9 "Nome file servizi "
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE FILENAME_FUNC
|
||||
FLAGS "A"
|
||||
WARNING "E' necessario specificare un nome di file"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
1543
si/si0200.cpp
Executable file
1543
si/si0200.cpp
Executable file
File diff suppressed because it is too large
Load Diff
29
si/si0200.h
Executable file
29
si/si0200.h
Executable file
@ -0,0 +1,29 @@
|
||||
#define F_CODNUM 101
|
||||
#define F_ANNO 102
|
||||
#define F_PROVV 103
|
||||
#define F_NCOPIE 104
|
||||
|
||||
#define F_DATA_O_NUM 105
|
||||
|
||||
#define F_DA_NDOC 106
|
||||
#define F_A_NDOC 107
|
||||
|
||||
#define F_DA_DATADOC 108
|
||||
#define F_A_DATADOC 109
|
||||
|
||||
#define F_TIPOCF 110
|
||||
#define F_CODFR 111
|
||||
#define F_CODTO 112
|
||||
#define F_SELECTED 113
|
||||
#define BUT_SEL 114
|
||||
#define BUT_ANN 115
|
||||
#define F_SELVAL 116
|
||||
#define F_VALUTA 117
|
||||
#define F_DETTAGLIO 118
|
||||
#define F_DESCR_CLI 119
|
||||
|
||||
#define F_SHEETNUMS 201
|
||||
|
||||
#define GROUP_PRICES 29
|
||||
#define GROUP_QTA 30
|
||||
#define GROUP_IMPORTI 31
|
6
si/si0200a.h
Executable file
6
si/si0200a.h
Executable file
@ -0,0 +1,6 @@
|
||||
// trasferimento dati a CT Bologna
|
||||
// definizione campi per maschera di selezione
|
||||
|
||||
//#define F_TRASFERIMENTO 101 // trasferimento totale o parziale
|
||||
#define F_DATAINI 101 // data inizio modifiche per trasferimento parziale
|
||||
#define F_FILENAME 102 // nome del file dove scaricare i dati
|
237
si/si0200a.uml
Executable file
237
si/si0200a.uml
Executable file
@ -0,0 +1,237 @@
|
||||
TO "" 0 -3 0 2
|
||||
ST 30 70 50
|
||||
BE
|
||||
PR 2 -3 "Profilo "
|
||||
PSELECT
|
||||
GR 1
|
||||
EN
|
||||
BU 24 10 2
|
||||
BE
|
||||
PR -12 -1 "~Stampa"
|
||||
ME EXIT,13
|
||||
EN
|
||||
BU 2 10 2
|
||||
BE
|
||||
PR -22 -1 ""
|
||||
EN
|
||||
EN
|
||||
|
||||
PA "Stampe Pagamenti" -1 2 80 20
|
||||
NU 102 4 0
|
||||
BE
|
||||
PR 2 1 "Anno "
|
||||
FLAG "P"
|
||||
CH REQUIRED
|
||||
EN
|
||||
LI 103 12
|
||||
BE
|
||||
PR 25 1 "Tipo numerazione "
|
||||
IT "D|Definitiva"
|
||||
IT "P|Provvisoria"
|
||||
FLAG "P"
|
||||
EN
|
||||
SPREADSHEET 201 78 4
|
||||
BE
|
||||
PR 1 2 ""
|
||||
IT "Cod. num."
|
||||
IT "Stato 1"
|
||||
IT "Stato 2"
|
||||
IT "Stato 3"
|
||||
IT "Stato 4"
|
||||
IT "Stato 5"
|
||||
IT "Stato 6"
|
||||
EN
|
||||
|
||||
LI 110 1 9
|
||||
BE
|
||||
PR 2 7 "Tipo "
|
||||
IT "C|Clienti"
|
||||
IT "F|Fornitori"
|
||||
EN
|
||||
|
||||
NU 111 6
|
||||
BE
|
||||
PR 68 8 ""
|
||||
FL "B"
|
||||
EN
|
||||
NU 112 6
|
||||
BE
|
||||
PR 68 9 ""
|
||||
FL "B"
|
||||
EN
|
||||
|
||||
ST 119 50 50
|
||||
BE
|
||||
PR 2 8 "Dal Cliente "
|
||||
US 20 KE 2
|
||||
IN TIPOCF 110
|
||||
IN RAGSOC 119
|
||||
DI "Ragione Sociale@50" RAGSOC
|
||||
DI "Codice " CODCF
|
||||
OU 111 CODCF
|
||||
OU 119 RAGSOC
|
||||
EN
|
||||
ST 120 50 50
|
||||
BE
|
||||
PR 2 9 "Al Cliente "
|
||||
US 20 KE 2
|
||||
IN TIPOCF 110
|
||||
IN RAGSOC 120
|
||||
DI "Ragione Sociale@50" RAGSOC
|
||||
DI "Codice " CODCF
|
||||
OU 112 CODCF
|
||||
OU 120 RAGSOC
|
||||
EN
|
||||
ST 121 20
|
||||
BE
|
||||
PR 2 10 "Dal Servizio "
|
||||
US 47 KE 1
|
||||
IN CODART 121
|
||||
DI "Codice " CODART
|
||||
DI "Descrizione@50" DESCR
|
||||
OU 121 CODART
|
||||
EN
|
||||
ST 122 20
|
||||
BE
|
||||
PR 2 11 "Al Servizio "
|
||||
US 47 KE 1
|
||||
IN CODART 122
|
||||
DI "Codice " CODART
|
||||
DI "Descrizione@50" DESCR
|
||||
OU 122 CODART
|
||||
EN
|
||||
|
||||
DA 108
|
||||
BE
|
||||
PR 2 12 "Dalla Data "
|
||||
EN
|
||||
DA 109
|
||||
BE
|
||||
PR 27 12 "Alla Data "
|
||||
EN
|
||||
|
||||
|
||||
ST 113 5
|
||||
BE
|
||||
PR 25 16 "Scelte n. "
|
||||
FL "DR"
|
||||
EN
|
||||
|
||||
BU 114 10 2
|
||||
BE
|
||||
PR 45 16 "~Selezione"
|
||||
PI 115
|
||||
EN
|
||||
BU 115 10
|
||||
BE
|
||||
PR 45 18 "A~zzera"
|
||||
EN
|
||||
RA 116 20
|
||||
BE
|
||||
PR 2 15 "Stampa documenti"
|
||||
IT "1|Valuta ditta"
|
||||
ME CLEAR,117
|
||||
IT "2|In valuta"
|
||||
ME ENABLE,117
|
||||
IT "3|Tutti"
|
||||
ME CLEAR,117
|
||||
EN
|
||||
ST 117 3
|
||||
BE
|
||||
PR 25 17 "Cod. val. "
|
||||
FL "U"
|
||||
US %VAL
|
||||
IN CODTAB 117
|
||||
DI "Codice" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 117 CODTAB
|
||||
CH REQUIRED
|
||||
EN
|
||||
BO 118
|
||||
BE
|
||||
PR 25 18 "Dettaglio righe"
|
||||
EN
|
||||
EN
|
||||
ENDMASK
|
||||
PA "" -1 -1 75 10
|
||||
ST 101 4
|
||||
BE
|
||||
PR 1 1 "Codice numerazione "
|
||||
FLAG "U"
|
||||
US %NUM
|
||||
IN CODTAB 101
|
||||
DI "Cod. Num." CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 101 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 102 1
|
||||
BE
|
||||
PR 1 3 "Stato 1 "
|
||||
US %STD
|
||||
IN CODTAB 102
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 102 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 103 1
|
||||
BE
|
||||
PR 1 4 "Stato 2 "
|
||||
US %STD
|
||||
IN CODTAB 103
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 103 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 104 1
|
||||
BE
|
||||
PR 1 5 "Stato 3 "
|
||||
US %STD
|
||||
IN CODTAB 104
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 104 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 105 1
|
||||
BE
|
||||
PR 1 6 "Stato 4 "
|
||||
US %STD
|
||||
IN CODTAB 105
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 105 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 106 1
|
||||
BE
|
||||
PR 1 7 "Stato 5 "
|
||||
US %STD
|
||||
IN CODTAB 106
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 106 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 107 1
|
||||
BE
|
||||
PR 1 8 "Stato 6 "
|
||||
US %STD
|
||||
IN CODTAB 107
|
||||
DI "Stato" CODTAB
|
||||
DI "Descrizione@50" S0
|
||||
OU 107 CODTAB
|
||||
CH NORMAL
|
||||
EN
|
||||
BU 1 9 2
|
||||
BE
|
||||
PR -12 -1 ""
|
||||
EN
|
||||
BU 2 9 2
|
||||
BE
|
||||
PR -22 -1 ""
|
||||
EN
|
||||
EN
|
||||
ENDMASK
|
78
si/si0300.cpp
Executable file
78
si/si0300.cpp
Executable file
@ -0,0 +1,78 @@
|
||||
//////////////////////////////////////////////////////////////
|
||||
// Stampa documenti
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
#include <applicat.h>
|
||||
#include <config.h>
|
||||
#include <defmask.h>
|
||||
#include <form.h>
|
||||
#include <msksheet.h>
|
||||
#include <printer.h>
|
||||
#include <progind.h>
|
||||
#include <sheet.h>
|
||||
|
||||
#include "si0200.h"
|
||||
|
||||
class TAggart_application: public TSkeleton_application
|
||||
{
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual const char * extra_modules() const { return "BA"; }
|
||||
|
||||
public:
|
||||
TAggart_application() {};
|
||||
virtual ~TAggart_application() {};
|
||||
};
|
||||
|
||||
inline TAggart_application& app() { return (TAggart_application&) main_app(); }
|
||||
|
||||
bool TAggart_application::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TAggart_application::destroy()
|
||||
{
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TAggart_application::main_loop()
|
||||
{
|
||||
TRelation * r = new TRelation(LF_ANAMAG);
|
||||
TCursor c(r);
|
||||
const long items = c.items();
|
||||
|
||||
for (c = 0L; c.pos() < items; ++c)
|
||||
{
|
||||
TRectype & rec = c.curr();
|
||||
TString descr = rec.get("DESCRAGG");
|
||||
descr.trim();
|
||||
if (descr.not_empty())
|
||||
{
|
||||
const int p= descr.find("ST/");
|
||||
if (p > 0)
|
||||
{
|
||||
TString stampo(descr.mid(p+3));
|
||||
rec.put("USER2", stampo);
|
||||
descr.cut(p);
|
||||
}
|
||||
else
|
||||
rec.put("USER2", "");
|
||||
rec.put("USER1", descr);
|
||||
rec.put("DESCRAGG", "");
|
||||
rec.rewrite(r->lfile());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Do all the work!
|
||||
int si0300(int argc, char* argv[])
|
||||
{
|
||||
TAggart_application a;
|
||||
a.run(argc, argv, "modifica descr");
|
||||
return (0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user