A aplicação em anexo demonstra como selecionar dinamicamente os campos a serem impressos no relatório.
Como os campos do relatório não podem ser adicionados nem deletados em tempo de execução, a alternativa apresentada nesta aplicação é preparar o relatório para todos os campos possíveis, deixando a propriedade Visible dos campos igual a False. Assim, é possível habilitar a visibilidade dos campos desejados via script, através do evento OnReportStart do relatório.