Newsgroup: it.comp.lang.vo-clipper
Titolo: Help...

Cari Ragazzi (si fa per dire :-)))
Qualcuno mi sa risolvere questo problema ?
In una applicazione devo gestire un magazzino dove ho tanti articoli di
vestiario. Pantaloni giacche camice cappelli ecc...
Nella finestra di inseriemnto ho tre Combo:
la prima che seleziona un codice articolo di magazzino
la seconda seleziona una taglia
la terza seleziona un colore.
Tutte e tre la combo "pescano" a tre tabelle dei codici.
La combinazione di queste tre scelte, forma un codice univoco composto dal
codice articolo+codice taglia
+codice colore.
Ma si possono avere articoli che hanno solo la taglia e non il colore,
oppure solo il colore e non la taglia,
oppure né colore né taglia ecc...
Insomma io devo controllare:
se in una delle combo del colore o taglia non seleziono alcun item, al
rispettivo codice deve mettere "000"
e fin qui tutto bene.
Ma devo controllare anche se l'operatore scrive erroneamente una taglia o un
colore, così ... da solo, senza selezionarne uno dalla lista. In tal caso mi
deve segnalare un errore. Ho provato con la proprietà "dropdown list" ma non
va bene perché non mi dà la possibilità di cancellare l'eventuale scritta
errata.
In pratica per le proprietà value e textvalue sembra che non faccia
differenza tra il fatto di non selezionare niente oppure scrivere da soli un
item che non è nella lista.
Qualcuno mi può aiutare ?
In pratica quando in uno dei due (o tutti e due ) combo scrivo da solo una
taglia o coloreche non è nella lista
mi dovrebbe dare errore !!!
Grazie
Enio Donci

 errata.
Basta che prevedi un elemento vuoto nella lista.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

Non ho capito. Se usi il dropdownlist non puoi scriverci dentro, quindi come
fa l'operatore ad inserirvi dati?
Io di solito aggiungo all'array del Fillusing() un campo con textvalue
"NESSUNO" e con il valore che mi serve, nel tuo caso 000 e lo imposto di
default all'apertura della finestra. Cosě se non si seleziona niente dal
quel combo box resta il valore nullo.
Ciao.
                                    Francesco

 quel combo box resta il valore nullo.
Potrebbe essere una soluzione ma... mi sembra un pň bruttina !!!
comunque grazie mille
Enio

 ha scritto nel messaggio
news:rfLzb.49213$AX1.1...@news1.tin.it...



No Enio, non puoi proprio scrivere niente perchè il combobox è read only!!!
Forse stai confondendo la proprietà del combobox:
se è DropDown puoi scriverci dentro oltre che selezionare uno dei valori, se
è DropDownList puoi solo selezionare una voce ma non puoi scriverci niente.
Se provi a scrivere non fai altro che attivare la ricerca testuale entro i
valori disponibili.
Ammesso che tu usi il DropDown, comunque, puoi svuotarlo come e quando vuoi
utilizzando il value o il textvalue.
Ciao.
                                                Francesco

 vuota la combo !!!
METHOD EditFocusChange(oEditFocusChangeEvent) CLASS PrDataWin
 LOCAL oControl AS Control
 LOCAL lGotFocus AS LOGIC
 LOCAL cTexItem AS STRING
 LOCAL nPos AS DWORD
 LOCAL lExact := SetExact()
 oControl := IIf(oEditFocusChangeEvent == NULL_OBJECT, NULL_OBJECT,
oEditFocusChangeEvent:Control)
 lGotFocus := IIf(oEditFocusChangeEvent == NULL_OBJECT, FALSE,
oEditFocusChangeEvent:GotFocus)
 SUPER:EditFocusChange(oEditFocusChangeEvent)
 //Put your changes here
 DO CASE
    CASE oControl:NameSym == #ComboBox1 .and. !lGotFocus
         SetExact(TRUE)
         cTexItem := SELF:oDCComboBox1:CurrentText
         //Potrebbe essere anche          cTexItem := SELF:ComboBox1
         nPos := AScanExact(SELF:aProvaCb,{|aVal| aVal[1] = cTexItem })
          IF nPos = 0
               SELF:ComboBox1:= "000"
               //Oppure SELF:ComboBox1:= Nil  se intendi cancellare il testo
          ENDIF
          SetExact(lExact)
    END CASE
 RETURN NIL
Spero di aver capito il problema.
Ciao
Mario Costantino