FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Timer y Red Local
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Timer y Red Local
Posted: Mon Mar 02, 2009 06:09 PM
Nunca antes hasta ahora hab铆a tenido necesidad de usar un timer, por lo que probablemente est茅 haciendo algo mal. La cuesti贸n es la siguiente: En un ambiente de red local necesito refrescar un oSay contenido en un di谩logo (Funci贸n Colas() ) con el contenido de un campo de un fichero dbf que cambia de valor por acci贸n dada desde cualquier terminal.(Funci贸n Siguiente() ) El hecho es que si lo hago desde el mismo terminal en que abro el di谩logo el oSay1 se refresca convenientemente; sin embargo si el cambio se realiza desde cualquier otro terminal no se mueve. He comprobado que el dato se graba en el fichero. Este es el c贸digo usado:
Code (fw): Select all Collapse
*********************************
STATIC FUNCTION COLAS()
********************************
Local oDlg
Local oSay1
Local cNumero:=STR(FRECU3->ANTERIOR,2)
//
DEFINE DIALOG oDlg RESOURCE "COLAS" 
REDEFINE SAY oSay1 聽PROMPT cNumero 聽ID 201 OF oDlg 
//
ACTIVATE DIALOG oDlg CENTER ON INIT MiTimerOn(oSay1,oDlg) NOMODAL
//
RETURN NIL

**********************************************************
STATIC FUNCTION 聽MiTimerOn(oSay1,oDlg)
**********************************************************
DEFINE TIMER oTimer OF oDlg INTERVAL 1000 ACTION TimerAction(oSay1)
ACTIVATE TIMER oTimer
RETURN NIL

**********************************************
STATIC FUNCTION TimerAction(oSay1)
**********************************************
Local cAnterior:= STR(FRECU3->ANTERIOR,2)
Local cNumero 聽:= STR(FRECU3->NUMERO,2)
//
IF cNumero <> cAnterior
聽聽 //
聽 聽 聽oSay1:SetText(cNumero)
聽 聽 聽//
聽 聽 聽IF FRECU3->(!RecLock(5))
聽 聽 聽 聽TONE(400,2)
聽 聽 聽 聽TONE(200,2)
聽 聽 聽 聽//
聽 聽 聽 聽MsgInfo("No es posible la modificaci贸n;int茅ntelo m谩s tarde, por favor.")
聽 聽 聽 //
聽 聽 聽 ELSE
聽 聽 聽 聽 聽REPLACE FRECU3->Anterior WITH FRECU3->Numero
聽 聽 聽 聽 聽FRECU3->(DbRunLock())
聽 聽 聽 聽 聽FRECU3->(DbCommit())
聽 聽 聽 ENDIF
聽 聽 聽 //
ENDIF
//
RETURN NIL

**************************************
STATIC FUNCTION SIGUIENTE()
**************************************
Local nNumero 聽:= FRECU3->Numero
聽nNumero = nNumero+1
聽 //
聽 聽 聽IF FRECU3->(!RecLock(5))
聽 聽聽 聽 聽TONE(400,2)
聽 聽聽 聽 聽TONE(200,2)
聽 聽 聽聽 聽//
聽 聽 聽聽 聽MsgInfo("No es posible la modificaci贸n;int茅ntelo m谩s tarde, por favor.")
聽 聽 聽 //
聽 聽 聽 ELSE
聽 聽 聽 聽 聽REPLACE FRECU3->Numero WITH nNumero
聽 聽 聽 聽 聽FRECU3->(DbRunLock())
聽 聽 聽 聽 聽FRECU3->(DbCommit()) 聽 聽 聽 聽 
聽 聽 聽 ENDIF
聽 聽 聽 //
//ENDIF
//
RETURN NIL
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Re: Timer y Red Local
Posted: Mon Mar 02, 2009 07:11 PM
hola

Haz lo siguiente

Code (fw): Select all Collapse
STATIC FUNCTION TimerAction(oSay1)
**********************************************
Local cAnterior, cNumero

Frecu3->( dbSkip(0) ) //aqui refrescamos el registro

cAnterior:= STR(FRECU3->ANTERIOR,2)
cNumero 聽:= STR(FRECU3->NUMERO,2)
//
IF cNumero <> cAnterior
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Re: Timer y Red Local
Posted: Tue Mar 03, 2009 02:59 PM

Much铆simas gracias Patricio. Ha funcionado perfecto.

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC

Continue the discussion