Clipper On Line • Ver Tópico - Contador de percentual de progressão de rotinas.

Contador de percentual de progressão de rotinas.

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Contador de percentual de progressão de rotinas.

Mensagempor rochinha » 20 Dez 2005 14:07

Amiguinhos

As vezes necessitamos saber se uma rotina esta sendo executada ou se a maquina simplesmente travou, principalmente em indexações, portanto saco desta função simples para tal:

FUNCTION dbProgress( cIndice, cMensagem )
  LOCAL cComplete := LTRIM(STR(INT((RECNO()/LASTREC()) * 100)))
  cMensagem := iif(cMensagem=nil,"Indexacao de ",cMensagem)
  MENSAGEM(cMensagem + cIndice + " " + cComplete + "% Completada.")
  RETURN(.T.)

FUNCTION MENSAGEM( TEXTO, PAUSA )
//
// -> Funcao que imprime mensagens na tela
//
// TEXTO => Recebe o texto a ser impresso na linha de mensagem.
// TEMPO => Recebe o tempo de espera para a mensagem.
//
STATIC ULT_MENSAGEM := ""
LOCAL ULT_CURSOR := SETCURSOR(), DE_VI_CE
IF TEXTO = NIL; TEXTO := ""; ENDIF
CURSOR( DESLIGA )
IF SET( 20 ) = "PRINTER"
   DE_VI_CE = "PRINTER"
   SET( 20 , "SCREEN" )
ENDIF
@ 0, 75 SAY STR(MEMORY(0),5) COLOR CONTECOR[ 13 ]
IF m->defPDV = 'X'
   IF m->defTEFON = .T.
      @ MAXROW()-1, 00 SAY 'TEF-ON ' COLOR CONTECOR[ 2 ]
   ELSE
      @ MAXROW()-1, 00 SAY 'TEF-OFF' COLOR CONTECOR[ 2 ]
   ENDIF
ENDIF
IF m->defCUPOM = 'X'
   @ MAXROW(), 11 SAY STR(M->NO_CUPOM+1,1)+'³'+PADC( TEXTO, 56 ) COLOR CONTECOR[ 2 ]
ELSE
   @ MAXROW(), 11 SAY PADC( TEXTO, 58 ) COLOR CONTECOR[ 2 ]
ENDIF
IF PAUSA = NIL
   ULT_MENSAGEM := TEXTO
ELSE
   TEC_MOU( PAUSA )
   @ MAXROW(), 11 SAY PADC( ULT_MENSAGEM, 58 ) COLOR CONTECOR[ 2 ]
ENDIF
IF DE_VI_CE = "PRINTER"
   Set( 20, "PRINTER" )
ENDIF
SETCURSOR( ULT_CURSOR )
RETURN NIL


Esta função poderá ser colocada em qualquer lugar, até em uma rotina de impressão já que sabemos que quando mandamos imprimir, não é possivel apresentar nada na tela sem o devido direcionamento.

Para usa-la nas nossas indexações basta fazer assim:

INDEX ON ... EVAL dbProgress( "NomeDoIndice" )

@braços :?)
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Mensagempor janio » 20 Dez 2005 14:56

Rochinha,

tá faltando as funções CURSOR ( DESLIGA ) e TEC_MOU( PAUSA ) pra podermos compilar...

Um abraço,

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Mensagempor rochinha » 20 Dez 2005 15:20

Amiguinho

Pode desabilitar pois elas eram usadas para tratamento do mouse.

@braços :?)
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 17 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro