Olá!
Tenho alguma experiência em Windows Form (Vb.Net) que talvez possa ajudá-lo um pouco:
Você pode fazer isso passando valores para campos do tipo "parameter" no RPT do Crystal e dentro do RPT você utilizaria esses campos no filtro de registros ou você poderia passar diretamente o "RecordSelectionFormula", ambos via código.
No meu ponto de vista você deveria levar em consideração a complexidade dos seus relatórios e o tamanho de sua base de dados. Se for utilizar da forma acima, é interessante que os campos envolvidos nas seleções
de registros sejam indexados, sob pena de seus relatórios levarem uma eternidade para carregar.
Na maioria das aplicações que desenvolvo, eu uso uma destas técnicas, mas já fiz como você sugeriu também.
As vezes é melhor você criar uma stored procedure que cria uma view já da forma como vc deseja do que montar todo o relacionamento entre as tabelas dentro do RPT do Crystal (ou do datasource que vai gerar o relatório). Dependendo
do banco você pode ganhar em desempenho, sem falar que se você dominar bem Sql vai conseguir produzir mais e dar manutenção bem mais rapidamente.
Outra dica legal para quem vai começar a fazer relatórios usando crystal para Asp.Net é tentar deixar o tamanho do arquivo.rpt o menor possível e cuidado com imagens, pois eles podem levar mais tempo para serem apresentadas no
browser do cliente do que os dados. rsrsrs
Bom, isso funciona para mim que gosto de criar os RPTs no Crystal sem usar o Visual Studio. Eu apenas os estancio no código e chamo diretamente.
Willian Cardoso Santana