Ultime correzioni di gianluca

git-svn-id: svn://10.65.10.50/trunk@2673 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
gianluca 1996-03-07 17:43:51 +00:00
parent f095e18f0a
commit a3d2cabbbe
3 changed files with 82 additions and 71 deletions

View File

@ -17,6 +17,13 @@
#include "ve1100.h"
#include "ve0100b.h"
#include "ve0100c.h"
// !! Attenzione: per la compilazione di questo programma deve essere definito il simbolo
// !! __VE1100_DOWNSIZE, altrimenti in righedoc.cpp si creano degli
// !! unresolved reference in fase di link
@ -43,7 +50,8 @@ public:
TDocVen_Form::TDocVen_Form(const char* name, TRelation &rel): TForm(name), _firmrel(rel) {
TDocVen_Form::TDocVen_Form(const char* name, TRelation &rel): TForm(), _firmrel(rel) {
read(name);
_total_prog= new TPiede_documento;
_riga= new TRiga;
_cliente= new TCliFor;
@ -67,7 +75,7 @@ word TDocVen_Form::set_body(word p, bool u) {
}
void TDocVen_Form::extended_parse_general(TScanner &scanner) {
if (scanner.popkey() == "MO") _module = scanner.string(); // se viene riconosciuto il token per l'impostazione del modulo legge il codice...
if (scanner.popkey() == "MO") _module= scanner.string(); // se viene riconosciuto il token per l'impostazione del modulo legge il codice...
else scanner.push(); // ...altrimenti rimette il token nella coda dello scanner
}
@ -174,27 +182,27 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
if (code== "_ALIGN") {
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>,<all. vert.>[,<all. orizz.>]
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <all. vert.> è uno dei seguenti valori:
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// <all. orizz.> è uno dei seguenti valori:
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
TString in(s.get()), alver(s.get());
TString in(s.get());
if (in[0]== '#') in.ltrim(1);
TForm_item &fi= cf.find_field(in);
if (alver[0]=='!') alver.ltrim(1);
if (alver== "TOP") cf.y()= fi.y();
if (alver== "MIDDLE") cf.y()= fi.y()+ fi.effective_height()/2;
if (alver== "BOTTOM") cf.y()= fi.y()+ fi.effective_height()-1;
if (s.items()==4) {
TString alor(s.get());
if (alor[0]=='!') alor.ltrim(1);
if (alor== "LEFT") cf.x()= fi.x();
if (alor== "RIGHT") cf.x()= fi.x()+ fi.width();
int i= 2;
while (i<s.items()) {
TString align(s.get());
if (align[0]=='!') align.ltrim(1);
if (align== "TOP") cf.y()= fi.y();
if (align== "MIDDLE") cf.y()= fi.y()+ fi.effective_height()/2;
if (align== "BOTTOM") cf.y()= fi.y()+ fi.effective_height()-1;
if (align== "LEFT") cf.x()= fi.x();
if (align== "RIGHT") cf.x()= fi.x()+ fi.width();
i++;
}
return (TRUE);
} // fine _ALIGN

View File

@ -3,6 +3,7 @@
#include <config.h>
#include "ve2300.h"
#include "veconf.h"
#define DESTROY(x) { _msk->field(x).reset_key(1); _msk->hide(x); }
#define CREATE(x) { _msk->field(x).set_key(1); _msk->show(x); }
@ -18,7 +19,8 @@ class TRighe_condizioni_vendita: public TRelation_application {
TString16 _rcondven; // stringa che indica il tipo di archivio
bool _codlis_catven; // booleano di abilitazione del campo CATVEN
bool _codcon_codcf; // booleano di abilitazioni dei campi TIPOCF e CODCF
bool _gest_um; // variabile di abilitazione delle unità di misura
bool _um; // booleano di abilitazione locale delle unità di misura
bool _gest_um, _gest_sca, _gest_so; // variabili di abilitazione deunità di misura, scaglioni e sconti/omaggi
virtual bool user_create();
virtual bool user_destroy();
@ -77,6 +79,9 @@ bool TRighe_condizioni_vendita::user_create() {
_msk->hide(F_R_O_ARTES);
_codlis_catven= prassid.get_bool("GESLISCV"); // setta il booleano di abilitazione di CATVEN
if (!_codlis_catven) KILL(F_R_L_CATVEN); // disabilita condizionalmente le categorie di vendita
_gest_um= prassid.get_bool("GESUM", NULL, A_LISTINI); // setta il booleano di abilitazione delle unità di misura
_gest_sca= prassid.get_bool("GESSCA", NULL, A_LISTINI); // setta il booleano di abilitazione degli scaglioni
_gest_so= prassid.get_bool("GESSO", NULL, A_LISTINI); // setta il booleano di abilitazione degli sconti/omaggi
set_search_field(F_R_L_RICERCA); // impostazione del campo di ricerca
_msk->set_handler(F_R_L_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata
gotcha= TRUE;
@ -96,6 +101,9 @@ bool TRighe_condizioni_vendita::user_create() {
KILL(F_R_C_TIPOCF);
KILL(F_R_C_CODCF);
}
_gest_um= prassid.get_bool("GESUM", NULL, A_CONTRATTI); // setta il booleano di abilitazione delle unità di misura
_gest_sca= prassid.get_bool("GESSCA", NULL, A_CONTRATTI); // setta il booleano di abilitazione degli scaglioni
_gest_so= prassid.get_bool("GESSO", NULL, A_CONTRATTI); // setta il booleano di abilitazione degli sconti/omaggi
set_search_field(F_R_C_RICERCA); // impostazione del campo di ricerca
_msk->set_handler(F_R_C_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata
gotcha= TRUE;
@ -112,6 +120,9 @@ bool TRighe_condizioni_vendita::user_create() {
_msk->hide(F_R_C_DES);
_msk->hide(F_R_L_RICERCA);
_msk->hide(F_R_C_RICERCA);
_gest_um= prassid.get_bool("GESUM", NULL, A_OFFERTE); // setta il booleano di abilitazione delle unità di misura
_gest_sca= prassid.get_bool("GESSCA", NULL, A_OFFERTE); // setta il booleano di abilitazione degli scaglioni
_gest_so= prassid.get_bool("GESSO", NULL, A_OFFERTE); // setta il booleano di abilitazione degli sconti/omaggi
set_search_field(F_R_O_RICERCA); // impostazione del campo di ricerca
_msk->set_handler(F_R_O_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata
gotcha= TRUE;
@ -124,7 +135,7 @@ bool TRighe_condizioni_vendita::user_create() {
_rel= new TRelation(LF_RCONDV); // apre la relazione (un unico file)
_msk->set(F_R_TIPO, _rcondven); // settaggio del campo di tipo archivio
_msk->set_handler(F_R_TIPORIGA, handle_tiporiga); // impostazione dell'handler sul campo di selezione del tipo della riga
_gest_um= TRUE; // abilita la gestione delle unità di misura (di default)
_um= _gest_um; // abilita le unità di misura in base alla configurazione
hide_and_show_codriga(); // invoca la procedura di controllo della mutua esclusione dei tre campi CODRIGA
}
return (gotcha);
@ -142,7 +153,7 @@ void TRighe_condizioni_vendita::hide_and_show_codriga() {
short id_campi_1[4]= { F_R_CODRIGA_A, F_R_CODRIGA_G, F_R_CODRIGA_S, F_R_CODRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione
short id_campi_2[4]= { F_R_DESRIGA_A, F_R_DESRIGA_G, F_R_DESRIGA_S, F_R_DESRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione
char tag_campi[4]= { 'A', 'G', 'S', 'R' }; // vettore dei tag di TIPORIGA per i tre campi CODRIGA in mutua esclusione
bool &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura
bool &_um= app()._um; // prende il riferimento al booleano di abilitazione locale delle unità di misura
TString &_rcondven= app()._rcondven; // prende il riferimento alla stringa di tipo di archivio
char tag_campo= toupper(_msk->get(F_R_TIPORIGA)[0]); // prende il tag del campo da abilitare in TIPORIGA
for (int i=0; i<4; i++) { // ciclo sui quattro campi CODRIGA
@ -154,7 +165,7 @@ void TRighe_condizioni_vendita::hide_and_show_codriga() {
_msk->hide(id_campi_2[i]);
}
}
if (_gest_um && (tag_campo=='A')) { REVIVE(F_R_UM); } // se la gest. delle u.m. è abilitata, il campo viene attivato se la riga è un articolo...
if (_um && (tag_campo=='A')) { REVIVE(F_R_UM); } // se la gest. delle u.m. è abilitata, il campo viene attivato se la riga è un articolo...
else { KILL(F_R_UM); } // ...altrimenti viene disattivato
}
}
@ -167,6 +178,9 @@ bool TRighe_condizioni_vendita::handle_tiporiga(TMask_field &fld, KEY k) {
bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
if ((k==K_TAB) && fld.get().not_empty()) {
bool &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura
bool &_gest_so= app()._gest_so; // prende il riferimento al booleano di abilitazione degli sconti/omaggi
bool &_gest_sca= app()._gest_sca; // prende il riferimento al booleano di abilitazione degli scaglioni
bool &_um= app()._um; // prende il riferimento al booleano di abilitazione locale delle unità di misura
TString &_rcondven= app()._rcondven; // prende il riferimento alla stringa di indicazione del tipo di archivio
TMask *_msk= app()._msk; // prende il puntatore alla maschera principale dell'applicazione
TLocalisamfile condv(LF_CONDV); // apre il file della testata (condizioni di vendita)
@ -186,29 +200,29 @@ bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
break;
}
if (condv.read()==NOERR) { // se la lettura è andata a buon fine abilita/disabilita i campi della maschera in base ai booleani della testata
_gest_um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
if (_gest_um) _um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
hide_and_show_codriga(); // lancia la funzione che si occupa di abilitare/disabilitare il campo "unità di misura"
if (!condv.get_bool("GESTSCAGL")) {
KILL(F_R_NSCAGL); // disabilita il campo "numero scaglione"
_msk->disable(F_R_QLIM); // disabilita il campo "quantità limite scaglione"
} else {
if (_gest_sca && condv.get_bool("GESTSCAGL")) {
REVIVE(F_R_NSCAGL); // abilita il campo "numero scaglione"
_msk->enable(F_R_QLIM); // abilita il campo "quantità limite scaglione"
} else {
KILL(F_R_NSCAGL); // disabilita il campo "numero scaglione"
_msk->disable(F_R_QLIM); // disabilita il campo "quantità limite scaglione"
}
if (condv.get_bool("SCONST") || condv.get_bool("GESTSCO")) _msk->enable(F_R_SCONTO); // abilita il campo "sconto"
if (condv.get_bool("SCONST") || (_gest_um && condv.get_bool("GESTSCO"))) _msk->enable(F_R_SCONTO); // abilita il campo "sconto"
else _msk->disable(F_R_SCONTO); // disabilita il campo "sconto"
if (!condv.get_bool("GESTSCO")) {
if (_gest_so && condv.get_bool("GESTSCO")) {
_msk->enable(F_R_QOM); // abilita il campo "quantità art. omaggio"
_msk->enable(F_R_QBASE); // abilita il campo "quantità base x sconto"
_msk->enable(F_R_CODARTOM); // abilita il campo "codice articolo omaggio"
_msk->enable(F_R_PROMAGGIO); // abilita il campo "prezzo omaggio"
if (_gest_um) _msk->enable(F_R_UMOM); // abilita il campo "unità di misura art. omaggio"
} else {
_msk->disable(F_R_QOM); // disabilita il campo "quantità art. omaggio"
_msk->disable(F_R_QBASE); // disabilita il campo "quantità base x sconto"
_msk->disable(F_R_CODARTOM); // disabilita il campo "codice articolo omaggio"
_msk->disable(F_R_PROMAGGIO); // disabilita il campo "prezzo omaggio"
_msk->disable(F_R_UMOM); // disabilita il campo "unità di misura art. omaggio"
} else {
_msk->enable(F_R_QOM); // abilita il campo "quantità art. omaggio"
_msk->enable(F_R_QBASE); // abilita il campo "quantità base x sconto"
_msk->enable(F_R_CODARTOM); // abilita il campo "codice articolo omaggio"
_msk->enable(F_R_PROMAGGIO); // abilita il campo "prezzo omaggio"
_msk->enable(F_R_UMOM); // abilita il campo "unità di misura art. omaggio"
}
return TRUE;
} else {

View File

@ -1,10 +1,7 @@
USE 34
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG
@ -18,10 +15,7 @@ DESCRIPTION
BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita"
17->* "Clienti/Fornitori per vendite"
20->* "Clienti/Fornitori"
16->* "Indirizzi di spedizione (destinazione)"
116@->* "Indirizzi di spedizione (destinatario)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
202@->* "Tabella agenti"
@ -36,38 +30,37 @@ BEGIN
OFFSET 0 0
FONT "Courier New"
SIZE 12
MODULE BUFFETTI_BOLLA_01
MODULE "BUFFETTI_BOLLA_01"
END
/////////////////////////////////////////////////
SECTION HEADER ODD 33
STRING 1 36 1
BEGIN
KEY "nome ditta"
PROMPT 5 6 ""
MESSAGE _DITTA,!RAGSOC
MESSAGE INIT _DITTA,!RAGSOC
END
STRING 2 36 1
BEGIN
KEY "indirizzo ditta"
PROMPT 5 7 ""
MESSAGE _DITTA,!IND
MESSAGE INIT _DITTA,!IND
END
STRING 3 5 1
BEGIN
KEY "cap ditta"
PROMPT 5 8 ""
MESSAGE _DITTA,!CAP
MESSAGE INIT _DITTA,!CAP
END
STRING 4 30 1
BEGIN
KEY "comune ditta"
PROMPT 12 8 ""
MESSAGE _DITTA,!COM
MESSAGE INIT _DITTA,!COM
END
STRING 5 5 1
@ -80,7 +73,7 @@ STRING 6 16 1
BEGIN
KEY "partita iva ditta"
PROMPT 11 9 ""
MESSAGE _DITTA,!IVA
MESSAGE INIT _DITTA,!IVA
END
STRING 7 9 1
@ -93,50 +86,42 @@ STRING 8 16 1
BEGIN
KEY "codice fiscale ditta"
PROMPT 15 10 ""
MESSAGE _DITTA,!CF
MESSAGE INIT _DITTA,!CF
END
STRING 14 35 2
BEGIN
KEY "destinatario, ditta"
PROMPT 44 16 ""
FIELD 20->RAGSOC
MESSAGE INIT _CLIENTE,!RAGSOC
END
STRING 15 35 2
BEGIN
KEY "destinatario, indirizzo"
PROMPT 44 18 ""
FIELD 20->INDCF
END
STRING 48 5 1
BEGIN
KEY ""
PROMPT 1 1 ""
FLAGS "H"
FIELD 116@->COM
MESSAGE INIT _CLIENTE,!IND
END
STRING 16 5 1
BEGIN
KEY "destinatario, cap"
PROMPT 44 20 ""
MESSAGE _ISAMREAD,13,COM==#48,CAPCOM
MESSAGE INIT _CLIENTE,!CAP
END
STRING 17 30 2
BEGIN
KEY "destinatario, comune"
PROMPT 50 20 ""
MESSAGE _ISAMREAD,13,COM==#48,DENCOM
MESSAGE INIT _CLIENTE,!COM
END
STRING 18 2 1
BEGIN
KEY "destinatario, procincia"
KEY "destinatario, provincia"
PROMPT 72 21 ""
MESSAGE _ISAMREAD,13,COM=#48,PROVCOM
MESSAGE INIT _CLIENTE,!PROV
END
DATE 19 8 1
@ -180,14 +165,14 @@ STRING 33 21 1
BEGIN
KEY "destinazione, comune"
PROMPT 5 20 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM
MESSAGE INIT _ISAMREAD,13,COM=#49,DENCOM
END
STRING 34 2
BEGIN
KEY "destinazione, provincia"
PROMPT 28 20 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM
MESSAGE INIT _ISAMREAD,13,COM=#49,PROVCOM
END
NUMBER 22
@ -230,7 +215,7 @@ STRING 27 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 12 29 ""
FIELD 20->PAIV
MESSAGE INIT _CLIENTE,!IVA
END
STRING 28 18 1
@ -256,8 +241,7 @@ END
END
/////////////////////////////////////////////////
SECTION BODY ODD 1
SECTION BODY ODD 5
STRING 32 13 1
BEGIN
@ -266,13 +250,20 @@ BEGIN
FIELD 34->CODART
END
STRING 33 30 1
STRING 33 10 4
BEGIN
KEY "descrizione articolo"
PROMPT 25 1 ""
FIELD 47->DESCR
END
STRING 90 12 1
BEGIN
KEY "campo di prova per gli allineamenti"
PROMPT 42 1 "allineamento"
MESSAGE INIT _ALIGN,#33,BOTTOM
END
STRING 34 2 1
BEGIN
KEY "unità di misura"
@ -292,12 +283,11 @@ STRING 36 10 1
BEGIN
KEY "quantità lettere"
PROMPT 72 1 ""
MESSAGE _CIFRELETTERE,#35
MESSAGE INIT _CIFRELETTERE,#35
END
END
/////////////////////////////////////////////////
SECTION FOOTER ODD 9
STRING 47 5 1
@ -308,7 +298,6 @@ END
END
/////////////////////////////////////////////////
SECTION FOOTER LAST 9
LIST 37 1 1