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
Operação complexa com set filter
Moderador: Moderadores
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.
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.

