Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: ale_xi en Abril 27, 2016, 03:22:56 am

Título: Poner un icono de MshFlexGrid
Publicado por: ale_xi en Abril 27, 2016, 03:22:56 am
Hola a todo, Estoy intentando meter un icono en una columna de un Msflexgrid y este Grid estas conectado una BD en una tabla llamada ventas una campo es llama  activar tiene solo 0,1 nada mas 1 ACTIVAR 0 DESACTIVAR, Quiero que coloque un icono este campo tienes 1 de cualquier color para destacarlo y 0 de otro color distinto al anterior
 
aqui les doy una idea de lo que busco:


http://www.quentas.net/upload/single-project/06.jpg



ojala no te molestas YAcosta


gracias

Título: Re:Poner un icono de MshFlexGrid
Publicado por: YAcosta en Abril 27, 2016, 12:25:01 pm
jajajaja no problem, lo bueno es que citaste la fuente jajaja.

Doc te puedo ayudar pero tendrías que esperarme hasta casi la noche, pasa que estoy en cliente y aqui no tengo nada de código y terminare este trabajo hasta las 6pm, de allí en lo que llegue a casa y me acomode. Si hasta entonces no tienes respuesta te hecho una mano.

Saludos
Título: Re:Poner un icono de MshFlexGrid
Publicado por: ale_xi en Abril 27, 2016, 10:47:08 pm
gracias  YAcosta voy esperar
 
Título: Re:Poner un icono de MshFlexGrid
Publicado por: YAcosta en Abril 28, 2016, 12:24:49 am
Bien.
Primero hago mi descargo de que el método que uso lo realice hace mas de 5 años, no se si es el mejor metodo o hay alguna forma mas ortodoxa, lo cierto es que es un codigo que no toque en estos años porque desde el principio siempre me ha funcionado mejor de lo que esperaba.

Primero (usando el ejemplo que citaste)
(https://i.snag.gy/nEBFT9.jpg)

tengo 2 controles image cada uno con su respectivo gráfico.

Luego tengo un procedimiento que carga los datos con los que poblare el control
Luego tengo otro procedimiento que me "maquilla" el control, y en ese procedimiento tengo este codigo:

Código: (VB) [Seleccionar]
   .col = 0
   For nFila = 1 To .Rows - 1
      .Row = nFila
      Select Case .TextMatrix(nFila, 14)  '***
         Case 0:  Set .CellPicture = Image1.Picture ': .CellPictureAlignment(0) = 4
         Case Else:  Set .CellPicture = Image2.Picture ': .CellPictureAlignment(0) = 4
      End Select
      'otros maquillajes...

   Next nFila

*** Evalúo por esta columna, en este caso el grid muestra la lista de productos, si hay stock pone el botón verde, si no lo hay lo pone rojo (estoy tentado de poner uno amarillo que indique "ya se va acabar", no es difícil evaluar eso, pero mientras nadie lo financie no lo haré (me refiero a mis clientes)).

El asunto es que este código de maquillaje acompañado de otras lineas mas no resulta lento ni ineficiente, experimentando he llegado a cagar hasta 7000 registros y se pobló y maquilló en un pestañeo, ya con 1000 o 2000 filas se pasea, ah pero ojo: Cuando empiezas a tocar el grid debes poner Grid.Redraw = False/True para que no se sople pintar mientras hace el trabajo porque alli si iria lento, es decir:

Grid.Redraw = False
CodigoCargaData
CodigoMaquilla
Grid.Redraw = True

Y el resultado (en tiempo real) es este:
(http://queryfull.com/p/videoq.gif)

Servido.
Título: Re:Poner un icono de MshFlexGrid
Publicado por: ale_xi en Abril 28, 2016, 01:40:58 am
muchas gracias  yacosta por tu ayuda ya me funciono
Título: Re:Poner un icono de MshFlexGrid
Publicado por: ale_xi en Abril 29, 2016, 07:24:34 am
Hola YAcosta. Estuve viendo tu código, te cuento ya agregue 1icono  amarillo el cual indica que se va a acabar el producto, te mando el código modificado

Código: (VB) [Seleccionar]
Dim nFila As Integer
With Grid
 .Col = 0
  For nFila = 1 To .Rows - 1
      .Row = nFila
      Select Case CLng(.TextMatrix(nFila, 6))  '***
        Case 0:  Set .CellPicture = Image1.Picture ': .CellPictureAlignment(0) = 4
        Case Is <= CLng(10): Set .CellPicture = Image3.Picture
        Case Else:  Set .CellPicture = Image2.Picture ': .CellPictureAlignment(0) = 4
      End Select
     
     'otros maquillajes...

   Next nFila
 
End With






(http://s32.postimg.org/hbwdwwx01/Sin_t_tulo_2.jpg) (http://postimg.org/image/hbwdwwx01/)


Saludo

Título: Re:Poner un icono de MshFlexGrid
Publicado por: YAcosta en Abril 29, 2016, 02:38:43 pm
Excelente, te quedo piola.

Saludos