1
« en: Viernes 10 de Marzo de 2006, 21:44 »
Tengo dentro de un datagrid un combobox. Este datagrid lo paso a un dataset para ser usado por un crystal reports.
Mi problema es que todos los campos pasan bien, los de texto, checkbox, etc.
Pero los campos que tienen combobox no puedo hacerlos funcionar.
Lo que me toma es el indice del combobox y este fue cargado desde una tabla de sql y no se como puedo recuperarlo, les paso el código a ver si alguien me da una manito.
ds = New DSReports
Dim tbStyle As DataGridTableStyle
tbStyle = Grid.TableStyles(0)
Dim dataMember As String
dataMember = Grid.DataMember
Dim dataSource As DataSet
dataSource = Grid.DataSource
Dim column As DataGridColumnStyle
Dim nI As Integer
Dim drow As DataRow
For Each drow In dataSource.Tables(dataMember).Rows
Dim drowNew As DataRow
drowNew = ds.Tables("Datos").NewRow
nI = 1
For Each column In tbStyle.GridColumnStyles
Select Case column.GetType.Name.ToString
Case "DataGridTextBoxColumn"
drowNew.Item("Campo" + nI.ToString) = drow.Item(column.MappingName)
nI += 1
Case "DataGridTimePickerColumn"
drowNew.Item("Campo" + nI.ToString) = CDate(drow.Item(column.MappingName)).ToShortDateString.ToString
nI += 1
Case "MyDataGridBoolColumn"
If (Convert.ToString(drow.Item(column.MappingName)) = True) Then
drowNew.Item("Campo" + nI.ToString) = "X"
nI += 1
Else
drowNew.Item("Campo" + nI.ToString) = " "
nI += 1
End If
' en este case tengo el problema el codigo
' que esta adentro son pruebas ya que no se que hacer
Case "DataGridComboBoxColumn"
' el drow.Item(column.MappingName) me devuelve el indice del combo box
Dim codCombo = drow.Item(column.MappingName)
Dim cbxdgr As UsersControls.DataGridComboBoxColumn = column
Dim arrDrow() As DataRow = dataSource.Tables("ConsultaTiposIva").Select(column.MappingName + "='" + codCombo + "'")
If (arrDrow.Length > 0) Then
drowNew.Item("Campo" + nI.ToString) = arrDrow(0).Item("IvaDescrip")
nI += 1
End If
Case "DataGridButtonColumn"
drowNew.Item("Campo" + nI.ToString) = " "
End Select
Next
Saludos Seb@