Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

contar las filas seleccionadas de un msflexgrid

Estas en el tema de contar las filas seleccionadas de un msflexgrid en el foro de Visual Basic clásico en Foros del Web. Buenas, podria alguien ayudarme con lo sigte: necesito saber cuantas filas han sido seleccionadas de un msflexgrid. la propiedad rowsel me indica solo la ultima ...
  #1 (permalink)  
Antiguo 17/02/2010, 10:29
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Pregunta contar las filas seleccionadas de un msflexgrid

Buenas, podria alguien ayudarme con lo sigte:

necesito saber cuantas filas han sido seleccionadas de un msflexgrid.

la propiedad rowsel me indica solo la ultima fila que fue seleccionada pero no logro determinar la primera. He buscado en san google sin mucho exito

cualquier luz será agradecida

carpe diem, tempus fugit!
  #2 (permalink)  
Antiguo 17/02/2010, 12:54
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
De acuerdo Respuesta: contar las filas seleccionadas de un msflexgrid

pego aqui la respuesta obtenida en otro foro, por si a alguien le sirve como a mi, quedaria asi:



Código:
Dim NumFilas as Long
 
NumFilas = Abs(msflexgrid.Row - msflexgrid.RowSel)+1


compartir es devolver la mano amiga
  #3 (permalink)  
Antiguo 31/03/2010, 05:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: contar las filas seleccionadas de un msflexgrid

Esto no soluciona la pregunta del todo.. Lo que creo que pregunta, es ¿Como saber cuantas filas se han seleccionado, aunque la selección no sea correlativa?
  #4 (permalink)  
Antiguo 31/03/2010, 10:04
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: contar las filas seleccionadas de un msflexgrid

Cita:
Iniciado por peladilla18 Ver Mensaje
Esto no soluciona la pregunta del todo.. Lo que creo que pregunta, es ¿Como saber cuantas filas se han seleccionado, aunque la selección no sea correlativa?
Hola, cuando tengas un momento me gustaría me dijeras como has conseguido para seleccionar en un msflexgrid filas no correlativas .

Si te fijas veras que es el mismo que preguntaba quien se responde, por lo que me imagino que si era esto lo que preguntaba.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #5 (permalink)  
Antiguo 31/03/2010, 14:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: contar las filas seleccionadas de un msflexgrid

Mis disculpas so ha parecido lo que noes..... efectivamente, daré por hecho que la respuesta era válida... pero ¿es que no se puede seleccionar en un flexgrid varias filas no correlativas? Que no se mucho.... mis disculpas de nuevo, erbuson
  #6 (permalink)  
Antiguo 31/03/2010, 15:27
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: contar las filas seleccionadas de un msflexgrid

Efectivamente, no se puede multiseleccionar, o yo por lo menos no se hacerlo, en programación es demasiado arriesgado decir que no se puede, corres el peligro de 'meter la gamba'

Una posibilidad es las giuiente, creas un nuevo proyecto e insertas un MsFlexGrid1 del tamaño que creas oportuno y después pegas el siguiente código.

Código vb:
Ver original
  1. Private Sub Form_Load()
  2.   With MSFlexGrid1
  3.     .Rows = 10
  4.     .Cols = 5
  5.   End With
  6. End Sub
  7.  
  8. Private Sub MSFlexGrid1_Click()
  9.   Dim Fila As Single
  10.   Fila = MSFlexGrid1.Row
  11.   If Fila = 0 Then Exit Sub
  12.   If MSFlexGrid1.TextMatrix(Fila, 0) = "" Then
  13.     MSFlexGrid1.TextMatrix(Fila, 0) = "X"
  14.   Else
  15.     MSFlexGrid1.TextMatrix(Fila, 0) = ""
  16.   End If
  17.   MSFlexGrid1.TextMatrix(0, 0) = Seleccionadas
  18. End Sub
  19.  
  20. Private Function Seleccionadas() As Single
  21.   Dim Fila As Single
  22.   For Fila = 1 To MSFlexGrid1.Rows - 1
  23.     If MSFlexGrid1.TextMatrix(Fila, 0) = "X" Then Seleccionadas = Seleccionadas + 1
  24.   Next
  25. End Function

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #7 (permalink)  
Antiguo 01/04/2010, 14:13
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: contar las filas seleccionadas de un msflexgrid

Muchisimas gracias erbuson por tu ayuda, y siento una vez más haber dado pie a malosentendidos....como bien dices "agradecer a quien te enseñó, es enseñar lo que de él aprendieste". Asi que, de nuevo, gracias.

Si me lo permites, me gustaría resolver una duda que me surge.

Interpreto del código, que asignamos a la columna 0 del msflexgrid la posibilidad de estar vacia o con una X. Esto hará que, cuando pulse sobre una fila, la columna 0 de esa fila se convierta en X y así, tendré varias que puedo seleccionar.

Como en mi programa, ese flexgrid va asociado a un control data (que a su vez va asociado a una base de datos muy, pero que muy sencillita, de una sola tabla, en la que los mensajes pueden estar VISTOS o PENDIENTES), entiendo que el código tendré que modificarlo para que, en vez de buscar en la columna 0, busque en la....4, creo que es en mi base de datos. Y en vez de X deberá ser VISTO....

¿Estoy en lo cierto?

Por último, ¿Habría alguna posibilidad de hacer de esta acción de click(), tipo on/off? quiero decir, que la primera vez que pulse pase a X y si vuelvo a pulsar se vuelva ""....

Gracias de nuevo, espero tu respuesta con ansia. Mil disculpas.... de nuevo.
  #8 (permalink)  
Antiguo 01/04/2010, 14:49
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: contar las filas seleccionadas de un msflexgrid

¿O existe algun msflexgrid activex que permita esa multiselección?

La verdad es que yo en el trabajo he usado un programa que no sólo permitía la multiselección, sino que además cuando tenías seleccionadas varias filas, al dar a un commandbutton, las quitaba de la pantalla, dejando el flexgrid (si es que era un flexgrid) tan sólo con las filas que querías en pantalla. No es que eliminara los datos de las filas en la base de datos, sino que, al cambiar el estado de un mensaje a VISTO en vez de PENDIENTE, desaparecía del msflexgrid, supongo que porque ya no cumplía la condición de ese flexgrid, que era presentar tan sólo mensajes pendientes...
  #9 (permalink)  
Antiguo 01/04/2010, 15:59
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: contar las filas seleccionadas de un msflexgrid

Si pruebas completamente el ejemplo verás que precisamente hace lo que pides o sea la función on/off por otra parte, por supuesto que puedes cambiar la columna a utilizar, lo mio no es mas que un simple ejemplo.

Por supuesto que tampoco tienes porque usar la X que a lo mejor no resulta muy elegante.

Podrías incluso crear una función que al Marcar/Desmarcar cambie el color de fondo de la fila marcada para que se vean mas.

Respecto a tu pregunta de si algún MsFlexgrid permite hacerlo en este enlace tienes uno que lo permite aunque nunca lo he utilizado, tengo bastante claro el uso del MsFlexGrid y prefiero no complicarme mas la existencia.

http://www.vbaccelerator.com/home/VB...mance_Test.asp
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #10 (permalink)  
Antiguo 04/04/2010, 15:11
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: contar las filas seleccionadas de un msflexgrid

Bien. Gracias. Una vez probado, no me funcionan muchas de las funcionalidades que ya tenía con el msflexgrid. asumiré que no puedo hacerlo y ya está. Un saludo.
  #11 (permalink)  
Antiguo 05/04/2010, 00:17
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 4 meses
Puntos: 53
Respuesta: contar las filas seleccionadas de un msflexgrid

Si te refieres a que lo que has probado es el código para marcar y desmarcar los elementos del Grid, dudo que la aplicación del mismo que haya quitado "funcionalidades" al grid ya que lo único que hace es poner o quitar una X o el valor que tu quieras.
Si todavía quieres utilizarlo indica que es lo que te falla y tratamos de solucionarlo ten en cuenta que el implementarlo en el evento Click es siempre condicionado ya que si por ejemplo al pulsar click sobre la fila 0 efectuabas ordenaciones u otro tipo de operaciones es en la programación donde debe condicionar cuando y como debe marcar/desmarcar, ordenar y todo ello es posible.

Piensa que el ejemplo no es una solución, es solo una manera para que lo entiendas.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: contar, filas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:29.