Hola amigos,
Cargo la tabla con oBrw:SetArray(aTabla, .T.)
luego creo otra tabla con el mismo nombre quitando algunos registros y necesito volver a cargarla.
C贸mo lo hago?
Gracias por la ayuda.
Saludos,
Adhemar
Adhemar C.
Hola amigos,
Cargo la tabla con oBrw:SetArray(aTabla, .T.)
luego creo otra tabla con el mismo nombre quitando algunos registros y necesito volver a cargarla.
C贸mo lo hago?
Gracias por la ayuda.
Saludos,
Adhemar
oBrw:aArrayData:=aDatPer
aFilter:={}
For vI:=1 To Len(aDatPer)
If aDatPer[ oBrw:nArrayAt ][9]=xCC
AADD( aFilter,{aDatPer[ oBrw:nArrayAt ][1],aDatPer[ oBrw:nArrayAt ][2],aDatPer[ oBrw:nArrayAt ][3],aDatPer[ oBrw:nArrayAt ][4],aDatPer[ oBrw:nArrayAt ][5],aDatPer[ oBrw:nArrayAt ][6],aDatPer[ oBrw:nArrayAt ][7],aDatPer[ oBrw:nArrayAt ][8],aDatPer[ oBrw:nArrayAt ][9] } )
Endif
oBrw:Skip()
Next vI
Endif
oBrw:aArrayData:=aFilter
oBrw:SetFocus();oBrw:Refresh();oBrw:Gotop()聽 聽 聽aFilter:={}
聽 聽 聽For EACH aRow IN aDatPer
聽 聽 聽 聽 If aRow[9]=xCC
聽 聽 聽 聽 聽 聽AADD( aFilter, aRow )
聽 聽 聽 聽 聽Endif
聽 聽 聽 Next
聽 聽 Endif
聽 聽 oBrw:aArrayData:=aFilter
聽 聽 oBrw:SetFocus()
oBrw:Refresh()
oBrw:Gotop()Gracias William,
Eso era lo que necesitaba. Funcion贸 perfecto.
Existe alguna sentencia como Setfilter o Scope para tablas?
Saludos,
Adhemar
acuellar wrote:Gracias William,
Eso era lo que necesitaba. Funcion贸 perfecto.
Existe alguna sentencia como Setfilter o Scope para tablas?
Saludos,
Adhemar
Gracias William.
Entonces estoy haciendo lo correcto.
Saludos,
Adhemar
Otra Opcion;
Defino un array por ejemplo aLista:= { {"", 0, 0} }
De esta forma defino el xBrowse de manera que me muestra el browse vacio. Para este caso debe ser asi por que se rellena, luego, en base a un rango de fecha. De manera que introducida las fechas, paso a rellenar el array
for each aItem in aLista // Previamente lo redimensione segun el Len de lo que devuelve el rango de fechas
if condicion...
aItem[1]:= ...
aItem[2]:= ...
aItem[3]:= ...
area->( dbSkip() )
end
oMeter:Set( HB_EnumIndex() )
next
// Para El browse solo hago:
oBrw:SetArray( aLista )
oBrw:Refresh()
Saludos
Gracias Mario,
La idea es que cambie el contenido el browse mediante un Radio
Ej: Todos o por sector
Al entrar muestra todo, si le doy por sector, vuelvo a cargar la tabla con la condici贸n.
Saludos,
Adhemar
Adehmar;
Ser铆a como mi ejemplo, que cambia para distintos rangos de fecha.
En tu caso, al cambiar de radio, luego de todo el proceso que con lleva; incluis :SetArray(aTuarray), :Refresh()
como dije; es otra opcion
Gracias Mario,
No estoy entendiendo tu ejemplo
Lo podes poner un poco m谩s claro.
Saludos,
Adhemar
// SetArray
hS4:aLiquida:= { { "", 0, 0 } }
// Dialogo
DEFINE DIALOG oDlg RESOURCE "brw_Liquidacion" TITLE "Tabla de Liquidaci贸n"
oDlg:lHelpIcon:= FALSE
REDEFINE BTNBMP aO[_BFilM] PROMPT "" ID 500 OF oDlg NOBORDER ;
RESNAME "bmp_FiltraM" ;
TOOLTIP "Filtrar Movimientos" ;
ACTION oSelf:hSaldoCta["SaldoAnt"]:= 0, ;
if( oSelf:FiltraMovimientos( dDesde, dHasta), ; // Ac谩 va a determinar el Len del Array
( oSelf:oBrw3:SetArray( hS4:aLiquida ), ; // Establece el nuevo array
oSelf:oBrw3:Refresh() ), ) // lo refresca
// xBrowse
::oBrw3:= TXBrowse():New( oDlg )
::oBrw3:SetArray( hS4:aLiquida )
WITH OBJECT ::oBrw3
... // Parametros de las columnas
END
::oBrw3:CreateFromResource( 300 )
ACTIVATE DIALOG oDlg CENTER
//-------------------
METHOD FiltraMovimientos( dDesde, dHasta )
... Defino el Len con dDesde-dHasta y, cargo el array
for each aItem in hS4:aLiquida
aItem[1]:= SQLarea->FMOV05
aItem[2]:= if( SQLarea->FMOV06 > 0, SQLarea->FMOV06, 0 )
aItem[3]:= if( SQLarea->FMOV06 < 0, SQLarea->FMOV06, 0 )
SQLarea->( dbSkip() )
oMeter:Set( HB_EnumIndex() )
next
... luego, vuelve y, establece y refresca el nuevo array
retrun( l )