Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment filtrer mon dataset avant de l'envoyerà Crystal Report ?

1 réponse
Avatar
Herve MAILLARD
Bonjour,

Voilà mon pb: J'ai un dataset qui est remplit à partir d'un fichier XML.
J'utilise ensuite se dataset pour afficher des données que l'utilisateur
peut filtrer.
Je souhaite ensuite imprimer une "fiche"contenant les données filtrées et
pas l'ensemble des données comme je le fait pour l'instant.

Pour afficher les données filtrer j'utilise un Dataview mais pour Crystal
Report, la source de données ne peut être que Dataset (à priori).
Comment faire ? Faut t'il créer un nouveau dataset avec seulement mes
données filtrées (si oui comment ?)

Merci de votre aide,

Je galère....

H. MAILLARD

1 réponse

Avatar
Bonjour,

de mon expérience personnelle voilà comment je fais ce genre de manip

je crée une procédure stockée qui prend les critères de filtre les applique
et me renvoi un dataset

je passe ce dataset en setdatasource du report puis je donne le report à
afficher au crystal viewer par extension on peut considérer qu'un dataset
filtré devrait fonctionner

le problème étant qu'un select sur une table d'un dataset renvoi forcément
un tableau de datarow donc il faut évidement remanipuler pour recréer un
dataset

l'autre souci est que le report ne prend qu'un dataset donc la table a le
même nom que celui utilisé lors de la création du report donc même sur le
dataset d'origine il faut donner un nom à la table


ex

public DataSet GetDataGlobale()
{
DataSet monds=new DataSet();

SqlCommand mycmd=new SqlCommand("MaProcStock",Sqlconnection1);

SqlDataAdapter MonDa= new sqldataadpater(mycmd);

try
{

Sql§Connection1.open()

MonDa.fill(monds,"MaTable");

return monds;
}
catch{}
finally{SqlConnection1.close();}
}

pour éviter de m'embêter avec le report je crée un vue qui renvoi les même
colonne que ma proc stock de filtre (sans les paramètre ni les clauses
where) ensuite dans visual studio je crée un nouveau fichier de dataset puis
je glisse et dépose ma vue sur le concepteur bien sur la table crée porte le
nom de la vue ici MaTable ensuite je crée le report et dans le code il me
reste plus qu'a faire

monreport=new ClasseMonReport();
monreport.SetDataSource(MonObjet.GetDataGlobale);
Crystalviewer1.reportsource=monreport;

Après concernant le filtre sur le dataset il faudrait rechercher quelque
chose comme

int i

MondsÚtaSetSource.clone(); //récupère le schéma

MonDS.MaTable.rows.add(DataSetSource.MaTable.Select("id_client="+i)); //
ajoute les datarow renvoyé par le select dans le ds devant contenir le
résultat

Voilà mais le select n'est pas évident à faire fonctionner donc perso j'ai
opté pour la procédure stockée qui me parait plus souple

Sebastien



"Herve MAILLARD" a écrit dans le message de
news:40eaa8db$0$13897$
Bonjour,

Voilà mon pb: J'ai un dataset qui est remplit à partir d'un fichier XML.
J'utilise ensuite se dataset pour afficher des données que l'utilisateur
peut filtrer.
Je souhaite ensuite imprimer une "fiche"contenant les données filtrées et
pas l'ensemble des données comme je le fait pour l'instant.

Pour afficher les données filtrer j'utilise un Dataview mais pour Crystal
Report, la source de données ne peut être que Dataset (à priori).
Comment faire ? Faut t'il créer un nouveau dataset avec seulement mes
données filtrées (si oui comment ?)

Merci de votre aide,

Je galère....

H. MAILLARD