Me ha sucedió algo curioso hoy, ya que estoy mostrando a un cliente un programa que estoy desarrollando y en un modulo especifico en el cual hace un recorrido en una tabla y muestra en un dialogo modal un campo especifico de la tabla (mas que todo para que el usuario no desespere).
sucede que el foco del dialogo modal empieza a cambiar entre el dialogo padre y el hijo, alternándose continuamente.
ademas ocurre como que la posición de dialogo hijo se desplazara hacia abajo y luego retorna a su posición original
esto se mira refeo.
esto no sucede en ninguna de mis pc, la única variante entre mis pc y la que presento el incidente es que esta usa dos monitores.
es mas para salir de duda, apago el monitor secundario, reinicie la pc, ejecuto mi programa y no sucede.
enciendo el monitor secundario, reinicio la pc y ejecuto el programa y regresa el efecto.
en otras palabras esto solo sucede con pc con dos monitores.
adjunto el código, en el procedimiento "Sincronizar_EnviarDatos()" proceso 14 tablas, y solamente en tres de ellas muestro info segun recorro los registros de la tablas
DOCUMENTOS; CONCESIONESDOC y MAPAS (esto por que toma bastante tiempo ya que don documentos pdf escaneados)
solamente en estos tres pedazos de codigo ocurre los saltos.
lo único diferente con las restantes tablas es que uso un esto
- Code: Select all Expand view
DO WHILE !MAPA->( Eof() )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" + FINL + AllTrim( MAPA->NOMBRE ) ) //esta linea
- Code: Select all Expand view
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Sincronizar()
PRIVATE oDlgS, oBtn1, oBtn2, oBtn3, oSayI
PRIVATE oServer
oServer := TMyServer():New()
DEFINE DIALOG oDlgS NAME "DLG_SINCRONIZAR" OF oMainD ICON GetIcon() FONT oFontD
REDEFINE BTNBMP oBtn1 ;
ID 101 OF oDlgS ;
NAME "BM_SINCRO" ;
ACTION Sincronizar_Menu() ;
2007
REDEFINE BTNBMP oBtn2 ;
ID 102 OF oDlgS ;
NAME "BM_CONFIG" ;
ACTION Sincronizar_Configuracion() ;
2007
REDEFINE SAY oSayI ;
PROMPT TC( IDS_SELECT ) ;
ID 103 OF oDlgS ;
COLOR CLR_YELLOW, CLR_BLUE
REDEFINE BUTTON oBtn3 ;
ID 201 OF oDlgS ;
ACTION oDlgS:END()
ACTIVATE DIALOG oDlgS VALID ( oServer:CloseFile(), TRUE )
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Sincronizar_Menu()
LOCAL oMenu
aRect := GetClientRect( oBtn1:hWnd )
MENU oMenu POPUP 2007
MENUITEM TC( IDS_SYNC_MENU_1 ) ACTION Sincronizar_Estacion()
MENUITEM TC( IDS_SYNC_MENU_2 ) ACTION Sincronizar_Servidor() WHEN lAdmin
ENDMENU
ACTIVATE POPUP oMenu At aRect[ 3 ] + 1, aRect[ 2 ] OF oBtn1
RETURN
/*-------------------------------------------------------------------------------------------------*/
FUNCTION Sincronizar_Servidor()
PRIVATE oConexion, cConexion
oServer:LoadFromFile()
IF !oServer:ValidInfo()
MsgAlert( TC( IDS_SYNC_VALIDATE_CONFIGURATION_FAIL ) )
RETURN
ENDIF
AEval( { oBtn1, oBtn2, oBtn3 }, {|o| o:Disable() } )
cConexion := oServer:GetStringConnection()
MsgRun( TC( IDS_SYNC_CONNECTING ), "MYEMPRESA" , ;
{|| CursorWait() , ;
oConexion := AdoConexion( cConexion ), ;
CursorArrow() , ;
SysRefresh() } )
DO CASE
CASE HB_IsNil( oConexion )
MsgAlert( TC( IDS_SYNC_CONNECTING_ERROR ) )
CASE HB_IsObject( oConexion )
IF Sincronizar_ValidarTablas()
Sincronizar_EnviarDatos()
ENDIF
oConexion:Close()
ENDCASE
AEval( { oBtn1, oBtn2, oBtn3 }, {|o| o:Enable() } )
RETURN
/*-------------------------------------------------------------------------------------------------*/
PROCEDURE Sincronizar_EnviarDatos()
LOCAL lOk
LOCAL oRS
LOCAL cTime
LOCAL oError, cText
IF !( oConexion:State = adStateOpen )
RETURN FALSE
ENDIF
lOk := TRUE
TRY
WITH OBJECT ( oRS := TOleAuto():New( "ADODB.RecordSet" ) )
:CursorLocation := adUseServer
:CursorType := adOpenDynamic
:LockType := adLockOptimistic
:ActiveConnection := oConexion
END
CATCH oError
lOk := FALSE
ShowAdoError( oConexion, oError )
END
IF !lOk
RETURN lOk
ENDIF
cTime := Time()
TRY
oConexion:BeginTrans()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 1,"Enviando tabla: COMARCAS"
#endif
oRS:open( "SELECT * FROM COMARCAS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[COMARCAS]" )
CursorWait()
SELECT "COMA"
COMA->( DBGoTop() )
DO WHILE !COMA->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_DEPA" ):Value := COMA->NUM_DEPA
oRS:Fields( "NUM_MUNI" ):Value := COMA->NUM_MUNI
oRS:Fields( "NUM_COMA" ):Value := COMA->NUM_COMA
oRS:Fields( "NOM_COMA" ):Value := COMA->NOM_COMA
oRS:Update()
COMA->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 2, "Enviando tabla: CONCESIONES"
#endif
oRS:open( "SELECT * FROM CONCESIONES WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES]" )
CursorWait()
SELECT "CONC"
CONC->( DBGoTop() )
DO WHILE !CONC->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_EMPR" ):Value := CONC->NUM_EMPR
oRS:Fields( "NUM_CONC" ):Value := CONC->NUM_CONC
oRS:Fields( "NOM_CONC" ):Value := CONC->NOM_CONC
oRS:Fields( "ACUERDO" ):Value := CONC->ACUERDO
oRS:Fields( "NUM_DEPA" ):Value := CONC->NUM_DEPA
oRS:Fields( "NUM_MUNI1" ):Value := CONC->NUM_MUNI1
oRS:Fields( "NUM_MUNI2" ):Value := CONC->NUM_MUNI2
oRS:Fields( "NUM_MUNI3" ):Value := CONC->NUM_MUNI3
oRS:Fields( "AREA" ):Value := CONC->AREA
oRS:Fields( "FECHA_SOL" ):Value := DateToSQL( CONC->FECHA_SOL )
oRS:Fields( "FECHA_VEN" ):Value := DateToSQL( CONC->FECHA_VEN )
oRS:Fields( "ULTIMO_AER" ):Value := CONC->ULTIMO_AER
oRS:Fields( "NOTA" ):Value := CONC->NOTA
oRS:Update()
CONC->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 3, "Enviando tabla: CONCESIONESDOC"
#endif
oRS:open( "SELECT * FROM CONCESIONESDOC WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES DOC]" )
CursorWait()
SELECT "COND"
COND->( DBGoTop() )
DO WHILE !COND->( Eof() )
oRS:AddNew()
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES DOC]" + FINL + AllTrim( COND->NOMBRE ) )
oRS:Fields( "NUM_CONC" ):Value := COND->NUM_CONC
oRS:Fields( "NOMBRE" ):Value := COND->NOMBRE
oRS:Fields( "DESCRIPCION" ):Value := COND->DESCRIPCION
oRS:Fields( "DOCUMENTO" ):Value := HB_UUEncode( COND->DOCUMENTO, Len( COND->DOCUMENTO ) )
oRS:Update()
SysRefresh()
CursorWait()
COND->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 4, "Enviando tabla: CONTROL"
#endif
oRS:open( "SELECT * FROM CONTROL WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONTROL]" )
CursorWait()
SELECT "CTRL"
CTRL->( DBGoTop() )
DO WHILE !CTRL->( Eof() )
oRS:AddNew()
oRS:Fields( "CONT_TIPO" ):Value := CTRL->CONT_TIPO
oRS:Fields( "CONT_INSC" ):Value := CTRL->CONT_INSC
oRS:Fields( "CONT_USUA" ):Value := CTRL->CONT_USUA
oRS:Fields( "CONT_PROP" ):Value := CTRL->CONT_PROP
oRS:Fields( "CONT_FINC" ):Value := CTRL->CONT_FINC
oRS:Fields( "CONT_EMPR" ):Value := CTRL->CONT_EMPR
oRS:Fields( "CONT_DEPA" ):Value := CTRL->CONT_DEPA
oRS:Fields( "CONT_MUNI" ):Value := CTRL->CONT_MUNI
oRS:Fields( "CONT_COMA" ):Value := CTRL->CONT_COMA
oRS:Fields( "CONT_CONC" ):Value := CTRL->CONT_CONC
oRS:Fields( "CONT_ROWF" ):Value := CTRL->CONT_ROWF
oRS:Update()
CTRL->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 5, "Enviando tabla: DEPARTAMENTOS"
#endif
oRS:open( "SELECT * FROM DEPARTAMENTOS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DEPARTAMENTOS]" )
CursorWait()
SELECT "DEPA"
DEPA->( DBGoTop() )
DO WHILE !DEPA->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_DEPA" ):Value := DEPA->NUM_DEPA
oRS:Fields( "NOM_DEPA" ):Value := DEPA->NOM_DEPA
oRS:Update()
DEPA->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 6, "Enviando tabla: DOCUMENTOS"
#endif
oRS:open( "SELECT * FROM DOCUMENTOS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DOCUMENTOS]" )
CursorWait()
SELECT "DOCU"
DOCU->( DBGoTop() )
DO WHILE !DOCU->( Eof() )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DOCUMENTOS: " + Transform( DOCU->( RecNo() ), "@R 99999" ) + "]" + FINL + AllTrim( DOCU->NOMBRE ) )
cText := HB_UUEncode( DOCU->DOCUMENTO, Len( DOCU->DOCUMENTO ) )
oRS:AddNew()
oRS:Fields( "NUM_ROWF" ):Value := DOCU->NUM_ROWF
oRS:Fields( "NUM_FINCA" ):Value := DOCU->NUM_FINCA
oRS:Fields( "TIPO" ):Value := DOCU->TIPO
oRS:Fields( "NOMBRE" ):Value := DOCU->NOMBRE
oRS:Fields( "DESCRIPCION" ):Value := DOCU->DESCRIPCION
oRS:Fields( "DOCUMENTO" ):Value := IIf( Len( cText )<50, "", cText )
oRS:Update()
SysRefresh()
CursorWait()
DOCU->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 7, "Enviando tabla: EMPRESAS"
#endif
oRS:open( "SELECT * FROM EMPRESAS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[EMPRESAS]" )
CursorWait()
SELECT "EMPR"
EMPR->( DBGoTop() )
DO WHILE !EMPR->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_EMPR" ):Value := EMPR->NUM_EMPR
oRS:Fields( "NOM_EMPR" ):Value := EMPR->NOM_EMPR
oRS:Fields( "DIR_EMPR" ):Value := EMPR->DIR_EMPR
oRS:Fields( "TEL_EMPR" ):Value := EMPR->TEL_EMPR
oRS:Fields( "REP_EMPR" ):Value := EMPR->REP_EMPR
oRS:Fields( "RUC_EMPR" ):Value := EMPR->RUC_EMPR
oRS:Update()
EMPR->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 8, "Enviando tabla: MAPAS"
#endif
oRS:open( "SELECT * FROM MAPAS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" )
CursorWait()
SELECT "MAPA"
MAPA->( DBGoTop() )
DO WHILE !MAPA->( Eof() )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" + FINL + AllTrim( MAPA->NOMBRE ) )
oRS:AddNew()
oRS:Fields( "NUM_EMPR" ):Value := MAPA->NUM_EMPR
oRS:Fields( "NOMBRE" ):Value := MAPA->NOMBRE
oRS:Fields( "DESCRIPCION" ):Value := MAPA->DESCRIPCION
oRS:Fields( "DOCUMENTO" ):Value := HB_UUEncode( MAPA->DOCUMENTO, Len( MAPA->DOCUMENTO ) )
oRS:Update()
SysRefresh()
CursorWait()
MAPA->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 9, "Enviando tabla: MUNICIPIOS"
#endif
oRS:open( "SELECT * FROM MUNICIPIOS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MUNICIPIOS]" )
CursorWait()
SELECT "MUNI"
MUNI->( DBGoTop() )
DO WHILE !MUNI->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_DEPA" ):Value := MUNI->NUM_DEPA
oRS:Fields( "NUM_MUNI" ):Value := MUNI->NUM_MUNI
oRS:Fields( "NOM_MUNI" ):Value := MUNI->NOM_MUNI
oRS:Update()
MUNI->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 10, "Enviando tabla: FINCAS"
#endif
oRS:open( "SELECT * FROM FINCAS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[FINCAS]" )
CursorWait()
SELECT "FINC"
FINC->( DBGoTop() )
DO WHILE !FINC->( Eof() )
#IFDEF __VIEW_DEBUG__
???FINC->NUM_ROWF
#ENDIF
oRS:AddNew()
oRS:Fields( "NUM_FINCA" ):Value := FINC->NUM_FINCA
oRS:Fields( "NUM_ROWF" ):Value := FINC->NUM_ROWF
oRS:Fields( "NUM_FINCA" ):Value := FINC->NUM_FINCA
oRS:Fields( "ESC_ANTER" ):Value := FINC->ESC_ANTER
oRS:Fields( "ESC_ANTEC" ):Value := FINC->ESC_ANTEC
oRS:Fields( "ESC_ACTUA" ):Value := FINC->ESC_ACTUA
oRS:Fields( "TOM_ANTER" ):Value := FINC->TOM_ANTER
oRS:Fields( "TOM_ANTEC" ):Value := FINC->TOM_ANTEC
oRS:Fields( "TOM_ACTUA" ):Value := FINC->TOM_ACTUA
oRS:Fields( "FOL_ANTER" ):Value := FINC->FOL_ANTER
oRS:Fields( "FOL_ANTEC" ):Value := FINC->FOL_ANTEC
oRS:Fields( "FOL_ACTUA" ):Value := FINC->FOL_ACTUA
oRS:Fields( "ASI_ANTER" ):Value := FINC->ASI_ANTER
oRS:Fields( "ASI_ANTEC" ):Value := FINC->ASI_ANTEC
oRS:Fields( "ASI_ACTUA" ):Value := FINC->ASI_ACTUA
oRS:Fields( "AREA_ESCALA" ):Value := FINC->AREA_ESCALA
oRS:Fields( "AREA_FISICA" ):Value := FINC->AREA_FISICA
oRS:Fields( "AREA_DELTA" ):Value := FINC->AREA_DELTA
oRS:Fields( "TIPO_ESC" ):Value := FINC->TIPO_ESC
oRS:Fields( "TIPO_INS" ):Value := FINC->TIPO_INS
oRS:Fields( "GRAVAMEN" ):Value := IIf( FINC->GRAVAMEN, 1, 0 )
oRS:Fields( "NOTA_GRAV" ):Value := FINC->NOTA_GRAV
oRS:Fields( "NUM_PROP" ):Value := FINC->NUM_PROP
oRS:Fields( "PROP_ANTE" ):Value := FINC->PROP_ANTE
oRS:Fields( "UBICACION" ):Value := FINC->UBICACION
oRS:Fields( "LINDERO_N" ):Value := FINC->LINDERO_N
oRS:Fields( "LINDERO_S" ):Value := FINC->LINDERO_S
oRS:Fields( "LINDERO_E" ):Value := FINC->LINDERO_E
oRS:Fields( "LINDERO_O" ):Value := FINC->LINDERO_O
oRS:Fields( "NUM_DEPA" ):Value := FINC->NUM_DEPA
oRS:Fields( "NUM_MUNI" ):Value := FINC->NUM_MUNI
oRS:Fields( "NUM_COMA" ):Value := FINC->NUM_COMA
oRS:Fields( "FECHA_ADQ" ):Value := DateToSQL( FINC->FECHA_ADQ )
oRS:Fields( "FECHA_INS" ):Value := DateToSQL( FINC->FECHA_INS )
oRS:Fields( "NUM_EMPR" ):Value := FINC->NUM_EMPR
oRS:Fields( "NUM_LOTE" ):Value := FINC->NUM_LOTE
oRS:Fields( "NUM_CATA" ):Value := FINC->NUM_CATA
oRS:Fields( "TIPOPROP" ):Value := FINC->TIPOPROP
oRS:Fields( "NOTA" ):Value := FINC->NOTA
oRS:Update()
FINC->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 11, "Enviando tabla: PROPIETARIOS"
#endif
oRS:open( "SELECT * FROM PROPIETARIOS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[PROPIETARIOS]" )
CursorWait()
SELECT "PROP"
PROP->( DBGoTop() )
DO WHILE !PROP->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_PROP" ):Value := PROP->NUM_PROP
oRS:Fields( "NOMBRE" ):Value := PROP->NOMBRE
oRS:Fields( "CEDULA" ):Value := PROP->CEDULA
oRS:Fields( "DOMICILIO" ):Value := PROP->DOMICILIO
oRS:Fields( "TELEFONO1" ):Value := PROP->TELEFONO1
oRS:Fields( "TELEFONO2" ):Value := PROP->TELEFONO2
oRS:Fields( "FECHA_NAC" ):Value := DateToSQL( PROP->FECHA_NAC )
oRS:Fields( "_" ):Value := PROP->_
oRS:Fields( "NACIONALIDAD" ):Value := PROP->NACIONALIDAD
oRS:Fields( "TIPO" ):Value := PROP->TIPO
oRS:Fields( "NOTA" ):Value := PROP->NOTA
oRS:Update()
PROP->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 12, "Enviando tabla: TIPOS_ESCRITURAS"
#endif
oRS:open( "SELECT * FROM TIPOS_ESCRITURAS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[TIPOS DE ESCRITURAS]" )
CursorWait()
SELECT "TIPO"
TIPO->( DBGoTop() )
DO WHILE !TIPO->( Eof() )
oRS:AddNew()
oRS:Fields( "TIPO_ESC" ):Value := TIPO->TIPO_ESC
oRS:Fields( "DESCRIPCION" ):Value := TIPO->DESCRIPCION
oRS:Fields( "NOTA" ):Value := TIPO->NOTA
oRS:Update()
TIPO->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 13, "Enviando tabla: TIPOS_INSCRIPCIONES"
#endif
oRS:open( "SELECT * FROM TIPOS_INSCRIPCIONES WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[TIPOS DE ESCRITURAS]" )
CursorWait()
SELECT "INSC"
INSC->( DBGoTop() )
DO WHILE !INSC->( Eof() )
oRS:AddNew()
oRS:Fields( "TIPO_INS" ):Value := INSC->TIPO_INS
oRS:Fields( "DESCRIPCION" ):Value := INSC->DESCRIPCION
oRS:Fields( "NOTA" ):Value := INSC->NOTA
oRS:Update()
INSC->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
#IFDEF __VIEW_DEBUG__
??? 14, "Enviando tabla: USUARIOS"
#endif
oRS:open( "SELECT * FROM USUARIOS WHERE 1=2" )
oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[USUARIOS]" )
CursorWait()
SELECT "USUA"
USUA->( DBGoTop() )
DO WHILE !USUA->( Eof() )
oRS:AddNew()
oRS:Fields( "NUM_USUA" ):Value := USUA->NUM_USUA
oRS:Fields( "NUM_EMPR" ):Value := USUA->NUM_EMPR
oRS:Fields( "NOMBRE" ):Value := USUA->NOMBRE
oRS:Fields( "APODO" ):Value := USUA->APODO
oRS:Fields( "CONTRASENA" ):Value := USUA->CONTRASENA
oRS:Fields( "TIPO" ):Value := USUA->TIPO
oRS:Fields( "BLOQUEADO" ):Value := IIf( USUA->BLOQUEADO, 1, 0 )
oRS:Fields( "NOTA" ):Value := USUA->NOTA
oRS:Update()
USUA->( DBSkip() )
ENDDO
SysRefresh()
oRS:Close()
/*=======================================*/
oConexion:CommitTrans()
CATCH oError
lOk := FALSE
oConexion:RollBackTrans()
ShowAdoError( oConexion, oError )
END
CursorArrow()
MsgBeep()
IF lOk
oSayI:SetText( TC( IDS_SYNC_UPDATING_REMOTE_OK ) )
ELSE
oSayI:SetText( TC( IDS_SYNC_UPDATING_REMOTE_FAIL ) )
ENDIF
LimpiarAreas()
MsgInfo( TC( IDS_SYNC_TIME_USED ) + ElapTime( cTime, Time() ) )
RETURN lOk
salu2
carlos