Preciso de Ajuda com INDEX x Cláusula FOR x Macro

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Preciso de Ajuda com INDEX x Cláusula FOR x Macro

Mensagem por carlos_dornelas »

Pessoal, não sei se é possível, mas estou tentando executar um índice que
possui a cláusula FOR por meio de uma macro, mas não vai de jeito nenhum. É
mais ou menos assim:

xdata='datac="20080103"'
index on empresa to historico for &xdata

Qualquer ajuda será muito bem vinda!!

Obrigado

Antonio
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Preciso de Ajuda com INDEX x Cláusula FOR x Macro

Mensagem por Eolo »

Carlos, é só adaptar o exemplo a seguir:

Código: Selecionar todos

set cent on
set date brit
use clientes excl new
a="dtos(desde)>='20070101' .and. dtos(desde)<='20070630'"
index on nome tag blabla to temp for &a
set index to temp
Se você tem essas datas-limite vindo de algum lugar como DATA, basta convertê-las pra CARACTER e concatenar:

Código: Selecionar todos

set cent on
set date brit
use clientes excl new
data1=ctod("01/01/2007")
data2=ctod("30/06/2007")
*...
a="dtos(desde)>='"+dtos(data1)+"' .and. dtos(desde)<='"+dtos(data2)+"'"
index on nome tag blabla to temp for &a
set index to temp
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Preciso de Ajuda com INDEX x Cláusula FOR x Macro

Mensagem por carlos_dornelas »

Eolo, Valeu pela dica!! Caso resolvido. Eram simplesmente colocar as aspas no lugar certo!

Segue abaixo o código, caso alguém necessite:

xind=ordkey()
xfor=if(ordfor()<>'',"ordfor() .and. (cn=xcar11.or.cn=xcar12")
set index to
index on &xind to hist for &xfor eval pr1() every lastrec()/10

Valeu

Antonio Carlos
Responder