更新,我一直在努力理解@Plutonix的想法,但我无法将其付诸实践,因此无法解决我的问题。
有人可以帮我解释一下如何将@Plutonix的想法付诸实施吗?或任何其他会产生相同目标的想法。
我只是想为我的数据集中的每一行创建一组条件语句,我希望这些条件语句填充下面显示的框。
----------------------------- // ---------------- ------------------
我正在创建一个后面有访问数据库的Windows应用程序。
此访问数据库包含5列和40行。
第一列是行的ID,第二列是人名,其余3列是1到25的等级。
在我的表格中,我的目标是有一个带有人名的盒子和里面带有等级的小盒子,我希望这个盒子有一个阈值,使它们根据等级改变颜色。这很容易做到,我已经完成了前2个方框,其中if语句基于在等级的文本框中找到的值。
我的问题是,有40行,这意味着我必须向几个学生中的几个条件做几个if语句,这将产生120组代码。
现在......请记住,我通常不是程序员,因此我的技术知识有限,但如何以更简单的方式为我的所有数据集定义阈值,并考虑到每个人的阈值都是相同的?我不想为每个阈值/列/人做一个if语句。
这就是我现在正在做的事情:
If (Me.PersonBox1.Text < 17) Then
Me.Contract2.BackColor = Color.Crimson
Me.Label4.BackColor = Color.Crimson
Me.TextBox4.ForeColor = Color.White
Me.Label5.BackColor = Color.Crimson
Me.TextBox4.BackColor = Color.Crimson
ElseIf (Me.PersonBox1.Text>= 17 And Me.TextBox1.Text <= 18) Then
Me.Contract2.BackColor = Color.Orange
Me.Label4.BackColor = Color.Orange
Me.TextBox4.ForeColor = Color.White
Me.Label5.BackColor = Color.Orange
Me.TextBox4.BackColor = Color.Orange
ElseIf (Me.PersonBox1.Text >= 19 And Me.TextBox1.Text <= 20) Then
Me.Contract2.BackColor = Color.Gold
Me.Label4.BackColor = Color.Orange
Me.TextBox4.ForeColor = Color.White
Me.Label5.BackColor = Color.Gold
Me.TextBox4.BackColor = Color.Gold
ElseIf (Me.PersonBox1.Text >= 21 And Me.TextBox1.Text <= 22) Then
Me.Contract2.BackColor = Color.LawnGreen
Me.TextBox4.ForeColor = Color.White
Me.Label5.BackColor = Color.LawnGreen
Me.TextBox4.BackColor = Color.LawnGreen
ElseIf (Me.PersonBox1.Text > 22) Then
Me.Contract2.BackColor = Color.LimeGreen
Me.TextBox4.ForeColor = Color.White
Me.Label5.BackColor = Color.LimeGreen
Me.TextBox4.BackColor = Color.LimeGreen
Me.Label5.ForeColor = Color.White
End If
现在我不想每列每位学生重复120次,所以现在我的想法就是这样推动我:
Dim Var_OStatus As Integer
Dim Var_SlaAch As Integer
Dim Var_Com As Integer
Dim Var_Part As Integer
Dim Var_ContImp As Integer
Dim Var_OStab As Integer
Dim Var_PersonID As Integer
Dim table As DataTable
Dim row As DataRow
Dim column As DataColumn
For Each table In Contract_ManagementDataSet3.Tables
For Each row In table.Rows
For Each column In table.Columns
Var_OStatus = Contract_ManagementDataSet3.Tables(0).Rows(0).ToString
MsgBox("test " + Var_OStatus.ToString())
Next column
Next row
Next table
我认为这可能是要走的路,但我现在绝对迷失了。
非常感谢任何想法。
仪表板示例:
每个方块将根据一般阈值根据其中的值更改其颜色:
此致