FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Volver a cargar una tabla en xBrowse
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Volver a cargar una tabla en xBrowse
Posted: Wed Nov 03, 2010 09:17 PM

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

Saludos,



Adhemar C.
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Wed Nov 03, 2010 10:29 PM
acuellar,

Code (fw): Select all Collapse
oBrw:aArrayData := aArrayModificado
oBrw:refresh()
William, Morales

Saludos



m茅xico.sureste
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Thu Nov 04, 2010 12:32 PM
Gracias William, funciona perfecto.

Hago lo siguiente:
Code (fw): Select all Collapse
  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()

C贸mo recorro la tabla completa sin cargarla al browse? para evitar: oBrw:aArrayData:=aDatPer

Como cargo el registro completo a la tabla nueva sin especificar columna, columna,.. AADD( aFilter,{aDatPer[ oBrw:nArrayAt ][1],aDatPer[ oBrw:nArrayAt ][2],

Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Thu Nov 04, 2010 07:00 PM
acuellar,

Haber si esto te funciona seg煤n tu idea,

Code (fw): Select all Collapse
聽 聽 聽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()


Pensando que son las mismas columnas, si las columnas fuesen diferentes en cantidad o tipo, podr铆a generarse un error.
William, Morales

Saludos



m茅xico.sureste
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Thu Nov 04, 2010 07:21 PM

Gracias William,

Eso era lo que necesitaba. Funcion贸 perfecto.

Existe alguna sentencia como Setfilter o Scope para tablas?

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Thu Nov 04, 2010 09:44 PM
acuellar wrote:Gracias William,

Eso era lo que necesitaba. Funcion贸 perfecto.

Existe alguna sentencia como Setfilter o Scope para tablas?

Saludos,

Adhemar


Si te refieres a Arreglos, no he visto algo de filtrado, solo creando un arreglo temporal.
William, Morales

Saludos



m茅xico.sureste
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Thu Nov 04, 2010 09:55 PM

Gracias William.

Entonces estoy haciendo lo correcto.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Mon Nov 08, 2010 12:43 PM

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

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Mon Nov 08, 2010 01:46 PM

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

Saludos,



Adhemar C.
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Mon Nov 08, 2010 02:22 PM

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

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Mon Nov 08, 2010 02:56 PM

Gracias Mario,

No estoy entendiendo tu ejemplo

Lo podes poner un poco m谩s claro.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Volver a cargar una tabla en xBrowse
Posted: Mon Nov 08, 2010 03:15 PM
Code (fw): Select all Collapse
   // 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 )
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion