aggiunti file relativi al programma di emissione effetti e distinte

git-svn-id: svn://10.65.10.50/trunk@3972 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
paola 1996-12-06 15:48:24 +00:00
parent 78d2592a19
commit f9e12e3dff
5 changed files with 1100 additions and 0 deletions

239
ef/dse.frm Executable file
View File

@ -0,0 +1,239 @@
USE 31
JOIN 14 INTO NPROGTR==NPROGTR
JOIN 20 INTO TIPOCF=="C" CODCF==CODCF
JOIN 13 TO 20 INTO COM==COMCF
JOIN %BAN ALIAS 201 INTO CODTAB[1,5]==CODABI
JOIN %BAN ALIAS 203 INTO CODTAB==CODABI+CODCAB
JOIN %BAN ALIAS 202 INTO CODTAB==CODABIP+CODCABP
END
DESCRIPTION
BEGIN
31->* "Effetti"
14->* "Righe effetto"
20->* "Clienti e Fornitori"
13->* "Comuni"
201@->* "Tabella banche"
202@->* "Tabella banche"
203@->* "Tabella banche"
END
GENERAL
BEGIN
OFFSET 0 0
FONT "Roman 17cpi"
SIZE 12
END
SECTION HEADER ODD 9
STRING 1 50
BEGIN
KEY "denominazione banca presentazione"
PROMPT 5 1 ""
FIELD 202@->S0
END
STRING 2 20
BEGIN
KEY "scritta elenco riba"
PROMPT 64 1 "ELENCO RI.BA. "
END
NUMBER 3 8
BEGIN
KEY "numero di pagina"
PROMPT 123 1 "pag. "
MESSAGE _PAGENO
END
STRING 4 20
BEGIN
KEY "scritta presentati il"
PROMPT 5 3 "PRESENTATI IL : "
END
DATA 5 10
BEGIN
KEY "data"
PROMPT 0 0 ""
FLAGS "AH"
MESSAGE COPY,6
END
DATA 6 10
BEGIN
KEY "data emissione"
PROMPT 21 3 ""
END
STRING 7 3
BEGIN
KEY "scritta DA"
PROMPT 5 4 "DA "
END
STRING 8 70
BEGIN
KEY "ditta"
PROMPT 8 4 ""
MESSAGE _DITTA,!RAGSOC
END
STRING 9 20
BEGIN
KEY "scritta titolo righe del body"
PROMPT 2 7 "DEBITORE O TRASSATO"
END
STRING 10 10
BEGIN
KEY "scritta titolo righe del body"
PROMPT 32 7 "INDIRIZZO"
END
STRING 11 17
BEGIN
KEY "scritta titolo righe del body"
PROMPT 62 7 "BANCA D'APPOGGIO"
END
STRING 12 11
BEGIN
KEY "scritta titolo righe del body"
PROMPT 94 7 "FATTURA DEL"
END
STRING 13 8
BEGIN
KEY "scritta titolo righe del body"
PROMPT 111 7 "SCADENZA"
END
STRING 14 7
BEGIN
KEY "scritta titolo righe del body"
PROMPT 129 7 "IMPORTO"
END
STRING 15
BEGIN
KEY "riga separazione dalle righe del body"
PROMPT 2 8 "---------------------------------------------------------------------------------------------------------------------------------------------"
END
END
SECTION BODY ODD 8
STRING 16 30 2
BEGIN
KEY "debitore"
PROMPT 2 1 ""
FIELD 20->RAGSOC
END
STRING 18 30 2
BEGIN
KEY "indirizzo debitore"
PROMPT 32 1 ""
FIELD 20->INDCF
END
STRINGA 19
BEGIN
KEY "LOCALITA"
PROMPT 0 0 ""
FLAGS "H"
MESSAGE COPY,21
FIELD 20->LOCALITACF
END
STRINGA 20
BEGIN
KEY "PROV"
PROMPT 0 0 ""
FLAGS "H"
MESSAGE APPEND,21
FIELD 13->PROVCOM
END
STRINGA 21 50
BEGIN
KEY "PIAZZA(LOCALITA+PROV)"
PROMPT 32 2 ""
END
STRING 22 30 2
BEGIN
KEY "banca d'appoggio denominazione"
PROMPT 55 1 ""
FIELD 201@->S0
END
STRING 23 50 2
BEGIN
KEY "banca d'appoggio succursale"
PROMPT 55 3 ""
FIELD 203@->S0
END
LISTA 28 8
BEGIN
KEY "a saldo/in conto"
FIELD 31->ULTRATA
PROMPT 95 1 ""
ITEM " |IN CONTO"
ITEM "X|A SALDO"
END
STRING 24 17 5
BEGIN
KEY "dati fattura"
PROMPT 92 2 ""
MESSAGE _FATT,!DATIFATT
END
DATA 26 10
BEGIN
KEY "data scadenza"
PROMPT 112 1 ""
FIELD 31->DATASCAD
END
NUMERO 27 18
BEGIN
KEY "importo"
PROMPT 122 1 ""
FIELD 31->IMPORTO
PICTURE "###.###.###.###,@@"
END
END
SECTION FOOTER ODD 2
STRING 25
BEGIN
KEY "riga separazione dalle righe del body"
PROMPT 2 1 "---------------------------------------------------------------------------------------------------------------------------------------------"
END
NUMERO 26 13
BEGIN
KEY "scritta n. documenti"
PROMPT 5 2 "N. DOCUMENTI "
MESSAGE _FOOTER,!NDOC
END
NUMERO 28 18
BEGIN
KEY "Totale"
PROMPT 111 2 "TOTALE "
PICTURE "###.###.###.###,@@"
MESSAGE _FOOTER,!TOTALE
END
END
END

503
ef/ef0500.cpp Executable file
View File

@ -0,0 +1,503 @@
#include <applicat.h>
#include <form.h>
#include <mask.h>
#include <relation.h>
#include <utility.h>
#include <urldefid.h>
#include <printer.h>
#include <progind.h>
#include <lffiles.h>
#include <effetti.h>
#include <reffetti.h>
#include "ef0.h"
#include "ef0301.h"
#include "ef0500.h"
class TRiba_form;
class TDistinta_form;
///////////////////////////////////////////////////////////////////////
// Classe per l'emissione di effetti e distinte su carta o su floppy //
///////////////////////////////////////////////////////////////////////
class TEmissione: public TApplication
{
TMask* _msk;
TRelation* _firmrel; // relazione di gestione dei dati della ditta corrente
TLocalisamfile *_eff, *_reff, *_cession;
TRiba_form *_formrb;
TDistinta_form *_formdse;
int _base_page_no; // numero della pagina base per la stampa del numero di pagina
protected:
virtual bool create(void);
virtual bool destroy(void) ;
virtual void on_firm_change(void);
virtual bool menu(MENU_TAG);
void conferma(void);
virtual void print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis);
virtual void print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis);
virtual void print(void);
void floppy(void);
void aggiorna_rb(TCursor*);
void aggiorna_dist(TCursor*);
static bool annulla_handler(TMask_field& f, KEY k);
public:
int base_no() { return _base_page_no;}
TEmissione() {};
virtual ~TEmissione() {};
};
// restituisce un riferimento all' applicazione
inline TEmissione& app() { return (TEmissione&) main_app();}
////////////////////////////////////////////////////////////
// Classe TRiba_form customizzata dalla Form per le Ri.Ba.//
////////////////////////////////////////////////////////////
class TRiba_form: public TForm
{
protected:
virtual bool validate(TForm_item &, TToken_string &);
public:
TRiba_form(const char *);
virtual ~TRiba_form(){};
};
////////////////////////////////////////////////////////////////////
// Classe TDistinta_form customizzata dalla Form per le Distinte //
////////////////////////////////////////////////////////////////////
class TDistinta_form: public TForm
{
TRelation *_firmrel; // relazione di gestione dei dati della ditta corrente
TSorted_cursor *_cursor; // curosore che permette l'ordinamento degli effetti nella distinta
protected: // per data scadenza o per dati fattura
virtual bool validate(TForm_item &, TToken_string &);
public:
void set_order(const char tipo); // setta l'ordinamento del cursore
virtual TCursor* cursor() const { return (TCursor*)_cursor;} // restituisce il cursore
TDistinta_form(const char*, TRelation *);
virtual ~TDistinta_form();
};
// creazione dell'applicazione
bool TEmissione::create()
{
TApplication::create();
_formrb = NULL; // l'inizializzazione avviene nel metodo print()
_formdse = NULL; // a seconda che si stampino le riba o la distinta
_msk = new TMask("ef0500a");
_firmrel= new TRelation(LF_NDITTE);
_firmrel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR");
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA"); // si posiziona sulla prima unita' locale della ditta
_eff = new TLocalisamfile(LF_EFFETTI);
_reff = new TLocalisamfile(LF_REFFETTI);
_cession = new TLocalisamfile(LF_CESS);
_msk->set_handler(DLG_CANCEL, annulla_handler);
dispatch_e_menu(BAR_ITEM(1));
return TRUE;
}
// distruzione dell'applicazione
bool TEmissione::destroy()
{
if (_formrb) delete _formrb;
if (_formdse) delete _formdse;
delete _msk;
delete _firmrel;
delete _eff;
delete _reff;
delete _cession;
return TApplication::destroy();
}
// carica la ditta corrente
void TEmissione::on_firm_change()
{
TLocalisamfile &firmfile= _firmrel->lfile();
firmfile.put("CODDITTA", get_firm());
_firmrel->read();
}
// carica la maschera per emissione effetti e distinte
bool TEmissione::menu(MENU_TAG)
{
KEY key = K_ENTER;
while (key != K_QUIT) // rimane in esecuzione finchè non si chiude la maschera
{
key = _msk->run();
if (key == K_ENTER) // se si confermano i dati inseriti
conferma();
}
return FALSE;
}
// gestisce la scelta fra le due possibili emissioni
void TEmissione::conferma()
{
int tipoemis = _msk->get_int(F_TIPOEMIS);
if (tipoemis == 1) // emissione su floppy
floppy();
else
print(); // emissione su carta
}
// gestione emissione su floppy
void TEmissione::floppy()
{
}
// aggiorna, su file, numero e data di emissione ed il flag di stampa
// su tutti gli effetti nel cursore
void TEmissione::aggiorna_rb(TCursor* cur)
{
TLocalisamfile &eff = cur->file(LF_EFFETTI);
for (*cur = 0; cur->pos() < cur->items(); ++(*cur))
{
TEffetto effetto = eff.curr();
long numero = effetto.numero();
effetto.put("NUMEMISS", numero);
TDate data = _msk->get_date(F_DATAEMIS);
effetto.put("DATAEMISS", data);
bool cond = TRUE;
effetto.put("EFFSTAMP", cond);
effetto.rewrite(eff);
}
}
// aggiorna, su file, il flag di stampa della distinta
// su tutti gli effetti nel cursore
void TEmissione::aggiorna_dist(TCursor* cur)
{
TLocalisamfile &eff = cur->file(LF_EFFETTI);
for (*cur = 0; cur->pos() < cur->items(); ++(*cur))
{
TEffetto effetto = eff.curr();
bool cond = TRUE;
effetto.put("DISTSTAM", cond);
effetto.rewrite(eff);
}
}
// gestione emissione su carta delle riba
void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
{
TCursor* fcur = _formrb->cursor();
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
TString16 filter;
if (tipost == 'D') // se stampa definitiva effetti
if (!_msk->get_bool(F_RIST)) // se non deve ristampare le riba
filter = "EFFSTAMP=\" \""; // setta il filtro del cursore per ...
fcur->setfilter(filter,TRUE); // ... stampare solo gli effetti non ancora stampati
// setta la chiave 4 per il cursore per poter leggere tutti gli effetti della distinta
fcur->setkey(4);
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
darec.put("NDIST", ndist);
darec.put("TIPODIST", tipodist);
TRectype arec(darec);
fcur->setregion(darec, arec);
long n = fcur->items();
fcur->freeze(); // congela lo stato del cursore
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
for (int j=0; j < ncopie; j++)
{
TProgind* pi;
if (!is_vis)
pi = new TProgind(n,"Stampa Effetti/Distinte...",FALSE,TRUE,10);
for (*fcur = 0; fcur->pos() < n; ++(*fcur)) // ciclo sugli elementi del cursore di stampa
{
if (!is_vis)
pi->addstatus(1L); // aggiorna la barra d'attesa
_formrb->print(); // stampa il form
}
}
if (tipost == 'D') // se emetto riba in definitiva ...
aggiorna_rb(fcur); // ... devo aggiornare data, numero emissine e flag di stampa effetto
}
// gestione emissione su carta delle distinte
void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
{
TCursor* fcur = _formdse->cursor();
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
// setta la chiave 4 per il cursore per poter leggere tutti gli effetti della distinta
TString16 filter;
fcur->setfilter(filter,TRUE);
fcur->setkey(4);
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
darec.put("NDIST", ndist);
darec.put("TIPODIST", tipodist);
TRectype arec(darec);
fcur->setregion(darec, arec);
long n = fcur->items();
fcur->freeze(); // congela lo stato del cursore
// se la stampa non si fa a video istanzia puntatore per la gestione della barra di attesa
for (int j=0; j < ncopie; j++)
{
TProgind* pi;
if (!is_vis)
pi = new TProgind(n,"Stampa Effetti/Distinte...",FALSE,TRUE,10);
_base_page_no = 0;
if (!is_vis)
pi->addstatus(1L); // aggiorna la barra d'attesa
_formdse->print(); // stampa il form
_base_page_no = printer().getcurrentpage() -1; // stampa numero di pagina (solo nella distinta)
}
if (tipost == 'D') // se emetto distinta in definitiva ...
aggiorna_dist(fcur); // ... devo aggiornare flag di stampa distinta
}
// gestione emissione su carta
void TEmissione::print()
{
int ncopie = _msk->get_int(F_NCOPIE);
if (ncopie == 0) ncopie = 1;
printer().open(); // apre la stampante
const bool is_vis = printer().printtype() == screenvis; // TRUE se si stampa a video
int emis = _msk->get_int(F_EMIS);
int ndist = _msk->get_int(F_NUMBER);
char tipodist = _msk->get(F_TIPODIST)[0];
_eff->put("TIPODIST",tipodist);
_eff->put("NDIST",ndist);
_eff->put("NRIGADIST",1);
_eff->setkey(4);
_eff->read();
long codabi = _eff->get_long("CODABIP");
char tipost = _msk->get(F_TIPOST)[0];
char tipord = _msk->get(F_TIPORD)[0];
// se emetto riba istanzio il form per le riba
// se emetto distinta istanzio il form per le distinte
if (emis == 1) // emetto riba
{
TString16 nomeform;
nomeform.format("rb%05ld.frm",codabi);// compongo il nome del form
if (!fexist(nomeform)) // ne controllo l'esistenza
nomeform = "rb.frm"; // se non esiste utilizzo il form generico
_formrb = new TRiba_form(nomeform);
print_rb(tipost,ndist,tipodist,ncopie,is_vis);
}
else // emetto distinta
{
TString16 nomeform;
nomeform.format("dse%05ld.frm",codabi);// compongo il nome del form
if (!fexist(nomeform)) // ne controllo l'esistenza
nomeform = "dse.frm"; // se non esiste utilizzo il form generico
_formdse = new TDistinta_form(nomeform, _firmrel);
_formdse->set_order(tipord);
print_dse(tipost,ndist,tipodist,ncopie,is_vis);
}
printer().close(); // chiude la stampante
}
// handler per gestire la conferma dell'annullamento dei dati inseriti nella maschera
bool TEmissione::annulla_handler(TMask_field& f, KEY k)
{
TMask &m = f.mask();
if (k == K_SPACE)
{
if (yesno_box("Vuoi veramete annullare i dati inseriti"))
m.reset();
}
return TRUE;
}
// costruttore classe TRiba_form
TRiba_form::TRiba_form(const char* name): TForm()
{
read(name);
}
// gestione dei messaggi estesi nei campi
bool TRiba_form::validate(TForm_item &cf, TToken_string &s)
{
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
TString valore;
if (code == "_FATT")
{
// gestione dei campi relativi alle/a fatture/a a cui si riferisce un effetto
// sintassi: _FATT,<macro>
// dove: <macro> è uno delle macro seguenti:
// "!A" fattura o fatture
// "!DATI" numero e data fattura
// "!IMPFATT" importo fattura
TCursor* fcur = cursor();
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
TEffetto effetto = eff.curr();
long num = effetto.numero();
bool condition = (effetto.fatt(num));
TToken_string* dati = effetto.dati_fatt(num);
TString in(s.get());
if (in[0]=='!')
{
in.ltrim(1);
// "!A" se 1 sola fattura stampa 'a' altrimenti stampa 'e'
if (in == "A")
{
if (condition)
cf.set("a");
else
cf.set("e");
}
// "!DATIFATT" stampa numero e data fattura delle fatture a cui si riferisce l'effetto
if (in == "DATIFATT")
{
int elem = dati->items();
TString descfatt;
for (int i = 0; i < elem; i+=3)
{
descfatt << dati->get(i);
descfatt << " ";
descfatt << dati->get(i+1);
descfatt << " ";
cf.set(descfatt);
}
}
// "!IMPFATT" se 1 sola fattura ne stampa l' importo
if (in == "IMPFATT")
{
if (condition)
cf.set(dati->get(2));
}
}
valore = cf.get();
cf.put_paragraph(valore);
cf.set("");
return (TRUE);
} // fine _FATT
return TForm::validate(cf, s);
}
// costruttore classe TDistinta_form
TDistinta_form::TDistinta_form(const char* name, TRelation *rel): TForm(), _firmrel(rel)
{
read(name);
_cursor = NULL;
}
// setta l'ordinamento del TSordet_cursor del form
void TDistinta_form::set_order(const char tipo)
{
TString ordine;
// ordinamento secondo la data di scadenza dell'effetto
if (tipo == 'S') ordine = "DATASCAD|TIPODIST|NDIST|NRIGADIST";
// ordinamento seconda il numero e la data della fattura
else if (tipo == 'F') ordine = "14->NFATT|TIPODIST|NDIST|NRIGADIST";
_cursor = new TSorted_cursor(relation(),ordine);
}
// distruttore classe TDistinta_form
TDistinta_form::~TDistinta_form()
{
if (_cursor) delete _cursor;
}
// gestione dei messaggi estesi nei campi
bool TDistinta_form::validate(TForm_item &cf, TToken_string &s)
{
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
TString valore;
if (code == "_DITTA")
{
// gestione di campi della ditta corrente
// sintassi: _DITTA,<macro>
// dove: <macro> è uno delle macro seguenti:
// "!RAGSOC" ragione sociale
TString in(s.get());
if (in[0]=='!')
{
in.ltrim(1);
// "!RAGSOC" prende la ragione sociale della ditta corrente
if (in=="RAGSOC") cf.set(_firmrel->lfile().get("RAGSOC"));
}
valore = cf.get();
cf.put_paragraph(valore);
cf.set("");
return (TRUE);
} // fine _DITTA
if (code == "_FATT")
{
// gestione dei campi relativi alle fatture a cui si riferisce un effetto
// sintassi: _FATT,<macro>
// dove: <macro> è uno delle macro seguenti:
// "!DATI" numero e data fattura
TCursor* fcur = cursor();
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
TEffetto effetto = eff.curr();
long num = effetto.numero();
TToken_string* dati = effetto.dati_fatt(num);
int elem = dati->items();
TString descfatt;
TString in(s.get()); // prende il primo parametro, il codice del messaggio
if (in[0]=='!')
{
in.ltrim(1);
// "!DATIFATT" stampa numero e data fattura delle fatture a cui si riferisce l'effetto
if (in == "DATIFATT")
{
for (int i = 0; i < elem; i+=3)
{
descfatt << dati->get(i);
descfatt << " ";
descfatt << dati->get(i+1);
descfatt << " ";
cf.set(descfatt);
}
}
}
valore = cf.get();
cf.put_paragraph(valore);
cf.set(""); // resetta il campo per la prossima stampa di questo item
return (TRUE);
} // fine _FATT
if (code == "_FOOTER")
{
// gestione dei campi del fondo pagina della distinta
// sintassi: _FOOTER,<macro>
// dove: <macro> è uno delle macro seguenti:
// "!NDOC" numero riba nella distinta
// "!TOTALE" totale presentato
TString in(s.get()); // prende il primo parametro, il codice del messaggio
if (in[0]=='!')
{
in.ltrim(1);
TCursor* fcur = cursor();
long i = fcur->items();
//"!NDOC" prende il numero riba nella distinta guardando quanti elementi ha il cursore di stampa
if (in == "NDOC")
cf.set(format("%ld",i));
//"!TOTALE" calcola il totale presentato prendendo i totale degli effetti nel cursore di stampa
if (in == "TOTALE")
{
long totale = 0;
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
for (*fcur = 0; fcur->pos() < i; ++(*fcur))
{
TEffetto effetto = eff.curr();
long imp = effetto.importo();
totale +=imp;
}
cf.set(format("%ld",totale));
}
}
valore = cf.get();
cf.put_paragraph(valore);
cf.set("");
return (TRUE);
} // fine _FOOTER
if (code== "_PAGENO")
{
// messaggio per stampare il numero di pagina corrente
TString16 pg; pg << int(printer().getcurrentpage() - app().base_no());
cf.set(pg); cf.put_paragraph(pg);
cf.set("");
}
return TForm::validate(cf, s);
}
int ef0500(int argc, char* argv[])
{
TEmissione a ;
a.run(argc, argv, "Emissione Effetti e Distinte");
return 0;
}

17
ef/ef0500.h Executable file
View File

@ -0,0 +1,17 @@
#ifndef __EF0500_H
#define __EF0500_H
#define F_TIPODIST 101
#define F_NUMBER 102
#define F_NUMBERRIGA 103
#define F_TIPOEMIS 104
#define F_EMIS 105
#define F_UNITA 106
#define F_FOR_OUT 107
#define F_NCOPIE 108
#define F_TIPORD 109
#define F_TIPOST 110
#define F_DATAEMIS 111
#define F_RIST 112
#endif //__EF0500_H

150
ef/ef0500a.uml Executable file
View File

@ -0,0 +1,150 @@
#include "ef0500.h"
PAGE "Emissione Effetti" -1 -1 78 20
GROUPBOX DLG_NULL 77 3
BEGIN
PROMPT 1 0 ""
END
LIST F_TIPODIST 18
BEGIN
PROMPT 2 1 "Tipo Distinta "
KEY 4
ITEM "I| All'incasso"
ITEM "B| Salvo buon fine"
ITEM "S| Allo sconto"
END
NUMBER F_NUMBER 7
BEGIN
PROMPT 45 1 "Numero Distinta "
FLAGS "R"
KEY 4
USE LF_EFFETTI KEY 4 SELECT NRIGADIST = 1
INPUT NDIST F_NUMBER
INPUT TIPODIST F_TIPODIST
INPUT NRIGADIST F_NUMBERRIGA
DISPLAY "Nr. distinta" NDIST
DISPLAY "Tipo distinta" TIPODIST
OUTPUT F_NUMBER NDIST
OUTPUT F_TIPODIST TIPODIST
OUTPUT F_NUMBERRIGA NRIGADIST
CHECKTYPE NORMAL
END
/* CAMPO NASCOSTO CHE SERVE PER LA RICERCA */
LIST F_NUMBERRIGA 12
BEGIN
PROMPT 1 60 "Numero Riga Distinta"
KEY 4
ITEM "1|PRIMA RIGA"
FLAGS "D"
END
RADIOBUTTON F_TIPOEMIS 32
BEGIN
PROMPT 25 3 "Tipo Emissione "
ITEM "1| Emissione RI.BA. su floppy"
MESSAGE DISABLE,2@|DISABLE,4@|DISABLE,5@
MESSAGE ENABLE,1@
ITEM "2| Emissione RI.BA. su carta"
MESSAGE DISABLE,1@
MESSAGE ENABLE,2@
END
GROUPBOX DLG_NULL 77 3
BEGIN
PROMPT 1 7 ""
GROUP 1
END
LIST F_UNITA 9
BEGIN
PROMPT 2 8 "Unità di output "
ITEM "A| Drive A"
ITEM "B| Drive B"
GROUP 1
END
LIST F_FOR_OUT 7
BEGIN
PROMPT 45 8 "Formato unità output "
ITEM "1|360 Kb"
ITEM "2|720 Kb"
ITEM "3|1,2 Mb"
ITEM "4|1,44 Mb"
GROUP 1
END
GROUPBOX DLG_NULL 77 5
BEGIN
PROMPT 1 10 ""
GROUP 2
END
LIST F_EMIS 20
BEGIN
PROMPT 2 11 "Emissione "
ITEM "1| Emissione effetti"
MESSAGE DISABLE,4@|ENABLE,5@
ITEM "2| Emissione distinta"
MESSAGE ENABLE,4@|DISABLE,5@
GROUP 2
END
NUMBER F_NCOPIE 3
BEGIN
PROMPT 2 12 "Numero copie "
NUM_EXPR {(#THIS_FIELD >= 0)}
WARNING "Il numero di copie deve essere positivo"
GROUP 2
END
LIST F_TIPORD 14
BEGIN
PROMPT 2 13 "Tipo Ordinamento "
ITEM "S| Scadenza "
ITEM "F| Fattura "
GROUP 4
END
LIST F_TIPOST 14
BEGIN
PROMPT 45 12 "Tipo di Stampa "
ITEM "P| Provvisoria"
ITEM "D| Definitiva"
GROUP 2
END
BOOLEAN F_RIST
BEGIN
PROMPT 45 13 "Ristampo RI.BA."
GROUP 5
END
DATA F_DATAEMIS
BEGIN
PROMPT 2 15 "Data Emissione "
FLAGS "A"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK

191
ef/rb.frm Executable file
View File

@ -0,0 +1,191 @@
USE 31
JOIN 14 INTO NPROGTR==NPROGTR
JOIN 20 INTO TIPOCF=="C" CODCF==CODCF
JOIN 13 TO 20 ALIAS 113 INTO COM==COMCF
JOIN %BAN ALIAS 201 INTO CODTAB[1,5]==CODABI
JOIN %BAN ALIAS 203 INTO CODTAB==CODABI+CODCAB
JOIN 13 TO 203@ ALIAS 213 INTO COM==S5
JOIN %BAN ALIAS 202 INTO CODTAB==CODABIP+CODCABP
END
DESCRIPTION
BEGIN
31->* "Effetti"
14->* "Righe effetto"
20->* "Clienti e Fornitori"
113@->* "Comuni"
213@->* "Comuni"
201@->* "Tabella banche"
202@->* "Tabella banche"
203@->* "Tabella banche"
END
GENERAL
BEGIN
OFFSET 0 0
FONT "Roman 17cpi"
SIZE 12
END
SECTION BODY ODD 19
DATA 1 10
BEGIN
KEY "data scadenza"
PROMPT 50 2 ""
FIELD 31->DATASCAD
FORMAT "2444/"
END
NUMERO 2 18
BEGIN
KEY "importo"
PROMPT 70 2 ""
FIELD 31->IMPORTO
PICTURE "###.###.###.###,@@"
END
STRING 3 50
BEGIN
KEY "denominazione banca di presentazione"
PROMPT 27 7 ""
FIELD 202@->S0
END
NUMERO 4 56
BEGIN
KEY "importo in lettere"
PROMPT 27 6 ""
FIELD 31->IMPORTO
PICTURE "(*,*)LETTERE@44"
END
LISTA 5 4
BEGIN
KEY "a saldo/in conto"
FIELD 31->ULTRATA
PROMPT 27 10 ""
ITEM " |########"
ITEM "X|"
END
LISTA 6 4
BEGIN
KEY "a saldo/in conto"
FIELD 31->ULTRATA
PROMPT 27 11 ""
ITEM " |"
ITEM "X|########"
END
STRING 7 1
BEGIN
KEY "lettera a/e a seconda che la fattura raggruppata/o no"
PROMPT 35 10 ""
MESSAGE _FATT,!A
END
STRING 8 1
BEGIN
KEY "lettera a/e a seconda che la fattura raggruppata/o no"
PROMPT 43 10 ""
MESSAGE _FATT,!A
END
STRING 9 17 5
BEGIN
KEY "dati fattura"
PROMPT 48 10 ""
MESSAGE _FATT,!DATIFATT
END
NUMERO 10 18
BEGIN
KEY "importo fattura"
PROMPT 73 10 ""
MESSAGE _FATT,!IMPFATT
END
STRING 11 30 2
BEGIN
KEY "ragione sociale debitore"
PROMPT 31 14 ""
FIELD 20->RAGSOC
END
STRING 13 32
BEGIN
KEY "indirizzo debitore"
PROMPT 31 16 ""
FIELD 20->INDCF
END
STRING 14 5
BEGIN
KEY "CAP debitore"
PROMPT 31 17 ""
FIELD 20->CAPCF
END
STRING 15 22
BEGIN
KEY "localita debitore"
PROMPT 38 17 ""
FIELD 20->LOCALITACF
END
STRING 16 2
BEGIN
KEY "provincia debitore"
PROMPT 61 17 ""
FIELD 113@->PROVCOM
END
STRING 17 27 2
BEGIN
KEY "istituto banca d'appoggio"
PROMPT 1 14 ""
FIELD 201@->S0
END
STRING 18 27 2
BEGIN
KEY "denominazione banca d'appoggio"
PROMPT 1 16 ""
FIELD 203@->S0
END
STRINGA 19
BEGIN
KEY "via banca appoggio"
PROMPT 0 0 ""
FLAGS "H"
MESSAGE COPY,21
FIELD 203@->S2
END
STRINGA 20
BEGIN
KEY "n. civico banca appoggio"
PROMPT 0 0 ""
FLAGS "H"
MESSAGE APPEND,21
FIELD 203@->S7
END
STRING 21 27
BEGIN
KEY "indirizzo banca d'appoggio"
PROMPT 1 18 ""
END
STRING 22 27
BEGIN
KEY "localita banca d'appoggio"
PROMPT 1 19 ""
FIELD 213@->DENCOM
END
END
END