Visual Basic.NET - Ocultar ceros grid.

 
Vista:

Ocultar ceros grid.

Publicado por Juan Carlos (10 intervenciones) el 06/08/2009 20:35:51
Hola a todos:

Resulta que un un grid muestro los valores de una cuenta columnas tales como DEBE y HABER. Necesito que no se muestre contenido para aquellos casos donde el valor es cero.

¿Como puedo hacerlo?

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ocultar ceros grid.

Publicado por P. J. (706 intervenciones) el 07/08/2009 06:57:53
Saludos,

Lo mas sencillo seria hacer lo sgte:

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value = "0" Then Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value = ""
End Sub

Ese codigo pondra "" en la primera columna, siempre y cuando el valor actual sea cero ("0")

Tambien puedes validar esto en tu consulta SQL (en caso cargues de una BD) usando el CASE WHEN THEN

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar ceros grid.

Publicado por Juan Carlos (10 intervenciones) el 07/08/2009 23:29:39
Muchas Gracias por tu respuesta! Pero no me pude hacerlo andar. El tema es que de da error de casteo, porque a los datos de esas columnas los ve como decimales.
Había en otros casos optado por manejarlos como string a esos datos que son decimal en la base de datos, pero quería saber si había una forma más fácil. Puntualmente lo que hacía era en la consulta sql usar las funciones cast y replace para lograr el aspecto/formateo deseado.
Muchas gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ocultar ceros grid.

Publicado por P. J. (706 intervenciones) el 08/08/2009 18:44:56
Funciono? o no, bueno igual aca te sugiero lo siguiente:

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value.toString = "0" Then Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value = ""
End Sub

Con eso ya estara el valor en cadena y podras poner "", tambien lo puedes hacer en el SQL como te mencione antes usando CASE WHEN THEN al ejecutar tu consulta, este seria un ejm:

SELECT CASE CONVERT(VARCHAR,DEBE) WHEN '0' THEN '' ELSE CONVERT(VARCHAR,DEBE) END
FROM MI_TABLA

Y asi con la otra columna, si haces esto ya no tendrias que validar en el visual.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar