Evento Data

Evento Data
Article
Quote    Download Post  
Post Evento Data 
 
Hola gente, después de bastante tiempo estoy intentando actualizar un pequeño programa que hice para uso personal, para lo cual me he planteado primero entender el uso del evento DATA y después, el uso de claves foráneas en la base de datos, me he bajado el ejemplo que puso hace un tiempo Shordi para intentar comprender el uso, no tengo error al correr el formulario, pero sí lo obtengo en los datos que muestra el grid, en todos aparece la palabra False, entiendo (o al menos es lo que creo) se trata de un error de valor, pero en lo concreto no logro entender que hago mal, si alguien puede ver el código y entiende donde me equivoco, agradezco me lo indiquen. También pongo una captura de pantalla con el resultado del formulario de muestra.

Gracias de antemano


' gambas class file

Private cx As New Connection
Private rs As Result
Private id As Integer

Public Sub Form_Open()
  Dim sql As String
    
  'PROVEEDORES
  cmbRELACION.Add("Contacto")
  cmbRELACION.Add("Cliente")
  cmbRELACION.Add("Proveedor")
  cmbRELACION.Add("Cliente/Proveedor")

  'PROVEEDORES
  cmbPOSICIONFISCAL.Add("Consumidor final")
  cmbPOSICIONFISCAL.Add("Exento")
  cmbPOSICIONFISCAL.Add("Responsable inscripto")

  'DISEÑO DEL GRID DE PERSONAS FISICAS
  With tbPERSONASFISICAS
  .Header = tbPERSONASFISICAS.Horizontal
  .Grid = True
  .Rows.Count = 0
  .Columns.Count = 15
  .Header = True
  .Columns[0].Title = "" 'ID
  .Columns[0].Width = 0
  .Columns[1].Title = "" 'Relación
  .Columns[1].Width = 0
  .Columns[2].Title = "" '>> Apellido, Nombre
  .Columns[2].Width = 400
  .Columns[3].Title = "" 'Domicilio
  .Columns[3].Width = 0
  .Columns[4].Title = "" 'Código Postal
  .Columns[4].Width = 0
  .Columns[5].Title = "" 'Localidad
  .Columns[5].Width = 0
  .Columns[6].Title = "" 'Provincia
  .Columns[6].Width = 0
  .Columns[7].Title = "" 'País
  .Columns[7].Width = 0
  .Columns[8].Title = "" '>> Telefono1
  .Columns[8].Width = 150
  .Columns[9].Title = "" '>> Telefono2
  .Columns[9].Width = 150
  .Columns[10].Title = "" 'email
  .Columns[10].Width = 0
  .Columns[11].Title = "" 'website
  .Columns[11].Width = 0
  .Columns[12].Title = "" 'cuil cuit
  .Columns[12].Width = 0
  .Columns[13].Title = "" 'cbu
  .Columns[13].Width = 0
  .Columns[14].Title = "" 'posicion fiscal
  .Columns[14].Width = 0
  End With
  
  cx = Mconex.conectar()
  sql = "select IDPERSONAFISICA as ID from PERSONAFISICA"
  rs = cx.Exec(sql)
  cx.Commit

End

Public Sub Form_Activate()
  
  tbPERSONASFISICAS.Rows.Count = rs.Count
  
End

Public Sub tbPERSONASFISICAS_Data(Row As Integer, Column As Integer)
  
  rs.MoveTo(Row)
  tbPERSONASFISICAS.Data.Text = Str(rs[tbPERSONASFISICAS.Columns[Column].Text])
  
End

 


captura_de_pantalla_2020_04_05_15_32_34



 
imagomundi - Profile PM  
imagomundi [ Sunday, 05 April 2020, 19:45 ]


Evento Data
Comments
Quote    Download Post  
Post Re: Evento Data 
 
Por lo que veo, estás intentando llenar el gridview con una consulta a la base de datos que sólo recoge el campo ID, que por otra parte tienes escondido en la visualización del grid (tiene anchura 0 dicha columna, por lo tanto no se muestra). Entonces, el resto de celdas no contienen datos o éstos se interpretan como False.

SELECT IDPERSONAFISICA AS ID FROM PERSONAFISICA


Normalmente la consulta debe devolver el mismo número de campos que quieres mostrar en el grid (o alguno más, como los que tienes ocultos).
Algo así:

SELECT *  FROM PERSONAFISICA


Devolvería todos los registros de todos los campos/columnas. Como consejo a la hora de crear la base de datos, normalmente los campos se suelen definir en minúscula sin caracteres especiales, salvo el guión bajo si quieres poner nombres compuestos. En la sintaxis SQL, aunque no es estrictamente necesario, lo único que va en mayúscula son las palabras clave, como SELECT y FROM, etc.


Y por cierto, no sé por qué tienes la propiedad .Title de cada columna con texto vacío, pudiendo haber puesto lo que tienes comentado como título del encabezado.

Intenta con una consulta que devuelva los valores correspondientes a las columnas (campos en la BD).

Saludos



 
jguardon - Profile PM  
jguardon [ Sunday, 05 April 2020, 22:29 ]
Quote    Download Post  
Post Re: Evento Data 
 
Alberto: Coincido con lo que te dice Jesús de la SQL. Dejo un fragmento de código de como manejar el evento data.
Para los nombres de los campos podes usar una String[] o una Collection. que te ayudara  ahacer código mas sencillo.

Dim con As Connection
Dim tbl As Table
Dim stxFld As New String[]

tbl = con.Tables[tb]

 For Each fld In tbl.Fields
    stxFld.Add(fld.Name)
 Next  

If resShow.Available Then
  resShow.MoveTo(Row)
  xFld = stxFld[Column]
  
  GridView1[Row, Column].Text = resShow[xFld]

  ' Para dar un color levemente distinto a cada fila respecto a la anterior
  If (Row Mod 2) = 0 Then
    GridView1[Row, Column].Background = Color.TextBackground
  Else
    GridView1[Row, Column].Background = Color.Background
  Endif
  
Endif
GridView1.Refresh

End
 

Saludos.



 
tincho - Profile PM  
tincho [ Monday, 06 April 2020, 02:04 ]
Display posts from previous:    
Post new topic  Reply to topic  Page 1 of 1
 
 

Users browsing this topic: 0 Registered, 0 Hidden and 1 Guest
Registered Users: None


 


   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1777s (PHP: 23% SQL: 77%)
SQL queries: 23 - Debug Off - GZIP Enabled