Alre correzioni di errori

git-svn-id: svn://10.65.10.50/trunk@4121 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luciano 1997-02-07 16:25:24 +00:00
parent 2820e83515
commit f89864d07a
27 changed files with 3155 additions and 3024 deletions

View File

@ -317,6 +317,30 @@ bool TSchedaPercipienti::user_create()
set_search_field(F_CODANAGRPERC);
// simulo una chiamata da contabilità
// (lo lascio per eventuali prove)
// real totdocla = ZERO;
// real spesela = ZERO;
// real compensola = ZERO;
// real impostela = ZERO;
// real ritenutela = ZERO;
// TToken_string s(80);
// s.add(3);
// s.add("M");
// s.add("F");
// s.add(30010);
// s.add(1);
// s.add("2");
// s.add("05-02-1997");
// s.add(totdocla.string());
// s.add(spesela.string());
// s.add(compensola.string());
// s.add(impostela.string());
// s.add(ritenutela.string());
// const char* name = "770 -0";
// TMessage mla(name, "LINK770", s);
// mla.send();
// Collegamento da contabilita'
TMailbox m;
TMessage* msg = m.next_s("LINK770");
@ -446,21 +470,20 @@ void TSchedaPercipienti::init_query_mode(TMask& m)
{
case fattura:
setta_nprog(m, variazione);
// m.send_key(K_AUTO_ENTER,0);
m.send_key(K_AUTO_ENTER,0);
return;
break;
case pagamento:
if (coll_datanum())
{
setta_nprog(m, variazione);
// m.send_key(K_AUTO_ENTER, 0);
m.send_key(K_AUTO_ENTER,0);
}
return;
break;
case occasionale:
/*
setta_nprog(m,FALSE); // Sempre in aggiunta
m.send_key(K_AUTO_ENTER, 0); */
// setta_nprog(m,FALSE); // Sempre in aggiunta
m.send_key(K_AUTO_ENTER, 0);
return;
break;
default:
@ -782,7 +805,7 @@ bool TSchedaPercipienti::check_handler(TMask_field& f, KEY k)
f.warning_box ("La differenza tra il totale dei versamenti "
"e il totale delle ritenute non puo' superare "
"le %s lire", THRESOLD.string());
return FALSE;
return forzatura;
}
}
return TRUE;

View File

@ -116,6 +116,7 @@ BEGIN
GROUP 1 2 3 4 5
END
NUMBER 72 5
BEGIN
PROMPT 39 5 ""
@ -124,7 +125,7 @@ BEGIN
WARNING "Inserire il codice CAB"
HELP "CODICE CAB LUNGO 5"
MESSAGE COPY,106
FLAGS "HZG"
FLAGS "HZ"
GROUP 2 6
END

View File

@ -20,7 +20,7 @@ class TVersa_rit : public TApplication
real _versato;
TRelation* _rel;
TCursor* _cur;
TBrowse_sheet* _sheet_perc;
TCursor_sheet* _sheet_perc;
TArray_sheet* _schede;
TArray_sheet* _pagam;
TMask* _msk;
@ -86,6 +86,30 @@ bool TVersa_rit::create()
{
TApplication::create();
// simulo una chiamata da contabilità
// (lo lascio per eventuali prove)
// real totdocla = ZERO;
// real spesela = ZERO;
// real compensola = ZERO;
// real impostela = ZERO;
// real ritenutela = 70000;
// TToken_string s(80);
// s.add(4);
// s.add("M");
// s.add("F");
// s.add(30010);
// s.add(1);
// s.add("2");
// s.add("05-02-1997");
// s.add(totdocla.string());
// s.add(spesela.string());
// s.add(compensola.string());
// s.add(impostela.string());
// s.add(ritenutela.string());
// const char* name = "770 -1";
// TMessage mla(name, "LINK770", s);
// mla.send();
// Collegamento da contabilita'
TMailbox m;
TMessage* msg = m.next_s("LINK770");
@ -112,44 +136,20 @@ bool TVersa_rit::create()
_msk->set(F_DATA, _coll._datadoc);
_msk->set(F_VERSATO, _coll._ritenute.string());
KEY kp = _msk->run();
if (kp != K_ENTER)
return FALSE;
else
{
_data = _msk->get(F_DATA);
_luogo = _msk->get(F_LUOGO)[0];
_tipo = _msk->get(F_TIPO)[0];
_versato = real(_msk->get(F_VERSATO));
if (_tipo == DELEGA_BANCARIA)
{
_serie = _msk->get(F_ABI);
_numero = _msk->get(F_CAB);
}
else
{
_serie = _msk->get(F_SERIE);
_numero = _msk->get(F_NUMERO);
}
}
TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODANAGRPERC);
TToken_string siblings; // non ho ricerche alternative
_sheet_perc = new TBrowse_sheet(_cur," |TIPOA|CODANAGR|6->RAGSOC", "Selezione percipienti",
"@1|Tipo|Codice|Ragione sociale@50", 8, &dummy,siblings);
_sheet_perc->maximize();
_schede = new TArray_sheet(-1, -1, 0, 0, "Selezione Schede","@1|T|Codice|Ragione@50|N.|Data@10");
_schede->maximize();
_pagam = new TArray_sheet(-1, -1, 0, 0, "Selezione Ritenute da versare",
_sheet_perc = new TCursor_sheet(_cur,
" |TIPOA|CODANAGR|6->RAGSOC",
"Selezione percipienti",
"@1|Tipo|Codice|Ragione sociale@50",
8, 3);
_schede = new TArray_sheet(3, 3, -3, -3,
"Selezione schede",
"@1|T|Codice|Scheda n.|Data@10|Ragione@50");
_pagam = new TArray_sheet(3, 3, -3, -3,
"Selezione ritenute da versare",
"@1|T|Codice|Scheda n.|Riga n.|Ritenuta@15");
_pagam->maximize();
_apags.destroy();
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
@ -351,7 +351,7 @@ void TVersa_rit::build_pagam_sheet(const long codditta)
TToken_string& r = _schede->row(i);
char tipoa = r.get_char(1);
long codanagr = r.get_long(2);
const int nprog = r.get_int(4);
const int nprog = r.get_int(3);
TToken_string* tpag = find(codditta,tipoa,codanagr,nprog);
@ -411,9 +411,9 @@ void TVersa_rit::build_schede_sheet(const long codditta)
rr.add(" "); // Spazio per selezionare
rr.add(tipoa);
rr.add(codanagr);
rr.add(ragsoc);
rr.add(nprog);
rr.add(datadoc);
rr.add(ragsoc);
_schede->add(rr);
}
sch.next();
@ -426,6 +426,31 @@ bool TVersa_rit::do_all()
KEY kp;
long items = 0L;
// esecuzione prima maschera: richiesta estremi versamento
kp = _msk->run();
if (kp != K_ENTER)
return FALSE;
else
{
_data = _msk->get(F_DATA);
_luogo = _msk->get(F_LUOGO)[0];
_tipo = _msk->get(F_TIPO)[0];
_versato = real(_msk->get(F_VERSATO));
if (_tipo == DELEGA_BANCARIA)
{
_serie = _msk->get(F_ABI);
_numero = _msk->get(F_CAB);
}
else
{
_serie = _msk->get(F_SERIE);
_numero = _msk->get(F_NUMERO);
}
}
// loop di gestione sheet di scelta percipiente,
// scelta scheda e scelta pagamento da versare
while (TRUE)
{
items = _sheet_perc->items();

View File

@ -1,6 +1,6 @@
#include "770200a.h"
PAGE "MODULO 770 - Collegamento versamento ritenute" -1 -1 75 15
PAGE "Versamento ritenute" -1 -1 75 15
GROUPBOX DLG_NULL 74 3
BEGIN
@ -34,24 +34,6 @@ BEGIN
FLAGS "H"
END
// Questo campo serve solo per poter istanziare un browse_sheet nel programma
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA)
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
// OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
FLAGS "HG"
END
GROUPBOX DLG_NULL 74 5
BEGIN
PROMPT 1 4 "@bDati versamento"
@ -152,7 +134,7 @@ BEGIN
GROUP 2 6
END
NUMBER F_CAB 6
NUMBER F_CAB 5
BEGIN
PROMPT 39 7 ""
FLAGS "Z"

View File

@ -593,7 +593,7 @@ bool TDati_anagrafici::main_loop()
}
}
_msk->close();
_msk->close_modal();
return FALSE;
}

View File

@ -51,7 +51,7 @@ BEGIN
FLAGS "HG"
END
STRING F_RAGSOC2 45
STRING F_RAGSOC2 50 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"

View File

@ -53,7 +53,7 @@ BEGIN
FLAGS "HG"
END
STRING F_RAGSOC2 45
STRING F_RAGSOC2 50 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"

View File

@ -54,7 +54,7 @@ BEGIN
FLAGS "HG"
END
STRING F_RAGSOC2 45
STRING F_RAGSOC2 50 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"

View File

@ -54,7 +54,7 @@ BEGIN
FLAGS "HG"
END
STRING F_RAGSOC2 45
STRING F_RAGSOC2 50 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"

View File

@ -1,8 +1,5 @@
// 771231.cpp - Quadri F
//
// Lista modifiche
// 12. 1.96 Controlla codcaus anche dopo che e' stato immesso (nf)
//
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
@ -65,6 +62,7 @@ class TQuadroF : public TRelation_application
static bool ealiq_handler(TMask_field& f, KEY k);
static bool fsogg_handler(TMask_field& f, KEY k);
static bool faliq_handler(TMask_field& f, KEY k);
static bool mainmsk_handler(TMask& m, KEY k);
static bool a_notify(TSheet_field& s, int r, KEY k);
static bool b_notify(TSheet_field& s, int r, KEY k);
static bool c_notify(TSheet_field& s, int r, KEY k);
@ -91,6 +89,7 @@ class TQuadroF : public TRelation_application
void fill_ss(TMask& m);
void riempi_prospetto(TMask& m, const char prosp);
int re_write(const TMask& m, bool re);
int elimina();
public:
TString16 _quadro, _aliq_caus;
@ -194,6 +193,7 @@ bool TQuadroF::user_create()
_msk->set_handler(E_ALI, ealiq_handler);
_msk->set_handler(F_SOGG, fsogg_handler);
_msk->set_handler(F_ALI, faliq_handler);
_msk->set_handler(mainmsk_handler);
TSheet_field& p_a = (TSheet_field&) _msk->field(F_A);
p_a.set_notify(a_notify);
p_a.sheet_mask().set_handler(S_CODC, codc_handler);
@ -242,7 +242,7 @@ bool TQuadroF::user_create()
_msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar
_msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar
_msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar
_msk->set_handler(mainmsk_handler);
TSheet_field& p_b = (TSheet_field&) _msk->field(F_B);
p_b.sheet_mask().set_handler(S_CODC, codc_handler);
p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler);
@ -266,7 +266,7 @@ bool TQuadroF::user_create()
_msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar
_msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar
_msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar
_msk->set_handler(mainmsk_handler);
TSheet_field& p_b = (TSheet_field&) _msk->field(F_B);
p_b.sheet_mask().set_handler(S_CODC, codc_handler);
p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler);
@ -658,6 +658,26 @@ int TQuadroF::re_write(const TMask& m, bool re)
return err_b;
}
int TQuadroF::elimina()
{
int err;
// eliminazione righe del quadro
TRectype& recrf = _rf->curr();
recrf.zero();
recrf.put("CODDITTA",_codditta);
_rf->setkey(1);
for (err = _rf->read(_isequal, _lock); // stato iniziale
err == NOERR; // condizione di uscita
err = _rf->read(_isequal, _lock)) // incremento
{
_rf->remove(); // eliminazione riga quadro
}
if (err == _iskeynotfound)
_rf->reread();
return err;
}
bool TQuadroF::remove()
{
bool ok, ok_a, ok_b, ok_c, ok_d;
@ -763,6 +783,16 @@ bool TQuadroF::d_notify(TSheet_field& s, int r, KEY k)
return TRUE;
}
bool TQuadroF::mainmsk_handler(TMask& m, KEY k)
{
if (k == K_ESC)
{
TOperable_field& f = m.focus_field();
m.set_focus_field(f.dlg());
}
return TRUE;
}
bool TQuadroF::eprov_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
@ -956,7 +986,7 @@ real TQuadroF::calcola_rope(TMask_field& f, const real& sogg, const bool force)
m.reset(id_rope);
// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD
if ((app()._tipo_prosp == 'E') && (m.get_sheet()->dlg() == F_A))
if ((app()._tipo_prosp == 'A') && (m.get_sheet()->dlg() == F_A))
{
const real pa_col5(f.mask().get(S_TACC));
real pa_col6 = pa_col4 - pa_col5;

View File

@ -1,12 +1,6 @@
// 771231a.h - quadro F
// *NOTA* gli identificatori fino al 119 sono per spreadsheet
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_A 103
#define F_B 104
#define F_C 105
#define F_D 106
#define F_A1 120
#define F_A2 121
#define F_A3 122
@ -20,7 +14,12 @@
#define F_SOGG 130
#define F_ROP 131
#define F_CODCAU 132
#define DLG_AZZERA 133
#define F_CODDITTA 134
#define F_RAGDITTA 135
#define F_A 136
#define F_B 137
#define F_C 138
#define F_D 139

View File

@ -1,3 +1,7 @@
// Gruppi utilizzati :
// 1 - identifica il codice ditta di intestazione da replicare sulle pagine
// 2 - identifica la descrizione ditta di intestazione da replicare sulle pagine
#include "771231a.h"
TOOLBAR "" 0 20 0 2
@ -21,12 +25,14 @@ BEGIN
KEY 1
CHECKTYPE REQUIRED
FLAGS "GRD"
MESSAGE COPY,1@
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
MESSAGE COPY,2@
END
TEXT DLG_NULL
@ -34,7 +40,7 @@ BEGIN
PROMPT 1 3 "@bProspetto A"
END
SPREADSHEET F_A 0 8
SPREADSHEET F_A 78 8
BEGIN
PROMPT 0 4 ""
ITEM "Causale"
@ -47,55 +53,55 @@ BEGIN
ITEM "Somma versata@15"
END
GROUPBOX DLG_NULL 78 6
GROUPBOX DLG_NULL 0 6
BEGIN
PROMPT 1 12 ""
PROMPT 1 13 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 3 13 "A1 Importo di col.7 ..."
PROMPT 3 14 "A1 Importo di col.7 ..."
END
NUMBER F_A1 15
BEGIN
PROMPT 60 13 ""
PROMPT 60 14 ""
PICTURE "."
FIELD LF_QUAF->A1
END
TEXT DLG_NULL
BEGIN
PROMPT 3 14 "A2 Importo di col.7 di cui si chiede il rimborso"
PROMPT 3 15 "A2 Importo di col.7 di cui si chiede il rimborso"
END
NUMBER F_A2 15
BEGIN
PROMPT 60 14 ""
PROMPT 60 15 ""
PICTURE "."
FIELD LF_QUAF->A2
END
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "A3 Somme soggette a ritenuta ..."
PROMPT 3 16 "A3 Somme soggette a ritenuta ..."
END
NUMBER F_A3 15
BEGIN
PROMPT 60 15 ""
PROMPT 60 16 ""
PICTURE "."
FIELD LF_QUAF->A3
END
TEXT DLG_NULL
BEGIN
PROMPT 3 16 "A4 Ritenute operate ..."
PROMPT 3 17 "A4 Ritenute operate ..."
END
NUMBER F_A4 15
BEGIN
PROMPT 60 16 ""
PROMPT 60 17 ""
PICTURE "."
FIELD LF_QUAF->A4
END
@ -104,14 +110,33 @@ ENDPAGE
PAGE "Prospetto B,C" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "RD"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
GROUP 2
END
TEXT DLG_NULL
BEGIN
PROMPT 1 0 "@bProspetto B"
PROMPT 1 3 "@bProspetto B"
END
SPREADSHEET F_B 78 6
BEGIN
PROMPT 0 1 ""
PROMPT 0 4 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
@ -121,12 +146,12 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 1 8 "@bProspetto C"
PROMPT 1 11 "@bProspetto C"
END
SPREADSHEET F_C 78 6
BEGIN
PROMPT 0 9 ""
PROMPT 0 12 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
@ -138,14 +163,33 @@ ENDPAGE
PAGE "Prospetto D,E,F" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "RD"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
GROUP 2
END
TEXT DLG_NULL
BEGIN
PROMPT 1 0 "@bProspetto D"
PROMPT 1 3 "@bProspetto D"
END
SPREADSHEET F_D 78 6
BEGIN
PROMPT 0 1 ""
PROMPT 0 4 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
@ -155,36 +199,36 @@ END
GROUPBOX DLG_NULL 0 5
BEGIN
PROMPT 1 8 "@bProspetto E"
PROMPT 1 11 "@bProspetto E"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 9 "Importo complessivo delle cambiali "
PROMPT 2 12 "Importo complessivo delle cambiali "
END
NUMBER E_CAMBIAL 15
BEGIN
PROMPT 60 9 ""
PROMPT 60 12 ""
PICTURE "."
FIELD LF_QUAF->E_CAMBIALI
END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Proventi soggetti a ritenuta "
PROMPT 2 13 "Proventi soggetti a ritenuta "
END
NUMBER E_PROVENTI 15
BEGIN
PROMPT 60 10 ""
PROMPT 60 13 ""
PICTURE "."
FIELD LF_QUAF->E_SOGRIT
END
NUMBER E_ALI 5
BEGINE
PROMPT 2 11 "Aliquota "
PROMPT 2 14 "Aliquota "
FIELD LF_QUAF->E_ALIQUOTA
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
@ -192,19 +236,19 @@ END
NUMBER E_ROP 15
BEGIN
PROMPT 43 11 "Ritenuta operata "
PROMPT 43 14 "Ritenuta operata "
PICTURE "."
FIELD LF_QUAF->E_ROPE
END
GROUPBOX DLG_NULL 0 5
BEGIN
PROMPT 1 13 "@bProspetto F"
PROMPT 1 16 "@bProspetto F"
END
STRING F_CODCAU 2
BEGIN
PROMPT 2 14 "Causale "
PROMPT 2 17 "Causale "
USE %CA7 SELECT (S1="F")
VALIDATE REQIF_FUNC 3 F_SOGG F_ALI F_ROP
INPUT CODTAB F_CODCAU
@ -227,20 +271,20 @@ END
STRING F_DESCRCAUS 60
BEGIN
PROMPT 16 14 ""
PROMPT 16 17 ""
FLAGS "D"
END
NUMBER F_SOGG 15
BEGIN
PROMPT 2 15 "Somme soggette a ritenuta "
PROMPT 2 18 "Somme soggette a ritenuta "
PICTURE "."
FIELD LF_QUAF->F_SOGRIT
END
NUMBER F_ALI 5
BEGIN
PROMPT 51 15 "Aliquota "
PROMPT 51 18 "Aliquota "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
FIELD LF_QUAF->F_ALIQUOTA
@ -248,7 +292,7 @@ END
NUMBER F_ROP 15
BEGIN
PROMPT 2 16 "Ritenuta operata "
PROMPT 2 19 "Ritenuta operata "
PICTURE "."
FIELD LF_QUAF->F_ROPE
END

View File

@ -81,9 +81,9 @@ BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "Azzera"
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END

View File

@ -1,6 +1,6 @@
// 771231c.uml - quadro F prospetto B-C-D
PAGE "Prospetto B-C-D" -1 -1 76 9
PAGE "" -1 -1 76 9
NUMBER 101 2
BEGIN
@ -60,9 +60,9 @@ BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "Azzera"
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END

View File

@ -60,9 +60,9 @@ BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "Azzera"
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END

View File

@ -60,9 +60,9 @@ BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -33 -1 "Azzera"
PROMPT -33 -1 "A~zzera"
MESSAGE RESET,1@
END

View File

@ -42,12 +42,12 @@ END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -22 -1 ""
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -12 -1 "Fine"
PROMPT -22 -1 "Fine"
END
ENDPAGE

View File

@ -20,7 +20,7 @@ BEGIN
FLAGS "H"
END
GROUPBOX DLG_NULL 78 3
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 0 ""
END

View File

@ -60,7 +60,7 @@ bool TImmissioneDichiarazione::do_it()
if (enter_dichiar_770(codditta, _anno_dic))
message_box("Dichiarazione inserita");
}
_msk->close();
_msk->close_modal();
return tasto == K_ENTER;
}

View File

@ -28,7 +28,9 @@ class TParametri_genera : public TApplication
virtual bool destroy();
virtual bool menu(MENU_TAG m);
public:
KEY registra(TMask& m, bool check_dirty);
bool main_loop();
// D = stampa ditta, S = stampa a livello di studio
TParametri_genera(char livello='D') : _liv(toupper(livello)) {}
};
@ -41,68 +43,108 @@ void TParametri_genera::on_config_change()
_anno_dic = (int)conf.get_long(ANNO_SEL, _section);
}
KEY TParametri_genera::registra(TMask& m, bool check_dirty)
{
KEY k = K_YES;
if (check_dirty && m.dirty())
k = yesnocancel_box("Registrare le modifiche?");
if (k == K_YES)
{
m.autosave(*_rel);
_rel->rewrite();
}
return k;
}
bool TParametri_genera::main_loop()
{
KEY tasto;
TMask msk ("776500a");
long codditta, codditta_prec;
int i = 0;
KEY tasto;
TMask msk("776500a");
msk.open_modal();
// da dichiarazioni selezionate
if (_liv == 'S')
{
codditta_prec = get_firm_770();
while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L)
tasto = K_TAB;
// loop di scansione dichiarazioni selezionate
while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L
&& tasto != K_QUIT)
{
set_firm_770(codditta);
_rel->lfile().put("CODDITTA", codditta);
_rel->read();
msk.autoload(*_rel);
tasto = msk.run();
tasto = K_TAB;
if (tasto == K_ESC) continue;
if (tasto == K_SAVE)
// loop di gestione maschera
while (tasto != K_ESC && tasto != K_QUIT)
{
msk.autosave(*_rel);
_rel->rewrite();
tasto = msk.run();
switch (tasto)
{
case K_ESC:
if (registra(msk,TRUE) == K_ESC)
tasto = K_TAB;
break;
case K_QUIT:
if (registra(msk,TRUE) == K_ESC)
tasto = K_TAB;
break;
case K_SAVE:
registra(msk,FALSE);
default:
break;
}
} // endloop di gestione maschera
} // endloop di scansione dichiarazioni selezionate
set_firm_770(codditta_prec);
}
if (tasto == K_QUIT) break;
}
set_firm_770(codditta_prec);
return FALSE;
}
// dalla manutenzione dichiarazione
else
{
codditta = get_firm_770();
_rel->lfile().put("CODDITTA", codditta);
_rel->read();
msk.autoload(*_rel);
tasto = K_TAB;
// loop di gestione maschera
while (tasto != K_ESC && tasto != K_QUIT)
{
tasto = msk.run();
if (tasto == K_ESC)
switch (tasto)
{
case K_ESC:
if (registra(msk,TRUE) == K_ESC)
tasto = K_TAB;
_risposta = 1;
return FALSE;
}
if (tasto == K_SAVE)
{
msk.autosave(*_rel);
_rel->rewrite();
_risposta = 1;
}
if (tasto == K_QUIT)
{
break;
case K_QUIT:
if (registra(msk,TRUE) == K_ESC)
tasto = K_TAB;
_risposta = 0;
return FALSE;
break;
case K_SAVE:
registra(msk,FALSE);
_risposta = 1;
default:
break;
}
} // endloop di gestione maschera
}
msk.close_modal();
return FALSE;
}

View File

@ -4,7 +4,7 @@ TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -13 -1 ""
PROMPT -13 -1 "~Registra"
MESSAGE EXIT,K_SAVE
PICTURE BMP_SAVEREC
PICTURE BMP_SAVERECDN
@ -24,7 +24,7 @@ END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
PAGE "Parametri di generazione" -1 -1 78 18
#define G_ABICAB 1
#define G_DISTINTA 2

View File

@ -20,7 +20,7 @@ class TEstinti_app : public TApplication
TLocalisamfile* _base, *_basebis;
TRelation* _rel;
TCursor* _cur;
TBrowse_sheet* _estint_sheet;
TCursor_sheet* _estint_sheet;
static bool show_estinti(TMask_field& f, KEY k);
void force_output(int dlg, const long cod);
@ -76,10 +76,8 @@ bool TEstinti_app::create()
TString16 filt;
filt.format("CODDIC=%ld", _codditta);
_cur = new TCursor(_rel, filt);
TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODDIC_DUMMY);
TToken_string siblings;
_estint_sheet = new TBrowse_sheet(_cur,"CODDITTA|9->RAGSOC", "Elenco estinti",
"Codice|Ragione sociale@50", 8, &dummy, siblings);
_estint_sheet = new TCursor_sheet(_cur,"CODDITTA|9->RAGSOC", "Elenco estinti",
"Codice|Ragione sociale@50", 0x18, 3);
_msk->set_handler(F_ESTINTI, show_estinti);
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
@ -198,7 +196,7 @@ bool TEstinti_app::main_loop()
break;
}
}
_msk->close();
_msk->close_modal();
return FALSE;
}

View File

@ -30,19 +30,6 @@ BEGIN
FLAGS "D"
END
// serve solo per costruire un Browse_sheet. v. 776600.cpp
NUMBER F_CODDIC_DUMMY 5
BEGIN
PROMPT 1 1 ""
USE LF_BASE KEY 2
JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC
OUTPUT F_CODDIC CODDITTA
FLAGS "HG"
END
NUMBER F_CODDIC 5
BEGIN
PROMPT 1 3 "Soggetto dichiarante "

View File

@ -51,7 +51,7 @@ BEGIN
FLAGS "HG"
END
STRING F_RAGSOC2 45
STRING F_RAGSOC2 50 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"