Volver a cargar una tabla en xBrowse

Volver a cargar una tabla en xBrowse

Postby acuellar » Wed Nov 03, 2010 9: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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby wmormar » Wed Nov 03, 2010 10:29 pm

acuellar,

Code: Select all  Expand view
oBrw:aArrayData := aArrayModificado
oBrw:refresh()
 
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Volver a cargar una tabla en xBrowse

Postby acuellar » Thu Nov 04, 2010 12:32 pm

Gracias William, funciona perfecto.

Hago lo siguiente:
Code: Select all  Expand view

  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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby wmormar » Thu Nov 04, 2010 7:00 pm

acuellar,

Haber si esto te funciona según tu idea,

Code: Select all  Expand view

     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
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Volver a cargar una tabla en xBrowse

Postby acuellar » Thu Nov 04, 2010 7: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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby wmormar » Thu Nov 04, 2010 9: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
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Volver a cargar una tabla en xBrowse

Postby acuellar » Thu Nov 04, 2010 9:55 pm

Gracias William.

Entonces estoy haciendo lo correcto.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby MarioG » 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Volver a cargar una tabla en xBrowse

Postby acuellar » Mon Nov 08, 2010 1: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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby MarioG » Mon Nov 08, 2010 2: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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Volver a cargar una tabla en xBrowse

Postby acuellar » Mon Nov 08, 2010 2:56 pm

Gracias Mario,

No estoy entendiendo tu ejemplo

Lo podes poner un poco más claro.


Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Volver a cargar una tabla en xBrowse

Postby MarioG » Mon Nov 08, 2010 3:15 pm

Code: Select all  Expand view

   // 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 22 guests