Newsgroup: it.comp.lang.vo-clipper
Titolo: ma è normale che...

'sera ,
 morto un papa se ne fa un altro, oops risolto un problema ne arriva uno
nuovo...
ho una maschera che esplode un record dati selezionato da un browser.
il primo campo è l'identificativo univoco per quel record. ( chiamiamolo
"vid" )
questa datawin viene invocata sia per modifiche che per inserimenti ed
quindi si popola leggendo i dati dal record del server o con valori nulli
tramite un metodo invocato nel postinit.
Nel EFC c'è un controllo che verifica che la chiave non sia dupliata facendo
una seek sul server e comportandosi di conseguenza.
E' normale che la chiamata all'EFC venga effettuata prima del metodo nel
postinit?
se io sto visualizzando non sto facendo alcun cambio di fuoco, come mai mi
segnala chiave duplicata?
e perchè se indico nelle proprietà dell'indice nel dbserver che non sono
ammesse chiavi duplicate lo ignora?
ps mettendo un piccolo flag, aggiro il problema ma vorrei capire questi
ingarbugliamenti...
chiedo lumi....
the fisher
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ingarbugliamenti...
quale flag?
forse intendi una cosa simile a quanto faccio io:
nella classe della mia DW instanzio sempre le PROTECT:
NUMREC AS DWORD dove in postinit salvo il numero record (oppure 0 se sono in
inserimento)
NUOVO AS LOGIC dove in postinit salvo se la DW è stata aperta in modifica o
inserimento (da cui il comportamento dei suoi metodi)
queste due istanze la DW le riceve nel vettore uExtra, insieme ad altre
(LivelloUtente per sapere cosa può vedere/modificare l'utente
attivo...ecc..)
spero di essere stato utile, e di averti dato materiale su cui pensare... ma
tieni presente che tutto ciò dipende dalle strategie di base che hai deciso
di dare alla tua interfaccia utente.
quello a cui ho accennato dipende dal fatto che le mie procedure sono tutte
in stile browsing, cioè quando apri un archivio viene aperto per intero in
browsing, e su questo browse sono attivi tutti i metodi del caso - filtri,
ricerche, modifica, inserimento, cancellazione, stampa, ecc... (da menu
dedicato al browse) compresa la possibilità di aprire dal browse
contemporaneamente in modifica/inserimento N Datawindow su record diversi.
ma tutto ciò è solo la MIA visione delle cose.
ciao pescatore
Massimo Bighelli
ARCA Sistemi S.r.l.


 


 ha scritto nel messaggio
news:82Z91Z99Z139Y...@usenet.libero.it...

Ciao.
Se ho questi problemi li risolvo così:
Creo una variabile protect nella classe della data windows di tipo logico
(Protect PrimaVolta as logic), nel metodo postinit la metto a vero
(self:PrimaVolta := true), creo il metodo Expose(oExposeEvent) ed
inserisco
questo codice
if self:PrimaVolta
    self:PrimaVolta := false
endif
nel metodo EFC inserisco
if ! self:PrimaVolta
    ...............
    Metti qui tutto il codice di controllo della EFC
    ............
endif
In pratica il metodo Expose viene chiamato quando la finestra e tutti i
controlli sono stati disegnati e quindi si abilita la EFC.
Ciao, Enzo.
----------------------------------------
La mia Cartella di Posta in Arrivo Ã¨ protetta con SPAMfighter
193 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter!