Página 1 de 1

Operação complexa com set filter

Enviado: 14 Ago 2004 08:45
por rubens
Olá,
Tenho uma rotina que imprime uma romaneio de produtos intercalados. O problema é que quando o cliente escolhe mais de 10 pedidos para serem impressos aparece um erro dizendo que a operação é muito complexa. Uso o set filter e a medida que o cliente vai escolhendo os pedidos uma variavel vai sendo incrementada e quando o cliente finalica a escolha uso o & para filtrar.

Assim:

Filtro += Pedido

Quando finaliza:
Set filter to &Filtro

Só que quando tem mais de dez argumentos dá erro..

Alguém sabe de algum comando ou dá uma idéia para resolver isso...

Obrigado
Rubens

Enviado: 14 Ago 2004 10:12
por pagani
Rubens,

você poderia, por exemplo, substituir a variável que acumula a condição de impressão por uma matriz. Troque "Filtro += Pedido" por "AAdd(aMatriz, Pedido). No While !Eof() faça:
While !Eof()
If AScan(aMatriz, Dbf->Pedido) == 0
Skip ; Loop
Endif

...relatório...

Skip
End

Tome cuidado que o limite para as matrizes é de 4096 elementos (se não me engano). Caso seja necessário um número maior de elementos, acumule-os em um DBF temporário.