Problema con tccolumn:New

Moderator: Enrico Maria Giordano

Post Reply
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Problema con tccolumn:New

Post by Marco Turco »

Salve,
sto cercando di creare un browse di un array senza utilizzare i comandi ADD COLUMN ma direttamente scrivendo il codice.
Il problema è che creando le colonne così appena eseguo il browse mi appare un errore di array access.

Credo di aver definito male il codice per assegnare le colonne al browser ma non capisco come altro fare. Ho preso spunto da tccolumn.ch.

Qualche idea ?

Questo è un codice di esempio:


aBrwArray:=array(0,2)
aadd(aBrwArray,{"01","Primo"})
aadd(aBrwArray,{"02","Secondo"})

@ 1.5,5 COLUMN BROWSE aObjects[6] OF oWnd SIZE 150, 135
aObjects[6]:SetArray(aBrwArray)

aObjects[6]:AddColumn(TCColumn:New("Num",aObjects[6]:aArray[aObjects[6]:nAt,1],,,,,100))

aObjects[6]:AddColumn(TCColumn:New("Titolo",aObjects[6]:aArray[aObjects[6]:nAt,2],,,,,100))
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Enrico Maria Giordano
Posts: 8753
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Re: Problema con tccolumn:New

Post by Enrico Maria Giordano »

Per favore, prepara un microesempio che mostri il problema e che sia compilabile.

EMG
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Ecco un self-contained che mostra il problema.
www.softwarexp.co.uk/beta/test.zip

il problema è sicuramente sulla sintassi che utilizzo per aggiungere le colonne al browse, però mi sono basato sulla conversione comando->codice di tccolumn.ch (vedi cartella include di FWH).

Che ne pensi ?
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Ugo
Posts: 283
Joined: Sat Oct 15, 2005 6:40 am
Location: Turin, Italy

Post by Ugo »

Prova così:

Code: Select all | Expand

    @ 1,2 COLUMN BROWSE aObjects[6] OF oWndChild SIZE 250, 195
    aObjects[6]:cAlias := "ARRAY"
    aObjects[6]:nAt    := 1
    aObjects[6]:AddColumn( TCColumn():New("Num",;
                                          {|| aBrwArray[aObjects[6]:nAt, 1] },;
                                          ,;
                                          ,;
                                          ,;
                                          ,;
                                          100 ))
    aObjects[6]:AddColumn( TCColumn():New("Title",;
                                          {|| aBrwArray[aObjects[6]:nAt, 2] },;
                                          ,;
                                          ,;
                                          ,;
                                          ,;
                                          100 ))
    aObjects[6]:SetArray(aBrwArray)
   oWndChild:SetControl( aObjects[6] )
Ciao, best regards,
Ugo
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Niente da fare. Il browse appare ma vuoto.

Comunque ho risolto con:

aObjects[6]:AddColumn(TCColumn():New("Num",{|x| ;
If(Pcount()>0, aObjects[6]:aArray[aObjects[6]:nAt, 1] :=x, aObjects[6]:aArray[aObjects[6]:nAt, 1])},,,,,100))

anche se mettendo questo codice in un ciclo for per creare tutte le colonne automaticamente mi appare un errore di array access.

In pratica vorrei fare qualcosa tipo

For i:=1 to 2
aObjects[6]:AddColumn(TCColumn():New("Num",{|x| ;
If(Pcount()>0, aObjects[6]:aArray[aObjects[6]:nAt, i] :=x, aObjects[6]:aArray[aObjects[6]:nAt, i])},,,,,100))

next
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Ok. Risolto. Grazie.
Best Regards,

Marco Turco
SOFTWARE XP LLP
Post Reply