Bonjour,
J'ai un code qui me permet de filtrer ce que je veux que CR m'affiche
En total j'ai 4 combobox. La première contient All + Licence, ce qui permet d'afficher tout avec All.
Par contre je ne sais pas comment faire avec les autres combobox. Car dans mon code il affichera seulement ce qui est sélectionné.
Je voudrai qu'il soit pas obliger de sélectionner tout pour afficher seulement une partie.
Exemple, qu'il choisisse un Maker et qu'il laisse Licence, Types ou Scale vide et qu'il affiche tous de Maker sans filtre.
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 If ComboBox1.Text = "All" Then Me.Cursor = Cursors.WaitCursor Try Dim ds As New DataSet Dim query As String query = "select * from product order by id_maker asc, id_types asc, id_scale asc,name asc" Dim dscmd As New MySqlDataAdapter(query, con) dscmd.Fill(ds, "PAYPRODUCTTOTAL") con.Close() Dim cryds As New All_Database_Report cryds.SetDataSource(ds.Tables(0)) CrystalReportViewer1.ReportSource = cryds CrystalReportViewer1.Refresh() Catch ex As Exception MessageBox.Show(ex.Message) End Try ElseIf ComboBox1.Text <> "All" Then If ComboBox2.Text = Nothing Then MsgBox("Select a Maker", MsgBoxStyle.Exclamation) ElseIf ComboBox3.Text = Nothing Then MsgBox("Select a Type", MsgBoxStyle.Exclamation) ElseIf ComboBox4.Text = Nothing Then MsgBox("Select a Scale", MsgBoxStyle.Exclamation) Else Try Dim ds As New DataSet Dim query As String p(0) = New MySqlParameter("@License", MySqlDbType.String) p(0).Value = ComboBox1.Text p(1) = New MySqlParameter("@Maker", MySqlDbType.String) p(1).Value = ComboBox2.Text p(2) = New MySqlParameter("@Type", MySqlDbType.String) p(2).Value = ComboBox3.Text p(3) = New MySqlParameter("@Scale", MySqlDbType.String) p(3).Value = ComboBox4.Text query = "select * from product WHERE license = @License AND id_maker = @Maker AND id_types = @Type AND id_scale = @Scale order by id_maker asc, id_types asc, id_scale asc,name asc" Dim dscmd As New MySqlDataAdapter(query, con) dscmd.SelectCommand.Parameters.Add(p(0)) dscmd.SelectCommand.Parameters.Add(p(1)) dscmd.SelectCommand.Parameters.Add(p(2)) dscmd.SelectCommand.Parameters.Add(p(3)) dscmd.Fill(ds, "PAYPRODUCTTOTAL") con.Close() Dim cryds As New All_Database_Report cryds.SetDataSource(ds.Tables(0)) CrystalReportViewer1.ReportSource = cryds CrystalReportViewer1.Refresh() Catch ex As Exception MessageBox.Show(ex.Message) End Try End If End If Me.Cursor = Cursors.Default
Partager