Será que essa barra progressiva funciona???

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ERASMO ANDRIOLI
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 15 Jul 2004 16:15
Localização: Sorriso-MT
Contato:

Será que essa barra progressiva funciona???

Mensagem por ERASMO ANDRIOLI »

Olá Amigos...

Gostaria de saber dos Clippeiros se essa barra está correta no modo programável que está:


INDEX ON CONTROLE TAG 1 TO BNKANALI EVAL BARRA()

****************
function BARRA
****************
@15,15+(RECNO() / LASTREC()*49) SAY CHR(178) COLOR("B+/W")
return .T.


...Quem tiver outro exemplo mais prático que isso ou se o exemplo acima astiver com falhas, por favor nos mostre o caminho correto.

Abraços

Erasmo Andrioli
Sorriso-MT :xau
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Eu acho que a sentença correta na função BARRA, deveria ser assim:

@15,15 SAY REPLICATE( CHR(178) , (((RECNO() / LASTREC()) * 100) /2 ) ) COLOR("B+/W")

Na seção de downloads daqui do fórum tem um exemplo que está um pouco mais elaborado com melhor layout. Compile na mão pois o arquivo BATCH está errado. Confira: https://pctoledo.org/download/cop ... t&deonde=2
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Do jeito que está essa linha de indexação vai comer o processamento da máquina, pois a função Barra() será executada para cada registro encontrado. O melhor é incluir uma cláusula EVERY com um limitador. Detalhes no NG. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Barra progressiva para indexação

Mensagem por Pablo César »

Tem razão Maligno. Então façamos alguma incrementações necessárias, inclusive eu não gosto de ficar executando a cada registro as funções LASTREC() e RECNO(), na minha opinião também são desnecessário.

Código: Selecionar todos

#define MTR_INCREMENT   20

TELA := SAVESCREEN(00,00,MAXROW(),MAXCOL())
@ 08,11 SAY "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" COLOR "BG+/N"
@ 09,11 SAY "º                                                           º" COLOR "BG+/N"
@ 10,11 SAY "ºÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ" COLOR "BG+/N"
@ 11,11 SAY "º    0   10   20   30   40   50   60   70   80   90   100   º" COLOR "BG+/N"
@ 12,11 SAY "º  ÚÄÙ....³....³....³....³....³....³....³....³....³....ÀÄ¿  º" COLOR "BG+/N"
@ 13,11 SAY "º  ³ °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ³  º" COLOR "BG+/N"
@ 14,11 SAY "º  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  º" COLOR "BG+/N"
@ 15,11 SAY "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" COLOR "BG+/N"
@ 09,24 SAY "Porcentagem dos arquivos organizados" COLOR "GR+/N"


USE CLIENTES
v_t:=LASTREC()
nRecsDone := 0

INDEX ON NOME TAG 1 TO ARQINDICE EVAL {|| BARRA() } EVERY MTR_INCREMENT

@ 13,16 SAY REPLICATE(CHR(219),51) // complementa o que faltou
?? CHR(7) // Fará uma sinal sonoro


FUNCTION BARRA()
nRecsDone := nRecsDone + MTR_INCREMENT
@ 13,16 SAY REPLICATE(CHR(219),(( ( nRecsDone/V_T ) * 100 ) / 2)) COLOR "GR+/N"
return .T. 
Veja agora se ficou bom ?.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
EANDRIOLI
Usuário Nível 3
Usuário Nível 3
Mensagens: 109
Registrado em: 22 Jun 2007 18:31
Localização: Sorriso-MT

Mensagem por EANDRIOLI »

FICOU MUITO BOM.... ÓTIMO

OBRIGADO PESSOAL...


ABRAÇOS :{
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Use a clausula EVERY dividindo o lastrec por 100, assim so vai chamar a rotina quando a porcentagem realmente for alterada.
Sem mais
Wagner Nunes
www.vagucs.com.br
Responder