Bonjour,
En point d'entrée, j'ai un état CrystalReports, sur lequel je peux (via le SDK.net) récupérer la requête SQL associée. Je dois modifier cette requête dynamiquement (ajouter des filtres, etc), l'exécuter, remonter une source de données (type dataset, datatable,etc...), et renvoyer cette source de données à l'état.
Le problème se pose lorsque la requête SQL associée contient plusieurs tables: "SELECT * FROM table1, table2 WHERE table1.toto = table2.toto"
Problème:
- Pour une requête de ce type, CR défini dans l'état plusieurs "tables", et attend comme source de donnée un DataSet avec plusieurs DataTable
- Si j'exécute cette requête avec dbAdapter.Fill(mon_data_set), une seule DataTable est créée
Comment faire pour créer automatiquement un DataSet avec plusieurs DataTable à partir d'une seule requête de ce type? J'ai vu que si l'on spécifiait plusieurs requêtes ("SELECT * FROM table1; SELECT * FROM table2"), plusieurs DataTable étaient créées. Mais c'est sacrément pourri, on casse les jointures... Et ça m'oblige à découper la requête en plusieurs SELECT, enfin pas très propre.
Sinon, est-il possible de recréer à postériori le schéma et les DataTable du dataset après l'avoir rempli?
Une autre idée? Crystal Report accepte les objets IEnumerable, DataSet, DataTable et DataReader comme source de donnée...
Merci bien!! :-)
Partager