Sigo con el asunto del array.
Lo que necesito hacer es "cargar" un array con los datos de dos de _ de una DBF y luego hacer un browse de dos columnas con ese array para que, al hacer doble click sobre una fila realice una acción.
Estuve viendo el ejemplo testarr5.prg pero no me sirve ya que al array lo carga con la función directory( "*.prg" ).
Lo que necesito es un ejemplo completo de como cargarlo y como hojearlo.
Gracias.
Rolando
Array - Ayuda please
que tal Rolando, espero esto te sirva:
(lalias)->(dbgotop())
do while (lalias)->(!eof())
aadd(adatosh,{(lalias)->columna1,(lalias)->columna2})
(lalias)->(dbskip())
enddo
TWBrowse():lHScroll:= .f.
@ 34,02 LISTBOX agets[8] FIELDS "";
HEADERS 'Columna 1','Columna2';
FIELDSIZES 60,100;
ON DBLCLICK haceralgo();
SIZE 228,82 OF ODlg PIXEL
agets[8]:bLine:= {|nAt| nAt:= agets[8]:nAt, If( Len(adatosh) <1 .or. nAt>Len(adatosh),Array(2),;
{adatosh[nAt,1],;
transform(adatosh[nAt,2],'999,999,999.99')
})}
agets[8]:SetArray( adatosh )
saludos.
Alex.
(lalias)->(dbgotop())
do while (lalias)->(!eof())
aadd(adatosh,{(lalias)->columna1,(lalias)->columna2})
(lalias)->(dbskip())
enddo
TWBrowse():lHScroll:= .f.
@ 34,02 LISTBOX agets[8] FIELDS "";
HEADERS 'Columna 1','Columna2';
FIELDSIZES 60,100;
ON DBLCLICK haceralgo();
SIZE 228,82 OF ODlg PIXEL
agets[8]:bLine:= {|nAt| nAt:= agets[8]:nAt, If( Len(adatosh) <1 .or. nAt>Len(adatosh),Array(2),;
{adatosh[nAt,1],;
transform(adatosh[nAt,2],'999,999,999.99')
})}
agets[8]:SetArray( adatosh )
saludos.
Alex.
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Pan chancay.... (expresion que significa.... fácil.....)
local aArray:={}
DO WHILE !EOF()
AADD(aArray , {((cAlias)->MODELO) , ((cAlias)->CHASIS)})
DBSKIP()
ENDDO
IF LEN(aArray) = 0 // por si no se lleno el arreglo
AADD(aArray,{"",""})
ENDIF
DEFINE DIALOG oDlg RESOURCE 1009 OF oWnd
REDEFINE LISTBOX oLbx ;
FIELDS aArray[oLbx:nAt, 1], aArray[oLbx:nAt, 2] ;
HEADERS "MODELO", "CHASSIS" ;
ON DBLCLICK oDlg:End() ; // aqui le pones alguna funcion
SIZES 100, 100 ;
ID 102 OF oDlg
oLbx:SetArray(aArray)
oLbx:cTooltip:='Doble click para selectar ítem y salir'
ACTIVATE DIALOG oDlg CENTER
....
local aArray:={}
DO WHILE !EOF()
AADD(aArray , {((cAlias)->MODELO) , ((cAlias)->CHASIS)})
DBSKIP()
ENDDO
IF LEN(aArray) = 0 // por si no se lleno el arreglo
AADD(aArray,{"",""})
ENDIF
DEFINE DIALOG oDlg RESOURCE 1009 OF oWnd
REDEFINE LISTBOX oLbx ;
FIELDS aArray[oLbx:nAt, 1], aArray[oLbx:nAt, 2] ;
HEADERS "MODELO", "CHASSIS" ;
ON DBLCLICK oDlg:End() ; // aqui le pones alguna funcion
SIZES 100, 100 ;
ID 102 OF oDlg
oLbx:SetArray(aArray)
oLbx:cTooltip:='Doble click para selectar ítem y salir'
ACTIVATE DIALOG oDlg CENTER
....