Errore aga0045

git-svn-id: svn://10.65.10.50/trunk@5096 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1997-08-22 13:25:25 +00:00
parent 043926ad37
commit a3fba6a9ad
7 changed files with 408 additions and 270 deletions

View File

@ -853,7 +853,7 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s) {
if (x.is_real(value))
{
TString picture(cf.picture());
if (x != 0.0)
if (x != ZERO)
value = x.string(picture); // Riformatta il valore
else
value = "";
@ -951,6 +951,7 @@ class TStampaDoc_application: public TApplication
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
TDocumento_form *_form; // puntatore al form di stampa
TLocalisamfile * _clifo;
TLocalisamfile * _cfven;
TLocalisamfile * _occas;
protected:
@ -1182,6 +1183,7 @@ bool TStampaDoc_application::create()
_firmrel->add(LF_COMUNI, "COM=STATORES+COMRF", 1, LF_ANAG, 200+LF_COMUNI);
_occas = new TLocalisamfile(LF_OCCAS);
_clifo = new TLocalisamfile(LF_CLIFO);
_cfven = new TLocalisamfile(LF_CFVEN);
const int argc = TApplication::argc();
_is_lista = argc == 3 && argv(2)[0] == 'L';
@ -1226,6 +1228,7 @@ bool TStampaDoc_application::destroy()
{
delete _firmrel; // distruzione della relazione di gestione della ditta corrente
delete _clifo;
delete _cfven;
delete _occas;
return TApplication::destroy();
}

View File

@ -8,6 +8,14 @@
#define MAX_REAL "9999999999.99999" //mmmhh..
static void key_hide(TMask & m, short id, int key = 1)
{
TEditable_field & e = ((TEditable_field &)m.field(id));
e.reset_key(key);
e.check_type(CHECK_NONE);
e.set_field("");
m.hide(id);
}
static void key_disable(TMask & m, short id, int key = 1)
{
@ -47,7 +55,7 @@ class TTabelle_sconti: public TRelation_application {
virtual void init_query_insert_mode(TMask& m);
virtual bool remove(); // metodo usato per rimuovere il record sul file
void renumber_sca(const TRectype& r); //metodo per rinumerare gli scaglioni
static void fill_rec(TRectype& r, TMask& m);
// static void fill_rec(TRectype& r, TMask& m);
static real find_prev_qta(TRectype& r);
static real find_next_qta(TRectype& r);
static bool handle_qta(TMask_field &, KEY); // handler della quantita' limite per scaglione
@ -57,11 +65,11 @@ class TTabelle_sconti: public TRelation_application {
// Risposta, perche quando si clicca su nuovo per andare in modo ricerca/inserimento, tutti i campi
// che hanno CHECKTYPE FORCED risultano non essere validi. Percio' si e' rimesso il CHECKTYPE REQUIRED
// e si controlla la consistenza del campo.
static bool handle_um(TMask_field &, KEY); // handler delle unita' di misura per gli sconti di riga
static bool handle_art(TMask_field &, KEY); // handler dei codici articoli per sconti di riga
// static bool handle_um(TMask_field &, KEY); // handler delle unita' di misura per gli sconti di riga
static bool handle_check(TMask_field &, KEY); // handler per i check
// static bool handle_sco(TMask_field &, KEY); // handler delle sconto cliente
static bool handle_zon(TMask_field &, KEY); // handler delle zone
static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento
// static bool handle_zon(TMask_field &, KEY); // handler delle zone
// static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento
public:
TTabelle_sconti() {_sca = _scoum = _catven = FALSE;}
@ -72,19 +80,19 @@ inline TTabelle_sconti& app() { return (TTabelle_sconti &) main_app(); }
// Handlers per i campi quantita' limite e scaglione, valgono solo per gli sconti di riga
void TTabelle_sconti::fill_rec(TRectype &r, TMask& m)
/*void TTabelle_sconti::fill_rec(TRectype &r, TMask& m)
{
TString16 tipo(m.get(F_R_TIPO));
TString16 codcat(m.get(F_R_CODCAT));
if (codcat.empty()) codcat = m.get(F_R_RICERCA);
TString codart(m.get(F_R_CODART));
if (codart.empty()) codart = m.get(F_R_RICERCA_A);
if (codart.empty()) codart = m.get(F_R_CODART_A);
TString16 um(m.get(F_R_UM));
int sca = m.get_int(F_R_SCA);
r.zero();
r.put("TIPO",tipo);r.put("CODCAT",codcat);
r.put("CODART",codart); r.put("UM",um);r.put("NSCAGL",sca);
}
*/
real TTabelle_sconti::find_prev_qta(TRectype& r)
{
@ -117,8 +125,9 @@ bool TTabelle_sconti::handle_qta(TMask_field &f, KEY k)
TMask& m = f.mask();
real qta_prev,qta_next;
real current_qta(f.get());
TRectype r1(LF_SCONTI);
fill_rec(r1,m);
TRelation r(LF_SCONTI);
m.autosave(r);
TRectype r1(r.curr());
TRectype r2(r1);
qta_prev = find_prev_qta(r1);
@ -154,17 +163,19 @@ bool TTabelle_sconti::handle_sca(TMask_field &f, KEY k)
int sca = atoi(f.get());
if (sca == 1) return TRUE;
TRectype r(LF_SCONTI);
fill_rec(r, m);
TLocalisamfile sconti(LF_SCONTI);
TRelation sconti(LF_SCONTI);
m.autosave(sconti);
TRectype r(sconti.curr());
sconti.curr() = r;
sconti.read();
if (sconti.bad()) // se non l'ha trovato significa che e' in inserimento
{
sca--;
r.put("NSCAGL",sca); //cerca quello precedente...
if (sconti.read(r) != NOERR) // se non lo trova segnala l'errore di errata sequenza
sconti.curr() = r;
sconti.curr().put("NSCAGL",sca); //cerca quello precedente...
if (sconti.read() != NOERR) // se non lo trova segnala l'errore di errata sequenza
{
f.error_box("Il numero di scaglione immesso non e' in sequenza.");
return FALSE;
@ -174,23 +185,20 @@ bool TTabelle_sconti::handle_sca(TMask_field &f, KEY k)
return TRUE;
}
bool TTabelle_sconti::handle_art(TMask_field &f, KEY k)
bool TTabelle_sconti::handle_check(TMask_field &f, KEY k)
{
if (f.to_check(k))
{
TLocalisamfile a(LF_ANAMAG);
TString art(f.get());
if (art.empty()) return TRUE;
a.put("CODART",art);
if (a.read() != NOERR)
{
f.error_box("Codice articolo non presente sull'anagrafica");
return FALSE;
}
TEditable_field & check_field = (TEditable_field &) f.mask().field(f.dlg() + 100);
check_field.set(f.get());
if (!check_field.check())
return check_field.error_box(check_field.get_warning());
}
return TRUE;
}
/*
bool TTabelle_sconti::handle_um(TMask_field &f, KEY k)
{
if (f.to_check(k))
@ -209,94 +217,47 @@ bool TTabelle_sconti::handle_um(TMask_field &f, KEY k)
}
return TRUE;
}
/* bool TTabelle_sconti::handle_sco(TMask_field &f, KEY k)
{
if (f.to_check(k))
{
TLocalisamfile a(LF_SCONTI);
TString sco(f.get());
if (sco.empty()) return TRUE;
a.put("TIPO","D");
a.put("CODCAT",sco);
if (a.read() != NOERR)
{
f.error_box("Sconto cliente non presente");
return FALSE;
}
}
return TRUE;
}
*/
bool TTabelle_sconti::handle_zon(TMask_field &f, KEY k)
bool TTabelle_sconti::user_create()
{
if (f.to_check(k))
{
TTable a("%ZON");
TString zon(f.get());
if (zon.empty()) return TRUE;
a.put("CODTAB",zon);
if (a.read() != NOERR)
{
f.error_box("Zona non presente");
return FALSE;
}
}
return TRUE;
}
bool TTabelle_sconti::handle_cpg(TMask_field &f, KEY k)
{
if (f.to_check(k))
{
TTable a("%CPG");
TString con(f.get());
if (con.empty()) return TRUE;
a.put("CODTAB",con);
if (a.read() != NOERR)
{
f.error_box("Condizione di pagamento non presente");
return FALSE;
}
}
return TRUE;
}
bool TTabelle_sconti::user_create() {
bool gotcha= FALSE; // booleano di avvenuta inizializzazione
int i; // indice di ciclo
_sconti= '*'; // inizializzazione dell'indicatore del tipo di tabella
if (argc()>2) _sconti= toupper((argv(2))[0]); // se c'è, prende il tipo di tabella dalla linea di comando
else {
TMask choose("VE2100"); // istanzia la maschera di scelta del tipo di tabella
if (choose.run() == K_ENTER) _sconti= toupper((choose.get(F_TIPOSC))[0]); // prende il tipo di tabella dalla maschera
if (argc()>2)
_sconti = toupper((argv(2))[0]); // se c'è, prende il tipo di tabella dalla linea di comando
else
{
TMask choose("ve2100"); // istanzia la maschera di scelta del tipo di tabella
if (choose.run() == K_ENTER)
_sconti = toupper((choose.get(F_TIPOSC))[0]); // prende il tipo di tabella dalla maschera
else
return FALSE;
}
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione di ditta
switch (_sconti) {
case 'D': // sconti documento
_msk= new TMask("VE2100D"); // apre la maschera relativa
_msk= new TMask("ve2100d"); // apre la maschera relativa
set_search_field(F_D_CODCAT); // setta il campo di ricerca
gotcha= TRUE;
break;
case 'R': // sconti di riga
_gesscoriga = prassid.get("GESSCORIGA"); // legge lo stato del parametro di abilitazione degli sconti riga
if (_gesscoriga == "A") {
_msk= new TMask("VE2100R"); // apre la maschera relativa
set_search_field(F_R_RICERCA); // setta il campo di ricerca
_catven= prassid.get_bool("GESSCORIGACV"); // legge il parametro di abilitazione delle categorie di vendita
_scoum = prassid.get_bool("GESSCOUM"); // legge il parametro di abilitazione delle unita' di misura
_sca = prassid.get_bool("GESSCOSCA"); // legge il parametro di abilitazione degli scaglioni
if (!_catven)
if (_gesscoriga == "A")
{
_msk= new TMask("ve2100r"); // apre la maschera relativa
_catven= prassid.get_bool("GESSCORIGACV"); // legge il parametro di abilitazione delle categorie di vendita
if (!_catven)
key_disable(*_msk, F_R_CODCAT); // se non è abilitato, viene disabilitato anche il campo
set_search_field(F_R_RICERCA_A); // setta il campo di ricerca
}
_scoum = prassid.get_bool("GESSCOUM"); // legge il parametro di abilitazione delle unita' di misura
if (!_scoum)
key_disable(*_msk, F_R_UM); // se non e' abilitato, viene disabilitato anche il campo
else
_msk->set_handler(F_R_UM,handle_um);
// else
// _msk->set_handler(F_R_UM,handle_um);
_sca = prassid.get_bool("GESSCOSCA"); // legge il parametro di abilitazione degli scaglioni
if (!_sca)
{
key_disable(*_msk, F_R_SCA); // se non e' abilitato, viene disabilitato anche il campo
@ -307,15 +268,60 @@ bool TTabelle_sconti::user_create() {
_msk->set_handler(F_R_QLIM, handle_qta); // setta l'handler per controllare la quantita' limite
_msk->set_handler(F_R_SCA, handle_sca); // setta l'handler per controllare la sequenza degli scaglioni
}
_msk->set_handler(F_R_CODART,handle_art);
_msk->set_handler(F_R_RICERCA_A,handle_art);
_msk->set_handler(F_R_CODART_A,handle_check);
_msk->set_handler(F_R_RFA_A,handle_check);
_msk->set_handler(F_R_GRM_A,handle_check);
_msk->set_handler(F_R_SGM_A,handle_check);
gotcha= TRUE;
} else error_box("Gli sconti di riga non sono abilitati nella configurazione");
const char * rigakey = prassid.get("SCORIGAKEY");
_msk->set(F_R_TIPO_RIGA, rigakey);
switch (*rigakey)
{
case 'A' :
key_hide(*_msk, F_R_RFA_A);
key_hide(*_msk, F_R_RFA);
key_hide(*_msk, F_R_GRM_A);
key_hide(*_msk, F_R_GRM);
key_hide(*_msk, F_R_SGM_A);
key_hide(*_msk, F_R_SGM);
break;
case 'R' :
key_hide(*_msk, F_R_CODART_A);
key_hide(*_msk, F_R_CODART);
key_hide(*_msk, F_R_GRM_A);
key_hide(*_msk, F_R_GRM);
key_hide(*_msk, F_R_SGM_A);
key_hide(*_msk, F_R_SGM);
break;
case 'C' :
key_hide(*_msk, F_R_CODART_A);
key_hide(*_msk, F_R_CODART);
key_hide(*_msk, F_R_RFA_A);
key_hide(*_msk, F_R_RFA);
key_hide(*_msk, F_R_GRM_A);
key_hide(*_msk, F_R_GRM);
break;
case 'L' :
key_hide(*_msk, F_R_CODART_A);
key_hide(*_msk, F_R_CODART);
key_hide(*_msk, F_R_RFA_A);
key_hide(*_msk, F_R_RFA);
key_hide(*_msk, F_R_SGM_A);
key_hide(*_msk, F_R_SGM);
break;
default :
break;
}
}
else
error_box("Gli sconti di riga non sono abilitati nella configurazione");
break;
case 'I': // sconti incondizionati
_gessco= prassid.get("GESSCO"); // legge lo stato del parametro di abilitazione degli sconti
if (_gessco=="A") {
_msk= new TMask("VE2100I"); // apre la maschera relativa
_msk= new TMask("ve2100i"); // apre la maschera relativa
// inizializza l'array dei campi da disabilitare condizionalmente
_sci_k_id[0].normal_field = F_I_CATVEN;
_sci_k_id[0].search_field = F_I_RICERCA;
@ -329,13 +335,12 @@ bool TTabelle_sconti::user_create() {
_sci_k_id[3].normal_field = F_I_CONDPAG;
_sci_k_id[3].search_field = F_I_RICERCA_CO;
_sci_k_id[3].enabled = TRUE;
// _msk->set_handler(F_I_SCCLIENTI,handle_sco);
_msk->set_handler(F_I_ZONE,handle_zon);
_msk->set_handler(F_I_CONDPAG,handle_cpg);
// _msk->set_handler(F_I_RICERCA_SC,handle_sco);
_msk->set_handler(F_I_RICERCA_ZO,handle_zon);
_msk->set_handler(F_I_RICERCA_CO,handle_cpg);
for (i=0; i<4; i++) {
_msk->set_handler(F_I_RICERCA, handle_check);
_msk->set_handler(F_I_RICERCA_SC, handle_check);
_msk->set_handler(F_I_RICERCA_ZO, handle_check);
_msk->set_handler(F_I_RICERCA_CO, handle_check);
for (int i = 0; i < 4; i++)
{
if (!prassid.get_bool("SCOKEY", NULL, i+1)) // se nel file di config. il campo non è abilitato...
{
key_disable(*_msk, _sci_k_id[i].normal_field); // il campo non è abilitato viene disabilitato anche sulla maschera
@ -367,7 +372,6 @@ bool TTabelle_sconti::user_destroy() {
}
void TTabelle_sconti::init_query_mode(TMask& m) {
int i;
switch (_sconti)
{
@ -375,67 +379,106 @@ void TTabelle_sconti::init_query_mode(TMask& m) {
set_search_field(F_D_CODCAT); // setta il campo di ricerca
break;
case 'I':
for (i=0; i<4;i++)
{
for (int i = 0; i < 4 ; i++)
{
if (_sci_k_id[i].enabled)
{
m.show(_sci_k_id[i].search_field);
m.hide(_sci_k_id[i].normal_field);
key_enable(m,_sci_k_id[i].search_field);
key_disable(m,_sci_k_id[i].normal_field);
set_search_field(_sci_k_id[i].search_field);
break;
}
}
set_search_field(F_I_RICERCA);
}
break;
case 'R':
if (_catven)
{
m.show(F_R_RICERCA);
m.hide(F_R_CODCAT);
set_search_field(F_R_RICERCA); // setta il campo di ricerca
}
else
const char * rigakey = m.get(F_R_TIPO_RIGA);
switch (*rigakey)
{
case 'A' :
m.show(F_R_CODART_A);
m.hide(F_R_CODART);
m.show(F_R_RICERCA_A);
set_search_field(F_R_RICERCA_A); // setta il campo di ricerca
set_search_field(F_R_CODART_A); // setta il campo di ricerca
break;
case 'R' :
m.show(F_R_RFA_A);
m.hide(F_R_RFA);
set_search_field(F_R_RFA_A); // setta il campo di ricerca
break;
case 'C' :
m.show(F_R_SGM_A);
m.hide(F_R_SGM);
set_search_field(F_R_SGM_A); // setta il campo di ricerca
break;
case 'L' :
m.show(F_R_GRM_A);
m.hide(F_R_GRM);
set_search_field(F_R_GRM_A); // setta il campo di ricerca
break;
default :
break;
}
}
break;
default: break;
}
}
void TTabelle_sconti::init_query_insert_mode(TMask& m) {
int i;
void TTabelle_sconti::init_query_insert_mode(TMask& m)
{
switch (_sconti)
{
case 'D':
set_search_field(F_D_CODCAT); // setta il campo di ricerca
break;
case 'I':
for (i=0; i<4;i++)
{
for (int i = 0; i < 4; i++)
{
if (_sci_k_id[i].enabled)
{
m.show(_sci_k_id[i].normal_field);
m.hide(_sci_k_id[i].search_field);
key_enable(m,_sci_k_id[i].normal_field);
key_disable(m,_sci_k_id[i].search_field);
set_search_field(_sci_k_id[i].normal_field);
break;
}
}
set_search_field(F_I_CATVEN);
}
break;
case 'R':
if (_catven)
{
m.hide(F_R_RICERCA);
m.show(F_R_CODCAT);
set_search_field(F_R_CODCAT); // setta il campo di ricerca
}
else
const char * rigakey = m.get(F_R_TIPO_RIGA);
switch (*rigakey)
{
m.hide(F_R_RICERCA_A);
case 'A' :
m.show(F_R_CODART);
m.hide(F_R_CODART_A);
set_search_field(F_R_CODART); // setta il campo di ricerca
break;
case 'R' :
m.show(F_R_RFA);
m.hide(F_R_RFA_A);
set_search_field(F_R_RFA); // setta il campo di ricerca
break;
case 'C' :
m.show(F_R_SGM);
m.hide(F_R_SGM_A);
set_search_field(F_R_SGM); // setta il campo di ricerca
break;
case 'L' :
m.show(F_R_GRM);
m.hide(F_R_GRM_A);
set_search_field(F_R_GRM); // setta il campo di ricerca
break;
default :
break;
}
}
break;
default: break;
@ -457,7 +500,6 @@ void TTabelle_sconti::renumber_sca(const TRectype& r)
bool TTabelle_sconti::remove()
{
TRectype r(LF_SCONTI);
fill_rec(r,*_msk);
const bool rt = TRelation_application::remove();
if (_sca) // rinumera gli scaglioni
renumber_sca(r);

View File

@ -7,7 +7,7 @@ BEGIN
PROMPT 1 2 "Tipo di archivio "
ITEM "R|Sconti di riga"
ITEM "D|Sconti documento"
ITEM "I|Sconti indondizionati"
ITEM "I|Sconti incondizionati"
END
BUTTON DLG_SELECT 9 2

View File

@ -1,15 +1,16 @@
#define F_I_RICERCA 131
#define F_I_TIPO 132
#define F_I_CATVEN 133
#define F_I_SCCLIENTI 134
#define F_I_ZONE 135
#define F_I_CONDPAG 136
#define F_I_SCONTO 137
#define F_I_DESVEN 138
#define F_I_DESSCCLI 139
#define F_I_DESZONE 140
#define F_I_DESCONPAG 141
#define F_I_RICERCA_SC 142
#define F_I_RICERCA_ZO 143
#define F_I_RICERCA_CO 144
#define F_I_RICERCA_SC 150
#define F_I_RICERCA_ZO 151
#define F_I_RICERCA_CO 152
#define F_I_RICERCA 153
#define F_I_SCCLIENTI 250
#define F_I_ZONE 251
#define F_I_CONDPAG 252
#define F_I_CATVEN 253

View File

@ -24,17 +24,17 @@ END
STRING F_I_RICERCA 2
BEGIN
PROMPT 2 2 "Cat. vendite "
PROMPT 2 2 "Cat. vendita "
FIELD CODCAT
FLAG "HU"
KEY 1
USE LF_SCONTI SELECT CODCAT != ""
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_I_TIPO SELECT
INPUT CODCAT F_I_CATVEN
INPUT CODART[1,2] F_I_SCCLIENTI
INPUT CODART[3,4] F_I_ZONE
INPUT CODART[5,8] F_I_CONDPAG
INPUT CODCAT F_I_RICERCA
INPUT CODART[1,2] F_I_RICERCA_SC
INPUT CODART[3,4] F_I_RICERCA_ZO
INPUT CODART[5,8] F_I_RICERCA_CO
DISPLAY "Cat.Vend." CODCAT
DISPLAY "Cod. sconto" CODART[1,2]
DISPLAY "Zona" CODART[3,4]
@ -42,9 +42,9 @@ BEGIN
DISPLAY "Sconto@25" SCONTO
OUTPUT F_I_RICERCA CODCAT
OUTPUT F_I_DESVEN -201->S0
OUTPUT F_I_SCCLIENTI CODART[1,2]
OUTPUT F_I_ZONE CODART[3,4]
OUTPUT F_I_CONDPAG CODART[5,8]
OUTPUT F_I_RICERCA_SC CODART[1,2]
OUTPUT F_I_RICERCA_ZO CODART[3,4]
OUTPUT F_I_RICERCA_CO CODART[5,8]
END
STRING F_I_CATVEN 2
@ -74,21 +74,7 @@ BEGIN
FIELD CODART[1,2]
FLAG "HU"
KEY 1
USE LF_SCONTI
INPUT TIPO F_I_TIPO SELECT
INPUT CODCAT F_I_CATVEN SELECT
INPUT CODART[1,2] F_I_RICERCA_SC
INPUT CODART[3,4] F_I_ZONE
INPUT CODART[5,8] F_I_CONDPAG
DISPLAY "Cod. sconto" CODART[1,2]
DISPLAY "Zona" CODART[3,4]
DISPLAY "Cond.Pag." CODART[5,8]
DISPLAY "Sconto@25" SCONTO
OUTPUT F_I_RICERCA_SC CODART[1,2]
OUTPUT F_I_SCCLIENTI CODART[1,2]
OUTPUT F_I_ZONE CODART[3,4]
OUTPUT F_I_CONDPAG CODART[5,8]
MESSAGE COPY,F_I_SCCLIENTI
COPY ALL F_I_RICERCA
END
STRING F_I_SCCLIENTI 2
@ -98,18 +84,12 @@ BEGIN
KEY 1
FLAG "U"
USE %SCC
// INPUT TIPO "D"
// INPUT CODCAT F_I_SCCLIENTI
// DISPLAY "Sc. Cliente" CODCAT
// DISPLAY "Descrizione@50" DESCR
// OUTPUT F_I_SCCLIENTI CODCAT
// OUTPUT F_I_DESSCCLI DESCR
INPUT CODTAB F_I_SCCLIENTI
DISPLAY "Sc. Cliente" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_I_SCCLIENTI CODTAB
OUTPUT F_I_DESSCCLI S0
CHECKTYPE REQUIRED
CHECKTYPE FORCED
END
STRING F_I_DESSCCLI 50
@ -124,19 +104,7 @@ BEGIN
FIELD CODART[3,4]
FLAG "HU"
KEY 1
USE LF_SCONTI SELECT CODCAT==""
INPUT TIPO F_I_TIPO SELECT
INPUT CODCAT F_I_CATVEN SELECT
INPUT CODART[1,2] F_I_SCCLIENTI SELECT
INPUT CODART[3,4] F_I_RICERCA_ZO
INPUT CODART[5,8] F_I_CONDPAG
DISPLAY "Zona" CODART[3,4]
DISPLAY "Cond.Pag." CODART[5,8]
DISPLAY "Sconto@25" SCONTO
OUTPUT F_I_RICERCA_ZO CODART[3,4]
OUTPUT F_I_ZONE CODART[3,4]
OUTPUT F_I_CONDPAG CODART[5,8]
MESSAGE COPY,F_I_ZONE
COPY ALL F_I_RICERCA
END
STRING F_I_ZONE 2
@ -145,13 +113,13 @@ BEGIN
FIELD CODART[3,4]
FLAG "U"
KEY 1
USE %ZON
USE ZON
INPUT CODTAB F_I_ZONE
DISPLAY "Zona" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_I_ZONE CODTAB
OUTPUT F_I_DESZONE S0
CHECKTYPE REQUIRED
CHECKTYPE FORCED
END
STRING F_I_DESZONE 50
@ -166,17 +134,7 @@ BEGIN
FIELD CODART[5,8]
FLAG "HU"
KEY 1
USE LF_SCONTI SELECT CODCAT == ""
INPUT TIPO F_I_TIPO SELECT
INPUT CODCAT F_I_CATVEN SELECT
INPUT CODART[1,2] F_I_SCCLIENTI SELECT
INPUT CODART[3,4] F_I_ZONE SELECT
INPUT CODART[5,8] F_I_RICERCA_CO
DISPLAY "Cond.Pag." CODART[5,8]
DISPLAY "Sconto@25" SCONTO
OUTPUT F_I_RICERCA_CO CODART[5,8]
OUTPUT F_I_CONDPAG CODART[5,8]
MESSAGE COPY,F_I_CONDPAG
COPY ALL F_I_RICERCA
END
STRING F_I_CONDPAG 4
@ -191,7 +149,7 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_I_CONDPAG CODTAB
OUTPUT F_I_DESCONPAG S0
CHECKTYPE REQUIRED
CHECKTYPE FORCED
END
STRING F_I_DESCONPAG 50

View File

@ -1,12 +1,19 @@
#define F_R_RICERCA 121
#define F_R_TIPO 122
#define F_R_CODCAT 123
#define F_R_CODART 124
#define F_R_UM 125
#define F_R_DESART 126
#define F_R_SCONTO 127
#define F_R_DESCAT 128
#define F_R_SCA 129
#define F_R_QLIM 130
#define F_R_RICERCA_A 131
#define F_R_TIPO_RIGA 132
#define F_R_CODART_A 150
#define F_R_RFA_A 151
#define F_R_GRM_A 152
#define F_R_SGM_A 153
#define F_R_CODART 250
#define F_R_RFA 251
#define F_R_GRM 252
#define F_R_SGM 253

View File

@ -13,32 +13,6 @@ BEGIN
FLAG "R"
END
STRING F_R_RICERCA 2
BEGIN
PROMPT 2 2 "Cat. vendita "
FIELD CODCAT
FLAG "HU"
KEY 1
USE LF_SCONTI SELECT CODCAT != ""
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_R_TIPO SELECT
INPUT CODCAT F_R_RICERCA
INPUT CODART F_R_CODART
INPUT UM F_R_UM
DISPLAY "Cat.Vend." CODCAT
DISPLAY "Codice art.@20" CODART
DISPLAY "U.M." UM
DISPLAY "N. scaglione" NSCAGL
DISPLAY "Sconto@25" SCONTO
OUTPUT F_R_RICERCA CODCAT
OUTPUT F_R_CODCAT CODCAT
OUTPUT F_R_DESCAT -201->S0
OUTPUT F_R_CODART CODART
OUTPUT F_R_UM UM
OUTPUT F_R_SCA NSCAGL
MESSAGE COPY,F_R_CODCAT
END
LIST F_R_TIPO 20
BEGIN
PROMPT 100 100 ""
@ -69,7 +43,19 @@ BEGIN
FLAG "D"
END
STRING F_R_RICERCA_A 20
LIST F_R_TIPO_RIGA 20
BEGIN
PROMPT 100 100 " "
FIELD TIPORIGA
KEY 1
ITEM "A|Articoli"
ITEM "R|Raggr.fiscale"
ITEM "L|Gruppo merc."
ITEM "C|Sottogr.merc."
FLAGS "DP"
END
STRING F_R_CODART_A 20
BEGIN
PROMPT 2 4 "Cod. articolo "
FIELD CODART
@ -79,19 +65,23 @@ BEGIN
JOIN LF_ANAMAG INTO CODART==CODART
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_R_TIPO SELECT
INPUT CODCAT F_R_RICERCA SELECT
INPUT CODART F_R_RICERCA_A
INPUT CODCAT F_R_CODCAT SELECT
INPUT TIPORIGA F_R_TIPO_RIGA SELECT
INPUT CODART F_R_CODART_A
INPUT UM F_R_UM
DISPLAY "Cat. merc." CODCAT
DISPLAY "Codice art.@20" CODART
DISPLAY "U.M." UM
DISPLAY "N. scaglione" NSCAGL
DISPLAY "Sconto@25" SCONTO
OUTPUT F_R_RICERCA_A CODART
OUTPUT F_R_CODART CODART
OUTPUT F_R_CODCAT CODCAT
OUTPUT F_R_TIPO_RIGA TIPORIGA
OUTPUT F_R_CODART_A CODART
OUTPUT F_R_UM UM
OUTPUT F_R_DESART LF_ANAMAG->DESCR
OUTPUT F_R_SCA NSCAGL
MESSAGE COPY,F_R_CODART
CHECKYTPE REQUIRED
GROUP 1
END
STRING F_R_CODART 20
@ -106,10 +96,146 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
OUTPUT F_R_CODART CODART
OUTPUT F_R_DESART DESCR
VALIDATE REQIF_FUNC 1 F_R_UM
CHECKTYPE REQUIRED
WARNING "Il codice articolo e' necessario se si specifica l'unita' di misura"
CHECKYTPE FORCED
WARNING "Articolo assente"
ADD RUN VE2 -3
GROUP 1
END
STRING F_R_RFA_A 5
BEGIN
PROMPT 2 4 "Raggr.fiscale "
FIELD CODART
FLAG "HU"
KEY 1
USE LF_SCONTI
JOIN RFA INTO CODTAB==CODART
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_R_TIPO SELECT
INPUT CODCAT F_R_CODCAT SELECT
INPUT TIPORIGA F_R_TIPO_RIGA SELECT
INPUT CODART F_R_RFA_A
INPUT UM F_R_UM
DISPLAY "Cat. merc." CODCAT
DISPLAY "Codice art.@20" CODART
DISPLAY "U.M." UM
DISPLAY "N. scaglione" NSCAGL
DISPLAY "Sconto@25" SCONTO
OUTPUT F_R_CODCAT CODCAT
OUTPUT F_R_TIPO_RIGA TIPORIGA
OUTPUT F_R_RFA_A CODART
OUTPUT F_R_UM UM
OUTPUT F_R_DESART RFA->S0
OUTPUT F_R_SCA NSCAGL
CHECKYTPE REQUIRED
GROUP 2
END
STRING F_R_RFA 5
BEGIN
PROMPT 2 4 "Raggr.fiscale "
FIELD CODART
FLAG "U"
KEY 1
USE RFA
INPUT CODTAB F_R_RFA
DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_R_RFA CODTAB
OUTPUT F_R_DESART S0
CHECKYTPE FORCED
WARNING "Raggruppamento fiscale assente"
GROUP 2
END
STRING F_R_GRM_A 3
BEGIN
PROMPT 2 4 "Gruppo merc. "
FIELD CODART
FLAG "HU"
KEY 1
USE LF_SCONTI
JOIN GMC INTO CODTAB==CODART
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_R_TIPO SELECT
INPUT CODCAT F_R_CODCAT SELECT
INPUT TIPORIGA F_R_TIPO_RIGA SELECT
INPUT CODART F_R_GRM_A
DISPLAY "Cat. merc." CODCAT
DISPLAY "Gruppo merc." CODART
DISPLAY "U.M." UM
DISPLAY "N. scaglione" NSCAGL
DISPLAY "Sconto@25" SCONTO
OUTPUT F_R_CODCAT CODCAT
OUTPUT F_R_TIPO_RIGA TIPORIGA
OUTPUT F_R_GRM_A CODART
OUTPUT F_R_UM UM
OUTPUT F_R_DESART GMC->S0
OUTPUT F_R_SCA NSCAGL
CHECKYTPE REQUIRED
GROUP 3
END
STRING F_R_GRM 3
BEGIN
PROMPT 2 4 "Gruppo merc. "
FIELD CODART
FLAG "U"
KEY 1
USE GMC SELECT CODTAB ? '???'
INPUT CODTAB F_R_GRM
DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_R_GRM CODTAB
OUTPUT F_R_DESART S0
CHECKYTPE FORCED
WARNING "Gruppo merceologico assente"
GROUP 3
END
STRING F_R_SGM_A 5
BEGIN
PROMPT 2 4 "Sottog.merc. "
FIELD CODART
FLAG "HU"
KEY 1
USE LF_SCONTI
JOIN GMC INTO CODTAB==CODART
JOIN CVE ALIAS 201 INTO CODTAB==CODCAT
INPUT TIPO F_R_TIPO SELECT
INPUT CODCAT F_R_CODCAT SELECT
INPUT TIPORIGA F_R_TIPO_RIGA SELECT
INPUT CODART F_R_SGM_A
DISPLAY "Cat. merc." CODCAT
DISPLAY "Sottog.merc." CODART
DISPLAY "U.M." UM
DISPLAY "N. scaglione" NSCAGL
DISPLAY "Sconto@25" SCONTO
OUTPUT F_R_CODCAT CODCAT
OUTPUT F_R_TIPO_RIGA TIPORIGA
OUTPUT F_R_SGM_A CODART
OUTPUT F_R_UM UM
OUTPUT F_R_DESART GMC->S0
OUTPUT F_R_SCA NSCAGL
CHECKYTPE REQUIRED
GROUP 3
END
STRING F_R_SGM 5
BEGIN
PROMPT 2 4 "Sottog.merc. "
FIELD CODART
FLAG "U"
KEY 1
COPY USE F_R_GRM
INPUT CODTAB F_R_SGM
DISPLAY "Codice@20" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_R_SGM CODTAB
OUTPUT F_R_DESART S0
CHECKYTPE FORCED
WARNING "Sottogruppo merceologico assente"
GROUP 4
END
STRING F_R_UM 2
@ -125,7 +251,8 @@ BEGIN
DISPLAY "U.M." UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_R_UM UM
CHECKTYPE REQUIRED
CHECKTYPE FORCED
GROUP 1
END
NUMBER F_R_SCA 1