Thanks for your answer, i'm attaching you a simple project where you can see the structure applied, and a image with the result, as you will see is not making the relation
Imports Telerik.WinControls.UI
Imports System.ComponentModel
Imports System.Data.SqlClient
Public Class Form1
Public Sql_Con As SqlConnection = New SqlConnection
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
grReportEstandar.AllowAddNewRow = False
grReportEstandar.AllowColumnReorder = False
grReportEstandar.AllowDeleteRow = False
grReportEstandar.ShowFilteringRow = False
grReportEstandar.ShowGroupedColumns = False
grReportEstandar.ShowGroupPanel = False
Me.grReportEstandar.DataSource = Me.Select_DS("2").Tables.Item(0)
Me.grReportEstandar.GroupDescriptors.Add("Nom_Modulo", ListSortDirection.Ascending)
Me.grReportEstandar.SortDescriptors.Add("Nom_Modulo", ListSortDirection.Ascending)
'Me.grReportEstandar.Columns.Item("Id_Mod").IsVisible = False
'Me.grReportEstandar.Columns.Item("Sto_Proc").IsVisible = False
'Me.grReportEstandar.Columns.Item("Id_Report").IsVisible = False
'Me.grReportsSolicitado.Columns.Item("CrossTab").IsVisible = False
Me.grReportEstandar.BestFitColumns()
Me.grReportEstandar.Columns.Item("Nom_Report").Width = 200
Me.grReportEstandar.Columns.Item("Nom_Report").HeaderText = "Reporte"
For a As Integer = 0 To grReportEstandar.RowCount - 1
Me.grReportEstandar.Rows(a).Cells("Nom_Report").ReadOnly = True
Next
Dim template1 As New GridViewTemplate()
template1.BeginUpdate()
template1.AllowAddNewRow = False
template1.AllowColumnReorder = False
template1.AllowDeleteRow = False
template1.ShowFilteringRow = False
template1.ShowGroupedColumns = False
template1.Columns.Add(New GridViewCheckBoxColumn("Visible"))
template1.DataSource = Me.Select_DS("1").Tables(0)
template1.Columns.Item("Name").Width = 200
template1.Columns.Item("Name").HeaderText = "Campo"
grReportEstandar.MasterTemplate.Templates.Add(template1)
Dim relation1 As New GridViewRelation(grReportEstandar.MasterTemplate)
relation1.ChildTemplate = template1
relation1.RelationName = "Id_Report"
relation1.ParentColumnNames.Add("Id_Report")
relation1.ChildColumnNames.Add("Id_Report")
grReportEstandar.Relations.Add(relation1)
template1.EndUpdate()
Me.grReportEstandar.EndUpdate()
Me.grReportEstandar.Refresh()
End Sub
Public Function Select_DS(ByVal tipo As String) As DataSet
Dim query As String = ""
Try
Me.Sql_Con = Me.Check_Connection("BisynfDW")
If (Me.Sql_Con.State = ConnectionState.Open) Then
Dim str2 As String = tipo
Select Case str2
Case "1"
query = "select ModId Id_Mod, RepId Id_Report, Campo, (select top 1 x.name from otra x where t.campo=x.word )name from OCAM t"
Case "2"
query = ("select distinct (select x.Nom_Modulo from Omod x where x.id_Modulo=f.Id_Mod)Nom_Modulo, f.Id_Mod, f.Id_Report, f.Nom_Report, f.Sto_Proc " & _
"FROM Orep f " & _
"where cast(f.Id_Report as nvarchar(2)) + '|' + cast(f.Id_Mod as nvarchar(2)) " & _
" in ( select cast(x.repid as nvarchar(2)) + '|' + cast(x.modid as nvarchar(2))" & _
" from RPPE x" & _
" where x.companyid=1) " & _
"order by f.Id_Mod,f.Nom_Report desc")
End Select
End If
Dim set2 As New DataSet
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = New SqlCommand(query, Sql_Con)
adapter.Fill(set2)
Sql_Con.Close()
Sql_Con.Dispose()
Return set2
Catch ex As Exception
MsgBox("Error: " & ex.Message & " Class: Consultas, Metodo: Select_DS, Consulta: " & query, Nothing)
Return Nothing
End Try
End Function
Public Function Check_Connection(ByVal Bds As String, Optional ByRef Server As String = Nothing, Optional ByRef Usuario As String = Nothing, Optional ByRef Contra As String = Nothing) As SqlConnection
If (Me.Sql_Con.State = ConnectionState.Closed) Then
Try
If String.IsNullOrEmpty(Server) And String.IsNullOrEmpty(Usuario) And String.IsNullOrEmpty(Contra) Then
Me.Sql_Con.ConnectionString = String.Concat(New String() {"Data Source=(local);Initial Catalog=BisynfDW;User ID=sa;Password=1234 ;Asynchronous Processing=True;"})
Else
Me.Sql_Con.ConnectionString = String.Concat(New String() {"Data Source=", Server, ";Initial Catalog=", Bds, ";User ID=", Usuario, ";Password=", Contra, " ;Asynchronous Processing=True;"})
End If
Me.Sql_Con.Open()
Return Me.Sql_Con
Catch exception1 As Exception
If (exception1.Message = "Error relacionado con la red o especifico de la instancia mientras se establec" & ChrW(237) & "a una conexión con el servidor SQL Server. No se encontr" & ChrW(243) & " el servidor o " & ChrW(233) & "ste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server est" & ChrW(225) & " configurado para admitir conexiones remotas. (provider: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexi" & ChrW(243) & "n con SQL Server)") Then
Interaction.MsgBox("El Servicio de SQL Server se encuentra detenido, Inicie el Servicio y vuelva a intentar.", MsgBoxStyle.Critical, "Conexion SQL Server")
Else
MsgBox("Error: " & exception1.Message & " Class: Consultas, Metodo: Check_Connection ", Nothing)
End If
Me.Sql_Con.Close()
Return Nothing
End Try
End If
Sql_Con.Close()
Sql_Con.Dispose()
Dim str2 As String = Bds
Me.Sql_Con.ConnectionString = String.Concat(New String() {"Data Source=(local);Initial Catalog=BisynfDW;User ID=sa;Password=1234 ;Asynchronous Processing=True;"})
Me.Sql_Con.Open()
Return Me.Sql_Con
End Function
End Class