FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Refrescar datos en Folder - SOLUCIONADO
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Refrescar datos en Folder - SOLUCIONADO
Posted: Mon Feb 28, 2011 06:10 PM
Amigos

Estoy usando, por vez primera, un folder que pertenece a un modulo1 para rellenar datos provenientes de un un browse perteneciente a un modulo2. El inconveniente es que los datos procedentes del browse no aparecen en el Folder sino hasta que vuelva a clickar en el GET que ha solicitado el dato.

Por fa' ¿hay manera de refrescar el get del folder de una manera simple?

Este es el trozo de codigo:
Function CtaBco()

DEFINE DIALOG oDlg1 ;
RESOURCE "MiFolder" ;
of oWndBCO

oDlg1:cCaption := Title
oDlg1:lHelpIcon := .f.
oDlg1:bGotfocus := {|| oNombre:Setfocus(), oFld:refresh()}

REDEFINE FOLDER oFld ID 333 OF oDlg1 ;
PROMPT "Datos Generales", ;
"Observaciones";
DIALOGS "Dlg_1", "Dlg_2" ;
UPDATE

oFld:lWin95Look := .T.

REDEFINE GET oCuenta VAR CTABCO ;
OF oFld:aDialogs[1] ;
ID 336 PICTURE "@ !" ;
VALID (IIF(EMPTY(CTABCO), ; // para mostrar el dato recibido se tiene que clickar nuevamente en este GET
( CatchCta(oCuenta, CTABCO), oFld:refresh(), oCuenta:Setfocus(), oCuenta:refresh(), .T. ), .F.)) ;
UPDATE

ACTIVATE DIALOG oDlg1 CENTERED


oFont:end()
oFont1:end()
SELECT(cAlias)
DBGOTO(nRec)

RETURN NIL

FUNCTION CatchCta( oCuenta, cCTABCO )
*
LOCAL oDlg, oBrw, oBtn1, oBtn2, oBtn3, oBtn4, oBtn5
LOCAL nRec, lOk := .F.
LOCAL cAlias := ALIAS()
* ---Initialize database file.
SELECT Cta
DBGOTOP()
*
* ---Main execution loop.
DEFINE DIALOG oDlg RESOURCE "BrwABMP" ;
TITLE "Cuentas Contables"
oDlg:lhelpicon:= .F.

REDEFINE LISTBOX oBrw ;
ALIAS Cta ;
FIELDS ;
Cta->CTA_CODIGO, ;
Cta->CTA_DESCRI ;
HEADERS ;
"Código", ;
"Cuenta Contable" ;
ID 101 ;
ON DBLCLICK (lOk := .T., oDlg:end() ) ;
OF oDlg UPDATE

oBrw:UpStable()

REDEFINE BUTTON oBtn3 ;
ID 104 ;
OF oDlg ;
ACTION (lOk := .T., oDlg:end() ) ;
MESSAGE "Este es el boton 3 - Seleccionar"
oBtn3:cCaption := "&Seleccionar"

REDEFINE BUTTON oBtn5 ;
ID 106 ;
OF oDlg ;
ACTION ( oDlg:end() ) ;
MESSAGE "Este es el boton 5 - sALIR" CANCEL

ACTIVATE DIALOG oDlg CENTERED
*
IF lOk
cCTABCO := ALLTRIM(Cta->CTA_CODIGO)
oCuenta:cText(cCTABCO)
oCuenta:refresh()
ENDIF
*
SELECT(cAlias)
RETURN(.T.)[color=#0000FF][color=#0000FF][color=#0000FF][/color][/color][/color]
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Re: Refrescar datos en Folder
Posted: Mon Feb 28, 2011 07:20 PM
Hola Armando,
Prueba así:
Code (fw): Select all Collapse
*
IF lOk
   cCTABCO := ALLTRIM(Cta->CTA_CODIGO)
   oCuenta:VarPut(cCTABCO)
   oCuenta:EditUpdate()
   oCuenta:Refresh()
ENDIF
*
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Refrescar datos en Folder
Posted: Mon Feb 28, 2011 11:15 PM

Manuel

El get contenido en el folder no se refresca. Continúa necesitando clickar en el Get. ¿Otra sugerencia?

FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Refrescar datos en Folder
Posted: Tue Mar 01, 2011 03:25 PM
Armando;
a ver si esto funciona
Code (fw): Select all Collapse
VALID (IIF(EMPTY(CTABCO), ; // para mostrar el dato recibido se tiene que clickar nuevamente en este GET
( CatchCta(oCuenta, @CTABCO), oFld:refresh(), oCuenta:Setfocus(), oCuenta:refresh(), .T. )

...

IF lOk
   cCTABCO := ALLTRIM(Cta->CTA_CODIGO)
ENDIF


Me resulta raro que no funcione con VarPut()
Saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Refrescar datos en Folder
Posted: Tue Mar 01, 2011 09:31 PM

Mario

Tampoco funca. Sigue necesitando darle al click nuevamente. Es como si algo faltara en el manejo del objeto folder para que pudiera refrescar el Get. Se continúa aceptando sugerencias... :wink:

FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Refrescar datos en Folder
Posted: Wed Mar 02, 2011 12:15 AM
Se me ocurre una trampa

...( CatchCta(oCuenta, CTABCO), oFld:refresh(), oCuenta:Setfocus(), oCuenta:Click(), oCuenta:refresh(), .T. )

,...ya que es el click lo que lo refresca :-)
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Refrescar datos en Folder
Posted: Wed Mar 02, 2011 02:09 AM

Ni el truco funca.

También probe:
IF lOk
cCTABCO := ALLTRIM(Cta->CTA_CODIGO) + CHR(13) // para incluir un Return
ENDIF

¡Uffff! ¡Esta "macana" de folder si que se ha vuelto más arisca que "mujer coqueta"!

FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
Re: Refrescar datos en Folder
Posted: Wed Mar 02, 2011 02:17 AM
Armando,

Intenta esto y me comentas:

Code (fw): Select all Collapse
...( CatchCta(oCuenta, CTABCO), xSetfocus(oCuenta), oCuenta:refresh(), oFld:refresh(), .T. )


Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
function xSetFocus( oObx )
// Atualizacao da tela
//----------------------------------------------------------------------------//
local oTempo:=""

define timer oTempo interval 10 of oObx:oWnd ;
  action (oObx:SetFocus(), oObx:SetPos(0), oTempo:Deactivate() )

activate timer oTempo

return nil
Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: Refrescar datos en Folder
Posted: Wed Mar 02, 2011 03:03 AM

Armando,

Al final de la rutina donde tomas los nuevos valores, bastaria que mandaras un oFld:aDialogs[1]:update()

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 446
Joined: Mon Dec 26, 2005 09:11 PM
Re: Refrescar datos en Folder
Posted: Wed Mar 02, 2011 03:14 AM
Kleyber, Mario, Manuel

Ya está solucionado. Tuve que utilizar los metodos del Folder y del Get para que funcione bien. Aunque la solución propuesta, al final, por Raymundo también es otra mejor y más simple.

Raymundo

Tu solución también funciona y es más simple que el que encontré... Al final, las soluciones fueron más simples de lo esperado.

Esta fue mi solucion usando metodos del Folder y del Get

REDEFINE GET oCuenta VAR CTABCO ;
OF oFld:aDialogs[1] ;
ID 336 PICTURE "@!" ;
VALID (IIF(EMPTY(CTABCO), ;
( CatchCta(oCuenta, CTABCO), oFld:Update(),.T.), .F.) )

oCuenta:lUpdate=.t.
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com

Continue the discussion