cg2102.cpp Resa piu' robusta la gestione degli sheet in visione dei
cambiamenti sul messaggio K_INS cg3100.cpp Aggiustamenti infimi cg3600.cpp COrretta marea di errori e ottimizzata espansione delle righe cg3600a.uml Aggiunti groupbox cg3600b.uml Ristretta colonna della causale cglib01.cpp COrretta gestione progind git-svn-id: svn://10.65.10.50/trunk@4010 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
dae74eae6e
commit
fd53008af7
@ -840,6 +840,9 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
|
|||||||
return TRUE; // Ritorna subito, altrimenti crea riga vuota
|
return TRUE; // Ritorna subito, altrimenti crea riga vuota
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (k == K_INS) // La riga non esiste ancora
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
TToken_string& row = cg.row(r);
|
TToken_string& row = cg.row(r);
|
||||||
const char tipo = row_type(row); // Tipo della riga in esame
|
const char tipo = row_type(row); // Tipo della riga in esame
|
||||||
|
|
||||||
@ -1216,7 +1219,10 @@ bool TPrimanota_application::iva_notify(TSheet_field& iva, int r, KEY k)
|
|||||||
TPrimanota_application& a = app();
|
TPrimanota_application& a = app();
|
||||||
if (a._as400)
|
if (a._as400)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
if (k = K_INS || k == K_CTRL+K_DEL)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
TToken_string& row = iva.row(r);
|
TToken_string& row = iva.row(r);
|
||||||
const TCausale& cau = a.causale();
|
const TCausale& cau = a.causale();
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include <saldi.h>
|
#include <saldi.h>
|
||||||
|
|
||||||
#include "cglib.h"
|
#include "cglib.h"
|
||||||
//#include "cglib04.h"
|
|
||||||
#include "cglib03.h"
|
#include "cglib03.h"
|
||||||
#include "cg2103.h"
|
#include "cg2103.h"
|
||||||
|
|
||||||
|
350
cg/cg3600.cpp
350
cg/cg3600.cpp
@ -56,7 +56,6 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
TList_object* detach_lstobj(long index);
|
TList_object* detach_lstobj(long index);
|
||||||
TList_object* lstobjptr(long index) const;
|
TList_object* lstobjptr(long index) const;
|
||||||
void change_step(long step);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
long items() const { return _items; }
|
long items() const { return _items; }
|
||||||
@ -76,7 +75,8 @@ public:
|
|||||||
TObject* detach(long pos);
|
TObject* detach(long pos);
|
||||||
bool remove(long pos);
|
bool remove(long pos);
|
||||||
|
|
||||||
void choose_step(long expected_size); // Sceglie il passo per gli elemnti
|
void change_step(long step); // Forza il passo per gli elementi
|
||||||
|
long choose_step(long expected_size); // Sceglie il passo per gli elemnti
|
||||||
|
|
||||||
TList(long expected_size = 128L);
|
TList(long expected_size = 128L);
|
||||||
virtual ~TList();
|
virtual ~TList();
|
||||||
@ -175,10 +175,11 @@ void TList::change_step(long step)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TList::choose_step(long expected_size)
|
long TList::choose_step(long expected_size)
|
||||||
{
|
{
|
||||||
long step = expected_size / MAX_SKIP + 1;
|
const long step = expected_size / MAX_SKIP + 1;
|
||||||
change_step(step);
|
change_step(step);
|
||||||
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
long TList::insert(TObject* obj, long index)
|
long TList::insert(TObject* obj, long index)
|
||||||
@ -318,8 +319,8 @@ protected:
|
|||||||
TImporto& si, TImporto& da, TImporto& av, TImporto& sf) const;
|
TImporto& si, TImporto& da, TImporto& av, TImporto& sf) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void read(int g, int c, long s, int esercizio);
|
void read(int g, int c, long s, int esercizio, bool ignora_movap = FALSE);
|
||||||
void read(const TBill& b, int esercizio);
|
void read(const TBill& b, int esercizio, bool ignora_movap = FALSE);
|
||||||
void reread();
|
void reread();
|
||||||
|
|
||||||
const TImporto& saldo_iniziale() const;
|
const TImporto& saldo_iniziale() const;
|
||||||
@ -331,8 +332,8 @@ public:
|
|||||||
TImporto saldo_finale_chiusura() const;
|
TImporto saldo_finale_chiusura() const;
|
||||||
|
|
||||||
TBalance();
|
TBalance();
|
||||||
TBalance(int g, int c, long s, int esercizio);
|
TBalance(int g, int c, long s, int esercizio, bool ignora_movap = FALSE);
|
||||||
TBalance(const TBill& b, int esercizio);
|
TBalance(const TBill& b, int esercizio, bool ignora_movap = FALSE);
|
||||||
virtual ~TBalance() { }
|
virtual ~TBalance() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -340,14 +341,14 @@ TBalance::TBalance()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
TBalance::TBalance(int g, int c, long s, int esercizio)
|
TBalance::TBalance(int g, int c, long s, int esercizio, bool ignora_movap)
|
||||||
{
|
{
|
||||||
read(g, c, s, esercizio);
|
read(g, c, s, esercizio, ignora_movap);
|
||||||
}
|
}
|
||||||
|
|
||||||
TBalance::TBalance(const TBill& b, int esercizio)
|
TBalance::TBalance(const TBill& b, int esercizio, bool ignora_movap)
|
||||||
{
|
{
|
||||||
read(b, esercizio);
|
read(b, esercizio, ignora_movap);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TBalance::find(const TBill& b, int esercizio,
|
bool TBalance::find(const TBill& b, int esercizio,
|
||||||
@ -379,13 +380,13 @@ bool TBalance::find(const TBill& b, int esercizio,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TBalance::read(int gruppo, int conto, long sottoconto, int esercizio)
|
void TBalance::read(int gruppo, int conto, long sottoconto, int esercizio, bool ignora_movap)
|
||||||
{
|
{
|
||||||
const TBill zio(gruppo, conto, sottoconto);
|
const TBill zio(gruppo, conto, sottoconto);
|
||||||
read(zio, esercizio);
|
read(zio, esercizio, ignora_movap);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TBalance::read(const TBill& b, int esercizio)
|
void TBalance::read(const TBill& b, int esercizio, bool ignora_movap)
|
||||||
{
|
{
|
||||||
TImporto si, sf, pd, pa;
|
TImporto si, sf, pd, pa;
|
||||||
|
|
||||||
@ -416,6 +417,11 @@ void TBalance::read(const TBill& b, int esercizio)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ignora_movap)
|
||||||
|
_saldo_ini.set('D', ZERO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const TImporto& TBalance::saldo_iniziale() const
|
const TImporto& TBalance::saldo_iniziale() const
|
||||||
@ -553,7 +559,6 @@ public:
|
|||||||
long last(tipo_riga_mastrino tipo = riga_mastrino) const;
|
long last(tipo_riga_mastrino tipo = riga_mastrino) const;
|
||||||
|
|
||||||
void destroy() { _riga.destroy(); }
|
void destroy() { _riga.destroy(); }
|
||||||
int esercizio() const { return _esercizio; }
|
|
||||||
|
|
||||||
const real& progressivo_dare_iniziale() const { return _pdare_ini; }
|
const real& progressivo_dare_iniziale() const { return _pdare_ini; }
|
||||||
const real& progressivo_avere_iniziale() const { return _pavere_ini; }
|
const real& progressivo_avere_iniziale() const { return _pavere_ini; }
|
||||||
@ -567,6 +572,11 @@ public:
|
|||||||
real progressivo_avere_periodo() const { return _pavere_ini + _pavere_per; }
|
real progressivo_avere_periodo() const { return _pavere_ini + _pavere_per; }
|
||||||
TImporto saldo_periodo() const;
|
TImporto saldo_periodo() const;
|
||||||
|
|
||||||
|
int esercizio() const { return _esercizio; }
|
||||||
|
const TDate& inizio_periodo() const { return _da_data; }
|
||||||
|
const TDate& fine_periodo() const { return _a_data; }
|
||||||
|
void periodo(TDate& dd, TDate& ad) const { dd = _da_data; ad = _a_data; }
|
||||||
|
|
||||||
bool expandable(long rec) const;
|
bool expandable(long rec) const;
|
||||||
bool expand(long rec);
|
bool expand(long rec);
|
||||||
bool collapse(long rec);
|
bool collapse(long rec);
|
||||||
@ -671,10 +681,8 @@ void TMastrino::read(const TBill& conto,
|
|||||||
_da_caus = dc;
|
_da_caus = dc;
|
||||||
_a_caus = ac.blank() ? "zzz" : ac; // Se vuota sceglie la massima causale
|
_a_caus = ac.blank() ? "zzz" : ac; // Se vuota sceglie la massima causale
|
||||||
|
|
||||||
const TDate& min_data_reg = _da_data;
|
TDate max_data_reg = _a_data;
|
||||||
TDate max_data_reg;
|
long num_giorni = _a_data - inizio_esercizio + 1;
|
||||||
|
|
||||||
long num_giorni = _a_data - _da_data + 1;
|
|
||||||
if (_esercizio > 0)
|
if (_esercizio > 0)
|
||||||
{
|
{
|
||||||
const int succ = esercizi.next(ae);
|
const int succ = esercizi.next(ae);
|
||||||
@ -686,8 +694,6 @@ void TMastrino::read(const TBill& conto,
|
|||||||
else
|
else
|
||||||
max_data_reg = esercizi[ae].fine();
|
max_data_reg = esercizi[ae].fine();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
max_data_reg = _a_data;
|
|
||||||
|
|
||||||
TString caption(80);
|
TString caption(80);
|
||||||
caption.format("Caricamento mastrino %03d.%03d.%06ld",
|
caption.format("Caricamento mastrino %03d.%03d.%06ld",
|
||||||
@ -695,7 +701,9 @@ void TMastrino::read(const TBill& conto,
|
|||||||
TProgind pi(num_giorni, caption, FALSE, TRUE, 48);
|
TProgind pi(num_giorni, caption, FALSE, TRUE, 48);
|
||||||
|
|
||||||
// Stima dimensione mastrino
|
// Stima dimensione mastrino
|
||||||
_riga.choose_step(num_giorni);
|
const long step = _riga.choose_step(num_giorni);
|
||||||
|
if (step < 8)
|
||||||
|
_riga.change_step(8);
|
||||||
|
|
||||||
// Valori dei saldi fino alla data di inizio stampa:
|
// Valori dei saldi fino alla data di inizio stampa:
|
||||||
// Vengono inizializzati con i saldi iniziali dell'esercizio,
|
// Vengono inizializzati con i saldi iniziali dell'esercizio,
|
||||||
@ -703,7 +711,7 @@ void TMastrino::read(const TBill& conto,
|
|||||||
// vanno dall'inizio dell'esercizio al giorno precedente
|
// vanno dall'inizio dell'esercizio al giorno precedente
|
||||||
// la data di inizio stampa
|
// la data di inizio stampa
|
||||||
|
|
||||||
const TBalance saldo(_conto, ae);
|
const TBalance saldo(_conto, ae, TRUE);
|
||||||
_pdare_ini = saldo.progressivo_dare_iniziale();
|
_pdare_ini = saldo.progressivo_dare_iniziale();
|
||||||
_pavere_ini = saldo.progressivo_avere_iniziale();
|
_pavere_ini = saldo.progressivo_avere_iniziale();
|
||||||
_pdare_fin = saldo.progressivo_dare_finale();
|
_pdare_fin = saldo.progressivo_dare_finale();
|
||||||
@ -716,7 +724,7 @@ void TMastrino::read(const TBill& conto,
|
|||||||
_pdare_per = _pavere_per = ZERO;
|
_pdare_per = _pavere_per = ZERO;
|
||||||
|
|
||||||
conto.put(rmov_rec);
|
conto.put(rmov_rec);
|
||||||
rmov_rec.put(RMV_DATAREG, min_data_reg);
|
rmov_rec.put(RMV_DATAREG, inizio_esercizio);
|
||||||
|
|
||||||
const TRecfield rmov_datareg (rmov_rec, RMV_DATAREG);
|
const TRecfield rmov_datareg (rmov_rec, RMV_DATAREG);
|
||||||
const TRecfield rmov_numreg (rmov_rec, RMV_NUMREG);
|
const TRecfield rmov_numreg (rmov_rec, RMV_NUMREG);
|
||||||
@ -754,11 +762,11 @@ void TMastrino::read(const TBill& conto,
|
|||||||
num_rec++;
|
num_rec++;
|
||||||
if ((num_rec & 0x7F) == 0)
|
if ((num_rec & 0x7F) == 0)
|
||||||
{
|
{
|
||||||
const long sec = (clock() - clock_start) / CLOCKS_PER_SEC;
|
const double sec = (clock() - clock_start) / CLOCKS_PER_SEC;
|
||||||
if (sec > 0)
|
if (sec > 0.0)
|
||||||
{
|
{
|
||||||
TString80 msg;
|
TString80 msg;
|
||||||
msg.format("%ld records at %ld rec/sec", num_rec, num_rec / sec);
|
msg.format("%ld records at %ld rec/sec", num_rec, long(num_rec/sec));
|
||||||
pi.set_text(msg);
|
pi.set_text(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -772,21 +780,24 @@ void TMastrino::read(const TBill& conto,
|
|||||||
const TDate data_corrente = _esercizio <= 0 ? data_reg : (TDate)mov_datacomp;
|
const TDate data_corrente = _esercizio <= 0 ? data_reg : (TDate)mov_datacomp;
|
||||||
if (data_corrente > _a_data)
|
if (data_corrente > _a_data)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// Aggiorna la barra solo una volta al giorno
|
||||||
|
if (data_reg > ultimo_giorno)
|
||||||
|
{
|
||||||
|
const long giorno = data_reg - inizio_esercizio + 1;
|
||||||
|
pi.setstatus(giorno);
|
||||||
|
ultimo_giorno = data_reg;
|
||||||
|
}
|
||||||
|
|
||||||
const char sezione = *((const char*)rmov_sezione);
|
const char sezione = *((const char*)rmov_sezione);
|
||||||
const real importo((const char*)rmov_importo);
|
const real importo((const char*)rmov_importo);
|
||||||
|
|
||||||
if (data_corrente < _da_data)
|
if (data_corrente < _da_data)
|
||||||
{
|
{
|
||||||
if (data_corrente >= inizio_esercizio)
|
if (sezione == 'D')
|
||||||
{
|
_pdare_ini += importo;
|
||||||
if (sezione == 'D')
|
else
|
||||||
_pdare_ini += importo;
|
_pavere_ini += importo;
|
||||||
else
|
|
||||||
_pavere_ini += importo;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -807,13 +818,6 @@ void TMastrino::read(const TBill& conto,
|
|||||||
rmov().recno(), mov().recno(),
|
rmov().recno(), mov().recno(),
|
||||||
_pdare_per, _pavere_per, data_reg);
|
_pdare_per, _pavere_per, data_reg);
|
||||||
_riga.append(r);
|
_riga.append(r);
|
||||||
|
|
||||||
if (data_reg > ultimo_giorno)
|
|
||||||
{
|
|
||||||
const long giorno = data_reg - min_data_reg + 1;
|
|
||||||
pi.setstatus(giorno);
|
|
||||||
ultimo_giorno = data_reg;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -878,52 +882,67 @@ bool TMastrino::expandable(long rec) const
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Genera le righe di contropartita di una riga del mastrino
|
||||||
bool TMastrino::expand(long rec)
|
bool TMastrino::expand(long rec)
|
||||||
{
|
{
|
||||||
bool ok = expandable(rec);
|
bool ok = expandable(rec);
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
const TRectype& head = testata(rec);
|
const TRectype& head = testata(rec); // Testata movimento
|
||||||
const long numreg = head.get_long(MOV_NUMREG);
|
const long numreg = head.get_long(RMV_NUMREG); // Numero di registrazione
|
||||||
|
const int numrig = riga(rec).get_int(RMV_NUMRIG); // Numero riga contabile
|
||||||
|
const TDate datareg = head.get(MOV_DATAREG); // Data di registrazione
|
||||||
|
|
||||||
rmov().setkey(1);
|
rmov().setkey(1); // Usa chiave NUMREG+NUMRIG
|
||||||
TRectype& curr = rmov().curr();
|
TRectype& curr = rmov().curr(); // Record corrente
|
||||||
curr.zero();
|
|
||||||
curr.put(RMV_NUMREG, numreg);
|
const TRecfield rnumreg (curr, RMV_NUMREG); // Numero di registrazione corrente
|
||||||
for (int err = rmov().read(_isgteq); err == NOERR; err = rmov().next())
|
const TRecfield rnumrig (curr, RMV_NUMRIG); // Numero di riga corrente
|
||||||
|
const TRecfield rsezione(curr, RMV_SEZIONE); // Sezione Dare/Avere
|
||||||
|
const TRecfield rimporto(curr, RMV_IMPORTO); // Importo della riga
|
||||||
|
|
||||||
|
int err = NOERR;
|
||||||
|
if (numrig != 1) // Se non e' gia' posizionato grazie a riga(rec)
|
||||||
{
|
{
|
||||||
if (curr.get_long(RMV_NUMREG) != numreg)
|
curr.zero(); // Azzera record corrente
|
||||||
|
curr.put(RMV_NUMREG, numreg); // Inizializza la chiave parziale
|
||||||
|
err = rmov().read(_isgteq); // Cerca la prima riga del movimento
|
||||||
|
}
|
||||||
|
for (; err == NOERR; err = rmov().next()) // Scandisce righe movimento
|
||||||
|
{
|
||||||
|
if (numreg != (long)rnumreg) // Controlla validita' numero
|
||||||
break;
|
break;
|
||||||
|
|
||||||
const TBill bill(curr, TRUE); // Legge il conto di contropartita
|
if (numrig != (int)rnumrig) // Ignora la riga gia' presente
|
||||||
if (bill == _conto)
|
|
||||||
{
|
{
|
||||||
real dare, avere;
|
real dare, avere; // Costruisce importo della riga
|
||||||
if (curr.get_char(RMV_SEZIONE) == 'D')
|
if (*(const char*)rsezione == 'D')
|
||||||
dare = curr.get_real(RMV_IMPORTO);
|
dare = rimporto;
|
||||||
else
|
else
|
||||||
avere = curr.get_real(RMV_IMPORTO);
|
avere = rimporto;
|
||||||
|
// Aggiunge una riga di contropartita al mastrino
|
||||||
const TDate data(head.get(MOV_DATAREG));
|
|
||||||
|
|
||||||
TRiga_mastrino* r = new TRiga_mastrino(riga_contropartita,
|
TRiga_mastrino* r = new TRiga_mastrino(riga_contropartita,
|
||||||
rmov().recno(), mov().recno(),
|
rmov().recno(), mov().recno(),
|
||||||
dare, avere, data);
|
dare, avere, datareg);
|
||||||
_riga.append(r, rec);
|
_riga.append(r, rec++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Elimina le righe di contropartita di una riga del mastrino
|
||||||
bool TMastrino::collapse(long rec)
|
bool TMastrino::collapse(long rec)
|
||||||
{
|
{
|
||||||
if (row(rec).tipo() != riga_mastrino)
|
bool ok = TRUE; // Posso eliminare?
|
||||||
rec = pred(rec, riga_mastrino);
|
if (row(rec).tipo() != riga_mastrino) // Se non sono su una riga mastrino ...
|
||||||
bool ok = !expandable(rec);
|
rec = pred(rec, riga_mastrino); // ... mi sposto sulla precedente
|
||||||
if (ok)
|
else
|
||||||
|
ok = !expandable(rec); // Controlla che sia possibile
|
||||||
|
|
||||||
|
if (ok) // Posso effetivamente procedere
|
||||||
{
|
{
|
||||||
rec++;
|
rec++; // Elimino ogni riga contropartita successiva
|
||||||
while (rec < items() && row(rec).tipo() != riga_mastrino)
|
while (rec < items() && row(rec).tipo() != riga_mastrino)
|
||||||
_riga.remove(rec);
|
_riga.remove(rec);
|
||||||
}
|
}
|
||||||
@ -936,13 +955,14 @@ bool TMastrino::collapse(long rec)
|
|||||||
|
|
||||||
class TGrid_control;
|
class TGrid_control;
|
||||||
|
|
||||||
class TGrid_cell : public TObject
|
|
||||||
|
class TGrid_cell : public TFixed_string
|
||||||
{
|
{
|
||||||
XI_EVENT* _xiev;
|
XI_EVENT* _xiev;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void set(const char* txt);
|
TString& set(const char* txt);
|
||||||
void set(long num);
|
TString& set(long num);
|
||||||
void set_icon(int id);
|
void set_icon(int id);
|
||||||
void show_button(bool on = TRUE);
|
void show_button(bool on = TRUE);
|
||||||
void hide_button() { show_button(FALSE); }
|
void hide_button() { show_button(FALSE); }
|
||||||
@ -951,10 +971,11 @@ public:
|
|||||||
void set_colors(COLOR back, COLOR fore);
|
void set_colors(COLOR back, COLOR fore);
|
||||||
|
|
||||||
short get_column() const { return _xiev->v.cell_request.col_nbr; }
|
short get_column() const { return _xiev->v.cell_request.col_nbr; }
|
||||||
short get_size() const { return _xiev->v.cell_request.len; }
|
|
||||||
char* get_buffer() { return _xiev->v.cell_request.s; }
|
TString& operator = (const char* str) { return set(str); }
|
||||||
|
TString& operator = (const TString& str) { return set(str); }
|
||||||
|
|
||||||
TGrid_cell(XI_EVENT* xiev) : _xiev(xiev) { }
|
TGrid_cell(XI_EVENT* xiev);
|
||||||
virtual ~TGrid_cell() { }
|
virtual ~TGrid_cell() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1178,7 +1199,7 @@ TGrid_control::TGrid_control(
|
|||||||
l->movable_columns = TRUE;
|
l->movable_columns = TRUE;
|
||||||
l->fixed_columns = fixed_columns;
|
l->fixed_columns = fixed_columns;
|
||||||
l->max_lines_in_cell = lines_in_cell;
|
l->max_lines_in_cell = lines_in_cell;
|
||||||
l->scroll_bar = TRUE;
|
l->scroll_bar = TRUE;
|
||||||
l->scroll_bar_button = TRUE;
|
l->scroll_bar_button = TRUE;
|
||||||
l->white_space_color = MASK_DARK_COLOR;
|
l->white_space_color = MASK_DARK_COLOR;
|
||||||
l->rule_color = MASK_DARK_COLOR;
|
l->rule_color = MASK_DARK_COLOR;
|
||||||
@ -1533,8 +1554,13 @@ bool TGrid_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cell.get_size() > 2)
|
if (cell.size() > 2)
|
||||||
|
{
|
||||||
cell.set(rec+1);
|
cell.set(rec+1);
|
||||||
|
// Setto il colore del testo altrimenti verrebbe grigio:
|
||||||
|
// non uso la set_color perche' ignora NORMAL_COLOR
|
||||||
|
xiev->v.cell_request.color = NORMAL_COLOR;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1745,33 +1771,31 @@ void TGrid_control::save_columns_order() const
|
|||||||
// TGrid_cell
|
// TGrid_cell
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
TGrid_cell::TGrid_cell(XI_EVENT* xiev)
|
||||||
|
: TFixed_string(xiev->v.cell_request.s, xiev->v.cell_request.len),
|
||||||
|
_xiev(xiev)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
// Setta il testo di una cella (Mai piu' testo troppo lungo!)
|
// Setta il testo di una cella (Mai piu' testo troppo lungo!)
|
||||||
// Se c'e' gia' un'icona la elimina
|
// Se c'e' gia' un'icona la elimina
|
||||||
void TGrid_cell::set(const char* txt)
|
TString& TGrid_cell::set(const char* txt)
|
||||||
{
|
{
|
||||||
char* str = _xiev->v.cell_request.s;
|
strncpy(txt, size());
|
||||||
if (txt)
|
if (not_empty())
|
||||||
{
|
|
||||||
const short& max = _xiev->v.cell_request.len;
|
|
||||||
strncpy(str, txt, max);
|
|
||||||
str[max-1] = '\0';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
str[0] = '\0';
|
|
||||||
|
|
||||||
if (str[0])
|
|
||||||
{
|
{
|
||||||
int& icon = _xiev->v.cell_request.icon_rid;
|
int& icon = _xiev->v.cell_request.icon_rid;
|
||||||
if (icon)
|
if (icon)
|
||||||
icon = 0;
|
icon = 0;
|
||||||
}
|
}
|
||||||
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TGrid_cell::set(long num)
|
TString& TGrid_cell::set(long num)
|
||||||
{
|
{
|
||||||
char buff[16];
|
char buff[16];
|
||||||
sprintf(buff, "%ld", num);
|
sprintf(buff, "%ld", num);
|
||||||
set(buff);
|
return set(buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setta l'icona di una cella
|
// Setta l'icona di una cella
|
||||||
@ -2128,6 +2152,8 @@ HIDDEN void set_imp(TMask_field& f, const TImporto& imp)
|
|||||||
str << ' ' << imp.sezione();
|
str << ' ' << imp.sezione();
|
||||||
f.set(str);
|
f.set(str);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
f.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
||||||
@ -2140,9 +2166,8 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
if (riga.tipo() == riga_mastrino)
|
if (riga.tipo() == riga_mastrino)
|
||||||
{
|
{
|
||||||
const TRectype& mov = _mastrino.testata(rec);
|
const TRectype& mov = _mastrino.testata(rec);
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell = riga.data().string();
|
||||||
text = riga.data().string();
|
cell << ' ' << mov.get(MOV_DATADOC);
|
||||||
text << ' ' << mov.get(MOV_DATACOMP);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 102:
|
case 102:
|
||||||
@ -2151,7 +2176,7 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
const TRectype& mov = _mastrino.testata(rec);
|
const TRectype& mov = _mastrino.testata(rec);
|
||||||
const int anno = _esercizi.date2esc(riga.data());
|
const int anno = _esercizi.date2esc(riga.data());
|
||||||
const int eser = mov.get_int(MOV_ANNOES);
|
const int eser = mov.get_int(MOV_ANNOES);
|
||||||
const comp = anno == eser;
|
const comp = anno != eser;
|
||||||
cell.set_icon(comp ? ICO_CHECK_ON : ICO_CHECK_OFF);
|
cell.set_icon(comp ? ICO_CHECK_ON : ICO_CHECK_OFF);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2164,8 +2189,7 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell.format("%03d.%03d.%06ld",
|
||||||
text.format("%03d.%03d.%06ld",
|
|
||||||
rmov.get_int(RMV_GRUPPO),
|
rmov.get_int(RMV_GRUPPO),
|
||||||
rmov.get_int(RMV_CONTO),
|
rmov.get_int(RMV_CONTO),
|
||||||
rmov.get_long(RMV_SOTTOCONTO));
|
rmov.get_long(RMV_SOTTOCONTO));
|
||||||
@ -2175,24 +2199,21 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
if (riga.tipo() == riga_mastrino)
|
if (riga.tipo() == riga_mastrino)
|
||||||
{
|
{
|
||||||
const TRectype& mov = _mastrino.testata(rec);
|
const TRectype& mov = _mastrino.testata(rec);
|
||||||
|
cell.set(mov.get(MOV_DESCR));
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
if (cell.empty())
|
||||||
text = mov.get(MOV_DESCR);
|
|
||||||
if (text.empty())
|
|
||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
text = rmov.get(RMV_DESCR);
|
cell.set(rmov.get(RMV_DESCR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell.set(rmov.get(RMV_DESCR));
|
||||||
text = rmov.get(RMV_DESCR);
|
if (cell.empty())
|
||||||
if (text.empty())
|
|
||||||
{
|
{
|
||||||
const TBill conto(rmov);
|
const TBill conto(rmov);
|
||||||
text = conto.descrizione();
|
cell.set(conto.descrizione());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2200,31 +2221,29 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
if (rmov.get_char(RMV_SEZIONE) == 'D')
|
if (rmov.get_char(RMV_SEZIONE) == 'D')
|
||||||
cell.set(rmov.get_real(RMV_IMPORTO).string("."));
|
cell = rmov.get_real(RMV_IMPORTO).string(".");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 106:
|
case 106:
|
||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
if (rmov.get_char(RMV_SEZIONE) == 'A')
|
if (rmov.get_char(RMV_SEZIONE) == 'A')
|
||||||
cell.set(rmov.get_real(RMV_IMPORTO).string("."));
|
cell = rmov.get_real(RMV_IMPORTO).string(".");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 107:
|
case 107:
|
||||||
if (riga.tipo() == riga_mastrino)
|
if (riga.tipo() == riga_mastrino)
|
||||||
{
|
{
|
||||||
const TRectype& mov = _mastrino.testata(rec);
|
const TRectype& mov = _mastrino.testata(rec);
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell = mov.get(MOV_NUMDOC); cell.left_just(7);
|
||||||
text = mov.get(MOV_NUMDOC); text.left_just(7);
|
cell << ' ' << mov.get(MOV_PROTIVA);
|
||||||
text << ' ' << mov.get(MOV_PROTIVA);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 108:
|
case 108:
|
||||||
{
|
{
|
||||||
const TRectype& rmov = _mastrino.riga(rec);
|
const TRectype& rmov = _mastrino.riga(rec);
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell = rmov.get_real(RMV_IMPORTO).string(".");
|
||||||
text = rmov.get_real(RMV_IMPORTO).string(".");
|
cell << ' ' << rmov.get(RMV_SEZIONE);
|
||||||
text << ' ' << rmov.get(RMV_SEZIONE);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 109:
|
case 109:
|
||||||
@ -2242,9 +2261,8 @@ void TMastrini_grid::cell_request(long rec, short id, TGrid_cell& cell)
|
|||||||
TImporto imp = riga.saldo();
|
TImporto imp = riga.saldo();
|
||||||
imp += _mastrino.saldo_iniziale();
|
imp += _mastrino.saldo_iniziale();
|
||||||
imp.normalize();
|
imp.normalize();
|
||||||
TFixed_string text(cell.get_buffer(), cell.get_size());
|
cell = imp.valore().string(".");
|
||||||
text = imp.valore().string(".");
|
cell << ' ' << imp.sezione();
|
||||||
text << ' ' << imp.sezione();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2297,15 +2315,35 @@ void TMastrini_grid::on_grid_button()
|
|||||||
const long last_con = _mastrino.last(riga_contropartita);
|
const long last_con = _mastrino.last(riga_contropartita);
|
||||||
// Se non esistono contropartite devo espandere le righe
|
// Se non esistono contropartite devo espandere le righe
|
||||||
const bool expand = last_con < 0;
|
const bool expand = last_con < 0;
|
||||||
|
|
||||||
|
#ifdef DBG
|
||||||
|
const clock_t clock_start = clock();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (expand)
|
if (expand)
|
||||||
{
|
{
|
||||||
for (long n = _mastrino.last(riga_mastrino);
|
long step = 0;
|
||||||
n >= 0; n = _mastrino.pred(n, riga_mastrino))
|
for (long n = _mastrino.first(riga_mastrino);
|
||||||
|
n < _mastrino.items(); n = _mastrino.succ(n, riga_mastrino))
|
||||||
{
|
{
|
||||||
if (_mastrino.expandable(n))
|
if (_mastrino.expandable(n))
|
||||||
_mastrino.expand(n);
|
_mastrino.expand(n);
|
||||||
if (pi)
|
if (pi)
|
||||||
pi->setstatus(total - n);
|
{
|
||||||
|
pi->setstatus(++step);
|
||||||
|
#ifdef DBG
|
||||||
|
if ((step & 0x7F) == 0)
|
||||||
|
{
|
||||||
|
const double sec = (clock() - clock_start) / CLOCKS_PER_SEC;
|
||||||
|
if (sec > 0.0)
|
||||||
|
{
|
||||||
|
TString80 msg;
|
||||||
|
msg.format("%ld records at %ld rec/sec", step, long(step/sec));
|
||||||
|
pi->set_text(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2380,7 +2418,11 @@ void TMastrini_grid::reread()
|
|||||||
|
|
||||||
void TMastrini_grid::update_mask() const
|
void TMastrini_grid::update_mask() const
|
||||||
{
|
{
|
||||||
TMask& gm = mask();
|
TMask& gm = mask();
|
||||||
|
|
||||||
|
gm.set(F_ESERCIZIO, _mastrino.esercizio());
|
||||||
|
gm.set(F_DADATA, _mastrino.inizio_periodo());
|
||||||
|
gm.set(F_ADATA, _mastrino.fine_periodo());
|
||||||
|
|
||||||
set_imp(gm.field(F_TOTPRO_SAL), _mastrino.saldo_iniziale());
|
set_imp(gm.field(F_TOTPRO_SAL), _mastrino.saldo_iniziale());
|
||||||
gm.set(F_TOTPRO_DAR, _mastrino.progressivo_dare_iniziale());
|
gm.set(F_TOTPRO_DAR, _mastrino.progressivo_dare_iniziale());
|
||||||
@ -2602,7 +2644,8 @@ void TGrid_mask::handler(WINDOW win, EVENT* ep)
|
|||||||
|
|
||||||
class TQuery_mask : public TMask
|
class TQuery_mask : public TMask
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
static bool esercizio_handler(TMask_field& f, KEY k);
|
||||||
static bool data_handler(TMask_field& f, KEY k);
|
static bool data_handler(TMask_field& f, KEY k);
|
||||||
static bool find_handler(TMask_field& f, KEY k);
|
static bool find_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
@ -2615,16 +2658,42 @@ public:
|
|||||||
|
|
||||||
TQuery_mask::TQuery_mask()
|
TQuery_mask::TQuery_mask()
|
||||||
: TMask("cg3600a")
|
: TMask("cg3600a")
|
||||||
{
|
{
|
||||||
|
set_handler(F_ESERCIZIO, esercizio_handler);
|
||||||
set_handler(F_DADATA, data_handler);
|
set_handler(F_DADATA, data_handler);
|
||||||
set_handler(F_ADATA, data_handler);
|
set_handler(F_ADATA, data_handler);
|
||||||
set_handler(DLG_FINDREC, find_handler);
|
set_handler(DLG_FINDREC, find_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TQuery_mask::esercizio_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
|
TEsercizi_contabili esc;
|
||||||
|
const int anno = atoi(f.get());
|
||||||
|
if (esc.exist(anno))
|
||||||
|
{
|
||||||
|
TMask& m = f.mask();
|
||||||
|
TDate dd = m.get(F_DADATA);
|
||||||
|
if (esc.date2esc(dd) != anno)
|
||||||
|
m.set(F_DADATA, esc[anno].inizio());
|
||||||
|
dd = m.get(F_ADATA);
|
||||||
|
if (esc.date2esc(dd) != anno)
|
||||||
|
m.set(F_ADATA, esc[anno].fine());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (anno > 0)
|
||||||
|
return error_box("Esercizio inesistente: %d", anno);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
bool TQuery_mask::data_handler(TMask_field& f, KEY k)
|
bool TQuery_mask::data_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
if (f.to_check(k))
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
const TQuery_mask& qm = (const TQuery_mask&)f.mask();
|
const TQuery_mask& qm = (const TQuery_mask&)f.mask();
|
||||||
const TEsercizi_contabili esercizi;
|
const TEsercizi_contabili esercizi;
|
||||||
@ -2684,23 +2753,17 @@ void TQuery_mask::do_query(TGrid_mask& gm)
|
|||||||
const int g = get_int(F_GRUPPO);
|
const int g = get_int(F_GRUPPO);
|
||||||
const int c = get_int(F_CONTO);
|
const int c = get_int(F_CONTO);
|
||||||
const long s = get_long((t <= ' ') ? F_SOTTOCONTO : ((t == 'C') ? F_CLIENTE : F_FORNITORE));
|
const long s = get_long((t <= ' ') ? F_SOTTOCONTO : ((t == 'C') ? F_CLIENTE : F_FORNITORE));
|
||||||
|
|
||||||
const TBill conto(g, c, s, t);
|
const TBill conto(g, c, s, t);
|
||||||
|
|
||||||
const int annoes = get_int(F_ESERCIZIO);
|
|
||||||
|
|
||||||
TDate da_data(get(F_DADATA));
|
|
||||||
|
|
||||||
TDate a_data(get(F_ADATA));
|
|
||||||
|
|
||||||
TString da_caus(get(F_DACAUSALE));
|
|
||||||
|
|
||||||
TString a_caus(get(F_ACAUSALE));
|
const int annoes = get_int(F_ESERCIZIO);
|
||||||
|
const TDate da_data(get(F_DADATA));
|
||||||
|
const TDate a_data(get(F_ADATA));
|
||||||
|
|
||||||
|
const TString& da_caus = get(F_DACAUSALE);
|
||||||
|
const TString& a_caus = get(F_ACAUSALE);
|
||||||
|
|
||||||
conto.set(gm, F_GRUPPO, F_CONTO, F_SOTTOCONTO, 0, F_DESSOTTOC);
|
conto.set(gm, F_GRUPPO, F_CONTO, F_SOTTOCONTO, 0, F_DESSOTTOC);
|
||||||
gm.set(F_ESERCIZIO, annoes);
|
|
||||||
gm.set(F_DADATA, da_data);
|
|
||||||
gm.set(F_ADATA, a_data);
|
|
||||||
gm.grid().read(conto, annoes, da_data, a_data, da_caus, a_caus);
|
gm.grid().read(conto, annoes, da_data, a_data, da_caus, a_caus);
|
||||||
|
|
||||||
gm.run();
|
gm.run();
|
||||||
@ -2790,8 +2853,7 @@ bool TMastrini_video::menu(MENU_TAG mt)
|
|||||||
qm.reset(F_SOTTOCONTO); // Azzera sottoconto
|
qm.reset(F_SOTTOCONTO); // Azzera sottoconto
|
||||||
qm.reset(F_CLIENTE); // Azzera cliente
|
qm.reset(F_CLIENTE); // Azzera cliente
|
||||||
qm.reset(F_FORNITORE); // Azzera fornitore
|
qm.reset(F_FORNITORE); // Azzera fornitore
|
||||||
qm.reset(F_DACAUSALE); // Azzera causali
|
qm.reset(-5); // Azzera causali
|
||||||
qm.reset(F_ACAUSALE);
|
|
||||||
|
|
||||||
key = qm.run();
|
key = qm.run();
|
||||||
switch (key)
|
switch (key)
|
||||||
|
176
cg/cg3600a.uml
176
cg/cg3600a.uml
@ -20,11 +20,16 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Mastrini" -1 -1 76 20
|
PAGE "Mastrini" -1 -1 78 20
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "@bDitta corrente"
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_CODDITTA 5
|
NUMBER F_CODDITTA 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Ditta "
|
PROMPT 2 2 "Codice "
|
||||||
FLAGS "DF"
|
FLAGS "DF"
|
||||||
USE LF_NDITTE
|
USE LF_NDITTE
|
||||||
INPUT CODDITTA F_CODDITTA
|
INPUT CODDITTA F_CODDITTA
|
||||||
@ -34,13 +39,19 @@ END
|
|||||||
|
|
||||||
STRING F_RAGSOC 50
|
STRING F_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 1 ""
|
PROMPT 23 2 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "@bConto del mastrino"
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
LIST F_TIPO 10
|
LIST F_TIPO 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Tipo "
|
PROMPT 2 5 "Tipo "
|
||||||
ITEM " |Conto" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
ITEM " |Conto" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
||||||
ITEM "C|Cliente" MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
ITEM "C|Cliente" MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
||||||
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||||
@ -48,7 +59,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_GRUPPO 3
|
NUMBER F_GRUPPO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Gruppo "
|
PROMPT 2 6 "Gruppo "
|
||||||
USE LF_PCON SELECT (CONTO="")
|
USE LF_PCON SELECT (CONTO="")
|
||||||
INPUT GRUPPO F_GRUPPO
|
INPUT GRUPPO F_GRUPPO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
@ -56,23 +67,13 @@ BEGIN
|
|||||||
OUTPUT F_GRUPPO GRUPPO
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
OUTPUT F_DESGRUPPO DESCR
|
OUTPUT F_DESGRUPPO DESCR
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
WARNING "Gruppo assente"
|
||||||
|
|
||||||
STRING F_DESGRUPPO 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 4 ""
|
|
||||||
USE LF_PCON KEY 2 SELECT (CONTO="")
|
|
||||||
INPUT DESCR F_DESGRUPPO
|
|
||||||
DISPLAY "Descrizione@50" DESCR
|
|
||||||
DISPLAY "Gruppo" GRUPPO
|
|
||||||
COPY OUTPUT F_GRUPPO
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CONTO 3
|
NUMBER F_CONTO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Conto "
|
PROMPT 2 7 "Conto "
|
||||||
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")
|
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF==#F_TIPO)
|
||||||
INPUT GRUPPO F_GRUPPO
|
INPUT GRUPPO F_GRUPPO
|
||||||
INPUT CONTO F_CONTO
|
INPUT CONTO F_CONTO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
@ -84,23 +85,12 @@ BEGIN
|
|||||||
OUTPUT F_CONTO CONTO
|
OUTPUT F_CONTO CONTO
|
||||||
OUTPUT F_DESCONTO DESCR
|
OUTPUT F_DESCONTO DESCR
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
WARNING "Conto assente"
|
||||||
|
|
||||||
STRING F_DESCONTO 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 5 ""
|
|
||||||
USE LF_PCON KEY 2 SELECT (CONTO!="")&&(SOTTOCONTO="")
|
|
||||||
INPUT DESCR F_DESCONTO
|
|
||||||
COPY DISPLAY F_GRUPPO
|
|
||||||
DISPLAY "Conto" CONTO
|
|
||||||
DISPLAY "Tipo" TMCF
|
|
||||||
COPY OUTPUT F_CONTO
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_SOTTOCONTO 6
|
NUMBER F_SOTTOCONTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Sottoconto "
|
PROMPT 2 8 "Sottoconto "
|
||||||
USE LF_PCON SELECT (SOTTOCONTO!="")
|
USE LF_PCON SELECT (SOTTOCONTO!="")
|
||||||
COPY INPUT F_CONTO
|
COPY INPUT F_CONTO
|
||||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||||
@ -113,24 +103,13 @@ BEGIN
|
|||||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||||
OUTPUT F_DESSOTTOC DESCR
|
OUTPUT F_DESSOTTOC DESCR
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 1 4
|
WARNING "Sottoconto assente"
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_DESSOTTOC 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 6 ""
|
|
||||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="")
|
|
||||||
INPUT DESCR F_DESSOTTOC
|
|
||||||
COPY DISPLAY F_DESCONTO
|
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
|
||||||
COPY OUTPUT F_SOTTOCONTO
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
GROUP 1 4
|
GROUP 1 4
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CLIENTE 6
|
NUMBER F_CLIENTE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Cliente "
|
PROMPT 2 8 "Cliente "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_CLIENTE
|
INPUT CODCF F_CLIENTE
|
||||||
@ -139,25 +118,13 @@ BEGIN
|
|||||||
OUTPUT F_CLIENTE CODCF
|
OUTPUT F_CLIENTE CODCF
|
||||||
OUTPUT F_RAGSOCCLI RAGSOC
|
OUTPUT F_RAGSOCCLI RAGSOC
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 2 4
|
WARNING "Cliente assente"
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_RAGSOCCLI 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 6 ""
|
|
||||||
USE LF_CLIFO KEY 2
|
|
||||||
INPUT TIPOCF "C"
|
|
||||||
INPUT RAGSOC F_RAGSOCCLI
|
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
|
||||||
DISPLAY "Codice" CODCF
|
|
||||||
COPY OUTPUT F_CLIENTE
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
GROUP 2 4
|
GROUP 2 4
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_FORNITORE 6
|
STRING F_FORNITORE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Fornitore "
|
PROMPT 2 8 "Fornitore "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT CODCF F_FORNITORE
|
INPUT CODCF F_FORNITORE
|
||||||
@ -165,49 +132,116 @@ BEGIN
|
|||||||
OUTPUT F_FORNITORE CODCF
|
OUTPUT F_FORNITORE CODCF
|
||||||
OUTPUT F_RAGSOCFOR RAGSOC
|
OUTPUT F_RAGSOCFOR RAGSOC
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Fornitore assente"
|
||||||
GROUP 3 4
|
GROUP 3 4
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_DESGRUPPO 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 6 ""
|
||||||
|
USE LF_PCON KEY 2 SELECT (CONTO="")
|
||||||
|
INPUT DESCR F_DESGRUPPO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
COPY OUTPUT F_GRUPPO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Gruppo assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCONTO 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 7 ""
|
||||||
|
USE LF_PCON KEY 2 SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF==#F_TIPO)
|
||||||
|
INPUT DESCR F_DESCONTO
|
||||||
|
COPY DISPLAY F_DESGRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Tipo" TMCF
|
||||||
|
COPY OUTPUT F_CONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Conto assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESSOTTOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 8 ""
|
||||||
|
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="")
|
||||||
|
INPUT DESCR F_DESSOTTOC
|
||||||
|
COPY DISPLAY F_DESCONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT F_SOTTOCONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Sottoconto assente"
|
||||||
|
GROUP 1 4
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOCCLI 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 8 ""
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC F_RAGSOCCLI
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_CLIENTE
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Cliente assente"
|
||||||
|
GROUP 2 4
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_RAGSOCFOR 50
|
STRING F_RAGSOCFOR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 6 ""
|
PROMPT 23 8 ""
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT RAGSOC F_RAGSOCFOR
|
INPUT RAGSOC F_RAGSOCFOR
|
||||||
COPY DISPLAY F_RAGSOCCLI
|
COPY DISPLAY F_RAGSOCCLI
|
||||||
COPY OUTPUT F_FORNITORE
|
COPY OUTPUT F_FORNITORE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Fornitore assente"
|
||||||
GROUP 3 4
|
GROUP 3 4
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "@bPeriodo"
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_ESERCIZIO 4
|
NUMBER F_ESERCIZIO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "Esercizio "
|
PROMPT 2 11 "Esercizio "
|
||||||
USE ESC
|
USE ESC
|
||||||
INPUT CODTAB F_ESERCIZIO
|
INPUT CODTAB F_ESERCIZIO
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Inizio esercizio" D0
|
DISPLAY "Inizio esercizio" D0
|
||||||
DISPLAY "Fine esercizio" D1
|
DISPLAY "Fine esercizio" D1
|
||||||
OUTPUT F_ESERCIZIO CODTAB
|
OUTPUT F_ESERCIZIO CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
ADD NONE
|
ADD NONE
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DADATA
|
DATE F_DADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 8 "Dalla data "
|
PROMPT 23 11 "Dalla data "
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_ADATA
|
DATE F_ADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 51 8 "Alla data "
|
PROMPT 52 11 "Alla data "
|
||||||
VALIDATE DATE_CMP_FUNC >= F_DADATA
|
VALIDATE DATE_CMP_FUNC >= F_DADATA
|
||||||
WARNING "La data finale deve essere maggiore di quella iniziale"
|
WARNING "La data finale deve essere maggiore di quella iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 13 "@bCausali"
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_DACAUSALE 3
|
STRING F_DACAUSALE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Da causale "
|
PROMPT 2 14 "Da causale "
|
||||||
FLAGS "U"
|
FLAGS "UZ"
|
||||||
USE LF_CAUSALI
|
USE LF_CAUSALI
|
||||||
INPUT CODCAUS F_DACAUSALE
|
INPUT CODCAUS F_DACAUSALE
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
@ -217,41 +251,45 @@ BEGIN
|
|||||||
STR_EXPR (#F_ACAUSALE="")||(#F_DACAUSALE<=#F_ACAUSALE)
|
STR_EXPR (#F_ACAUSALE="")||(#F_DACAUSALE<=#F_ACAUSALE)
|
||||||
WARNING "La causale iniziale deve precedere quella finale"
|
WARNING "La causale iniziale deve precedere quella finale"
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
|
GROUP 5
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DADESCAUS 50
|
STRING F_DADESCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 10 ""
|
PROMPT 23 14 ""
|
||||||
USE LF_CAUSALI KEY 2
|
USE LF_CAUSALI KEY 2
|
||||||
INPUT DESCR F_DADESCAUS
|
INPUT DESCR F_DADESCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
COPY OUTPUT F_DACAUSALE
|
COPY OUTPUT F_DACAUSALE
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
|
GROUP 5
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_ACAUSALE 3
|
STRING F_ACAUSALE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "A causale "
|
PROMPT 2 15 "A causale "
|
||||||
FLAGS "U"
|
FLAGS "UZ"
|
||||||
COPY USE F_DACAUSALE
|
COPY USE F_DACAUSALE
|
||||||
INPUT CODCAUS F_ACAUSALE
|
INPUT CODCAUS F_ACAUSALE
|
||||||
COPY DISPLAY F_DACAUSALE
|
COPY DISPLAY F_DACAUSALE
|
||||||
OUTPUT F_ACAUSALE CODCAUS
|
OUTPUT F_ACAUSALE CODCAUS
|
||||||
OUTPUT F_ADESCAUS DESCR
|
OUTPUT F_ADESCAUS DESCR
|
||||||
STR_EXPR (#F_ACAUSALE>=#F_DACAUSALE)
|
STR_EXPR (#F_ACAUSALE="")||(#F_ACAUSALE>=#F_DACAUSALE)
|
||||||
WARNING "La causale finale deve seguire quella iniziale"
|
WARNING "La causale finale deve seguire quella iniziale"
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
|
GROUP 5
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_ADESCAUS 50
|
STRING F_ADESCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 11 ""
|
PROMPT 23 15 ""
|
||||||
COPY USE F_DADESCAUS
|
COPY USE F_DADESCAUS
|
||||||
INPUT DESCR F_ADESCAUS
|
INPUT DESCR F_ADESCAUS
|
||||||
COPY DISPLAY F_DADESCAUS
|
COPY DISPLAY F_DADESCAUS
|
||||||
COPY OUTPUT F_ACAUSALE
|
COPY OUTPUT F_ACAUSALE
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
|
GROUP 5
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -4,7 +4,7 @@ TOOLBAR "" 0 20 0 0
|
|||||||
|
|
||||||
BUTTON DLG_LINK 10 2
|
BUTTON DLG_LINK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -11 ""
|
PROMPT -12 -11 "~Collega"
|
||||||
PICTURE BMP_LINK
|
PICTURE BMP_LINK
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ SPREADSHEET F_MASTRINI 0 -6
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Mastrini"
|
PROMPT 1 2 "Mastrini"
|
||||||
FLAGS "DM2"
|
FLAGS "DM2"
|
||||||
ITEM "Data Op. \nData Com.@10F"
|
ITEM "Data Op. \nData Doc.@10F"
|
||||||
ITEM "C@1F"
|
ITEM "C@1F"
|
||||||
ITEM "Causale@20F"
|
ITEM "Causale@20F"
|
||||||
ITEM "Operazione@20"
|
ITEM "Operazione@20"
|
||||||
@ -71,7 +71,7 @@ BEGIN
|
|||||||
ITEM "Avere@15R"
|
ITEM "Avere@15R"
|
||||||
ITEM "N.Doc. \nN.Prot.@7"
|
ITEM "N.Doc. \nN.Prot.@7"
|
||||||
ITEM "Importo@17R"
|
ITEM "Importo@17R"
|
||||||
ITEM "Saldo fine\ngiornata@17R"
|
ITEM "Saldo Fine\nGiornata@17R"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
@ -91,7 +91,7 @@ END
|
|||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 -4 "Prog. precedenti"
|
PROMPT 1 -4 "Progr. precedenti"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TOTPRO_SAL 17
|
STRING F_TOTPRO_SAL 17
|
||||||
|
@ -261,11 +261,14 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat
|
|||||||
num_rec++;
|
num_rec++;
|
||||||
if ((num_rec & 0x7F) == 0)
|
if ((num_rec & 0x7F) == 0)
|
||||||
{
|
{
|
||||||
TString80 msg;
|
const double sec = (clock() - clock_start) / CLOCKS_PER_SEC;
|
||||||
const long sec = (clock() - clock_start) / CLOCKS_PER_SEC;
|
if (sec > 0.0)
|
||||||
msg.format("%ld records at %ld rec/sec", num_rec, num_rec / sec);
|
{
|
||||||
xvt_statbar_set(msg);
|
TString80 msg;
|
||||||
do_events();
|
msg.format("%ld records at %ld rec/sec", num_rec, long(num_rec/sec));
|
||||||
|
xvt_statbar_set(msg);
|
||||||
|
do_events();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user