Refrescar datos en Folder - SOLUCIONADO

Refrescar datos en Folder - SOLUCIONADO

Postby Armando Picon » Mon Feb 28, 2011 6: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]
Last edited by Armando Picon on Sun Mar 06, 2011 11:30 pm, edited 1 time in total.
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
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: Refrescar datos en Folder

Postby Manuel Aranda » Mon Feb 28, 2011 7:20 pm

Hola Armando,
Prueba así:
Code: Select all  Expand view

*
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
User avatar
Manuel Aranda
 
Posts: 604
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: Refrescar datos en Folder

Postby Armando Picon » 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
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: Refrescar datos en Folder

Postby MarioG » Tue Mar 01, 2011 3:25 pm

Armando;
a ver si esto funciona
Code: Select all  Expand view


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

Re: Refrescar datos en Folder

Postby Armando Picon » Tue Mar 01, 2011 9: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
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: Refrescar datos en Folder

Postby MarioG » 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 :wink:
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: Refrescar datos en Folder

Postby Armando Picon » Wed Mar 02, 2011 2: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
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Re: Refrescar datos en Folder

Postby Kleyber » Wed Mar 02, 2011 2:17 am

Armando,

Intenta esto y me comentas:

Code: Select all  Expand view

...( CatchCta(oCuenta, CTABCO), xSetfocus(oCuenta), oCuenta:refresh(), oFld:refresh(), .T. )
 


Code: Select all  Expand view

//----------------------------------------------------------------------------//
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
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Re: Refrescar datos en Folder

Postby Raymundo Islas M. » Wed Mar 02, 2011 3: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
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Refrescar datos en Folder

Postby Armando Picon » Wed Mar 02, 2011 3: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
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 50 guests