Re: color de filas en datagrid

25/05/2006 - 18:31 por sagma | Informe spam
Claro, LMB, esto tengo en el LOAD

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loa

ds = emp.consulta("SELECT suempcemp,suempnemp,suempruni,suempdemp,suemptelf,rhcondes1 " &
"FROM suemp,rhcon " &
"WHERE rhcongrup = 500 " &
" AND rhconsubg = suempstat " &
"ORDER BY suempcemp"
DataGrid1.DataSource = ds.Tables("suemp"

'Cargando los status para la hor
panelTime.BorderStyle = StatusBarPanelBorderStyle.Sunke
panelTime.AutoSize = StatusBarPanelAutoSize.Sprin
panelTime.Alignment = HorizontalAlignment.Righ

'Cargando los status para la fech
panelDate.BorderStyle = StatusBarPanelBorderStyle.Raise
panelDate.ToolTipText = System.DateTime.Today.ToShortDateStrin
panelDate.Text = System.DateTime.Today.ToLongDateStrin
panelDate.AutoSize = StatusBarPanelAutoSize.Content

'Llenando el statusba
StatusBar1.ShowPanels = True 'para que muestre varios panele
StatusBar1.Panels.Add(panelTime
StatusBar1.Panels.Add(panelDate
StatusBar1.Panels.Add(panelEmp

'para que cambie la hora y la fech
Timer1.Start(

Call ConfigurarGrilla(

End Su

Sub ConfigurarGrilla(

Dim myEstiloGrid As DataGridTableStyle = New DataGridTableStyl
myEstiloGrid.MappingName = "suemp

'Codigo del emplead
Dim myEstiloCol As New DataGridTextBoxColum
myEstiloCol.MappingName = "suempcemp
myEstiloCol.HeaderText = "Codigo
'myEstiloCol.ColorFondoCondicion = Color.Cya
myEstiloCol.Width = 4

'Descripcion o nombre del emplead
Dim myEstiloCol2 As New DataGridTextBoxColum
myEstiloCol2.MappingName = "suempnemp
myEstiloCol2.HeaderText = "Nombre
'myEstiloCol2.Alignment = HorizontalAlignment.Cente
'myEstiloCol2.ColorFondoCondicion = Color.Cya
myEstiloCol2.Width = 22

'estado en que se encuentra el trabajado
Dim myEstiloCol6 As New DGTxtColColo
myEstiloCol6.MappingName = "rhcondes1
myEstiloCol6.HeaderText = "Estado
'myEstiloCol6.ColorFondoCondicion = Color.Cya
myEstiloCol6.Width = 6

myEstiloGrid.GridColumnStyles.Add(myEstiloCol
myEstiloGrid.GridColumnStyles.Add(myEstiloCol2
myEstiloGrid.GridColumnStyles.Add(myEstiloCol6

Me.DataGrid1.TableStyles.Add(myEstiloGrid

' Set up the grid tooltips
Me.hitRow = -
Me.toolTip1 = New ToolTi
Me.toolTip1.InitialDelay = 30
AddHandler Me.DataGrid1.MouseMove, AddressOf dataGrid1_MouseMov

end sub

como veras, rhcondes1 es un char (digo char, por que estos tomando datos de una tabla de informix

hago el JOIN entre suemp y rhcon, de donde la tabla suemp esta solo el codigo 1 y/o 2,ya que uno es ACTIVO y 2 es BAJA, y estos datos de ACTIVO y BAJA estan en la tabla rhcon, de donde rhcon es rhconcond SERIAL, rhcondesc CHAR(60

gracia

sagma

Ver este tema: http://www.softwaremix.net/viewtopic-516825.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Luis Miguel Blanco
26/05/2006 - 17:59 | Informe spam
Hola sagma

Con esta información que me has dado, creo que tengo una posible pista sobre
el origen del problema.

Si he entendido bien, en el campo rhcondes1 debería haber la cadena "ACTIVO"
o "BAJA", pero también dices que este campo es de tipo CHAR(60), por lo que
es probable que cuando grabes una cadena en él, te rellene con espacios en
blanco desde el final de la cadena que añades, hasta completar la longitud de
60.

Si esto es así, cuando en el evento Paint() de la clase personalizada para
estilo de columna vas a comprobar el valor del campo, puede que el campo del
objeto DataRowView tenga la cadena "BAJA" más los espacios en blanco hasta
completar una cadena con longitud 60, por lo que la expresión:

'///////////////////
If ofiladatos("rhcondes1") = "BAJA" Then
'///////////////////

no se cumpliría.

Prueba a eliminar primero los espacios en blanco de forma parecida a la
siguiente:

'///////////////////
If CType(ofiladatos("rhcondes1"), String).Trim() = "BAJA" Then
'///////////////////

a ver si de esta manera ya consigues el comportamiento necesario.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"sagma" wrote:


Claro, LMB, esto tengo en el LOAD:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ds = emp.consulta("SELECT suempcemp,suempnemp,suempruni,suempdemp,suemptelf,rhcondes1 " & _
"FROM suemp,rhcon " & _
"WHERE rhcongrup = 500 " & _
" AND rhconsubg = suempstat " & _
"ORDER BY suempcemp")
DataGrid1.DataSource = ds.Tables("suemp")

'Cargando los status para la hora
panelTime.BorderStyle = StatusBarPanelBorderStyle.Sunken
panelTime.AutoSize = StatusBarPanelAutoSize.Spring
panelTime.Alignment = HorizontalAlignment.Right

'Cargando los status para la fecha
panelDate.BorderStyle = StatusBarPanelBorderStyle.Raised
panelDate.ToolTipText = System.DateTime.Today.ToShortDateString
panelDate.Text = System.DateTime.Today.ToLongDateString
panelDate.AutoSize = StatusBarPanelAutoSize.Contents

'Llenando el statusbar
StatusBar1.ShowPanels = True 'para que muestre varios paneles
StatusBar1.Panels.Add(panelTime)
StatusBar1.Panels.Add(panelDate)
StatusBar1.Panels.Add(panelEmp)

'para que cambie la hora y la fecha
Timer1.Start()

Call ConfigurarGrilla()

End Sub

Sub ConfigurarGrilla()

Dim myEstiloGrid As DataGridTableStyle = New DataGridTableStyle
myEstiloGrid.MappingName = "suemp"

'Codigo del empleado
Dim myEstiloCol As New DataGridTextBoxColumn
myEstiloCol.MappingName = "suempcemp"
myEstiloCol.HeaderText = "Codigo"
'myEstiloCol.ColorFondoCondicion = Color.Cyan
myEstiloCol.Width = 40

'Descripcion o nombre del empleado
Dim myEstiloCol2 As New DataGridTextBoxColumn
myEstiloCol2.MappingName = "suempnemp"
myEstiloCol2.HeaderText = "Nombre"
'myEstiloCol2.Alignment = HorizontalAlignment.Center
'myEstiloCol2.ColorFondoCondicion = Color.Cyan
myEstiloCol2.Width = 225

'estado en que se encuentra el trabajador
Dim myEstiloCol6 As New DGTxtColColor
myEstiloCol6.MappingName = "rhcondes1"
myEstiloCol6.HeaderText = "Estado"
'myEstiloCol6.ColorFondoCondicion = Color.Cyan
myEstiloCol6.Width = 60

myEstiloGrid.GridColumnStyles.Add(myEstiloCol)
myEstiloGrid.GridColumnStyles.Add(myEstiloCol2)
myEstiloGrid.GridColumnStyles.Add(myEstiloCol6)

Me.DataGrid1.TableStyles.Add(myEstiloGrid)

' Set up the grid tooltips.
Me.hitRow = -1
Me.toolTip1 = New ToolTip
Me.toolTip1.InitialDelay = 300
AddHandler Me.DataGrid1.MouseMove, AddressOf dataGrid1_MouseMove

end sub

como veras, rhcondes1 es un char (digo char, por que estos tomando datos de una tabla de informix.

hago el JOIN entre suemp y rhcon, de donde la tabla suemp esta solo el codigo 1 y/o 2,ya que uno es ACTIVO y 2 es BAJA, y estos datos de ACTIVO y BAJA estan en la tabla rhcon, de donde rhcon es rhconcond SERIAL, rhcondesc CHAR(60)

gracias


sagma


Ver este tema: http://www.softwaremix.net/viewtopic-516825.html

Enviado desde http://www.softwaremix.net



Preguntas similares