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 :
- Code: Select all Expand view
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