boolgotcha=FALSE;// booleano di avvenuta inizializzazione
_condven="*";// inizializzazione dell'indicatore del tipo di archivio
if(argc()>2)_condven=argv(2);// se c'<27>, prende il tipo di archivio dalla linea di comando
else{
TMaskchoose("VE2200");// istanzia la maschera di scelta del tipo di archivio
if(choose.run()==K_ENTER)_condven=choose.get(F_TIPOCV);// prende il tipo di archivio dalla maschera
}
_condven.upper();// rende la stringa upper-case
_msk=newTMask("VE2200X");
TConfigprassid(CONFIG_DITTA,"ve");// apre il file di configurazione della ditta corrente
switch(_condven[0]){
case'L':{// listini
if(!(prassid.get_bool("GES",NULL,A_LISTINI)))error_box("L'archivio Listini non <20> abilititato");// controlla che l'archivio listini sia abilitato
else{
// eliminazione campi di altri archivi
key_hide(*_msk,F_C_COD);
key_hide(*_msk,F_O_COD);
key_hide(*_msk,F_C_TIPOCF);
key_hide(*_msk,F_C_CODCF);
key_hide(*_msk,F_C_OBBLIG);
key_hide(*_msk,F_C_DESCF);
set_search_field(F_L_COD);// impostazione del campo di ricerca
_msk->set_handler(F_L_CODSUCC,handle_codsucc);// setta l'handler per il campo di codice successivo
_codlis_catven=prassid.get_bool("GESLISCV");// setta il booleano di abilitazione delle categoria di vendita
if(!_codlis_catven)key_disable(*_msk,F_L_CATVEN);// disabilita condizionalmente le categorie di vendita
_gest_um=prassid.get_bool("GESUM",NULL,A_LISTINI);// setta il booleano di abilitazione delle unit<69> 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
gotcha=TRUE;
}
break;
}
case'C':// contratti
if(!(prassid.get_bool("GES",NULL,A_CONTRATTI)))error_box("L'archivio Contratti non <20> abilititato");// controlla che l'archivio listini sia abilitato
else{
// settaggio dei campi da eliminare
key_hide(*_msk,F_L_COD);
key_hide(*_msk,F_O_COD);
key_hide(*_msk,F_L_CATVEN);
key_hide(*_msk,F_L_DESVEN);
key_hide(*_msk,F_L_CODSUCC);
key_hide(*_msk,F_L_DESSUCC);
_codcon_codcf=prassid.get_bool("GESCONCC");// setta il booleano di abilitazione di TIPOCF e CODCF
if(!_codcon_codcf){// disabilita i campi di gestione clienti/fornitori in base al flag. di config.
key_disable(*_msk,F_C_TIPOCF);
key_disable(*_msk,F_C_CODCF);
}
set_search_field(F_C_COD);// impostazione del campo di ricerca
_gest_um=prassid.get_bool("GESUM",NULL,A_CONTRATTI);// setta il booleano di abilitazione delle unit<69> 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
gotcha=TRUE;
}
break;
case'O':// offerte
if(!(prassid.get_bool("GES",NULL,A_OFFERTE)))error_box("L'archivio Offerte non <20> abilititato");// controlla che l'archivio listini sia abilitato
else{
// settaggio dei campi da eliminare
key_hide(*_msk,F_L_COD);
key_hide(*_msk,F_C_COD);
key_hide(*_msk,F_L_CATVEN);
key_hide(*_msk,F_C_TIPOCF);
key_hide(*_msk,F_C_CODCF);
key_hide(*_msk,F_C_DESCF);
key_hide(*_msk,F_L_DESVEN);
key_hide(*_msk,F_C_OBBLIG);
key_hide(*_msk,F_L_CODSUCC);
key_hide(*_msk,F_L_DESSUCC);
set_search_field(F_O_COD);// impostazione del campo di ricerca
_gest_um=prassid.get_bool("GESUM",NULL,A_OFFERTE);// setta il booleano di abilitazione delle unit<69> 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
gotcha=TRUE;
}
break;
default:// messaggio di errore se si indica un archivio non valido
error_box("Indicare l'archivio sulla linea di comando (L, C o O) oppure selezionarla dalla maschera di partenza");
break;
}
if(gotcha){// se <20> stato selezionato correttamente un archivio completa l'inizializzazione
_rel=newTRelation(LF_CONDV);// apre la relazione (un unico file)
_msk->set(F_TIPO,_condven);// settaggio del campo di tipo archivio
_msk->set_handler(handle_mask);// imposta l'handler generale della maschera
_msk->set_handler(F_DATACAM,handle_datacam);// imposta l'handler per il campo della data del cambio
_msk->set_handler(F_VALFIN,handle_valfin);// imposta l'handler per il campo di fine validit<69>
if(!_gest_um)_msk->disable(F_GESTUM);// disabilita condizionalmente il booleano di gestione delle unit<69> di misura
if(!_gest_sca)_msk->disable(F_GESTSCAGL);// disabilita condizionalmente il booleano di gestione degli scaglioni
if(!_gest_so)_msk->disable(F_GESTSCO);// disabilita condizionalmente il booleano di gestione degli sconti/omaggi
_gest_val=prassid.get_bool("GESVAL");// legge il booleano di abilitazione delle gastione delle valute
if(!_gest_val){// se la gestione delle valute <20> disabilitata i campi di gestione vengono disabilitati
TRelationdelrel(LF_RCONDV);// istanzia una relazione sulle righe
TCursordelcur(&delrel,"",1,&delrec,&delrec);// istanzia il cursore di cancellazione sulla relazione delle righe
longn=delcur.items();// legge il numero di elementi del cursore
delcur.freeze();// congela il cursore al suo stato attuale
boolproceed=FALSE;// istanzia il booleano di conferma alla cancellazione
if(n==1)proceed=yesno_box("Esiste una riga collegata a questa testata: verr<72> anch'essa cancellata. Procedo?");// viene richiesta conferma alla cancellazione della riga...
if(n>1)proceed=yesno_box("Esistono %ld righe collegate a questa testata: verranno anch'esse cancellate. Procedo?",n);// ...o delle righe
if(proceed){// se si conferma le righe vengono cancellate