更新しました
winform には、datetimepicker 4 つの通常の texbox と 2 つのマスクされた texbox とバインドされた datagridview があります。
datagridview の cellformatting イベントを使用して、別のデータテーブルから従業員の名前を検索しています。これを達成するために、私は大部分が機能しているSQLステートメントを使用しています。
現時点では、2番目のデータテーブルの異なる列から従業員名を返し、従業員IDの直後のデータグリッドビューの2番目の列に意図したとおりに設定します。
機能していない部分は、退職日 (「FSalida」列) を見て、退職日がない場合、または選択した日付が退職日より前の場合にのみ従業員名を返すことです。つまり、従業員が退職した場合、退職日以降は表示されません。
私が持っているコードはこれです:
Private Sub PartePersonalDataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
'This looks up the employee's full name using the employee number from the ID column (first column)
Try
Dim dgvr As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
If dgvr.Cells(0).Value IsNot Nothing AndAlso dgvr.Cells(0).Value IsNot DBNull.Value Then
Dim empID As Integer = CInt(dgvr.Cells(0).Value)
Dim qry = From dr As PersonalObraDataSet.PersonalObRow In PersonalObraDataSet.PersonalOb
Where (dr.cdTrabajador = empID) And (dr.FSalida = Nothing) Or (dr.FSalida <= txtDate.Text)
'This returns each part of the name and joins it in the the 2nd column (name column)
DataGridView1.Rows(e.RowIndex).Cells(1).Value = (qry.First.Nombre1 & " " & qry.First.Nombre2 & " " & qry.First.Apellido1 & " " & qry.First.Apellido2)
DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = DefaultBackColor
End If
'If there is an exemption like the employee doesn't exists this turns the background color red and instead
'of the name on the second column it shows "employee doesn't exist."
Catch ex As Exception
DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Red
DataGridView1.Rows(e.RowIndex).Cells(1).Value = "ESTE EMPLEADO NO EXISTE"
Exit Sub
機能していない部分は「And」の後にあります。
Where (dr.cdTrabajador = empID) And (dr.FSalida = Nothing) Or (dr.FSalida <= txtDate.Text)
これはルックアップ テーブルのデータのサンプルです。
ProjectID EmployeeID DepartmentID HIreDate TerminationDate Name Middle Last
3116 83 1 09/03/2012 27/04/2012 John Doe Doe2
3116 373 1 16/11/2012 Pedro John Ortiz
3116 1 1 01/01/2013 Jose Maria Applessed
これを修正するためにあなたの助けをいただければ幸いです。