The problem persist and i don`t know yet where is the error.
This is the code:
#Region
"Importaciones"
Imports
FarPoint.Web.Spread.Model
Imports
System.Data
Imports
FarPoint.Web.Spread
#End
Region
Partial
Class GestionStock_Stock
Inherits System.Web.UI.Page
#Region
"Datos Privados"
Dim idJerarquia As String
Dim idNivel As String
#End
Region
#Region
"Manejadores de eventos"
''' <summary>
''' Manejador del evento carga de la p gina
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
If Page.IsPostBack Then
idJerarquia =
String.Empty
idNivel =
String.Empty
Else
CargarDatosStock()
idJerarquia = Request(
"id")
idNivel = Request(
"lid")
End If
If idJerarquia <> String.Empty Then
Stock.Sheets(0).ExpandRow(idJerarquia,
True)
End If
Catch ex As Exception
ClaseUtiles.Alerta(ex.Message)
End Try
End Sub
''' <summary>
''' Manejador del evento cambiado en check de vista jer rquica
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub chkVistaJerarquica_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkVistaJerarquica.CheckedChanged
If chkVistaJerarquica.Checked Then
chkMostrarEncabezados.Visible =
False
chkMostrarRutaCompleta.Visible =
False
Else
chkMostrarEncabezados.Visible =
True
chkMostrarRutaCompleta.Visible =
True
End If
Stock.HierarchicalView = chkVistaJerarquica.Checked
End Sub
''' <summary>
''' Manejador del evento cambiado en check de mostrar encabezados
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub chkMostrarEncabezados_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkMostrarEncabezados.CheckedChanged
Stock.HierBar.ShowParentRow = chkMostrarEncabezados.Checked
End Sub
''' <summary>
''' Manejador del evento cambiado en check de mostrar ruta completa
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub chkMostrarRutaCompleta_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkMostrarRutaCompleta.CheckedChanged
Stock.HierBar.ShowWholePath = chkMostrarRutaCompleta.Checked
End Sub
''' <summary>
''' Manejador del evento de apertura de hoja hijo
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Stock_ChildViewCreated(ByVal sender As Object, _
ByVal e As FarPoint.Web.Spread.CreateChildViewEventArgs) _
Handles Stock.ChildViewCreated
Dim vistaHoja As SheetView
vistaHoja = e.SheetView
With vistaHoja
'.GetChildView(0, 0).RowHeader
.ColumnHeader.Visible =
False
.ColumnFooterHeight = 0
If .Rows.Count = 0 Then
Exit Sub
End If
.RowHeader.Visible =
True
.Columns(0).Visible =
False
.Columns(1).Visible =
False
.DefaultColumnWidth =
CInt(Stock.Width.Value)
.DataAutoCellTypes =
False
.SheetCornerStyle.Border.BorderStyle = BorderStyle.None
.RowHeader.AutoText = FarPoint.Web.Spread.HeaderAutoText.Blank
.RowHeader.DefaultStyle.Border.BorderStyle = BorderStyle.None
.SheetCornerStyle.Border.BorderStyle = BorderStyle.None
.RowHeader.Width = 20
.Columns(1).Width = Stock.Width.Value - (20 * .ChildRelationCount)
Dim i As Integer
For i = 0 To .Rows.Count - 1
.SetRowHeight(i, 30)
.SetRowSizeable(i,
False)
.RowHeader.Rows(i).Height = 30
If (i + .ChildRelationCount) Mod 2 = 0 Then
.Rows(i).BackColor = Drawing.Color.WhiteSmoke
Else
.Rows(i).BackColor = Drawing.Color.PaleGoldenrod
End If
Next
For i = 0 To .Parent.Rows.Count - 1
.SetRowHeight(i, 30)
.SetRowSizeable(i,
False)
.Parent.RowHeader.Rows(i).Height = 30
Next
End With
End Sub
#End
Region
#Region
"M‚todos privados"
''' <summary>
''' Carga de datos en el control Stock
''' </summary>
''' <remarks></remarks>
Private Sub CargarDatosStock()
Dim gestor As New GestorProductos
Dim datosStock As New DataSet()
Dim tabla As DataTable
Dim tablaHija As DataTable
Dim tiposProductos As New List(Of ClaseTipoProducto)
tiposProductos = gestor.RecuperarStock()
tabla = datosStock.Tables.Add(
"Stock")
tabla.Columns.AddRange( _
New DataColumn() { _
New DataColumn("id", Type.GetType("System.String")), _
New DataColumn("Tipo de producto", Type.GetType("System.String"))})
Stock.Sheets(0).Columns(0).Visible =
False
Stock.Sheets(0).RowHeader.Width = 20
Stock.Sheets(0).Columns(1).Width = Stock.Width.Value - (20 * Stock.Sheets(0).ChildRelationCount)
For Each tipo As ClaseTipoProducto In tiposProductos
tabla.Rows.Add(
New Object() {tipo.IdTipoProducto, tipo.LitNombre})
If tipo.TiposProductos.Count > 0 Then
tablaHija = CrearTablaTipoProductoHijo(datosStock, tipo.LitNombre)
datosStock.Relations.Add(tipo.LitNombre, tabla.Columns(
"id"), tablaHija.Columns("idpadre"))
mostrarsubtipos(datosStock, tablaHija, tipo)
End If
Next
With Stock.Sheets(0)
.SheetName =
"Stock"
.RowHeader.AutoText = FarPoint.Web.Spread.HeaderAutoText.Blank
.DataSource = datosStock
Dim i As Integer
For i = 0 To .Rows.Count - 1
.SetRowHeight(i, 30)
.SetRowSizeable(i,
False)
.RowHeader.Rows(i).Height = 30
If (i + .ChildRelationCount) Mod 2 = 0 Then
.Rows(i).BackColor = Drawing.Color.WhiteSmoke
Else
.Rows(i).BackColor = Drawing.Color.PaleGoldenrod
End If
Next
'.RowHeader.DefaultStyle.Border.BorderStyle = BorderStyle.None
'.SheetCornerStyle.Border.BorderStyle = BorderStyle.None
End With
End Sub
''' <summary>
''' Procedimiento recursivo que va agregando al control los diferentes tipos
''' de productos
''' </summary>
''' <param name="datosStock"></param>
''' <param name="tabla"></param>
''' <param name="tipoPadre"></param>
''' <remarks></remarks>
Private Sub mostrarsubtipos(ByRef datosStock As DataSet, _
ByVal tabla As DataTable, _
ByVal tipoPadre As ClaseTipoProducto)
Dim subtabla As DataTable
For Each tipoSec As ClaseTipoProducto In tipoPadre.TiposProductos
tabla.Rows.Add(
New Object() {tipoSec.IdTipoProducto, _
tipoPadre.IdTipoProducto, _
tipoSec.LitNombre})
If tipoSec.TiposProductos.Count > 0 Then
subtabla = CrearTablaTipoProductoHijo(datosStock, tipoSec.LitNombre)
datosStock.Relations.Add(tipoSec.LitNombre, tabla.Columns(
"id"), subtabla.Columns("idpadre"))
mostrarsubtipos(datosStock, subtabla, tipoSec)
End If
Next
End Sub
''' <summary>
''' Crea una tabla con el formato de tipo de producto hijo
''' </summary>
''' <param name="datosStock"></param>
''' <param name="nombreTabla"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function CrearTablaTipoProductoHijo(ByRef datosStock As DataSet, _
ByVal nombreTabla As String) As DataTable
Dim tabla As DataTable
tabla = datosStock.Tables.Add(nombreTabla)
tabla.Columns.AddRange( _
New DataColumn() { _
New DataColumn("id", Type.GetType("System.String")), _
New DataColumn("idpadre", Type.GetType("System.String")), _
New DataColumn("Tipo de producto", Type.GetType("System.String"))})
Return tabla
End Function
#End
Region
End
Class