Refrescar datos en Folder - SOLUCIONADO
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Refrescar datos en Folder - SOLUCIONADO
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.)
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.)
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
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Refrescar datos en Folder
Hola Armando,
Prueba así:
Prueba así:
Code: Select all
*
IF lOk
cCTABCO := ALLTRIM(Cta->CTA_CODIGO)
oCuenta:VarPut(cCTABCO)
oCuenta:EditUpdate()
oCuenta:Refresh()
ENDIF
*
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Refrescar datos en Folder
Manuel
El get contenido en el folder no se refresca. Continúa necesitando clickar en el Get. ¿Otra sugerencia?
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
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: Refrescar datos en Folder
Armando;
a ver si esto funciona
Me resulta raro que no funcione con VarPut()
Saludos
a ver si esto funciona
Code: Select all
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
Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Refrescar datos en Folder
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...
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...
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
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: Refrescar datos en Folder
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
...( 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
Chaco - Argentina
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Refrescar datos en Folder
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"!
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
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: Refrescar datos en Folder
Armando,
Intenta esto y me comentas:
Intenta esto y me comentas:
Code: Select all
...( CatchCta(oCuenta, CTABCO), xSetfocus(oCuenta), oCuenta:refresh(), oFld:refresh(), .T. )
Code: Select all
//----------------------------------------------------------------------------//
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
FWH / xHb / xDevStudio / SQLLIB
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Re: Refrescar datos en Folder
Armando,
Al final de la rutina donde tomas los nuevos valores, bastaria que mandaras un oFld:aDialogs[1]:update()
Saludos
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
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: Refrescar datos en Folder
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.
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
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com