Corretti da Parma lista movimenti , mastrini, stampa clienti/fornitori , giornale

git-svn-id: svn://10.65.10.50/trunk@584 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1994-11-10 11:43:40 +00:00
parent c5c76c0c94
commit b8d3d63b6c
11 changed files with 2196 additions and 1217 deletions

View File

@ -12,8 +12,11 @@
#include <comuni.h>
#include <cfven.h>
#include <indsp.h>
#include "cg1.h"
#include "cg1200a.h"
#include "cg1200b.h"
#include <pconti.h>
#define COMRF_ALIAS 50
#define COMNASC_ALIAS 51
@ -23,6 +26,9 @@ enum pw { clienti = 1, fornitori = 2, both = 3 };
bool mask2_reset_fields(TMask_field& mf, KEY k);
extern char __tmp [MAXSTR];
static TFixed_string tmp(__tmp, MAXSTR);
class CG1200_App : public TPrintapp
{
friend bool mask2_reset_fields(TMask_field& mf, KEY k);
@ -41,15 +47,19 @@ class CG1200_App : public TPrintapp
int _startrow, _rows_et, _cols_et, _startcol;
// variable field slots
TString _piva, _cpercip, _fax, _telex, _name, _telefono, _indir,
_localita;
TString _piva,_cpercip,_fax,_telex,_name,_telefono,_indir,_localita;
TString _cod_from,_cod_to,_data_stampa,_cofi,_d_c_ric,_d_alleg;
TString _datanas;
long _codice;
char _tipocf,_tipoaper;
bool _gia_iniziati_fornitori;
public:
virtual bool preprocess_page(int file, int counter);
virtual bool preprocess_print(int file, int counter);
virtual print_action postprocess_print(int file, int counter);
virtual void preprocess_header();
virtual void user_create();
virtual bool destroy();
virtual bool set_print(int);
@ -67,6 +77,12 @@ public:
void set_etichette();
void set_vendite(int f, int c) ;
void process_link(int id, const char* txt);
void ultimo_codice(char tipo);
const char* compatta_ragsoc(TString& ragsoc,char tipoaper);
void header_elenco();
void header_rubriche();
const char* descrizione_conto_ric(int,int,long);
const char* descrizione_allegato(char,long);
CG1200_App() : TPrintapp(),_piva(18), _cpercip(10), _fax(50), _telex(50),
_name(60), _telefono(90), _indir(70), _localita(90)
@ -106,9 +122,46 @@ const char* CG1200_App::look_tab(const char* tabname, TString& cod,
return tab.curr().get(fld);
}
const char* CG1200_App::descrizione_conto_ric(int gruppo, int conto, long sottoc)
{
TLocalisamfile pconti(LF_PCON, FALSE);
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo);
pconti.put(PCN_CONTO, conto);
pconti.put(PCN_SOTTOCONTO, sottoc);
pconti.read();
if (pconti.bad())
pconti.zero();
tmp = pconti.get(PCN_DESCR);
return (__tmp);
}
const char* CG1200_App::descrizione_allegato(char tipocf,long cod)
{
TLocalisamfile clifo(LF_CLIFO, FALSE);
clifo.setkey(1);
clifo.zero();
clifo.put(CLI_TIPOCF, tipocf);
clifo.put(CLI_CODCF , cod);
clifo.read();
if (clifo.bad())
clifo.zero();
_tipoaper = clifo.get_char(CLI_TIPOAPER);
tmp = clifo.get(CLI_RAGSOC);
return (__tmp);
}
bool CG1200_App::preprocess_page(int file, int counter)
{
TString s;
int g_ric,c_ric;
long s_ric,codall;
switch (file)
{
case LF_CLIFO:
@ -127,9 +180,13 @@ bool CG1200_App::preprocess_page(int file, int counter)
return FALSE;
}
_tipocf = current_cursor()->curr(LF_CLIFO).get_char(CLI_TIPOCF);
// set variable fields
_piva = get_field(LF_CLIFO, CLI_COFI);
if (_piva.empty()) _piva = get_field(LF_CLIFO, CLI_PAIV);
_cofi = get_field(LF_CLIFO, CLI_COFI);
//_piva = get_field(LF_CLIFO, CLI_COFI);
//if (_piva.empty()) _piva = get_field(LF_CLIFO, CLI_PAIV);
_piva = get_field(LF_CLIFO, CLI_PAIV);
_telefono = get_field(LF_CLIFO, CLI_PTEL);
if (!_telefono.empty()) _telefono << "/";
_telefono << get_field(LF_CLIFO, CLI_TEL) << " ";
@ -146,6 +203,29 @@ bool CG1200_App::preprocess_page(int file, int counter)
if (!_telex.empty()) _telex << "/";
_telex << get_field(LF_CLIFO, CLI_TELEX);
_indir = get_field(LF_CLIFO, CLI_INDCF);
g_ric = atoi(get_field(LF_CLIFO, CLI_GRUPPORIC));
c_ric = atoi(get_field(LF_CLIFO, CLI_CONTORIC));
s_ric = atol(get_field(LF_CLIFO, CLI_SOTTOCRIC));
codall = atol(get_field(LF_CLIFO, CLI_CODALLEG));
_datanas = get_field(LF_CLIFO, CLI_DATANASC);
const TString16 tipoaper(get_field(LF_CLIFO, CLI_TIPOAPER));
_d_alleg = "";
if (codall != 0)
{
_d_alleg = descrizione_allegato(_tipocf,codall);
if (_tipoaper == 'F')
{
TString surname = _d_alleg.mid(30,50); surname.trim();
_d_alleg = _d_alleg.mid(0,30); _d_alleg.trim();
_d_alleg << " " << surname;
}
}
_d_c_ric = descrizione_conto_ric(g_ric,c_ric,s_ric);
_d_c_ric = _d_c_ric.mid(0,31);
_d_alleg = _d_alleg.mid(0,26);
if (!_indir.empty()) _indir << " ";
_indir << get_field(LF_CLIFO, CLI_CIVCF);
@ -157,7 +237,7 @@ bool CG1200_App::preprocess_page(int file, int counter)
_name = get_field(LF_CLIFO, CLI_RAGSOC);
s = get_field(LF_CLIFO, CLI_CODANAGPER);
_cpercip = "";
const TString16 tipoaper(get_field(LF_CLIFO, CLI_TIPOAPER));
if (s.not_empty()) _cpercip << tipoaper << " " << s;
@ -167,6 +247,21 @@ bool CG1200_App::preprocess_page(int file, int counter)
_name = _name.mid(0,30); _name.trim();
_name << " " << surname;
}
switch(_pr_type)
{
case elenco:
case rubriche:
if (_pr_what == both)
if (_tipocf == 'F' && !_gia_iniziati_fornitori)
{
_gia_iniziati_fornitori = TRUE;
printer().formfeed();
}
break;
default:
break;
}
}
break;
case LF_INDSP:
@ -198,6 +293,7 @@ default:
print_action CG1200_App::postprocess_print(int file, int counter)
{
/*
static bool more = FALSE;
if (_pr_what == both)
{
@ -214,6 +310,7 @@ print_action CG1200_App::postprocess_print(int file, int counter)
return REPEAT_PAGE;
}
}
*/
return NEXT_PAGE;
}
@ -270,38 +367,223 @@ void CG1200_App::set_page(int file, int counter)
}
}
void CG1200_App::set_elenco()
void CG1200_App::ultimo_codice(char tipocf)
{
TLocalisamfile clifo(LF_CLIFO,FALSE);
char tipopr = tipocf;
clifo.setkey(1);
clifo.zero();
clifo.put(CLI_TIPOCF,tipocf);
for (clifo.read();!clifo.eof();clifo.next())
{
char tipo = clifo.get_char(CLI_TIPOCF);
if (tipo != tipopr) break;
_codice = clifo.get_long(CLI_CODCF);
}
}
const char* CG1200_App::compatta_ragsoc(TString& ragsoc,char tipoa)
{
if (tipoa == 'F')
{
TString80 cognome, nome;
cognome = ragsoc.mid(0,30);
nome = ragsoc.mid(30,20);
cognome.trim(); nome.trim();
ragsoc = cognome;
ragsoc << " " << nome;
}
tmp = ragsoc;
return (__tmp);
}
void CG1200_App::preprocess_header()
{
switch(_pr_type)
{
case elenco:
header_elenco();
break;
case rubriche:
header_rubriche();
break;
default:
break;
}
}
void CG1200_App::header_elenco()
{
reset_header();
// intestazione
const long firm = get_firm();
TString var;
int j = 1;
char tipocf;
TLocalisamfile ditte(LF_NDITTE);
ditte.zero();
ditte.put(NDT_CODDITTA, firm);
ditte.read();
if (ditte.bad()) ditte.zero();
TString s(ditte.get(NDT_RAGSOC));
set_header(1, "Ditta %ld %s @102gData @<@125gPag @#", firm, (const char*) s);
set_header(2, "Elenco %s",(_pr_what == both ? "Clienti+Fornitori" :
(_pr_what == clienti ? "Clienti" : "Fornitori")));
set_header(3, (const char *)(TString(132).fill('-')));
set_header(4, " Codice Ragione sociale");
set_header(5, "@9gIndirizzo@59gC.A.P.@66gLocalita'");
set_header(6, "@9gTelefoni@91gFAX @115gTelex");
set_header(7, "@9gLuogo di nascita@46gData"
"@56gPartita IVA Codice fiscale@93gConto di costo/ricavo@115gC.allegato@126gPerc.770");
set_header(8, (const char *)(TString(132).fill('-')));
set_header(j, "Ditta %ld %s@125gPag @#", firm, (const char*) s);
set_header(j++, "@102gData %s", (const char*) _data_stampa);
/*
if (_pr_what == both)
{
current_cursor()->save_status();
++(*current_cursor());
tipocf = current_cursor()->curr(LF_CLIFO).get_char(CLI_TIPOCF);
--(*current_cursor());
current_cursor()->restore_status();
}
else
*/
tipocf = current_cursor()->curr(LF_CLIFO).get_char(CLI_TIPOCF);
if (tipocf == 'C')
var = "Clienti";
else
if (tipocf == 'F')
var = "Fornitori";
set_header(j, "Elenco %s",(const char*) var);
if (_sort == 1)
var = "Ordine di codice";
else
var = "Ordine alfabetico";
set_header(j, "@30g%s", (const char*) var);
if (_mov_only)
set_header(j, "@55gSolo i movimentati");
ultimo_codice(_tipocf);
set_header(j++, "@102gUltimo cod.utilizzato %ld" , _codice);
if (_pr_what != both)
{
if (_cod_from.not_empty() || _cod_to.not_empty())
{
set_header(j, "Estremi selezione");
if (_cod_from.not_empty())
set_header(j, " da %s", (const char*) _cod_from);
if (_cod_to.not_empty())
if (_sort == 1)
set_header(j, " a %s", (const char*) _cod_to);
else
set_header(j, " a %s", (const char*) _cod_to);
j++;
}
}
set_header(j++, (const char *)(TString(132).fill('-')));
set_header(j++, " Codice Ragione sociale");
set_header(j++, "@9gIndirizzo@56gC.A.P.@63gLocalita'");
set_header(j++, "@9gTelefoni@90gFAX @115gTelex");
set_header(j++, "@9gLuogo di nascita@45gData@56gPartita IVA Codice fiscale");
set_header(j++, "@9gConto di costo/ricavo@56gCodice allegato@90gPercipiente 770");
set_header(j, (const char *)(TString(132).fill('-')));
}
void CG1200_App::header_rubriche()
{
reset_header();
// intestazione
const long firm = get_firm();
TString var;
int j = 1;
char tipocf;
TLocalisamfile ditte(LF_NDITTE);
ditte.zero();
ditte.put(NDT_CODDITTA, firm);
ditte.read();
if (ditte.bad()) ditte.zero();
TString s(ditte.get(NDT_RAGSOC));
set_header(j, "Ditta %ld %s@125gPag @#", firm, (const char*) s);
set_header(j++, "@102gData %s", (const char*) _data_stampa);
/*
if (_pr_what == both)
{
current_cursor()->save_status();
++(*current_cursor());
tipocf = current_cursor()->curr(LF_CLIFO).get_char(CLI_TIPOCF);
--(*current_cursor());
current_cursor()->restore_status();
}
else
*/
tipocf = current_cursor()->curr(LF_CLIFO).get_char(CLI_TIPOCF);
if (tipocf == 'C')
var = "Clienti";
else
if (tipocf == 'F')
var = "Fornitori";
set_header(j, "Rubrica %s",(const char*) var);
if (_sort == 1)
var = "Ordine di codice";
else
var = "Ordine alfabetico";
set_header(j, "@30g%s", (const char*) var);
if (_mov_only)
set_header(j, "@55gSolo i movimentati");
ultimo_codice(_tipocf);
set_header(j++, "@102gUltimo cod.utilizzato %ld" , _codice);
if (_pr_what != both)
{
if (_cod_from.not_empty() || _cod_to.not_empty())
{
set_header(j, "Estremi selezione");
if (_cod_from.not_empty())
set_header(j, " da %s", (const char*) _cod_from);
if (_cod_to.not_empty())
if (_sort == 1)
set_header(j, " a %s", (const char*) _cod_to);
else
set_header(j, " a %s", (const char*) _cod_to);
j++;
}
}
set_header(j++, (const char *)(TString(132).fill('-')));
set_header(j++, " Codice Ragione sociale@60gIndirizzo@100gC.A.P.@106gLocalita'@127gProv.");
set_header(j++, "@9gPartita iva@25gTelefoni");
set_header(j++, (const char *)(TString(132).fill('-')));
}
void CG1200_App::set_elenco()
{
// body
set_row(1,"$[r]@1s$[n] $[r]@pn$[n] #t", FLD(LF_CLIFO, CLI_TIPOCF),
FLD(LF_CLIFO, CLI_CODCF,"@@@@@@"), &_name);
set_row(2,"@9g#t@59g@s@66g#t@s @s", &_indir, FLD(LF_CLIFO, CLI_CAPCF),
set_row(2,"@9g#t@56g@s@63g#t @s @s", &_indir, FLD(LF_CLIFO, CLI_CAPCF),
&_localita, FLD(-COMRF_ALIAS,COM_DENCOM), FLD(-COMRF_ALIAS,COM_PROVCOM));
set_row(3,"@9g#t@90g#t@115g#t", &_telefono, &_fax, &_telex);
set_row(4,"@9g@s @s@46g@ld@56g#t@92g@3n @3n @6n@115g@n@126g#t",
FLD(-COMNASC_ALIAS, COM_DENCOM), FLD(-COMNASC_ALIAS, COM_PROVCOM),
FLD(LF_CLIFO, CLI_DATANASC), &_piva, FLD(LF_CLIFO,CLI_GRUPPORIC),
FLD(LF_CLIFO,CLI_CONTORIC), FLD(LF_CLIFO, CLI_SOTTOCRIC),
FLD(LF_CLIFO, CLI_CODALLEG), &_cpercip);
set_row(4,"@9g@s @s@45g#t@56g#t@69g#t",FLD(-COMNASC_ALIAS, COM_DENCOM),
FLD(-COMNASC_ALIAS, COM_PROVCOM), &_datanas, &_piva,&_cofi);
set_row(5,"@9g@3n @3n @6n #t@56g@n #t@90g#t",FLD(LF_CLIFO,CLI_GRUPPORIC),
FLD(LF_CLIFO,CLI_CONTORIC), FLD(LF_CLIFO, CLI_SOTTOCRIC),&_d_c_ric,
FLD(LF_CLIFO, CLI_CODALLEG), &_d_alleg, &_cpercip);
for(int i = 0; i < _interline; i++)
set_row(i+5,"");
@ -309,29 +591,12 @@ void CG1200_App::set_elenco()
void CG1200_App::set_rubriche()
{
reset_header();
// intestazione
const long firm = get_firm();
TLocalisamfile ditte(LF_NDITTE);
ditte.zero();
ditte.put(NDT_CODDITTA, firm);
ditte.read();
if (ditte.bad()) ditte.zero();
TString s(ditte.get(NDT_RAGSOC));
set_header(1, "Ditta %ld %s @102gData @<@125gPag @#", firm, (const char*) s);
set_header(2, "Rubrica %s",(_pr_what == both ? "Clienti+Fornitori" :
(_pr_what == clienti ? "Clienti" : "Fornitori")));
set_header(3, (const char *)(TString(132).fill('-')));
set_header(4, " Codice Ragione sociale");
set_header(5, "@9gIndirizzo@59gC.A.P.@66gLocalita'");
set_header(6, "@9gTelefoni@91gFAX @115gTelex");
set_header(7, (const char *)(TString(132).fill('-')));
// body
set_row(1,"$[r]@1s$[n] $[r]@pn$[n] #t", FLD(LF_CLIFO,CLI_TIPOCF),
FLD(LF_CLIFO,CLI_CODCF,"@@@@@@"), &_name);
set_row(2,"@9g#t@59g@s@66g#t@s @s", &_indir, FLD(LF_CLIFO, CLI_CAPCF),
&_localita, FLD(-COMRF_ALIAS,COM_DENCOM), FLD(-COMRF_ALIAS,COM_PROVCOM));
set_row(3,"@9g#t@90g#t@115g#t", &_telefono, &_fax, &_telex);
set_row(1,"@60g#t@100g@s@106g#t @127g@s", &_indir, FLD(LF_CLIFO, CLI_CAPCF),
&_localita, FLD(-COMRF_ALIAS,COM_PROVCOM));
set_row(2,"@9g#t@25g#t", &_piva,&_telefono);
for(int i = 0; i < _interline; i++)
set_row(i+4,"");
@ -573,6 +838,12 @@ bool CG1200_App::set_print(int)
_pr_what = (pw) mask.get_int(RDB_CG12_TYPE);
_interline = mask.get_int(LST_CG12_INTERLINE);
_mov_only = mask.get_bool(CHK_CG12_MOVIM);
char tipoafr = mask.get(F_TIPOAPERFR)[0];
char tipoato = mask.get(F_TIPOAPERTO)[0];
TDate data_stampa (mask.get(F_DATA_STAMPA));
_data_stampa = data_stampa.string();
_codice = 0;
_gia_iniziati_fornitori = FALSE;
select_cursor(ccur());
@ -600,11 +871,22 @@ bool CG1200_App::set_print(int)
toid = (_pr_what == clienti) ? FLD_CLI_RAGSOCTO : FLD_FOR_RAGSOCTO;
nome_campo = CLI_RAGSOC;
}
const TString16 cod_from(mask.get(fromid));
const TString16 cod_to(mask.get(toid));
TString cod_from(mask.get(fromid));
TString cod_to(mask.get(toid));
if (cod_from.not_empty()) tr1.put(nome_campo, cod_from);
if (cod_to.not_empty()) tr2.put(nome_campo, cod_to);
if (_sort == 1)
{
_cod_from = cod_from;
_cod_to = cod_to;
}
else
{
_cod_from = compatta_ragsoc(cod_from,tipoafr);
_cod_to = compatta_ragsoc(cod_to,tipoato);
}
}
current_cursor()->setregion(tr1, tr2);

View File

@ -15,4 +15,9 @@
#define BUT_CG12_RUBRICHE 116
#define BUT_CG12_ETICHETTE 117
#define BUT_CG12_VENDITE 118
#define F_CODDITTA 119
#define F_RAGSOC 120
#define F_DATA_STAMPA 121
#define F_TIPOAPERFR 122
#define F_TIPOAPERTO 123

View File

@ -1,10 +1,36 @@
#include "cg1200a.h"
#include <lffiles.h>
PAGE "Selezione" -1 -1 70 17
PAGE "Selezione" -1 -1 70 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATA_STAMPA
BEGIN
PROMPT 42 1 "Data di stampa "
FLAGS "A"
END
RADIOBUTTON RDB_CG12_TYPE 22
BEGIN
PROMPT 4 1 "Oggetto"
PROMPT 4 4 "Oggetto"
HELP "Selezionare l'archivio che si desidera stampare"
ITEM "1|Clienti" MESSAGE RESET,2@|SHOW,1@|HIDE,2@
ITEM "2|Fornitori" MESSAGE RESET,1@|SHOW,2@|HIDE,1@
@ -13,7 +39,7 @@ END
RADIOBUTTON RDB_CG12_SORT 22
BEGIN
PROMPT 4 6 "Ordinamento"
PROMPT 4 9 "Ordinamento"
HELP "Selezionare il tipo di ordinamento dei record stampati"
ITEM "1|per Codice" MESSAGE CLEAR,4@|ENABLE,3@
ITEM "2|per Ragione Sociale" MESSAGE CLEAR,3@|ENABLE,4@
@ -21,32 +47,32 @@ END
GROUPBOX DLG_NULL 35 10
BEGIN
PROMPT 32 1 "Selezione "
PROMPT 32 4 "Selezione "
END
TEXT DLG_NULL
BEGIN
PROMPT 34 5 "da Ragione Sociale/Nominativo"
PROMPT 34 8 "da Ragione Sociale/Nominativo"
END
TEXT DLG_NULL
BEGIN
PROMPT 34 7 "a Ragione Sociale/Nominativo"
PROMPT 34 10 "a Ragione Sociale/Nominativo"
END
TEXT DLG_NULL
BEGIN
PROMPT 34 2 "da Codice"
PROMPT 34 5 "da Codice"
END
TEXT DLG_NULL
BEGIN
PROMPT 48 2 "a Codice"
PROMPT 48 5 "a Codice"
END
STRING FLD_CLI_CODFR 5
BEGIN
PROMPT 34 3 ""
PROMPT 34 6 ""
USE LF_CLIFO KEY 1
INPUT TIPOCF "C"
INPUT CODCF FLD_CLI_CODFR
@ -60,7 +86,7 @@ END
STRING FLD_CLI_CODTO 5
BEGIN
PROMPT 48 3 ""
PROMPT 48 6 ""
COPY USE FLD_CLI_CODFR
INPUT TIPOCF "C"
INPUT CODCF FLD_CLI_CODTO
@ -74,7 +100,7 @@ END
STRING FLD_CLI_RAGSOCFR 50 29
BEGIN
PROMPT 34 6 ""
PROMPT 34 9 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC FLD_CLI_RAGSOCFR
@ -82,17 +108,20 @@ BEGIN
DISPLAY "Codice" CODCF
DISPLAY "Codice Fiscale@16" COFI
OUTPUT FLD_CLI_RAGSOCFR RAGSOC
OUTPUT F_TIPOAPERFR TIPOAPER
GROUP 1 4
HELP "Introdurre rag. soc. di inizio stampa: vuoto = inizio archivio"
END
STRING FLD_CLI_RAGSOCTO 50 29
BEGIN
PROMPT 34 8 ""
PROMPT 34 11 ""
COPY USE FLD_CLI_RAGSOCFR
INPUT TIPOCF "C"
INPUT RAGSOC FLD_CLI_RAGSOCTO
COPY DISPLAY FLD_CLI_RAGSOCFR
OUTPUT FLD_CLI_RAGSOCTO RAGSOC
OUTPUT F_TIPOAPERTO TIPOAPER
GROUP 1 4
HELP "Introdurre ragione soc. di fine stampa: vuoto = fine archivio"
STR_EXPR {(#THIS_FIELD == "") || (#THIS_FIELD >= #FLD_CLI_RAGSOCFR)}
@ -101,7 +130,7 @@ END
STRING FLD_FOR_CODFR 5
BEGIN
PROMPT 34 3 ""
PROMPT 34 6 ""
COPY USE FLD_CLI_CODFR
INPUT TIPOCF "F"
INPUT CODCF FLD_FOR_CODFR
@ -113,7 +142,7 @@ END
STRING FLD_FOR_CODTO 5
BEGIN
PROMPT 48 3 ""
PROMPT 48 6 ""
COPY USE FLD_FOR_CODFR
INPUT TIPOCF "F"
INPUT CODCF FLD_FOR_CODTO
@ -127,38 +156,53 @@ END
STRING FLD_FOR_RAGSOCFR 50 29
BEGIN
PROMPT 34 6 ""
PROMPT 34 9 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "F"
INPUT RAGSOC FLD_FOR_RAGSOCFR
COPY DISPLAY FLD_CLI_RAGSOCFR
OUTPUT FLD_FOR_RAGSOCFR RAGSOC
OUTPUT F_TIPOAPERFR TIPOAPER
GROUP 2 4
HELP "Introdurre rag. soc. di inizio stampa: vuoto = inizio archivio"
END
STRING FLD_FOR_RAGSOCTO 50 29
BEGIN
PROMPT 34 8 ""
PROMPT 34 11 ""
COPY USE FLD_FOR_RAGSOCFR
INPUT TIPOCF "F"
INPUT RAGSOC FLD_FOR_RAGSOCTO
COPY DISPLAY FLD_CLI_RAGSOCFR
OUTPUT FLD_FOR_RAGSOCTO RAGSOC
OUTPUT F_TIPOAPERTO TIPOAPER
GROUP 2 4
HELP "Introdurre ragione soc. di fine stampa: vuoto = fine archivio"
STR_EXPR {(#THIS_FIELD == "") || (#THIS_FIELD >= #FLD_FOR_RAGSOCFR)}
WARNING "Limite superiore errato"
END
STRING F_TIPOAPERFR 1
BEGIN
PROMPT 1 1 ""
FLAGS "HD"
END
STRING F_TIPOAPERTO 1
BEGIN
PROMPT 2 2 ""
FLAGS "HD"
END
BOOLEAN CHK_CG12_MOVIM
BEGIN
PROMPT 4 10 "Solo movimentati"
PROMPT 4 13 "Solo movimentati"
HELP "Selezionare per stampare solo inclusi archivio movimenti"
END
LIST LST_CG12_INTERLINE 1
BEGIN
PROMPT 4 11 "Righe interlinea "
PROMPT 4 14 "Righe interlinea "
ITEM "0|0"
ITEM "1|1"
ITEM "2|2"
@ -167,36 +211,36 @@ END
GROUPBOX DLG_NULL 51 4
BEGIN
PROMPT 2 13 "Stampa"
PROMPT 2 16 "Stampa"
END
BUTTON BUT_CG12_ELENCO 9 2
BEGIN
PROMPT 4 14 "~Elenco"
PROMPT 4 17 "~Elenco"
MESSAGE EXIT,BUT_CG12_ELENCO
END
BUTTON BUT_CG12_RUBRICHE 9 2
BEGIN
PROMPT 16 14 "~Rubriche"
PROMPT 16 17 "~Rubriche"
MESSAGE EXIT,BUT_CG12_RUBRICHE
END
BUTTON BUT_CG12_ETICHETTE 9 2
BEGIN
PROMPT 28 14 "E~tichette"
PROMPT 28 17 "E~tichette"
MESSAGE EXIT,BUT_CG12_ETICHETTE
END
BUTTON BUT_CG12_VENDITE 9 2
BEGIN
PROMPT 40 14 "~Vendite"
PROMPT 40 17 "~Vendite"
MESSAGE EXIT,BUT_CG12_VENDITE
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT 55 14 ""
PROMPT 55 17 ""
END
ENDPAGE

File diff suppressed because it is too large Load Diff

View File

@ -55,7 +55,7 @@ END
LIST F_CONTROLLO 21
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "La scelta 1 stampa solo le registrazioni non errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 3 stampa solo le registrazioni errate"
HELP "La scelta 1 stampa tutte le registrazioni senza la segnalazione di quelle errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 3 stampa solo le registrazioni errate"
ITEM "3|No" MESSAGE HIDE,1@|RESET,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
@ -126,6 +126,8 @@ BEGIN
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)}
WARNING "Limite superiore errato"
GROUP 2
END

View File

@ -26,12 +26,14 @@ END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 5 "Anno esercizio "
HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC KEY 1
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno esercizio@50" CODTAB
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
DATE F_DATASTAMPA

View File

@ -26,11 +26,15 @@
static TString256 tmp;
int date2esc(const TDate& d, int* prevesc = NULL);
bool sottoc_handler_ini (TMask_field& f, KEY k);
bool sottoc_handler_fine (TMask_field& f, KEY k);
class CG3200_application : public TPrintapp
{
static bool data_inizio (TMask_field& f, KEY k);
static bool data_fine (TMask_field& f, KEY k);
friend bool sottoc_handler_ini (TMask_field& f, KEY k);
friend bool sottoc_handler_fine (TMask_field& f, KEY k);
TDociva_array _b;
TRelation* _rel;
@ -45,8 +49,8 @@ class CG3200_application : public TPrintapp
Saldo _sld;
TDate _data_ini,_data_fine,_data_finese,_data_finesesucc,_ultima_data_reg;
TDate _datareg,_datadoc,_data_inizioese,_datareg_stampa;
int _cur1,_gruppo,_conto,_numcarat,_stampanum,_numivd;
TDate _datareg,_datadoc,_data_inizioese,_datareg_stampa,_inizioes;
int _cur1,_gruppo,_conto,_numcarat,_stampanum,_numivd,_annoiva;
int _numrig,_natdoc,_tipo,_tipostampa,_g_prec,_c_prec,_numrivd_int;
real _progredare,_progreavere,_totprogre_dare_al,_totprogre_avere_al;
real _totprogre_dare,_totprogre_avere,_importo;
@ -56,10 +60,12 @@ class CG3200_application : public TPrintapp
real _saldo_movimenti,_saldo_progressivi,_totale_saldo;
TString _ragsoc,_indulc,_civulc,_capulc,_com,_prov,_comulc;
long _codice_ditta,_s_prec;
TString _tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva;
TString _tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva,_g_contr,_c_contr,_s_contr;
char _sezivd,_lettivd;
TString _descrizione,_sezione,_numdoc,_descrizionemov,_numrivd,_descr;
TString _dataregs, _datadocs,_gruppocontr,_contocontr,_sottocontocontr;
TString _dataregs, _datadocs;
int _gruppocontr,_contocontr;
long _sottocontocontr;
bool _stampaprogre,_stampatotiva,_stampatot,_prima_volta,_stampa_mov_prov;
@ -67,7 +73,7 @@ class CG3200_application : public TPrintapp
int _anno_corrente,_anno_precedente,_indbil;
long _sottoc,_numreg,_numgio,_protiva;
bool _stampa_progressivi_si,_competenza,_inizio_stampa,_puoi_stampare;
char _tipocf,_tmcf;
char _tmcf,_tipo_contr;
TDate _dataregrmov;
int _gruppof,_contof;
@ -108,12 +114,10 @@ public:
void data_fine_esercizio(int);
const char* descrizione_gruppo();
const char* descrizione_conto();
const char* descrizione_gruppo_clifo();
const char* descrizione_conto_clifo();
const char* descrizione_classe(char,char,int,int);
bool almeno_un_record();
void ricerca_dati_ditta();
void conto();
void conto(int,int,bool);
CG3200_application() {}
};
@ -134,6 +138,203 @@ void CG3200_application::process_link(int id, const char* txt)
pn.run();
}
bool sottoc_handler_ini(TMask_field& f, KEY key)
{
const short id = f.dlg();
const int gruppo = f.mask().get_int(F_GRUPPOINI);
const int conto = f.mask().get_int(F_CONTOINI_CONTO);
const long sottoconto = f.mask().get_long(id);
TString ds;
TString80 rs;
TLocalisamfile pconti (LF_PCON);
if ( key == K_ENTER )
{
if (sottoconto != 0 && conto == 0)
return f.warning_box("Manca il CONTO");
if (conto != 0 && gruppo == 0)
return f.warning_box("Manca il GRUPPO");
}
if ( key == K_TAB )
{
if (id == F_SOTTOCINI_CONTO)
{
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.put(PCN_SOTTOCONTO, sottoconto);
pconti.setkey(1);
pconti.read(_isequal, _nolock);
if (pconti.good())
ds = pconti.get(PCN_DESCR);
else
ds = "";
f.mask().set(F_DESCRINI_CONTO, ds);
f.mask().set(F_DESCRINI_CLIENTE, ds);
f.mask().set(F_DESCRINI_FORN, ds);
}
if (id == F_SOTTOCINI_CLIENTE || id == F_SOTTOCINI_FORN)
{
char tipo = id == F_SOTTOCINI_CLIENTE ? 'C' : 'F';
TLocalisamfile clifo (LF_CLIFO);
if (sottoconto != 0)
{
clifo.zero();
clifo.put(CLI_TIPOCF,tipo);
clifo.put(CLI_CODCF, sottoconto) ;
clifo.setkey(1);
if (clifo.read(_isequal, _nolock) == NOERR)
{
rs = clifo.get(CLI_RAGSOC);
char tipoa = clifo.get_char("TIPOAPER");
if (tipoa == 'F')
{
TString80 cognome, nome;
cognome = rs.mid(0,30);
nome = rs.mid(30,20);
cognome.trim(); nome.trim();
rs = cognome;
rs << " " << nome;
}
}
else
rs = "";
f.mask().set(F_DESCRINI_CLIENTE, rs);
f.mask().set(F_DESCRINI_FORN, rs);
}
else
if (gruppo != 0 && conto != 0)
{
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.setkey(1);
pconti.read(_isequal, _nolock);
if (pconti.good())
ds = pconti.get(PCN_DESCR);
else
ds = "";
f.mask().set(F_DESCRINI_CLIENTE, ds);
f.mask().set(F_DESCRINI_FORN, ds);
f.mask().set(F_DESCRINI_CONTO, ds);
}
}
}
return TRUE;
}
bool sottoc_handler_fine(TMask_field& f, KEY key)
{
const short id = f.dlg();
const int gruppo = f.mask().get_int(F_GRUPPOFINE);
const int conto = f.mask().get_int(F_CONTOFINE_CONTO);
const long sottoconto = f.mask().get_long(id);
TString ds;
TString80 rs;
TLocalisamfile pconti (LF_PCON);
if ( key == K_ENTER )
{
if (sottoconto != 0 && conto == 0)
return f.warning_box("Manca il CONTO");
if (conto != 0 && gruppo == 0)
return f.warning_box("Manca il GRUPPO");
}
if ( key == K_TAB )
{
// if (!f.focusdirty() && gruppo == 0 && conto == 0) return TRUE;
/*
if (sottoconto != 0 && conto == 0)
{
f.warning_box("Manca il CONTO");
return FALSE;
}
if (conto != 0 && gruppo == 0)
{
f.warning_box("Manca il GRUPPO");
return FALSE;
}
*/
if (id == F_SOTTOCFINE_CONTO)
{
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.put(PCN_SOTTOCONTO, sottoconto);
pconti.setkey(1);
pconti.read(_isequal, _nolock);
if (pconti.good())
ds = pconti.get(PCN_DESCR);
else
ds = "";
f.mask().set(F_DESCRFINE_CONTO, ds);
f.mask().set(F_DESCRFINE_CLIENTE, ds);
f.mask().set(F_DESCRFINE_FORN, ds);
}
if (id == F_SOTTOCFINE_CLIENTE || id == F_SOTTOCFINE_FORN)
{
char tipo = id == F_SOTTOCFINE_CLIENTE ? 'C' : 'F';
TLocalisamfile clifo (LF_CLIFO);
if (sottoconto != 0)
{
clifo.zero();
clifo.put(CLI_TIPOCF,tipo);
clifo.put(CLI_CODCF, sottoconto) ;
clifo.setkey(1);
if (clifo.read(_isequal, _nolock) == NOERR)
{
rs = clifo.get(CLI_RAGSOC);
char tipoa = clifo.get_char("TIPOAPER");
if (tipoa == 'F')
{
TString80 cognome, nome;
cognome = rs.mid(0,30);
nome = rs.mid(30,20);
cognome.trim(); nome.trim();
rs = cognome;
rs << " " << nome;
}
}
else
rs = "";
f.mask().set(F_DESCRFINE_CLIENTE, rs);
f.mask().set(F_DESCRFINE_FORN, rs);
}
else
if (gruppo != 0 && conto != 0)
{
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.setkey(1);
pconti.read(_isequal, _nolock);
if (pconti.good())
ds = pconti.get(PCN_DESCR);
else
ds = "";
f.mask().set(F_DESCRFINE_CLIENTE, ds);
f.mask().set(F_DESCRFINE_FORN, ds);
f.mask().set(F_DESCRFINE_CONTO, ds);
}
}
}
return TRUE;
}
int date2esc(const TDate& d, int* prevesc)
{
if (prevesc) *prevesc = 0;
@ -287,6 +488,8 @@ bool CG3200_application::data_fine(TMask_field& f, KEY k)
app()._anno_ghost = date2esc(data_ini);
app()._inizioes = app()._inizioEs;
if (data < app()._inizioEs || data > app()._fineEs)
{
f.error_box("La data non appartiene all'esercizio indicato");
@ -357,20 +560,13 @@ void CG3200_application::fai_stampa132()
set_row (1,"@30g#7t", &_numdoc);
set_row (1,"@38g#3t", &_codcaus);
set_row (1,"@117g#3t", &_gruppocontr);
set_row (1,"@120g#3t", &_contocontr);
set_row (1,"@123g#6t", &_sottocontocontr);
set_row (1,"@117g#3t", &_g_contr);
set_row (1,"@120g#3t", &_c_contr);
set_row (1,"@123g#6t", &_s_contr);
}
void CG3200_application::fai_stampa198()
{
TLocalisamfile & rmov = current_cursor()->file(LF_RMOV);
long rec;
TDate datasucc;
TString datasuccstring,dataregrmovstring;
int gruppof,contof;
long sottocf;
set_row (1,"@0g#t", &_dataregs);
if (_stampanum == 1)
set_row (1,"@11g$[r]#7d$[n]", &_numreg);
@ -384,30 +580,9 @@ void CG3200_application::fai_stampa198()
set_row (1,"@153g#t", &_saldo_movimenti_str);
set_row (1,"@169g#3t", &_gruppocontr);
set_row (1,"@172g#3t", &_contocontr);
set_row (1,"@175g#6t", &_sottocontocontr);
if (_tipo < 3)
set_row (1,"@185g#t" , &_regiva);
set_row (1,"@194g#5d", &_protiva);
_dataregrmov = current_cursor()->curr(LF_RMOV).get_date(RMV_DATAREG);
dataregrmovstring=_dataregrmov.string();
//Gestire la stampa di saldo_progressivi nella postprocess_page di RMOV
rec = rmov.recno();
rmov.next();
gruppof = rmov.get_int(RMV_GRUPPO);
contof = rmov.get_int(RMV_CONTO);
sottocf = rmov.get_int(RMV_SOTTOCONTO);
datasucc = rmov.get_date(RMV_DATAREG);
datasuccstring=datasucc.string();
if (((gruppof!=_gruppo)||(contof!=_conto)||(sottocf!=_sottoc))||(rmov.eof()))
datasucc = ("");
if (datasucc != _dataregrmov)
set_row (1,"@136g#t", &_saldo_progressivi_str);
rmov.readat(rec);
set_row (1,"@169g#3t", &_g_contr);
set_row (1,"@172g#3t", &_c_contr);
set_row (1,"@175g#6t", &_s_contr);
}
void CG3200_application::stampa_totali132()
@ -463,6 +638,12 @@ void CG3200_application::stampa_totali198()
bool CG3200_application::preprocess_page(int file, int counter)
{
TLocalisamfile & rmov = current_cursor()->file(LF_RMOV);
long rec;
TDate datasucc;
TString datasuccstring,dataregrmovstring;
int gruppof,contof;
long sottocf;
long record;
TString provvis = "";
int annoes;
@ -480,7 +661,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
_conto = atoi(current_cursor()->curr(LF_SALDI).get(SLD_CONTO));
_sottoc = atol(current_cursor()->curr(LF_SALDI).get(SLD_SOTTOCONTO));
annoes = atoi(current_cursor()->curr(LF_SALDI).get(SLD_ANNOES));
conto();
conto(_gruppo,_conto,TRUE);
if (annoes != _anno_corrente && annoes != _anno_precedente)
return FALSE;
@ -519,6 +700,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
{
_puoi_stampare = TRUE;
calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec;
stampa_progre_riporto();
}
else
@ -539,6 +721,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
else
{
_puoi_stampare = TRUE;
_saldo_progressivi += _saldo_progre_prec;
stampa_progre_riporto();
}
}
@ -560,9 +743,12 @@ bool CG3200_application::preprocess_page(int file, int counter)
rmov.read();
if (rmov.bad())
rmov.curr().zero();
_gruppocontr = rmov.curr().get(RMV_GRUPPO);
_contocontr = rmov.curr().get(RMV_CONTO);
_sottocontocontr = rmov.curr().get(RMV_SOTTOCONTO);
_gruppocontr = rmov.curr().get_int (RMV_GRUPPO);
_contocontr = rmov.curr().get_int (RMV_CONTO);
_sottocontocontr = rmov.curr().get_long(RMV_SOTTOCONTO);
_g_contr = rmov.get(RMV_GRUPPO);
_c_contr = rmov.get(RMV_CONTO);
_s_contr = rmov.get(RMV_SOTTOCONTO);
rmov.setkey(2);
rmov.readat(record);
@ -579,6 +765,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
_mov->zero();
_annoes = _mov->get_int(MOV_ANNOES);
_regiva = _mov->curr().get(MOV_REG);
_annoiva = _mov->curr().get_int(MOV_ANNOIVA);
// Controlla se saldo e' diverso da 0
@ -606,13 +793,26 @@ bool CG3200_application::preprocess_page(int file, int counter)
{
if ((_datareg >= _data_ini) && (_datareg <= _data_fine))
{
// Determino l' anno di competenza dell' operazione in esame
int anno = date2esc(_datareg_stampa);
if (anno != _annoes)
if (_numcarat == 1)
set_row (1, "@131g*");
else
if (_numcarat == 2)
set_row (1, "@197g*");
_codcaus = _mov->curr().get(MOV_CODCAUS);
_tipodoc = _mov->curr().get(MOV_TIPODOC);
if (_stampatotiva && (_tmcf == 'C' || _tmcf == 'F'))
{
if (_tipodoc != "")
{
documenti_iva();
_b.add_riga(_descrdociva,_importo, _natdoc);
}
}
_datadoc = (_mov->curr().get(MOV_DATADOC));
_datadocs = _datadoc.string();
_numdoc = _mov->curr().get(MOV_NUMDOC);
@ -638,10 +838,20 @@ bool CG3200_application::preprocess_page(int file, int counter)
}
}
else if (_descrizione == "")
if (_descrizionemov != "")
{
set_row (1,"@42g%.18s", (const char*) _descrcaus);
set_row (1,"@61g%.23s", (const char*) _descrizionemov);
}
else
if (_descrizionemov == "")
{
conto(_gruppocontr,_contocontr,FALSE);
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
TString descr_contr = tc.descrizione();
set_row (1,"@42g%.18s", (const char*) _descrcaus);
set_row (1,"@61g%.23s", (const char*) descr_contr);
}
}
else
if (_numcarat == 2) // Stampa 198 caratteri
@ -660,10 +870,20 @@ bool CG3200_application::preprocess_page(int file, int counter)
}
}
else if (_descrizione == "")
if (_descrizionemov != "")
{
set_row (1,"@42g%.25s", (const char*) _descrcaus);
set_row (1,"@68g%.32s", (const char*) _descrizionemov);
}
else
if (_descrizionemov == "")
{
conto(_gruppocontr,_contocontr,FALSE);
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
TString descr_contr = tc.descrizione();
set_row (1,"@42g%.25s", (const char*) _descrcaus);
set_row (1,"@68g%.32s", (const char*) descr_contr);
}
}
if (_sezione == "D")
@ -703,7 +923,30 @@ bool CG3200_application::preprocess_page(int file, int counter)
{
ricerca_regiva();
_protiva = atol(_mov->curr().get(MOV_PROTIVA));
if (_protiva != 0)
set_row (1,"@191g%5d", _protiva);
if (_tipo < 3)
set_row (1,"@182g#t" , &_regiva);
_dataregrmov = current_cursor()->curr(LF_RMOV).get_date(RMV_DATAREG);
dataregrmovstring=_dataregrmov.string();
//Gestire la stampa di saldo_progressivi nella postprocess_page di RMOV
rec = rmov.recno();
rmov.next();
gruppof = rmov.get_int(RMV_GRUPPO);
contof = rmov.get_int(RMV_CONTO);
sottocf = rmov.get_int(RMV_SOTTOCONTO);
datasucc = rmov.get_date(RMV_DATAREG);
datasuccstring=datasucc.string();
if (((gruppof!=_gruppo)||(contof!=_conto)||(sottocf!=_sottoc))||(rmov.eof()))
datasucc = ("");
if (datasucc != _dataregrmov)
set_row (1,"@136g#t", &_saldo_progressivi_str);
rmov.readat(rec);
}
return TRUE;
}
else
@ -833,7 +1076,6 @@ void CG3200_application::descrizione_causale()
void CG3200_application::documenti_iva()
{
TString dep;
// _tipodoc = _mov->curr().get(MOV_TIPODOC);
_tabtpd->curr().zero();
dep << format ("%2s",(const char*) _tipodoc);
@ -848,7 +1090,7 @@ void CG3200_application::ricerca_regiva()
TString16 dep;
_tabreg->curr().zero();
dep << format("%04d", _annoes);
dep << format("%04d", _annoiva);
dep << format("%3s" , (const char*) _regiva);
_tabreg->curr().put("CODTAB", (const char*) dep);
_tabreg->read();
@ -891,16 +1133,15 @@ bool CG3200_application::set_print(int)
_stampanum = atoi(_msk->get(F_STAMPANUM));
_stampa_mov_prov = (bool)(_msk->get(F_STAMPAMOVPROV) == "X");
int gruppoini = atoi(_msk->get(F_GRUPPOINI));
int contoini = atoi(_msk->get(F_CONTOINI));
int contoini = atoi(_msk->get(F_CONTOINI_CONTO));
long sottocontoini = atol(_msk->get(F_SOTTOCINI_CONTO));
int gruppofine = atoi(_msk->get(F_GRUPPOFINE));
int contofine = atoi(_msk->get(F_CONTOFINE));
int contofine = atoi(_msk->get(F_CONTOFINE_CONTO));
long sottocontofine = atol(_msk->get(F_SOTTOCFINE_CONTO));
_tipostampa = atoi(_msk->get(F_TIPOSTAMPA));
_numcarat = atoi(_msk->get(F_NUMCARAT));
int formato = atoi(_msk->get(F_FORMATO));
int nummast = atoi(_msk->get(F_NUMMAST));
_tipocf = _msk->get(F_TIPOCF)[0];
_codice_ditta = get_firm();
ricerca_dati_ditta();
@ -929,6 +1170,7 @@ bool CG3200_application::set_print(int)
_saldo_movimenti = ZERO;
_saldo_progressivi = ZERO;
_saldo_progre_prec = ZERO;
_protiva = 0;
// Scelta del formato e del numero di mastrini per pagina 1 o 2
@ -1017,20 +1259,25 @@ void CG3200_application::preprocess_header()
crea_intestazione();
}
void CG3200_application::conto()
void CG3200_application::conto(int gruppo, int conto, bool no_contropartita)
{
TLocalisamfile pconti(LF_PCON);
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO , _conto);
pconti.put(PCN_GRUPPO, gruppo);
pconti.put(PCN_CONTO , conto);
pconti.read();
if (pconti.bad())
pconti.zero();
if (no_contropartita)
{
_indbil = pconti.get_int(PCN_INDBIL);
_tmcf = pconti.get_char(PCN_TMCF);
}
else
_tipo_contr = pconti.get_char(PCN_TMCF);
}
void CG3200_application::ricerca_dati_ditta()
@ -1099,8 +1346,6 @@ void CG3200_application::crea_intestazione()
set_header (3, "@16g%d", _conto);
set_header (3, "@20g%ld", _sottoc);
// conto();
if (_tmcf == 'C')
_tipo_mask = 1;
else if (_tmcf == 'F')
@ -1122,11 +1367,11 @@ void CG3200_application::crea_intestazione()
{
sep.fill('-'); //Stampa 132 - (sep(132))
set_header (6, (const char *) sep);
set_header (7,"Operazione@19gDocumento@117gContro");
set_header (7,"Operazione@19gDocumento@117gContro@131gA");
set_header (8,"Data");
if (_stampanum < 3)
set_header (8,"@11gnumero");
set_header (8,"@19gData@30gNumero@38gCod.Causale@61gDescrizione@90gDare@106gAvere@117gPartita");
set_header (8,"@19gData@30gNumero@38gCod.Causale@61gDescrizione@96gDare@111gAvere@117gPartita@131gC");
sep.fill('-');
set_header (9, (const char *) sep);
}
@ -1134,54 +1379,14 @@ void CG3200_application::crea_intestazione()
{
sep1.fill('-'); //Stampa 198 - (sep1(198))
set_header (6,"@1g%s", (const char *) sep1);
set_header (7,"Operazione@19gData@30gNumero@172gContro@185gReg@193gNumero");
set_header (7,"Operazione@19gData@30gNumero@172gContro@182gReg@190gNumero@197gA");
set_header (8,"Data");
if (_stampanum < 3)
set_header (8,"@11gnumero");
set_header (8,"@19gDocumento@38gCod.Causale@68gDescrizione@108gDare@124gAvere@136gSaldo progress.@154gSaldo movim.@172gPartita@185gIva@189gProtocollo");
set_header (8,"@19gDocumento@38gCod.Causale@68gDescrizione@113gDare@129gAvere@136gSaldo progress.@156gSaldo movim.@172gPartita@182gIva@186gProtocollo@197gC");
sep1.fill('-');
set_header (9,"@1g%s", (const char *) sep1);
}
/*
if (_stampa_progressivi_si)
{
stampa_progressivi();
_riporto_dare = _progredare;
_riporto_avere = _progreavere;
_stampa_progressivi_si = FALSE;
}
else
{
_riporto_dare += _riporto_parziale_dare;
_riporto_avere += _riporto_parziale_avere;
if (_numcarat == 1)
{
TString string = _riporto_dare.string("###############");
set_header (10,"@32gA RIPORTO@85g%15s",(const char*) string);
string = _riporto_avere.string("###############");
set_header (10,"@101g%15s",(const char*) string);
}
if (_numcarat == 2)
{
TString string = _riporto_dare.string("###############");
set_header (10,"@32gA RIPORTO@102g%15s",(const char*) string);
string = _riporto_avere.string("###############");
set_header (10,"@119g%15s",(const char*) string);
}
_riporto_parziale_dare = 0;
_riporto_parziale_avere = 0;
}
if (_numcarat == 1)
{
sep ="";
set_header(11,"@1g%s",(const char*) sep);
}
else if (_numcarat == 2)
{
sep1 ="";
set_header(11,"@1g%s",(const char*) sep1);
}
*/
}
void CG3200_application::stampa_progre_riporto()
@ -1263,7 +1468,7 @@ void CG3200_application::calcola_progressivi_al()
if (_annomsk == 0)
{
datareg = rmov.get_date(RMV_DATAREG);
data = _inizioEs;
data = _inizioes;
}
else
if (_annomsk != 0)
@ -1288,13 +1493,11 @@ void CG3200_application::calcola_progressivi_al()
void CG3200_application::calcola_progressivi()
{
// TLocalisamfile* saldi;
TLocalisamfile saldi(LF_SALDI, FALSE);
real pdaresca,paveresca,pdarescap,paverescap;
real progdare_attuale,progavere_attuale,progdare_prec,progavere_prec;
real saldo,progredare_eseprec,progreavere_eseprec,pdarep,paverep;
char salini;
// TRectype record(saldi.curr());
saldo = ZERO;
pdarep = ZERO;
@ -1307,9 +1510,6 @@ void CG3200_application::calcola_progressivi()
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
// uguali a quelli di rmov per il calcolo dei progressivi precedenti
// saldi = current_cursor()->file(LF_SALDI);
// rec = saldi->recno();
TRectype record(saldi.curr());
record.zero();
@ -1369,11 +1569,9 @@ void CG3200_application::calcola_progressivi()
{
progredare_eseprec = saldo;// + pdarescap + pdarep;
progdare_prec = saldo;
// progreavere_eseprec = paverescap;// + paverep;
}
else if (salini == 'A')
{
// progredare_eseprec = pdarescap;// + pdarep;
progreavere_eseprec = saldo;// + paverescap + paverep;
progavere_prec = saldo;
}
@ -1396,11 +1594,9 @@ void CG3200_application::calcola_progressivi()
{
progredare_eseprec = saldo;// + pdarescap + pdarep;
progdare_prec = saldo;
// progreavere_eseprec = paverescap + paverep;
}
else if (saldo < ZERO)
{
// progredare_eseprec = pdarescap + pdarep;
saldo = -saldo;
progreavere_eseprec = saldo;// + paverescap + paverep;
progavere_prec = saldo;
@ -1408,8 +1604,6 @@ void CG3200_application::calcola_progressivi()
}
}
// saldi->readat(rec);
calcola_progressivi_al();
//Calcolo dei progressivi precedenti: somma di tutti quei movimenti di rmov
@ -1457,8 +1651,11 @@ void CG3200_application::stampa_progressivi()
set_row (1,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
string = _progreavere.string("###############");
set_row (1,"@119g%15s",(const char*) string);
string = _saldo_progre_prec.string("###############");
set_row (1,"@136g%15s",(const char*) string);
}
}
// Se la ricerca selezionata nella maschera e' per clienti, oppure fornitori, // allora ricerco su CLIFO i relativi dati, e su PCON il relativo gruppo,conto,// sottoconto e IV direttiva CEE
void CG3200_application::ricerca_clifo()
@ -1501,9 +1698,7 @@ void CG3200_application::ricerca_clifo()
pconti.zero();
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO, _conto);
//pconti.put(PCN_SOTTOCONTO, _sottoc);
pconti.read();
//_sezivd = pconti.get_char(PCN_SEZIVD);
_sezivd = pconti.get_char(PCN_SEZIVD);
_lettivd = pconti.get_char(PCN_LETTIVD);
numrivd = pconti.get_int(PCN_NUMRIVD);
@ -1582,7 +1777,6 @@ void CG3200_application::ricerca_classe_IV(bool scelta)
if (scelta)
pconti.put(PCN_SOTTOCONTO, _sottoc);
pconti.read();
//_sezivd = pconti.get_char(PCN_SEZIVD);
_sezivd = pconti.get_char(PCN_SEZIVD);
_lettivd = pconti.get_char(PCN_LETTIVD);
_numrivd_int = pconti.get_int (PCN_NUMRIVD);
@ -1732,6 +1926,12 @@ void CG3200_application::user_create()
_tabesc = new TTable (TAB_ESC);
_msk = new TMask("cg3200a");
_msk->set_handler(F_SOTTOCINI_CONTO, sottoc_handler_ini);
_msk->set_handler(F_SOTTOCINI_CLIENTE, sottoc_handler_ini);
_msk->set_handler(F_SOTTOCINI_FORN, sottoc_handler_ini);
_msk->set_handler(F_SOTTOCFINE_CONTO, sottoc_handler_fine);
_msk->set_handler(F_SOTTOCFINE_CLIENTE, sottoc_handler_fine);
_msk->set_handler(F_SOTTOCFINE_FORN, sottoc_handler_fine);
_inizio_stampa = TRUE;
}

View File

@ -8,11 +8,11 @@
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_TIPOCF 103
#define F_TIPOCF_INI 103
#define F_GRUPPOINI 104
#define F_GRUPPOFINE 105
#define F_CONTOINI 106
#define F_CONTOFINE 107
#define F_CONTOINI_CONTO 106
#define F_CONTOFINE_CONTO 107
#define F_SOTTOCINI_CONTO 108
#define F_SOTTOCFINE_CONTO 109
#define F_SOTTOCINI_CLIENTE 110
@ -37,6 +37,11 @@
#define F_NUMMAST 129
#define F_ANNO 130
#define F_FORMATO 131
#define F_CONTOINI_CLIENTE 132
#define F_CONTOINI_FORN 133
#define F_CONTOFINE_CLIENTE 134
#define F_CONTOFINE_FORN 135
#define F_TIPOCF_FINE 136
#endif // __CG3200_H

View File

@ -24,22 +24,22 @@ END
TEXT 96
BEGIN
PROMPT 4 10 "Dalla data competenza"
PROMPT 4 11 "Dalla data competenza"
END
TEXT 97
BEGIN
PROMPT 40 10 "Alla data competenza "
PROMPT 40 11 "Alla data competenza "
END
TEXT 98
BEGIN
PROMPT 4 10 "Dalla data operazione "
PROMPT 4 11 "Dalla data operazione "
END
TEXT 99
BEGIN
PROMPT 40 10 "Alla data operazione "
PROMPT 40 11 "Alla data operazione "
END
NUMBER F_ANNO 4
@ -58,7 +58,7 @@ BEGIN
FLAGS "RZ"
END
LIST F_TIPOCF 25
LIST F_TIPOCF_INI 25
BEGIN
PROMPT 4 4 "Ricerca "
ITEM " |Gruppo/conto/sottoconto"
@ -74,40 +74,88 @@ BEGIN
PROMPT 4 5 "Da Gruppo - Conto - Sottoconto "
END
NUMBER F_CONTOINI 3
NUMBER F_CONTOINI_CONTO 3
BEGIN
PROMPT 41 5 ""
USE LF_PCON SELECT SOTTOCONTO=""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="")
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI
INPUT CONTO F_CONTOINI_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_TIPOCF TMCF
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI CONTO
OUTPUT F_DESCRINI_CONTO DESCR
OUTPUT F_CONTOINI_CONTO CONTO
//OUTPUT F_SOTTOCINI_CONTO SOTTOCONTO
//OUTPUT F_DESCRINI_CONTO DESCR
FLAGS "R"
WARNING "Conto inesistente o mancante"
MESSAGE DIRTY,F_SOTTOCINI_CONTO|DIRTY,F_SOTTOCINI_CLIENTE|DIRTY,F_SOTTOCINI_FORN
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCINI_CONTO|DIRTY,F_SOTTOCINI_CLIENTE|DIRTY,F_SOTTOCINI_FORN
GROUP 1
END
NUMBER F_CONTOINI_CLIENTE 3
BEGIN
PROMPT 41 5 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="C")
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI_CLIENTE
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI_CLIENTE CONTO
//OUTPUT F_SOTTOCINI_CLIENTE SOTTOCONTO
//OUTPUT F_DESCRINI_CLIENTE DESCR
FLAGS "R"
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCINI_CONTO|DIRTY,F_SOTTOCINI_CLIENTE|DIRTY,F_SOTTOCINI_FORN
GROUP 2
MESSAGE COPY,F_CONTOINI_CONTO
END
NUMBER F_CONTOINI_FORN 3
BEGIN
PROMPT 41 5 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="F")
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI_FORN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI_FORN CONTO
//OUTPUT F_SOTTOCINI_FORN SOTTOCONTO
//OUTPUT F_DESCRINI_FORN DESCR
FLAGS "R"
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCINI_CONTO|DIRTY,F_SOTTOCINI_CLIENTE|DIRTY,F_SOTTOCINI_FORN
GROUP 3
MESSAGE COPY,F_CONTOINI_CONTO
END
NUMBER F_SOTTOCINI_CONTO 6
BEGIN
PROMPT 48 5 ""
USE LF_PCON SELECT SOTTOCONTO!=""
USE LF_PCON //SELECT SOTTOCONTO!=""
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI
INPUT CONTO F_CONTOINI_CONTO
INPUT SOTTOCONTO F_SOTTOCINI_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI CONTO
OUTPUT F_CONTOINI_CONTO CONTO
OUTPUT F_SOTTOCINI_CONTO SOTTOCONTO
OUTPUT F_DESCRINI_CONTO DESCR
//OUTPUT F_DESCRINI_CONTO DESCR
FLAGS "R"
//CHECKTYPE NORMAL
GROUP 1
END
@ -122,7 +170,6 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SOTTOCINI_CONTO
CHECKTYPE NORMAL
GROUP 1
END
@ -130,7 +177,7 @@ NUMBER F_SOTTOCINI_CLIENTE 6
BEGIN
PROMPT 48 5 ""
USE LF_CLIFO
CHECKTYPE NORMAL
//CHECKTYPE NORMAL
INPUT TIPOCF "C"
INPUT CODCF F_SOTTOCINI_CLIENTE
DISPLAY "Codice" CODCF
@ -138,7 +185,7 @@ BEGIN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCINI_CLIENTE CODCF
OUTPUT F_DESCRINI_CLIENTE RAGSOC
//OUTPUT F_DESCRINI_CLIENTE RAGSOC
MESSAGE COPY,F_SOTTOCINI_CONTO
FLAGS "R"
GROUP 2
@ -165,7 +212,7 @@ NUMBER F_SOTTOCINI_FORN 6
BEGIN
PROMPT 48 5 ""
USE LF_CLIFO
CHECKTYPE NORMAL
//CHECKTYPE NORMAL
INPUT TIPOCF "F"
INPUT CODCF F_SOTTOCINI_FORN
DISPLAY "Codice" CODCF
@ -173,7 +220,7 @@ BEGIN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCINI_FORN CODCF
OUTPUT F_DESCRINI_FORN RAGSOC
//OUTPUT F_DESCRINI_FORN RAGSOC
FLAGS "R"
GROUP 3
MESSAGE COPY,F_SOTTOCINI_CONTO
@ -195,51 +242,107 @@ BEGIN
GROUP 3
END
NUMBER F_GRUPPOFINE 3
LIST F_TIPOCF_FINE 25
BEGIN
PROMPT 4 7 "A Gruppo - Conto - Sottoconto "
PROMPT 4 7 "Ricerca "
ITEM " |Gruppo/conto/sottoconto"
MESSAGE HIDE,5@|HIDE,6@|RESET,5@|RESET,6@|SHOW,4@
ITEM "C|Clienti"
MESSAGE HIDE,4@|HIDE,6@|RESET,4@|RESET,6@|SHOW,5@
ITEM "F|Fornitori"
MESSAGE HIDE,4@|HIDE,5@|RESET,4@|RESET,5@|SHOW,6@
END
NUMBER F_CONTOFINE 3
NUMBER F_GRUPPOFINE 3
BEGIN
PROMPT 41 7 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
PROMPT 4 8 "A Gruppo - Conto - Sottoconto "
END
NUMBER F_CONTOFINE_CONTO 3
BEGIN
PROMPT 41 8 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="")
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE
INPUT CONTO F_CONTOFINE_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_TIPOCF TMCF
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOFINE GRUPPO
OUTPUT F_CONTOFINE CONTO
OUTPUT F_DESCRFINE_CONTO DESCR
OUTPUT F_CONTOFINE_CONTO CONTO
//OUTPUT F_DESCRFINE_CONTO DESCR
FLAGS "R"
WARNING "Conto inesistente o mancante"
MESSAGE DIRTY,F_SOTTOCFINE_CONTO|DIRTY,F_SOTTOCFINE_CLIENTE|DIRTY,F_SOTTOCFINE_FORN
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCFINE_CONTO|DIRTY,F_SOTTOCFINE_CLIENTE|DIRTY,F_SOTTOCFINE_FORN
GROUP 4
END
NUMBER F_CONTOFINE_CLIENTE 3
BEGIN
PROMPT 41 8 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="C")
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE_CLIENTE
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOFINE GRUPPO
OUTPUT F_CONTOFINE_CLIENTE CONTO
//OUTPUT F_DESCRFINE_CLIENTE DESCR
FLAGS "R"
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCFINE_CONTO|DIRTY,F_SOTTOCFINE_CLIENTE|DIRTY,F_SOTTOCFINE_FORN
MESSAGE COPY,F_CONTOFINE_CONTO
GROUP 5
END
NUMBER F_CONTOFINE_FORN 3
BEGIN
PROMPT 41 8 ""
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") && (TMCF="F")
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE_FORN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
//OUTPUT F_TIPOCF TMCF
OUTPUT F_GRUPPOFINE GRUPPO
OUTPUT F_CONTOFINE_FORN CONTO
//OUTPUT F_DESCRFINE_FORN DESCR
FLAGS "R"
//CHECKTYPE NORMAL
//WARNING "Conto inesistente o mancante"
//MESSAGE DIRTY,F_SOTTOCFINE_CONTO|DIRTY,F_SOTTOCFINE_CLIENTE|DIRTY,F_SOTTOCFINE_FORN
MESSAGE COPY,F_CONTOFINE_CONTO
GROUP 6
END
NUMBER F_SOTTOCFINE_CONTO 6
BEGIN
PROMPT 48 7 ""
PROMPT 48 8 ""
USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE
INPUT CONTO F_CONTOFINE_CONTO
INPUT SOTTOCONTO F_SOTTOCFINE_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOFINE GRUPPO
OUTPUT F_CONTOFINE CONTO
OUTPUT F_CONTOFINE_CONTO CONTO
OUTPUT F_SOTTOCFINE_CONTO SOTTOCONTO
OUTPUT F_DESCRFINE_CONTO DESCR
//OUTPUT F_DESCRFINE_CONTO DESCR
FLAGS "R"
GROUP 1
//CHECKTYPE NORMAL
GROUP 4
END
STRING F_DESCRFINE_CONTO 50
BEGIN
PROMPT 4 8 "Descrizione "
PROMPT 4 9 "Descrizione "
USE LF_PCON KEY 2
CHECKTYPE NORMAL
INPUT DESCR F_DESCRINI_CONTO
@ -248,49 +351,14 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SOTTOCFINE_CONTO
CHECKTYPE NORMAL
GROUP 1
END
NUMBER F_SOTTOCINI_CLIENTE 6
BEGIN
PROMPT 48 5 ""
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_SOTTOCINI_CLIENTE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCINI_CLIENTE CODCF
OUTPUT F_DESCRINI_CLIENTE RAGSOC
MESSAGE COPY,F_SOTTOCINI_CONTO
FLAGS "R"
GROUP 2
END
STRING F_DESCRINI_CLIENTE 50
BEGIN
PROMPT 4 6 "Ragione sociale "
FIELD LF_CLIFO->RAGSOC
USE LF_CLIFO KEY 2
CHECKTYPE NORMAL
INPUT TIPOCF "C"
INPUT RAGSOC F_DESCRINI_CLIENTE
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCINI_CLIENTE
MESSAGE COPY,F_DESCRINI_CONTO
GROUP 2
GROUP 4
END
NUMBER F_SOTTOCFINE_CLIENTE 6
BEGIN
PROMPT 48 7 ""
PROMPT 48 8 ""
USE LF_CLIFO
CHECKTYPE NORMAL
//CHECKTYPE NORMAL
INPUT TIPOCF "C"
INPUT CODCF F_SOTTOCFINE_CLIENTE
DISPLAY "Codice" CODCF
@ -298,15 +366,15 @@ BEGIN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCFINE_CLIENTE CODCF
OUTPUT F_DESCRFINE_CLIENTE RAGSOC
//OUTPUT F_DESCRFINE_CLIENTE RAGSOC
MESSAGE COPY,F_SOTTOCFINE_CONTO
FLAGS "R"
GROUP 2
GROUP 5
END
STRING F_DESCRFINE_CLIENTE 50
BEGIN
PROMPT 4 8 "Ragione sociale "
PROMPT 4 9 "Ragione sociale "
FIELD LF_CLIFO->RAGSOC
CHECKTYPE NORMAL
USE LF_CLIFO KEY 2
@ -318,50 +386,14 @@ BEGIN
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCFINE_CLIENTE
MESSAGE COPY,F_DESCRFINE_CONTO
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_SOTTOCINI_FORN 6
BEGIN
PROMPT 48 5 ""
USE LF_CLIFO
CHECKTYPE NORMAL
INPUT TIPOCF "F"
INPUT CODCF F_SOTTOCINI_FORN
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCINI_FORN CODCF
OUTPUT F_DESCRINI_FORN RAGSOC
FLAGS "R"
GROUP 3
MESSAGE COPY,F_SOTTOCINI_CONTO
END
STRING F_DESCRINI_FORN 50
BEGIN
PROMPT 4 6 "Ragione Sociale "
USE LF_CLIFO KEY 2
CHECKTYPE NORMAL
INPUT TIPOCF "F"
INPUT RAGSOC F_DESCRINI_FORN
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_DESCRINI_CONTO
MESSAGE COPY,F_DESCRINI_CONTO
CHECKTYPE NORMAL
GROUP 3
GROUP 5
END
NUMBER F_SOTTOCFINE_FORN 6
BEGIN
PROMPT 48 7 ""
PROMPT 48 8 ""
USE LF_CLIFO
CHECKTYPE NORMAL
//CHECKTYPE NORMAL
INPUT TIPOCF "F"
INPUT CODCF F_SOTTOCFINE_FORN
DISPLAY "Codice" CODCF
@ -369,15 +401,15 @@ BEGIN
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCFINE_FORN CODCF
OUTPUT F_DESCRFINE_FORN RAGSOC
//OUTPUT F_DESCRFINE_FORN RAGSOC
FLAGS "R"
GROUP 3
GROUP 6
MESSAGE COPY,F_SOTTOCFINE_CONTO
END
STRING F_DESCRFINE_FORN 50
BEGIN
PROMPT 4 8 "Ragione Sociale "
PROMPT 4 9 "Ragione Sociale "
USE LF_CLIFO KEY 2
CHECKTYPE NORMAL
INPUT TIPOCF "F"
@ -388,18 +420,17 @@ BEGIN
DISPLAY "Codice" CODCF
COPY OUTPUT F_DESCRFINE_CONTO
MESSAGE COPY,F_DESCRFINE_CONTO
CHECKTYPE NORMAL
GROUP 3
GROUP 6
END
DATE F_DATAINI
BEGIN
PROMPT 26 10 ""
PROMPT 26 11 ""
END
DATE F_DATAFINE
BEGIN
PROMPT 62 10 ""
PROMPT 62 11 ""
END
BOOLEAN F_STAMPATOTIVA

View File

@ -610,9 +610,9 @@ int CG3400_application::stampa_intestazione_ditta()
(const char *)_viafis, (const char *)_cap,
(const char *)_comunefis, (const char *)_provfis);
_intes = "Data @>";
_intes.right_just(_stampa_width-15); // perche' il codice viene espanso nella data con l'anno in 4 caratteri
_intes.overwrite (format ("Partita iva %s @24gCodice fiscale %s %s", (const char*)_paiva, (const char*)_cofi, _stampa_definitiva ? "" : "STAMPA DI PROVA"));
_intes = format ("Partita iva %s @24gCodice fiscale %s %s @117gData @>",
(const char*)_paiva, (const char*)_cofi,
_stampa_definitiva ? "" : "STAMPA DI PROVA");
set_header (++r, "%s", (const char*) _intes);
@ -631,7 +631,8 @@ int CG3400_application::set_header_198()
TString16 data_da = _data_da.string();
TString16 data_a = _data_a.string();
if (_stampa_intesta) r = stampa_intestazione_ditta();
if (_stampa_intesta || !_stampa_definitiva)
r = stampa_intestazione_ditta();
// set_header(r, "@bCodice libro:@r %s %s @bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
set_header(r, "Codice libro: %s %s dalla data: %s alla data: %s Esercizio: %04d",
@ -682,14 +683,15 @@ int CG3400_application::set_header_132()
TString16 data_da = _data_da.string();
TString16 data_a = _data_a.string();
if (_stampa_intesta) r = stampa_intestazione_ditta();
if (_stampa_intesta || !_stampa_definitiva)
r = stampa_intestazione_ditta();
#if XVT_OS != XVT_OS_SCOUNIX
if (_stampa_intesta)
set_background("W4l{1 1 132 1}W4l{1 4 132 4}W1l{1 8 132 8}");
if (_stampa_intesta || !_stampa_definitiva)
set_background("W4l{1 1 133 1}W4l{1 4 133 4}W1l{1 8 133 8}");
else
{
set_background("W4l{1 1 132 1}W1l{1 5 132 5}");
set_background("W4l{1 1 133 1}W1l{1 5 133 5}");
r++;
}
#else
@ -698,7 +700,7 @@ int CG3400_application::set_header_132()
#endif
// set_header(r++, "@bCodice libro:@r %s %s @bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
set_header(r++, "Codice libro: %s %s @69gdalla data: %s alla data: %s Esercizio: %04d",
set_header(r++, "Codice libro: %s %s @69gdalla data: %s alla data: %s @117gEsercizio: %04d",
(const char *) _reg_cod, (const char *) _reg_descr,
(const char *) data_da, (const char *) data_a, _ae);
@ -1245,8 +1247,8 @@ int CG3400_application::ultimo_esercizio()
TTable ese("ESC");
ese.zero();
ese.last();
// ese.first();
// ese.last(); // Sembra che non vadi ?!?
ese.first();
sanno = ese.get("CODTAB"); sanno.cut(4);
const int anno = atoi(sanno);
@ -1268,10 +1270,10 @@ bool CG3400_application::leggi_tabreg(const char * reg_cod,
_tabreg->zero();
_tabreg->put("CODTAB", codtab);
_tabreg->read();
const bool ok = (_tabreg->read() == NOERR);
if (!ok) _tabreg->zero();
if (_tabreg->good())
{
_pagine_stampate = _tabreg->get_int("I1");
_pagine_numerate = _tabreg->get_int("I2");
_stampa_ok = _tabreg->get_int("I7");
@ -1281,8 +1283,8 @@ bool CG3400_application::leggi_tabreg(const char * reg_cod,
_last_data = _tabreg->get_date ("D3");
_stampa_intesta = _tabreg->get_bool ("B9");
_reg_descr = _tabreg->get ("S0");
}
return TRUE;
return ok;
}
// Calcola l'anno di esercizio di una data
@ -1412,12 +1414,16 @@ bool CG3400_application::mask_a_cod_reg (TMask_field& f, KEY k)
if (reg_cod.empty()) return TRUE;
a.leggi_tabreg(reg_cod, a._ae);
bool reg_ok = a.leggi_tabreg(reg_cod, a._ae);
// Output da qui della descrizione del registro e dell'anno
m.set(REG_DESC, a._reg_descr);
m.set(ANNO_ESER, a._ae);
// CHECKTYPE NORMAL abolito! (nella maschera non ho l'anno...
if (!reg_ok)
return f.warning_box("Registro inesistente");
if (definitiva)
{
if (a._stampa_ok == -1) // stampa precedente andata bene

View File

@ -19,5 +19,6 @@
#define CAU_COLLCESP "COLLCESP"
#define CAU_M770 "M770"
#define CAU_CODCAUSIM "CODCAUSIM"
#define CAU_SOSPESO "SOSPESO"
#endif