calcena 26-07-2020, 11:58
Buenas compañeros, una consulta, tengo unos desarrollos en los cuales para armar el contenido de un gridview paso el objeto por referencia para que en una función o método se construya y se rellene.
Bien este objeto lo primero que debe hacerse es formatearse para quedarse en blanco, bien pues para esto siempre tengo que acudir a la ayuda de una función que me hace una iteración dentro del control por las filas y columnas borrando el contenido.
No existe otra forma más ágil dentro del propio control que realice este formateo, he probado con .Clear pero esto me elimina el contenido pero NO me elimina las celdas que quedan vacías y se siguen acumulando hasta el infinito.
Código:
Public Function getErrores(ByRef objGridView As GridView) As GridView
 
  Dim iRow As Integer = 0
 
  rstResult = getResult()

  borrarGridView
 
  objGridView.Columns.Count = rstResult.Fields.Count
 
  objGridView.Rows.Height = 35
  objGridView.Header = rstResult.Fields.Count
 
  objGridView.Columns[0].Title = "Id"
  objGridView.Columns[0].Width = 0
  objGridView.Columns[0].Resizable = False
  objGridView.Rows[0].TextAlignment = 3
 
  objGridView.Columns[1].Title = "Estado"
  objGridView.Columns[1].Width = 42
  objGridView.Columns[1].Resizable = False
  objGridView.Rows[1].TextAlignment = 3
 
  objGridView.Columns[2].Title = "Fecha"
  objGridView.Columns[2].Width = 80
  objGridView.Columns[2].Resizable = False
  objGridView.Rows[2].TextAlignment = 3
 
  objGridView.Columns[3].Title = "Usuario"
  objGridView.Columns[3].Width = 80
  objGridView.Columns[3].Resizable = False
  objGridView.Rows[3].TextAlignment = 3
 
  objGridView.Columns[4].Title = "Formulario"
  objGridView.Columns[4].Width = 80
  objGridView.Columns[4].Resizable = False
  objGridView.Rows[4].TextAlignment = 3
 
  objGridView.Columns[5].Title = "Mensaje"
  objGridView.Columns[5].Width = 150
  objGridView.Columns[5].Resizable = False
  objGridView.Rows[5].TextAlignment = 3
 
  objGridView.Header = 3
  objGridView.Header = GridView.Horizontal
 
  rstResult.MoveFirst
 
  Do While rstResult.Available
    objGridView.Rows.Insert(iRow, 1)
    objGridView[iRow, 0].Text = rstResult!Id
    objGridView[iRow, 1].Text = rstResult!Estado
    objGridView[iRow, 2].Text = rstResult!FechaMod
    objGridView[iRow, 3].Text = rstResult!Usuario
    objGridView[iRow, 4].Text = rstResult!Formulario
    objGridView[iRow, 5].Text = rstResult!Mensaje
    
    iRow += 1
    rstResult.MoveNext
  Loop
 
  Return objGridView
 
End
Código:
Public Sub borrarGridView(ByRef objGridView As GridView)
 
  Dim x As Integer
 
  For x = objGridView.Rows.Count - 1 To Step -1
    objGridView.Rows.Remove(x, 1)
  Next
 
End

Se aceptan sugerencias de optimización y agilidad del proceso.

Saludos y gracias.
Shell 25-07-2020, 20:16
Buenas!.

Tengo un array y le quiero añadir x's veces otro array.

Primero usé este código:

Código:
Public Sub Ejemplo1()
  
  Dim miarray As Integer[] = [1, 2, 3]
  Dim apararepetir As Integer[] = [4, 5, 6]
  Dim i As Integer
  Dim cuentaveces As Integer
  
  cuentaveces = 3
  
  For i = 1 To cuentaveces
    miarray.Insert(apararepetir)
  Next
  
End

Ahora lo hice de otra forma más abreviada, algo más compleja, pero más rápida.
Fijaros en asignación del array.

Código:
Public Sub Ejemplo2()
  
  Dim cadena As String = "1,2,3"
  Dim insertar As String = ",4,5,6"
  Dim amiarray As New String[]
  Dim anumeros As Integer[]
  
  'Uso del método estático String para repetir tantas veces como queramos la concatenación
  'Concatenar todo lo anterior con la cadena que nos interesa
  'Convertir cadena con caracter delimitador a array
  
  amiarray = Split(cadena & String(3, insertar), ",")  
  
  'Conversión directa del array de tipo cadena a tipo entero
  anumeros = amiarray.Copy() 
  
  ' Print Object.Address(amiarray)
  ' Print Object.Address(anumeros)
  
End

¿ No existe una función parecida a Cstr o Cint para array's ?.  Smile
Sé que gambas puede convertir un tipo cadena a un entero directamente, pero  se le añade la función por motivos "educados".. Tongue
Pero convertir un array entero de tipo cadena a tipo entero ??. No había visto eso.

Saludos
calcena 25-07-2020, 18:35
Buenas tardes a todos,
Tengo un IconPanel y me gustaría que se ejecutase un método al pulsar sobre una pestaña de un iconPanel.
Cómo puedo acceder al ejecutar un iconPanel[0]. ????? es decir que función o método tengo que invocar para que en el click se lance lo que quiero ?

Gracias a todos.

Perdón señores ....probando probando y mientras le daba al botón publicar, yo mismo me contesto:



Código:
Public Sub icpPanelCentral_Click()
 
  With icpPanelCentral
    If .Index = 4 Then
      Message.info("pulsado", "ok")
    Endif
    
  End With
 
End


Tongue
Páginas (540):    1 534 535 536 537 538 540   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 276
Último miembro: TomQ
Temas del foro: 1,665
Mensajes del foro: 8,655
Últimos temas
Atajos de teclado del edi...
Foro: General
Último mensaje por: Shordi, Hace 5 horas
Respuestas: 1 - Vistas: 33
Editando una tabla con un...
Foro: Videotutoriales
Último mensaje por: Shell, 02-04-2025, 21:59
Respuestas: 2 - Vistas: 56
Gambas + ERP = GamERP.
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: alessandri, 02-04-2025, 00:23
Respuestas: 22 - Vistas: 1,096
¡Que viene la IA! Sí, otr...
Foro: General
Último mensaje por: Shell, 01-04-2025, 11:36
Respuestas: 6 - Vistas: 135
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.