FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Replace all en Xbrowse
Posts: 38
Joined: Tue Jan 22, 2019 08:28 AM

Replace all en Xbrowse

Posted: Thu Feb 14, 2019 12:06 PM

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 registros cargados 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,

Jorge

--------------------------------------------------

Fivewin 18.10 - Harbour - BCC 7 - PellesC

--------------------------------------------------
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Replace all en Xbrowse

Posted: Thu Feb 14, 2019 08:41 PM
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 (fw): Select all Collapse
//------------------------
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.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Re: Replace all en Xbrowse

Posted: Fri Feb 15, 2019 02:23 AM
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 registros cargados 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 (fw): Select all Collapse
#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


Regards



G. N. Rao.

Hyderabad, India
Posts: 38
Joined: Tue Jan 22, 2019 08:28 AM

Re: Replace all en Xbrowse

Posted: Fri Feb 15, 2019 04:08 PM

Muchas gracias Francisco,

La opcion 1 funciona perfecto,

Saludos,

Jorge

--------------------------------------------------

Fivewin 18.10 - Harbour - BCC 7 - PellesC

--------------------------------------------------

Continue the discussion