Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports System.Web.Services Partial Class RH_Organigrama Inherits ClsPaginas #Region " PROPIEDADES " Private employees As DataTable Private Shared CveEmpresaAtribute As Integer Public Shared Cabecera As Integer Public Shared Empresa As Integer Public Shared Nivel As Integer Dim rgx As New Regex("^\d+$") Public Shared Property CveCabecera() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return Cabecera End Get Set Cabecera = Value End Set End Property Public Shared Property CveEmpresaFiltro() As Integer Get Return Empresa End Get Set Empresa = Value End Set End Property Public Shared Property NivelOrg() As Integer Get Return Nivel End Get Set Nivel = Value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 'CveCabecera = UsuarioActual.CvePersonal 'CveEmpresaFiltro = UsuarioActual.CveEmpresa If Not IsPostBack Then txtNivel.Text = "" DdlSupervisorOrganigrama.SelectedIndex = 0 Dim viewFlag As Integer = CveCabecera CargaSuperioresOrganigrama() End If End Sub #Region " CARGA DATOS " Private Sub CargaSuperioresOrganigrama() Dim ObjRH As New ClsRH If ObjRH.GetPersonal(-1, UsuarioActual.CveEmpresa) Then DdlSupervisorOrganigrama.AppendDataBoundItems = True DdlSupervisorOrganigrama.Items.Add("Seleccione...") DdlSupervisorOrganigrama.DataSource = ObjRH.DtResultados Else DdlSupervisorOrganigrama.DataSource = Nothing Alert("Ocurrió un error al cargar el catálogo de Jefes Inmediatos") End If ObjRH.Dispose() If DdlSupervisorOrganigrama.DataSource IsNot Nothing Then DdlSupervisorOrganigrama.DataBind() End If End Sub Protected Sub GenerarOrg(sender As Object, e As EventArgs) Handles btConsultar.Click 'este metodo es el que carga el organigrama al dispara la funcion en JS CveCabecera = DdlSupervisorOrganigrama.SelectedValue.ToEntero CveEmpresaFiltro = UsuarioActual.CveEmpresa NivelOrg = If(rgx.IsMatch(txtNivel.Text), txtNivel.Text.ToEntero, NivelOrg) txtNivel.Text = "" 'DdlSupervisorOrganigrama.SelectedIndex = 0 Dim ObjRH As New ClsRH Dim DtTemporal As New DataTable Dim chartData As New List(Of Object)() If ObjRH.GetOrganigrama(CveEmpresaFiltro, CveCabecera, NivelOrg) Then DtTemporal = ObjRH.DtResultados.Copy For Each renglon As DataRow In DtTemporal.Rows Dim nombreEmpleado As String = renglon("nombreEmpleado").ToString Dim nombreSuperior As String = renglon("nombreSuperior").ToString Dim puesto As String = renglon("puesto").ToString Dim headerEmpleado As String = String.Format("{{{2}v{2}:{2}{0}{2},{2}f{2}:{2}{0}