conversione degli items di un combobox
Moderator: Enrico Maria Giordano
conversione degli items di un combobox
Caro Emg ho visto la tua risposta sull'altro forum
il mio problema è semplice
In automatico con una mia funzione specifica quando apro un archiviomi carico il testo dell'index di questo archivio cioè "per nome", "per cognome" caricandolo in un array e con il combobox potevo far funzionare gli items dello stesso poi mettendo naturalmente un "on change selindex(ocbx:nAt)" cosi il listbox si indicizzava sull'indice prescelto .
Adesso eliminando il combobox dal dialogo volendo usare il tab in fondo al xbrowse volevo fare la stessa cosa cioè farmi visualizzare tanti tabs per quanti indici dell'archivio quindi su aa[1] verrà memorizato "per nome", in aa[2] verrà memorizzato "per cognome" .
se io metto l'array nell'istruzione @tabs... Items aa quando vado a compilare mi fa errore STRtran come mai ?
Spero che tu abbia capito il problema
grazie
il mio problema è semplice
In automatico con una mia funzione specifica quando apro un archiviomi carico il testo dell'index di questo archivio cioè "per nome", "per cognome" caricandolo in un array e con il combobox potevo far funzionare gli items dello stesso poi mettendo naturalmente un "on change selindex(ocbx:nAt)" cosi il listbox si indicizzava sull'indice prescelto .
Adesso eliminando il combobox dal dialogo volendo usare il tab in fondo al xbrowse volevo fare la stessa cosa cioè farmi visualizzare tanti tabs per quanti indici dell'archivio quindi su aa[1] verrà memorizato "per nome", in aa[2] verrà memorizzato "per cognome" .
se io metto l'array nell'istruzione @tabs... Items aa quando vado a compilare mi fa errore STRtran come mai ?
Spero che tu abbia capito il problema
grazie
Best Regards, Saludos
Falconi Silvio
Falconi Silvio
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: conversione degli items di un combobox
Francamente no, non l'ho capito. Probabilmente perché non conosco l'xBrowse. Ma il mio esempio c'entra qualcosa con il tuo problema?
EMG
EMG
no non centra il xbrowse
immagina di avere un listbox e sotto al listbox ho posizionato un controllo tab con diversi tab " per nome","per cognome","per città"
nel vecchio programma io non usavo i tab ma usavo un combo dove mi caricavo gli items del combo in un array aaa[n]
però in non so di preciso il numero n
con una mia funzione quando apro l'archivio vado a controllare in un archivio di sistema quanti e quali indici abbia questo archivio ad esempio clienti ha tre indici il primo è per nome quindi inserisco nell'array la stringa "per nome" e cosi via
nel vecchi programma io usavo un combo nel quale erano visualizzati tutti questi items
l'utente selezionava un item e il listbox automaticamente si indicizzava sull'indice relativo
REDEFINE COMBOBOX oCbx VAR cVar ITEMS aIdx ID 210 OF oDlg;
ON CHANGE Sel_Index(oCbx)
Ora io vorrei sostituite il combo con il tab cosi che l'utente finale potesse cliccare su ogni prompt del tab e indicizzare il listbox per l'indice relativo
quindi devo fare un'istruzione :
@ nGridBottom, nSplit+2 TABS oApp():oTab ;
OPTION nOrder SIZE oApp():oWndMain:nWidth()-80, 12 PIXEL OF oApp():oDlg ;
ITEMS aIdx
dove aIdx è l'array con le stringhe relative agli indici
però quando compilo mi fa errore strtran
spero tu abbia capito adesso
immagina di avere un listbox e sotto al listbox ho posizionato un controllo tab con diversi tab " per nome","per cognome","per città"
nel vecchio programma io non usavo i tab ma usavo un combo dove mi caricavo gli items del combo in un array aaa[n]
però in non so di preciso il numero n
con una mia funzione quando apro l'archivio vado a controllare in un archivio di sistema quanti e quali indici abbia questo archivio ad esempio clienti ha tre indici il primo è per nome quindi inserisco nell'array la stringa "per nome" e cosi via
nel vecchi programma io usavo un combo nel quale erano visualizzati tutti questi items
l'utente selezionava un item e il listbox automaticamente si indicizzava sull'indice relativo
REDEFINE COMBOBOX oCbx VAR cVar ITEMS aIdx ID 210 OF oDlg;
ON CHANGE Sel_Index(oCbx)
Ora io vorrei sostituite il combo con il tab cosi che l'utente finale potesse cliccare su ogni prompt del tab e indicizzare il listbox per l'indice relativo
quindi devo fare un'istruzione :
@ nGridBottom, nSplit+2 TABS oApp():oTab ;
OPTION nOrder SIZE oApp():oWndMain:nWidth()-80, 12 PIXEL OF oApp():oDlg ;
ITEMS aIdx
dove aIdx è l'array con le stringhe relative agli indici
però quando compilo mi fa errore strtran
spero tu abbia capito adesso
Best Regards, Saludos
Falconi Silvio
Falconi Silvio
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Trovato! Fai così:
EMG
Code: Select all
#include "Fivewin.ch"
FUNCTION MAIN()
LOCAL oDlg
LOCAL oTabs
LOCAL aIdx := { "Per nome", "Per cognome" }
DEFINE DIALOG oDlg
@ 0, 0 BUTTON "Change";
ACTION ( oTabs:aPrompts[ 2 ] := "Changed",;
oTabs:Refresh() )
@ 2, 0 TABS oTabs;
OPTION 2
oTabs:aPrompts = aIdx
ACTIVATE DIALOG oDlg;
CENTER
RETURN NIL
si funziona l'esempietto solo che io non so quanti indici ha un archivio
cioè io uso un archivio di systema con questi campi
tabella = nome dell'archio per esempio clienti.dbf
index = nome del tag cdx per esempio clinum.cdx
chiave = nome della chiave sul quale indicizzare l'archivio per esempio numcli
filename = informazioni dell'archivio per esempio anagrafica clienti
commento = testo dell'indice per esempio "per numero"
per ogni archivio dbf io inserisco in questo archivio di sistema tante linee quanti sono gli indici
nella funzione Apri_dbf io mi apro il file in rete gli assegno un alias e vado a indicizzare l'archivio per tutti gli indici e setto nell'array aidx il commento relativo agli indici creati per quell'archivio
in sostanza per aprire un file faccio :
la quarta linea non vuol dire che di indici ce ne sono due ma setto la variabile cvar al secondo index
Tutto questo per farti capire che io in realtà non conosco il numero degli indici glielo faccio calcolare in automatico con la funzione apri_dbf facendogli un loop nell'archivio di sistema detto sopra per cui lui apre l'archivio , caricagli indici e i commenti in aIdx , fa il focus nel secondo indice , va all'inizio del file, e assegna la variabile cvar
la variabile cvar mi serviva nel combobox
io uso questa tecnica per usare tanti archivi in un programma senza incappare nel famoso errore "alias don't exist" specialmente quando uso diverse finestre in mdi con gli stessi archivi , asegnando loro diversi alias
questa tecnica funzionante l'ho trovata in un vecchio programma di contabilità in clipper , e non mi ha dato mai problemi
se vuoi ti invio in privato le funzioni
apri_dbf/chiudi_dbf/verify_dbf/occupato
cioè io uso un archivio di systema con questi campi
tabella = nome dell'archio per esempio clienti.dbf
index = nome del tag cdx per esempio clinum.cdx
chiave = nome della chiave sul quale indicizzare l'archivio per esempio numcli
filename = informazioni dell'archivio per esempio anagrafica clienti
commento = testo dell'indice per esempio "per numero"
per ogni archivio dbf io inserisco in questo archivio di sistema tante linee quanti sono gli indici
nella funzione Apri_dbf io mi apro il file in rete gli assegno un alias e vado a indicizzare l'archivio per tutti gli indici e setto nell'array aidx il commento relativo agli indici creati per quell'archivio
in sostanza per aprire un file faccio :
Code: Select all
oDCli:=Apri_dbf("Soci",.T.,.T.,aIdx)
(oDCli)->(OrdSetFocus(2))
(oDCli)->(DbGoTop())
cVar:=aIdx[2]
la quarta linea non vuol dire che di indici ce ne sono due ma setto la variabile cvar al secondo index
Tutto questo per farti capire che io in realtà non conosco il numero degli indici glielo faccio calcolare in automatico con la funzione apri_dbf facendogli un loop nell'archivio di sistema detto sopra per cui lui apre l'archivio , caricagli indici e i commenti in aIdx , fa il focus nel secondo indice , va all'inizio del file, e assegna la variabile cvar
la variabile cvar mi serviva nel combobox
io uso questa tecnica per usare tanti archivi in un programma senza incappare nel famoso errore "alias don't exist" specialmente quando uso diverse finestre in mdi con gli stessi archivi , asegnando loro diversi alias
questa tecnica funzionante l'ho trovata in un vecchio programma di contabilità in clipper , e non mi ha dato mai problemi
se vuoi ti invio in privato le funzioni
apri_dbf/chiudi_dbf/verify_dbf/occupato
Best Regards, Saludos
Falconi Silvio
Falconi Silvio
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact: