Page 1 of 1

Replace all en Xbrowse

Posted: Thu Feb 14, 2019 12:06 pm
by Jorge_T
Hola, buenos dias,

Tengo cargado un dbf en un xbrowse (campos: codigo, nombre, tarifa, ...) y desearia que al pulsar un "button" cambiase para todos los _ el contenido del campo tarifa por otro. (Es decir un replace tarifa with "text" all)

Quizas es muy simple, pero no se como hacerlo en xbrowse,

Muchas gracias por vuestra ayuda,

Re: Replace all en Xbrowse

Posted: Thu Feb 14, 2019 8:41 pm
by FranciscoA
Hola.
Si entendí bien, creo que puedes hacerlo de dos maneras. Mira si el siguiente codigo ejemplo te es útil y lo adaptas a tus necesidades.

Code: Select all

//------------------------
Function Prueba()
local oDlg, oBrw, cOldSele:=Select()

   DBSELECTAREA("MAEPRODT")
   copy to c:\mae for maeprodt->(Recno()) <= 15
   DbUseArea(.t.,,"c:\mae","mae",.f.)

DEFINE DIALOG oDlg FROM 1,2 to 20,80 TITLE "FapSoft"

@.10,.10 XBROWSE oBrw OF oDlg ; 
     COLUMNS "CODIGO","DESCRIP","PVENTA" ;
     ALIAS "mae"  CELL LINES FOOTERS AUTOSORT

     oBrw:CreateFromCode()

 @7,2 BUTTON "Action" OF oDlg SIZE 30, 12   ACTION DoAction(oBrw)

 @7,8 BUTTON "Salir"  OF oDlg SIZE 30, 12   ACTION oDlg:End()
 
 ACTIVATE DIALOG oDlg  CENTERED ;
   ON INIT ( oBrw:nHeight:=oDlg:nHeight-80, oBrw:nWidth:=oDlg:nWidth-40, oBrw:nTop:=oDlg:nTop+0.50 )

   mae->(dbCloseArea())
   Ferase("c:\mae.dbf")

   dbSelectArea(cOldSele)
Return nil
//----------------------------
Function DoAction(oBrw)
local cAlias := oBrw:cAlias, n

/*
//Modo 1
(cAlias)->(dbgotop())
While (cAlias)->(!eof())
    (cAlias)->Pventa := 5.00
    (cAlias)->(dbSkip())
Enddo
(cAlias)->(dbgotop())
oBrw:Refresh()
*/

//Modo 2
For n := 1 to oBrw:nLen
    oBrw:PVenta:Value := 5.00  //ó oBrw:aCols[3]:Value
    oBrw:GoDown()
Next
oBrw:GoTop()
oBrw:Refresh()

Return nil

 
Saludos.

Re: Replace all en Xbrowse

Posted: Fri Feb 15, 2019 2:23 am
by nageswaragunupudi
Jorge_T wrote:Hola, buenos dias,

Tengo cargado un dbf en un xbrowse (campos: codigo, nombre, tarifa, ...) y desearia que al pulsar un "button" cambiase para todos los _ el contenido del campo tarifa por otro. (Es decir un replace tarifa with "text" all)

Quizas es muy simple, pero no se como hacerlo en xbrowse,

Muchas gracias por vuestra ayuda,
Please try this sample and adapt to your needs.

Code: Select all

#include "fivewin.ch"

function Main()

   local oDlg, oBrw

   USE CUSTOMER NEW SHARED

   DEFINE DIALOG oDlg SIZE 700,400 PIXEL TRUEPIXEL

   @ 70,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE "CUSTOMER" ;
      COLUMNS "FIRST", "LAST", "STREET", "CITY", "STATE" ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :City:lHide   := .t.
      :CreateFromCode()
   END

   @ 10, 20 BTNBMP PROMPT "SHOW Street" SIZE 120,40 PIXEL OF oDlg FLAT ;
      ACTION ( oBrw:Street:Show(), oBrw:City:Hide(), oBrw:SetFocus() )

   @ 10,150 BTNBMP PROMPT "SHOW City"   SIZE 120,40 PIXEL OF oDlg FLAT ;
      ACTION ( oBrw:Street:Hide(), oBrw:City:Show(), oBrw:SetFocus() )

   ACTIVATE DIALOG oDlg CENTERED

return nil
 
Image

Re: Replace all en Xbrowse

Posted: Fri Feb 15, 2019 4:08 pm
by Jorge_T
Muchas gracias Francisco,

La opcion 1 funciona perfecto,

Saludos,