Patch level : 12.0 310 314

Files correlati     : 

Report Clienti e fornitori

I report devono avere library = repcom

Campi di selezione

CODCF				Codice
RAGSOC			        Ragione Sociale
CAPCF				CAP
CODAG				Codice agente
CODZONA				Codice Zona
CODAG1				Codice Agente 2
CODLIST				Codice listino
SCONTO				Sconto
FIDO				Fido
CODPAG				Pagamento
CODMAG				Magazzino
CODDEP				Deposito
VSDATAREG			Data Esenzione
CODPORTO			Porto
CODSPMEZZO			Spedizione
CATVEN				Categoria economica
DATAUFATT			Data ultima fattura
IMPFATT				Fatturato netto
TOTFATT				Totale fatturato
DARE				Dare
AVERE				Avere
SCADUTO				Scaduto
MOVIMENTATO			Movimentato
NINS				Numero insoluti
ESPCAM				Esposto

su questi imposta un between coi valori da a 

vengono anche impostate tutte le variabili

#DA_<nome campo>
#A_<nome campo>

Macro 

$REPCOM	viene sostituito con tutte le select ( between ) costruite con la maschera di input
$KEY	viene sostituito con la chiave selezionata
TIPOCF	viene sostituito con col tipo cliente fornitore
$ANNO	viene sostituito con l'anno di esercizio iniziale
$AANNO	viene sostituito con l'anno di esercizio finale 
$DA	viene sostituito con la data iniziale 
$A	viene sostituito con la data finale 


git-svn-id: svn://10.65.10.50/branches/R_10_00@23440 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2016-12-13 09:04:52 +00:00
parent 2edc3a3bbe
commit 60895564e1
32 changed files with 1931 additions and 107 deletions

@ -1,106 +0,0 @@
#ifndef __BA4100_H
#define __BA4100_H
// campi maschera ba4100a.msk
#define FLD_CM1_STATO 101
#define FLD_CM1_COM 102
#define FLD_CM1_DENCOM 103
#define FLD_CM1_PROVCOM 104
#define FLD_CM1_CAPCOM 105
#define FLD_CM1_CODISTAT 106
#define FLD_CM1_UFIIDD1 107
#define FLD_CM1_DUFIIDD1 108
#define FLD_CM1_UFIIDD2 109
#define FLD_CM1_DUFIIDD2 110
#define FLD_CM1_UFIIDD3 111
#define FLD_CM1_DUFIIDD3 112
#define FLD_CM1_UFFIVA1 113
#define FLD_CM1_DUFFIVA1 114
#define FLD_CM1_UFFIVA2 115
#define FLD_CM1_DUFFIVA2 116
#define FLD_CM1_UFFIVA3 117
#define FLD_CM1_DUFFIVA3 118
#define FLD_CM2_UFFREG 119
#define FLD_CM2_DUFFREG 120
#define FLD_CM2_UFFCONC 121
#define FLD_CM2_DUFFCONC 122
#define FLD_CM2_UFFCSERV 123
#define FLD_CM2_DUFFCSERV 124
#define FLD_CM2_UFFESPROV 125
#define FLD_CM2_DUFFESPROV 126
#define FLD_CM2_UFFESCOM 127
#define FLD_CM2_DUFFESCOM 128
#define FLD_CM2_ALIQICI 129
#define FLD_CM1_DENSTA 130
#define FLD_CM2_COMAGG 131
#define FLD_CM2_DENCOMAGG 132
#define FLD_CM2_TERRMON 133
#define FLD_CM2_STATO 134
#define FLD_CM2_COM 135
#define FLD_CM2_DENCOM 136
#define FLD_CM2_DENSTA 137
#define F_CODREG 138
#define F_DESREG 139
#define F_CODUUE1 140
#define F_DESUUE1 141
#define F_CODUUE2 142
#define F_DESUUE2 143
#define F_CODUUE3 144
#define F_DESUUE3 145
#define F_CODUUE4 146
#define F_DESUUE4 147
#define F_CODUUE5 148
#define F_DESUUE5 149
#define F_CODUUE6 150
#define F_DESUUE6 151
#define F_CODUUE7 152
#define F_DESUUE7 153
#define F_CODUUE8 154
#define F_DESUUE8 155
#define F_CODUUE9 156
#define F_DESUUE9 157
#define F_CODUUE10 158
#define F_DESUUE10 159
#define FLD_CM3_STATO 160
#define FLD_CM3_COM 161
#define FLD_CM3_DENCOM 162
#define FLD_CM3_DENSTA 163
#define N_STATO "STATO"
#define N_COM "COM"
#define N_DEN_COM "DENCOM"
#define N_PROV "PROVCOM"
#define N_CAP "CAPCOM"
#define N_ISTAT "CODISTAT"
#define N_IMPDIR1 "UFFIIDD1"
#define N_IMPDIR2 "UFFIIDD2"
#define N_IMPDIR3 "UFFIIDD3"
#define N_IVA1 "UFFIVA1"
#define N_IVA2 "UFFIVA2"
#define N_IVA3 "UFFIVA3"
#define N_REG "UFFREG"
#define N_CONC "UFFCONC"
#define N_CENTRO_SERV "UFFCSERV"
#define N_ESATT_PROV "UFFESPROV"
#define N_ESATT_COM "UFFESCOM"
#define N_ALIQ_ICI "ALIQICI"
#endif // __BA4100_H

14
src/ba/ba9.cpp Normal file

@ -0,0 +1,14 @@
#include <xvt.h>
#include "ba9.h"
int main(int argc, char** argv)
{
const int r = (argc > 1) ? argv[1][1] - '0' : 0;
switch (r)
{
case 1:ba9200(argc, argv); break; // Reporting commerciale ba9200
default: ba9200(argc, argv); break; // Reporting commerciale ba9200
}
return 0;
}

6
src/ba/ba9.h Normal file

@ -0,0 +1,6 @@
#ifndef __LV0_H
#define __LV0_H
int ba9200(int argc, char* argv[]);
#endif // __LV0_H

636
src/ba/ba9200.cpp Normal file

@ -0,0 +1,636 @@
#include <applicat.h>
#include <automask.h>
#include <assoc.h>
#include <expr.h>
#include <reprint.h>
#include <progind.h>
#include <varmask.h>
#include <utility.h>
#include "ba9b00.h"
#include "../cg/cgsaldac.h"
#include "../ve/velib07.h"
#include <clifo.h>
#include <pconti.h>
#include <partite.h>
#include <saldi.h>
#include <cfven.h>
#include <doc.h>
#include <rdoc.h>
#define RPC_DATAUFATT "DATAUFATT"
#define RPC_IMPFATT "IMPFATT"
#define RPC_TOTFATT "TOTFATT"
#define RPC_DARE "DARE"
#define RPC_AVERE "AVERE"
#define RPC_SCADUTO "SCADUTO"
#define RPC_MOVIMENTATO "MOVIMENTATO"
#define RPC_SOLV "SOLV"
#define RPC_NINS "NINS"
#define RPC_ESPCAM "ESPCAM"
HIDDEN const char * const __fields[] = { TOSTRING(LF_CLIFO) "->" CLI_CODCF, TOSTRING(LF_CLIFO) "->" CLI_RAGSOC, TOSTRING(LF_CLIFO) "->" CLI_CAPCF, TOSTRING(LF_CFVEN) "->" CFV_CODAG,
TOSTRING(LF_CLIFO) "->" CLI_CODZONA, TOSTRING(LF_CFVEN) "->" CFV_CODAG1, TOSTRING(LF_CFVEN) "->" CFV_CODLIST, TOSTRING(LF_CFVEN) "->" CFV_SCONTO,
TOSTRING(LF_CLIFO) "->" CLI_FIDO, TOSTRING(LF_CLIFO) "->" CLI_CODPAG, TOSTRING(LF_CFVEN) "->" CFV_CODMAG, TOSTRING(LF_CFVEN) "->" CFV_CODDEP,
TOSTRING(LF_CFVEN) "->" CFV_VSDATAREG, TOSTRING(LF_CFVEN) "->" CFV_CODPORTO, TOSTRING(LF_CFVEN) "->" CFV_CODSPMEZZO, TOSTRING(LF_CFVEN) "->" CFV_CATVEN,
RPC_DATAUFATT, RPC_IMPFATT, RPC_TOTFATT, RPC_DARE,
RPC_AVERE, RPC_SCADUTO, RPC_MOVIMENTATO, NULL };
HIDDEN const char * const __field_descrs[] = { "Codice", "Ragione Sociale", "CAP", "Codice agente", "Codice Zona",
"Codice Agente 2", "Codice listino", "Sconto", "Fido", "Pagamento",
"Magazzino", "Deposito", "Data Esenzione", "Porto", "Spedizione",
"Categoria economica", "Data ultima fattura", "Fatturato netto", "Totale fatturato", "Dare",
"Avere", "Scaduto", "Movimentato", NULL };
HIDDEN bool __need_es[] = { false, false, false, false, false,
false, false, false, false, false,
false, false, false, false, false,
false, true, true, true, true,
true, true, true
};
HIDDEN bool __virtual[] = { false, false, false, false, false,
false, false, false, false, false,
false, false, false, false, false,
false, true, true, true, true,
true, true, true
};
HIDDEN const char * const __macros[] = { "$REPSEL", "$KEY", "$TIPOCF", "$TIPOCF", "$ANNO", "$AANNO", "$DA", "$A",
NULL };
/* 09 N.INSOLUTI
SOLVIBILITA */
class TReporting_clienti_fornitori : public TSkeleton_application
{
protected:
void update_recset(TDocument_report & rep, const TMask & m);
virtual const char * extra_modules() const { return "RS"; }
virtual void main_loop();
virtual void print();
};
void TReporting_clienti_fornitori::print()
{
WINDOW win = cur_win(); // Trova la finestra corrente di XVT
if (win != NULL_WIN && win != TASK_WIN) // E' una finestra valida?
{
TWindow* w = (TWindow*)xvt_vobj_get_data(win); // Risale alla classe originale
if (w != NULL) // E' una TWindow valida? (sarebbe TMask)
w->stop_run(K_ENTER); // Simula la pressione del bottone stampa
}
}
class TRepcom_recordset : public TDocument_recordset
{
int _codes;
int _codes_to;
TAssoc_array _fields_val;
TExpression _virtual;
TString_array _num;
// long _fromcli;
// long tocli;
protected:
virtual const TVariant& get_field(int num, const char* field) const;
void scaduto_al(const TString4 & tipo, const long codcf, const TDate & data, real & scaduto, real & esposto, real & nins);
bool saldo_cont_al(const TString4 & tipo, const long codcf, const TDate & data, real & dare, real & avere);
void load_cli_val(const TString4 & tipo, const long codcf, TAssoc_array * vals);
const TVariant& get_field_value(const TString & field) ;
public:
void set_es(int codes) { codes > 0 ?_codes = codes : 2002;}
void set_es_to(int codes) { codes > 0 && codes >= _codes ? _codes_to = codes : esercizi().last();}
void set_virtual(const char *select) { _virtual.set(select, _strexpr); }
bool eval_virtual();
TAssoc_array & get_curr_row();
virtual TCursor* cursor() const;
TRepcom_recordset(const char* use);
virtual ~TRepcom_recordset() {}
};
HIDDEN TRepcom_recordset * __r = NULL;
bool virfunc(const TRelation* r)
{
return __r->eval_virtual();
}
TAssoc_array & TRepcom_recordset::get_curr_row()
{
const TString4 tipo = get(CLI_TIPOCF).as_string();
const TString cod = get(CLI_CODCF).as_string();
TAssoc_array * row = (TAssoc_array *) _fields_val.objptr(cod);
if (row ==NULL)
{
_fields_val.add(cod, row = new TAssoc_array);
this->load_cli_val(tipo, atol(cod), row);
}
return * row;
}
bool TRepcom_recordset::eval_virtual()
{
TAssoc_array & row = get_curr_row();
FOR_EACH_ASSOC_OBJECT(row, obj, key, val)
if (_virtual.exist(key))
_virtual.setvar(key, ((TVariant *) val)->as_string());
return _virtual.as_bool();
}
TCursor* TRepcom_recordset::cursor() const
{
TCursor * c = TDocument_recordset::cursor();
if (_virtual.string()[0] != '\0')
c->set_filterfunction(virfunc);
return c;
}
TRepcom_recordset::TRepcom_recordset(const char* use)
: TDocument_recordset(use)
{
TString_array tip;
numerazioni_fatture(_num, tip);
TCursor & c = *cursor();
__r = this;
}
void TRepcom_recordset::scaduto_al(const TString4 & tipo, const long codcf, const TDate & data, real & scaduto, real & esposto, real & nins)
{
TString query("USE ");
TDate rischio = data;
rischio -= 10 ;
query << LF_PARTITE << "\nFROM " << PART_TIPOCF << "='" << tipo << "' " << PART_GRUPPO << "='' " << PART_CONTO << "=''\n"
<< PART_SOTTOCONTO << "='" << codcf << "' "
<< "TO " << PART_TIPOCF << "='" << tipo << "' " << PART_GRUPPO << "='' " << PART_CONTO << "=''\n"
<< PART_SOTTOCONTO << "='" << codcf << "' ";
TISAM_recordset part(query);
for (bool ok=part.move_first(); ok; ok = part.move_next())
{
TPartita p(part.cursor()->curr());
const int last = p.last();
scaduto +=p.calcola_scaduto_al(false, data);
for (int i = p.prima_fattura(); i >= 0 && i <= last; i = p.succ(i))
{
TRiga_partite & riga = p.riga(i);
if (riga.is_fattura())
{
const int nrate = riga.rate();
bool sbf = false;
for (int r = 1; r <= nrate; r++)
{
TRiga_scadenze& s = riga.rata(r);
TImporto esposto_scad = s.esposto(false, data, rischio, sbf); esposto_scad.normalize(tipo == "C" ? 'D' : 'A');
esposto += esposto_scad.valore();
}
}
else
if (riga.is_insoluto())
nins += UNO;
}
}
}
bool TRepcom_recordset::saldo_cont_al(const TString4 & tipo, const long codcf, const TDate & data, real & dare, real & avere)
{
TString query("USE ");
query << LF_SALDI << " KEY 3 SELECT ((" << SLD_SOTTOCONTO << "=" << codcf << ")&&("<< LF_PCON << "->" << PCN_TMCF << "==\"" << tipo << "\"))\nJOIN "
<< LF_PCON << " INTO " << PCN_GRUPPO << "==" << SLD_GRUPPO
<< " " << PCN_CONTO << "==" << SLD_CONTO << "\n"
<< "FROM " << SLD_SOTTOCONTO << "=" << codcf << " " << SLD_ANNOES << "=" << _codes << "\n"
<< "TO " << SLD_SOTTOCONTO << "=" << codcf << " " << SLD_ANNOES << "=" << _codes_to << "\n" ;
TISAM_recordset saldi(query);
dare = ZERO;
avere = ZERO;
for (bool ok=saldi.move_first(); ok; ok = saldi.move_next())
{
const real si = saldi.get(SLD_SALDO).as_real();
if (saldi.get(SLD_FLAGSALINI).as_string() == "D")
dare += si;
else
avere += si;
dare += saldi.get(SLD_PDARE).as_real();
avere += saldi.get(SLD_PAVERE).as_real();
}
return dare != ZERO || avere != ZERO;
}
void TRepcom_recordset::load_cli_val(const TString4 & tipo, const long codcf, TAssoc_array * vals)
{
// manca RPC_SOLV
TDate ult;
real totnetto;
real totfatt;
real dare;
real avere;
real scaduto;
real solv;
real nins;
real espcam;
if (_codes == 0)
_codes = esercizi().last();
TString query("USE ");
query << LF_DOC << " KEY 2\nFROM " << DOC_TIPOCF << "='" << tipo << "' "
<< DOC_CODCF << "='" << get(DOC_CODCF) << "' " << DOC_PROVV << "='D' " << DOC_ANNO << "='" << _codes << "'\n"
<< "TO " << DOC_TIPOCF << "='" << tipo << "' "
<< DOC_CODCF << "='" << get(DOC_CODCF) << "' " << DOC_PROVV << "='D' " << DOC_ANNO << "='" << _codes_to << "'\n";
TDocument_recordset fatt(query);
for (bool ok=fatt.move_first(); ok; ok = fatt.move_next())
{
const TString4 num = fatt.get(DOC_CODNUM).as_string();
if (_num.find(num) >= 0)
{
const TDocumento & doc = fatt.doc(fatt.cursor()->curr());
const TDate datadoc = doc.get_date(DOC_DATADOC);
if (datadoc > ult)
ult = datadoc;
TCurrency_documento netto(doc.totale_netto(), doc);
netto.change_to_firm_val();
totnetto += netto.get_num();
TCurrency_documento tot(doc.totale_doc(), doc);
tot.change_to_firm_val();
totfatt += tot.get_num();
}
}
scaduto_al(tipo, codcf, TDate(TODAY), scaduto, espcam, nins);
vals->add(RPC_MOVIMENTATO, saldo_cont_al(tipo, codcf, TDate(TODAY), dare, avere) ? TVariant("X") : NULL_VARIANT);
vals->add(RPC_DATAUFATT, TVariant(ult));
vals->add(RPC_IMPFATT, TVariant(totnetto));
vals->add(RPC_TOTFATT, TVariant(totfatt));
vals->add(RPC_DARE, TVariant(dare));
vals->add(RPC_AVERE, TVariant(avere));
vals->add(RPC_SCADUTO, TVariant(scaduto));
vals->add(RPC_SOLV, TVariant(solv));
vals->add(RPC_NINS, TVariant(nins));
vals->add(RPC_ESPCAM, TVariant(espcam));
}
const TVariant& TRepcom_recordset::get_field_value(const TString & field)
{
TVariant& var = get_tmp_var();
TAssoc_array & row = get_curr_row();
TVariant * v = (TVariant *) row.objptr(field);
if (v != NULL)
var = *v;
return var;
}
const TVariant& TRepcom_recordset::get_field(int num, const char* field) const
{
const TString16 f(field);
if (f == RPC_DATAUFATT || f == RPC_IMPFATT || f == RPC_TOTFATT ||
f == RPC_DARE || f == RPC_AVERE || f == RPC_MOVIMENTATO ||
f == RPC_SCADUTO || f == RPC_SOLV || f == RPC_NINS || f == RPC_ESPCAM)
return ((TRepcom_recordset *)this)->get_field_value(f);
return TDocument_recordset::get_field(num, field);
}
void TReporting_clienti_fornitori::update_recset(TDocument_report & rep, const TMask & m)
{
TString select;
TString virsel;
TSheet_field & s = m.sfield(F_SHEET);
const int nrows = s.items();
const int key = m.get_int(F_KEY);
TISAM_recordset *r = (TISAM_recordset*) rep.recordset();
TString query = r->query_text();
for (int i = 0; i < nrows; i++)
{
TToken_string & row = s.row(i);
TString fromval(row.get(1));
TString toval(row.get(2));
if (fromval.full() || toval.full())
{
if ( i == 0 && key == 1)
{
int pos = 0;
for (int j = 0; pos >= 0 && j < 2; j++)
{
pos = query.find("$TIPOCF", pos);
if (pos >= 0)
{
pos += 8;
TString wrk;
const TString val = row.get(j + 1);
if (val.full())
wrk << ' ' << CLI_CODCF << "='" << val << "'";
query.insert(wrk, pos);
}
}
}
else
if ( i == 1 && key == 2)
{
int pos = 0;
for (int j = 0; pos >= 0 && j < 2; j++)
{
pos = query.find("$TIPOCF", pos);
if (pos >= 0)
{
pos += 8;
TString wrk;
const TString val = row.get(j + 1);
if (val.full())
wrk << ' ' << CLI_RAGSOC << "='" << val << "\'";
query.insert(wrk, pos);
}
}
}
const TString field(__fields[i]);
if (__virtual[i])
{
if (virsel.full())
virsel << "&&";
if (i == 22)
{
if (fromval.full())
virsel << " (" << field << "!=\"\")";
}
else
{
if (fromval.empty())
{
if (i == 0 || i == 8 || i > 15)
fromval = "0";
else
fromval = "\"\"";
}
if (toval.blank())
select << "(" << field << ">=\"" << fromval << "\")";
else
virsel << "BETWEEN(" << field << ",\"" << fromval << "\",\"" << toval << "\")";
}
}
else
{
if (select.full())
select << "&&";
if (fromval.empty())
{
if (i == 0 || i == 8 || i > 15)
fromval = "0";
else
fromval = "\"\"";
}
if (i == 0 || i == 8 || i > 15)
{
if (toval.blank())
select << "(" << field << ">=" << fromval << ")";
else
select << "BETWEEN(" << field << "," << fromval << "," << toval << ")";
}
else
{
if (toval.blank())
select << "(" << field << ">=\"" << fromval << "\")";
else
select << "BETWEEN(" << field << ",\"" << fromval << "\",\"" << toval << "\")";
}
}
}
}
if (select.full())
select.format("(%s)", (const char *) select);
for (int i = 0; __macros[i]; i++)
{
int pos = query.find(__macros[i]);
while (pos >= 0)
{
TString wrk = query.left(pos);
switch (i)
{
case 0:
wrk << "(" << select << ")";
break;
case 1:
wrk << key;
break;
case 2:
case 3:
wrk << m.get(F_TIPOCF);
break;
case 4:
if (esercizi().exist(m.get_int(F_CODES)))
wrk << esercizi().esercizio(m.get_int(F_CODES)).inizio().year();
break;
case 5:
if (esercizi().exist(m.get_int(F_CODES_TO)))
wrk << esercizi().esercizio(m.get_int(F_CODES_TO)).inizio().year();
break;
case 6:
wrk << m.get(F_DA);
break;
case 7:
wrk << m.get(F_A);
break;
default:
break;
}
wrk << query.mid(pos + strlen(__macros[i]));
query = wrk;
pos = query.find(__macros[i]);
}
}
TRepcom_recordset * recset = new TRepcom_recordset(query);
recset->set_es(m.get_int(F_CODES));
recset->set_es_to(m.get_int(F_CODES_TO));
for (int i = 0; i < nrows; i++)
{
TToken_string & row = s.row(i);
TString fromval(row.get(1));
TString toval(row.get(2));
const TString field(row.get(3));
TString from("#DA_"); from << field;
TString to("#A_"); to << field;
recset->set_var(from, TVariant(fromval));
recset->set_var(to, TVariant(toval));
}
recset->set_virtual(virsel);
rep.set_recordset(((TDocument_recordset *)recset));
}
class TRepcom_mask : public TVariable_automask
{
private:
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
static TMask* getmask(int numriga, TMask& fullmask);
public:
TRepcom_mask() : TVariable_automask("ba9b00a") { sfield(F_SHEET).set_append(false); ((TVariable_sheet_field &) sfield(F_SHEET)).set_getmask(getmask); }
};
TMask* TRepcom_mask::getmask(int numriga, TMask& fullmask)
{
TSheet_field* sf = fullmask.get_sheet();
TRepcom_mask & m = (TRepcom_mask &)sf->mask();
static TArray __masks;
TMask * mask = (TMask *)__masks.objptr(numriga);
if (mask == NULL)
{
TFilename mask_name("ba9b00a");
mask_name = mask_name << format("%02d", numriga + 1);
__masks.add(mask = new TMask(mask_name), numriga);
}
return mask;
}
bool TRepcom_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_TIPOCF:
if (e == fe_init || e == fe_modify)
{
const TString4 tipo = o.get();
TSheet_field & s = o.mask().sfield(F_SHEET);
const int nrows = s.items();
for (int i = 0; i < nrows; i++)
{
TToken_string & row = s.row(i);
row.add(tipo, s.cid2index(S_TIPOCF));
}
s.force_update();
}
case F_CODES:
if (e == fe_init || e == fe_modify)
{
bool active = o.get().full();
TSheet_field & s = sfield(F_SHEET);
for (int i = 0; __fields[i]; i++)
{
if (__need_es[i])
{
if (!active)
{
TToken_string & row = s.row(i);
row.add("", 1);
row.add("", 2);
}
s.enable_row(i, active);
if (i == 22)
s.disable_cell(i, s.cid2index(S_A));
}
}
s.force_update();
}
break;
case F_SHEET:
if (e == se_query_add)
return false;
break;
default:
break;
}
return true;
}
void TReporting_clienti_fornitori::main_loop()
{
bool repcom = false;
// Costruisce il nome del report in base alla riga di comando
TFilename rep;
if (argc() > 2)
rep = argv(2);
TDocument_report r;
bool ok = true;
TRepcom_mask m;
TSheet_field & s = m.sfield(F_SHEET);
for (int i = 0; __fields[i]; i++)
{
TToken_string & row = s.row(i);
row.add(__field_descrs[i], 0);
row.add("", 1);
row.add("", 2);
row.add(__fields[i], 3);
row.add("", 4);
}
if (rep.full())
{
m.set(F_REPORT, rep);
m.disable(F_REPORT);
}
while ((m.run() == K_ENTER))
{
if (r.load(m.get(F_REPORT))) // Controlla l'effettiva esistenza del report
{
update_recset(r, m);
TReport_book b;
b.add(r); // Richiede parametri di stampa in base alla maschera omonima
if (b.pages() > 0)
b.print_or_preview(); // Stampa effettivamente
else
warning_box (TR("Nessun record estratto per i parametri inseriti"));
}
}
}
int ba9200(int argc, char* argv[])
{
TReporting_clienti_fornitori app;
app.run(argc, argv, TR("Report Clienti Fornitori"));
return 0;
}

15
src/ba/ba9b00.h Normal file

@ -0,0 +1,15 @@
#define S_DESCR 101
#define S_DA 102
#define S_A 103
#define S_FIELD 104
#define S_TIPOCF 105
#define F_KEY 201
#define F_TIPOCF 202
#define F_CODES 203
#define F_SHEET 204
#define F_CODES_TO 205
#define F_DA 206
#define F_A 207
#define F_REPORT 301

143
src/ba/ba9b00a.uml Normal file

@ -0,0 +1,143 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <printbar.h>
ENDPAGE
TOOLBAR "bottombar" 0 -2 0 1
STRING F_REPORT 256 64
BEGIN
PROMPT 2 -2 "Report "
RSELECT "repcom"
CHECKTYPE REQUIRED
END
STRING DLG_PROFILE 50
BEGIN
PROMPT 2 -1 "Profilo "
PSELECT
END
ENDPAGE
PAGE "Report Clienti Fornitori" 0 2 0 0
LISTBOX F_KEY 50
BEGIN
PROMPT 1 1 "Chiave "
ITEM "1|Codice (TIPOCF CODCF)"
ITEM "2|Ragione sociale (TIPOCF RAGSOC)"
ITEM "3|Conto (TIPOCF GRUPPO CONTO CODCF)"
ITEM "4|Codice fiscale (TIPOCF COFI)"
ITEM "5|Partita IVA (TIPOCF STATOPAIV PAIV"
ITEM "6|Ricerca alternativa (TIPOCF+RICALT)"
END
LISTBOX F_TIPOCF 10
BEGIN
PROMPT 1 3 "Tipo "
ITEM "C|Clienti"
ITEM "F|Fornitori"
MESSAGE COPY,S_TIPOCF
END
NUMBER F_CODES 4
BEGIN
PROMPT 21 3 "Esercizio Da"
USE ESC
INPUT CODTAB F_CODES
DISPLAY "Codice Esercizio" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio " D1
OUTPUT F_CODES CODTAB
CHECKTYPE NORMAL
END
NUMBER F_CODES_TO 4
BEGIN
PROMPT 55 3 "A "
USE ESC
INPUT CODTAB F_CODES_TO
DISPLAY "Codice Esercizio" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio " D1
OUTPUT F_CODES_TO CODTAB
CHECKTYPE NORMAL
END
DATE F_DA
BEGIN
PROMPT 32 4 "Dal"
END
DATE F_A
BEGIN
PROMPT 55 4 "Al "
END
SPREADSHEET F_SHEET 0 -3
BEGIN
PROMPT 15 6 "Selezione"
ITEM "Campo@25"
ITEM "Da@50"
ITEM "A@50"
ITEM "Nome campo@25"
ITEM "Tipo"
END
ENDPAGE
ENDMASK
PAGE "Riga Selezione" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 50
BEGIN
PROMPT 2 4 "Da "
END
STRING S_A 50
BEGIN
PROMPT 2 6 "A "
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
LISTBOX S_TIPOCF 9
BEGIN
PROMPT 2 10 ""
FLAGS "HGD"
ITEM "C|Cliente"
ITEM "F|Fornitore"
EN
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK

59
src/ba/ba9b00a01.uml Normal file

@ -0,0 +1,59 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione cliente/fornitore" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
NUMBER S_DA 6
BEGIN
PROMPT 2 4 "Da "
USE LF_CLIFO
INPUT TIPOCF S_TIPOCF SELECT
INPUT CODCF S_DA
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@11" PAIV
OUTPUT S_DA CODCF
FLAGS "Z"
END
NUMBER S_A 6
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT TIPOCF S_TIPOCF SELECT
INPUT CODCF S_A
COPY DISPLAY S_DA
OUTPUT S_A CODCF
NUM_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
FLAGS "Z"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
LISTBOX S_TIPOCF 9
BEGIN
PROMPT 2 12 ""
FLAGS "HGD"
ITEM "C|Cliente"
ITEM "F|Fornitore"
END
ENDPAGE
ENDMASK

57
src/ba/ba9b00a02.uml Normal file

@ -0,0 +1,57 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione cliente/fornitore" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRRING S_DA 50
BEGIN
PROMPT 2 4 "Da "
USE LF_CLIFO KEY 2
INPUT TIPOCF S_TIPOCF SELECT
INPUT RAGSOC S_DA
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Partita IVA@11" PAIV
OUTPUT S_DA RAGSOC
END
STRING S_A 50
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT TIPOCF S_TIPOCF SELECT
INPUT RAGSOC S_A
COPY DISPLAY S_DA
OUTPUT S_A RAGSOC
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
LISTBOX S_TIPOCF 9
BEGIN
PROMPT 2 12 ""
FLAGS "HGD"
ITEM "C|Cliente"
ITEM "F|Fornitore"
END
ENDPAGE
ENDMASK

38
src/ba/ba9b00a03.uml Normal file

@ -0,0 +1,38 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione CAP" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 5
BEGIN
PROMPT 2 4 "Da "
FLAGS "Z"
END
STRING S_A 5
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
FLAGS "Z"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

47
src/ba/ba9b00a04.uml Normal file

@ -0,0 +1,47 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Agente" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 5
BEGIN
PROMPT 2 4 "Da "
FLAGS "UZ"
USE LF_AGENTI
INPUT CODAGE S_DA
DISPLAY "Codice@8R" CODAGE
DISPLAY "Descrizione@70" RAGSOC
OUTPUT S_DA CODAGE
END
STRING S_A 5
BEGIN
PROMPT 2 6 "A "
FLAGS "UZ"
COPY USE S_DA
INPUT CODAGE S_A
COPY DISPLAY S_DA
OUTPUT S_A CODAGE
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

45
src/ba/ba9b00a05.uml Normal file

@ -0,0 +1,45 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Zona" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 2
BEGIN
PROMPT 2 4 "Da "
USE ZON
INPUT CODTAB S_DA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_DA CODTAB
END
STRING S_A 2
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

47
src/ba/ba9b00a06.uml Normal file

@ -0,0 +1,47 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Agente" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 5
BEGIN
PROMPT 2 4 "Da "
FLAGS "UZ"
USE LF_AGENTI
INPUT CODAGE S_DA
DISPLAY "Codice@8R" CODAGE
DISPLAY "Descrizione@70" RAGSOC
OUTPUT S_DA CODAGE
END
STRING S_A 5
BEGIN
PROMPT 2 6 "A "
FLAGS "UZ"
COPY USE S_DA
INPUT CODAGE S_A
COPY DISPLAY S_DA
OUTPUT S_A CODAGE
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

49
src/ba/ba9b00a07.uml Normal file

@ -0,0 +1,49 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Listino" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 3
BEGIN
PROMPT 2 4 "Da "
FLAGS "U"
USE LF_CONDV
INPUT TIPO "L"
INPUT CATVEN ""
INPUT COD S_DA
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
OUTPUT S_DA COD
END
STRING S_A 3
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT TIPO "L"
INPUT CATVEN ""
INPUT COD S_A
COPY DISPLAY S_DA
OUTPUT S_A COD
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a08.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Sconto" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 25
BEGIN
PROMPT 2 4 "Da "
END
STRING S_A 25
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a09.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Fido" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
NUM_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

48
src/ba/ba9b00a10.uml Normal file

@ -0,0 +1,48 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Pagamento" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 4
BEGIN
PROMPT 2 4 "Da "
FLAGS "U#"
USE %CPG
INPUT CODTAB S_DA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_DA CODTAB
MESSAGE COPY,S_A
END
STRING S_A 4
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
FLAGS "U#"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

48
src/ba/ba9b00a11.uml Normal file

@ -0,0 +1,48 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Magazzino" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 3
BEGIN
PROMPT 2 4 "Da "
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB[1,3] S_DA
DISPLAY "Cod. magazzino" CODTAB[1,3]
DISPLAY "Cod. deposito" CODTAB[4,5]
DISPLAY "Denominazione dep.@50" S0
OUTPUT S_DA CODTAB[1,3]
FLAGS "UPA"
END
STRING S_A 3
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB[1,3] S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB[1,3]
FLAGS "UPA"
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

48
src/ba/ba9b00a12.uml Normal file

@ -0,0 +1,48 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Deposito" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 2
BEGIN
PROMPT 2 4 "Da "
USE MAG SELECT CODTAB[4,5]!=""
INPUT CODTAB[4,5] S_DA
DISPLAY "Cod. magazzino" CODTAB[1,3]
DISPLAY "Cod. deposito" CODTAB[4,5]
DISPLAY "Denominazione dep.@50" S0
OUTPUT S_DA CODTAB[4,5]
FLAGS "UPA"
END
STRING S_A 2
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB[4,5] S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB[4,5]
FLAGS "UPA"
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a13.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Data esenzione" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
DATE S_DA
BEGIN
PROMPT 2 4 "Da "
END
DATE S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

47
src/ba/ba9b00a14.uml Normal file

@ -0,0 +1,47 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Porto" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 3
BEGIN
PROMPT 2 4 "Da "
FLAGS "U"
USE %POR
INPUT CODTAB S_DA
DISPLAY "Codice" CODTAB
DISPLAY "Porto@50" S0
OUTPUT S_DA CODTAB
END
STRING S_A 3
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
FLAGS "U"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

45
src/ba/ba9b00a15.uml Normal file

@ -0,0 +1,45 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione spedizione" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 3
BEGIN
PROMPT 2 4 "Da "
USE %MSP
INPUT CODTAB S_DA
DISPLAY "Codice modalita'" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_DA CODTAB
END
STRING S_A 3
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB
NUM_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

47
src/ba/ba9b00a16.uml Normal file

@ -0,0 +1,47 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione categoria economica" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 3
BEGIN
PROMPT 2 4 "Da "
FLAGS "U"
USE CVE
INPUT CODTAB S_DA
DISPLAY "Codice vendita" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT S_DA CODTAB
END
STRING S_A 3
BEGIN
PROMPT 2 6 "A "
COPY USE S_DA
INPUT CODTAB S_A
COPY DISPLAY S_DA
OUTPUT S_A CODTAB
NUM_EXPR (#S_A=="")||(#S_A>=#S_DA)
FLAGS "U"
WARNING "Il limite superiore deve essere maggiore di quello inferiroe"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a17.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Ultima Fattura" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
DATE S_DA
BEGIN
PROMPT 2 4 "Da "
END
DATE S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

37
src/ba/ba9b00a18.uml Normal file

@ -0,0 +1,37 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Fatturato netto" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a19.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Fatturato lordo" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a20.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Dare" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a21.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Avere" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a22.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Scaduto" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
CURRENCY S_DA
BEGIN
PROMPT 2 4 "Da "
END
CURRENCY S_A
BEGIN
PROMPT 2 6 "A "
STR_EXPR (#S_A=="")||(#S_A>=#S_DA)
WARNING "Il limite superiore deve essere maggiore di quello inferiore"
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

36
src/ba/ba9b00a23.uml Normal file

@ -0,0 +1,36 @@
#include "ba9b00.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Riga Selezione Movimentato" -1 -1 78 19
STRING S_DESCR 25
BEGIN
PROMPT 2 2 "Campo"
FLAGS "D"
END
STRING S_DA 1
BEGIN
PROMPT 2 4 "Movimentato "
MESSAGE COPY, S_A
FLAGS "U"
END
STRING S_A 1
BEGIN
PROMPT 100 100 "A "
END
STRING S_FIELD 25
BEGIN
PROMPT 2 8 "Nome campo"
FLAGS "D"
END
ENDPAGE
ENDMASK

@ -99,7 +99,8 @@ Flags = ""
Item_01 = "Generatore query", "ba8 -1", "S"
Item_02 = "Generatore report", "ba8 -2", "S", 10217
Item_03 = "Convertitore da form a report", "ba8 -3", ""
Item_04 = "Ricerca file archiviati", "ba8 -5", ""
Item_04 = "Report clienti e fornitori", "ba9 -1", "F"
Item_05 = "Ricerca file archiviati", "ba8 -5", ""
[MENU_015]
Caption = "Manutenzione"

90
src/ba/barc00001.rep Normal file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="barc00001" orientation="2" lpi="6" class="repcom">
<description>Fatturato e situazione contabile</description>
<font face="Courier New" size="7" />
<section type="Head" pattern="1">
<field x="184" type="Stringa" width="10" pattern="1">
<prescript description="H0.0 PRESCRIPT">MESSAGE _PAGENO</prescript>
</field>
<field x="179" y="0.25" type="Testo" width="5" pattern="1" text="Pag." />
<field y="2" type="Testo" align="right" width="6" pattern="1" text="Codice" />
<field x="7" y="2" type="Testo" width="25" pattern="1" text="Regione Sociale" />
<field x="33" y="2" type="Testo" width="5" pattern="1" text="CAP" />
<field x="39" y="2" type="Testo" align="right" width="5" pattern="1" text="Banca" />
<field x="45" y="2" type="Testo" align="right" width="5" pattern="1" text="Agenz." />
<field x="51" y="2" type="Testo" width="4" pattern="1" text="Pag." />
<field x="56" y="2" type="Testo" width="5" pattern="1" text="Ag1" />
<field x="62" y="2" type="Testo" width="2" pattern="1" text="Zona" />
<field x="65" y="2" type="Testo" width="4" pattern="1" text="Ins." />
<field x="69.5" y="2" type="Testo" width="5" pattern="1" text="Lis." />
<field x="75" y="2" type="Testo" width="25" pattern="1" text="Sconto" />
<field x="101" y="2" type="Testo" align="right" width="15" pattern="1" text="Fido" />
<field x="117" y="2" type="Testo" align="right" width="15" pattern="1" text="Dare" />
<field x="133" y="2" type="Testo" align="right" width="15" pattern="1" text="Avere" />
<field x="148.5" y="2" type="Testo" align="right" width="15" pattern="1" text="Imponibile" />
<field x="164" y="2" type="Testo" align="right" width="15" pattern="1" text="Fatturato" />
<field x="180" y="2" type="Testo" align="right" width="15" pattern="1" text="Scaduto " />
<field border="2" y="3" type="Linea" width="194" height="0" pattern="1" />
</section>
<section type="Head" level="1" pattern="1" />
<section type="Body" pattern="1" />
<section type="Body" level="1" pattern="1">
<field type="Numero" align="right" width="6" pattern="1">
<source>CLIFO.CODCF</source>
</field>
<field x="7" type="Stringa" dynamic_height="1" width="25" height="2" pattern="1">
<source>CLIFO.RAGSOC</source>
</field>
<field x="33" type="Stringa" width="5" pattern="1">
<source>CLIFO.CAPCF</source>
</field>
<field x="39" type="Numero" width="5" pattern="1">
<source>CLIFO.CODABI</source>
</field>
<field x="45" type="Numero" width="5" pattern="1">
<source>CLIFO.CODCAB</source>
</field>
<field x="51" type="Stringa" width="4" pattern="1">
<source>CLIFO.CODPAG</source>
</field>
<field x="56" type="Stringa" width="5" pattern="1">
<source>CFVEN.CODAG</source>
</field>
<field x="62" type="Stringa" width="2" pattern="1">
<source>CFVEN.CODZONA</source>
</field>
<field x="65" type="Stringa" width="4" pattern="1">
<source>NINS</source>
</field>
<field x="69.5" type="Stringa" width="5" pattern="1">
<source>CFVEN.CODLIST</source>
</field>
<field x="75" type="Stringa" width="25" pattern="1">
<source>CFVEN.SCONTO</source>
</field>
<field x="101" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>FIDO</source>
</field>
<field x="117" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>DARE</source>
</field>
<field x="133" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>AVERE</source>
</field>
<field x="148.5" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>IMPFATT</source>
</field>
<field x="164" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>TOTFATT</source>
</field>
<field x="179.5" type="Valuta" align="right" width="15" pattern="1" text="#########,@@">
<source>SCADUTO</source>
</field>
</section>
<section type="Foot" pattern="1" />
<section type="Foot" level="1" pattern="1" />
<sql>USE CLIFO KEY $KEY SELECT $REPSEL
JOIN CFVEN INTO TIPOCF==TIPOCF CODCF==CODCF
FROM TIPOCF='$TIPOCF'
TO TIPOCF='$TIPOCF'</sql>
</report>

39
src/ba/barc00002.rep Normal file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="barc00002" cpi="17" orientation="2" lpi="6" class="repcom">
<description>Etichette standard reporting commerciale</description>
<font face="Courier New" size="7" />
<section type="Head" pattern="1" />
<section type="Head" level="1" pattern="1" />
<section type="Body" pattern="1" />
<section type="Body" level="1" width="40" height="9" pattern="1">
<field type="Testo" width="10" pattern="1" text="Spett." />
<field y="1" type="Stringa" width="40" height="2" pattern="1">
<source>CLIFO.RAGSOC</source>
</field>
<field y="3" type="Stringa" width="40" height="2" pattern="1">
<source>CLIFO.INDCF+", "+CLIFO.CIVCF</source>
</field>
<field y="5" type="Stringa" width="40" height="2" pattern="1">
<source>CLIFO.LOCALITACF</source>
</field>
<field y="7" type="Stringa" width="5" pattern="1">
<source>CLIFO.CAPCF</source>
</field>
<field x="6" y="7" type="Stringa" width="34" pattern="1">
<source>COMUNI.DENCOM</source>
</field>
<field y="8" type="Stringa" hidden="1" width="4" id="100" pattern="1">
<source>STATOCF</source>
</field>
<field x="6" y="8" type="Stringa" width="34" id="101" pattern="1">
<prescript description="B1.101 PRESCRIPT">MESSAGE _TABLEREAD,%STA,#101,S0</prescript>
</field>
</section>
<section type="Foot" pattern="1" />
<section type="Foot" level="1" pattern="1" />
<sql>USE CLIFO KEY $KEY SELECT $REPSEL
JOIN CFVEN INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN COMUNI INTO STATO==STATOCF COM==CODCF
FROM TIPOCF='$TIPOCF'
TO TIPOCF='$TIPOCF'</sql>
</report>