Autor Tema: Buscar en MSHFlexGrid  (Leído 5189 veces)

0 Usuarios y 1 Visitante están viendo este tema.

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Buscar en MSHFlexGrid
« en: Julio 12, 2012, 10:49:00 pm »
Holas! :P

Por razones extraordinarias ( ??? ) debo usar el MSHFlexGrid (o similar, pero ya empeze con este, ya que nunca lo use ;D). Vieron que para el típico sistema de administración tenes el botón Agregar, editar y borrar.
Yo siempre use el ucListView, y cuando querías agregar y ponías algún valor duplicado, yo alertaba que era un valor duplicado y seleccionaba la fila en el listview. Bien, hay como 4 formularios en los que uso ucListView y uno en el que uso el MSHFlexGrid (no me queda otra), en el cual no encuentro algo al que pueda buscar un Item y seleccionarlo (en ucListView tengo el FindText).
Creo que debe haber algo más rápido que el recorrer fila por fila no?

Además, hay alguna forma de saber cuando no hay items seleccionados? (Uso seleccionar por fila) Porque rowsel siempre me tira 1 cuando no hay item seleccionado :P

Cualquier sugerencia, es valida :P Mientras me voy acostumbrando y decido si pasar todo a MSHFlexGrid o hacer un Mix entre este y los ucListView x'D

Saludos!

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Buscar en MSHFlexGrid
« Respuesta #1 en: Julio 12, 2012, 11:12:04 pm »
HOLA Raul. en esto momentos estoy en el celu pero creo que para buscar lo podias hacer con textmatrix busca por alli..
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Buscar en MSHFlexGrid
« Respuesta #2 en: Julio 13, 2012, 12:49:49 am »
si usas bases de datos, para saber si ya esta ingresado (por ejemplo un ID repetido o un nombre igual) yo simplemente hago un select simple y si devuelve algo es que ya existe, nunca recorro la grilla y tampo necesito reslatarlo ya que el formulario del alta ABM se abre en forma modal arriba de donde esta la grilla, simplemente aviso que ya existe y listo.

y si, hasta ahora no hay mejor control que el MSHFlexGrid en el tema de bases de datos, carga el recordset muy rapido, mas rapido que el ucListView, pero yo uso los 2, en las pantallas que necesito que se vean con checkbox, grupos y demas, sacrifico un poco de performance, para que se vea mejor la interfaz con el ucListView.

saludos.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Buscar en MSHFlexGrid
« Respuesta #3 en: Julio 13, 2012, 12:30:33 pm »
Yo lo hago asi como dice Seba. Este es mi code

Código: (VB) [Seleccionar]
Dim xEncontrado As String

Private Sub Command1_Click()

    Call BUSCAR_CODIGO_REPETIDO
   
    If txtCodInterno.Text = "" Then
       
        MsgBox "Debe escribir el codigo interno", vbInformation
               
    ElseIf xEncontrado = txtCodInterno.Text Then
       
        MsgBox "Este código ya se encuentra en la base datos", vbInformation
               
    Else

        '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
        '// Conectar la Base Datos con ADO
            Call ConectarADO
        '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
           
            V01 = "'" & txtCodInterno.Text & "'"
            V02 = "'" & txtCodBarra.Text & "'"
            V03 = "'" & UCase(txtNombre.Text) & "'"
                   
            cnADO.BeginTrans
           
                ComandoSQL = "INSERT INTO articulos (codinterno,codbarra,nombre) VALUES (" & V01 & "," & V02 & "," & V03 & ")"
                cnADO.Execute ComandoSQL
           
            cnADO.CommitTrans
   
        '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
        '// Cerrar la base de datos y liberar la memoria
            Call CerrarADO
        '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
               
    End If


End Sub

Sub BUSCAR_CODIGO_REPETIDO()
       
    xEncontrado = ""
       
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Conectar la Base Datos con ADO
        Call ConectarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
       
        StrSQL = "SELECT codinterno FROM articulos WHERE codinterno='" & txtCodInterno.Text & "'"
        rsADO.Open StrSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText

        Do Until rsADO.EOF
            With rsADO
                xEncontrado = .Fields("codinterno")
                rsADO.MoveNext
            End With
        Loop
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Cerrar la base de datos y liberar la memoria
        Call CerrarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
       
End Sub

CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Buscar en MSHFlexGrid
« Respuesta #4 en: Julio 13, 2012, 12:48:33 pm »
En el video ABM que hice uso este control. No se si te sirva de algo porque lo he tratado de manera basica pero en sintesis lo hice con el mismo tenor que comenta sebas.

Saludos
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Buscar en MSHFlexGrid
« Respuesta #5 en: Julio 13, 2012, 01:21:03 pm »
Claro, yo tambien muestro una ventana modal, que hasta a veces muestra los detalles, etc. Pero siempre lo hice así, si pones un valor que esta repetido (ovbio, hago un simple select y listo, es más rapido que cualquier otra cosa), cierro (si es algo simple) y de ahí uso el ItemFindText para seleccionarlo en el ListView y que pueda seguir trabajando con el item seleccionado... y medio como que cambia ahora en el MSHFlexGrid... Ya que todos los demas lo tienen y justo este que es un formulario donde le van a dar mucho uso... :P porque no es simplemente Alta, Editar, borrar, sino tambien sus opciones para cada uno :P

Bueno, si no queda otra... intentaré hacer búsqueda binaria :P y bueno, de ultima, fila por fila  :'(