mejoras a inventarios
This commit is contained in:
@@ -478,10 +478,10 @@
|
|||||||
|
|
||||||
|
|
||||||
<asp:GridView ID="GvGrupos" data-sort="true" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False"
|
<asp:GridView ID="GvGrupos" data-sort="true" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False"
|
||||||
CssClass="table table-striped table-hover Widthall ScrollAD" Style="text-align: center;"
|
CssClass="table table-striped table-hover Widthall ScrollAD"
|
||||||
GridLines="None" DataKeyNames="CvePS,PS,Grupo,Orden">
|
GridLines="None" DataKeyNames="CvePS,PS,Grupo,Orden">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField Visible="false">
|
<asp:TemplateField Visible="False">
|
||||||
<HeaderTemplate>
|
<HeaderTemplate>
|
||||||
<asp:CheckBox ID="ChkAllFaltante" runat="server" />
|
<asp:CheckBox ID="ChkAllFaltante" runat="server" />
|
||||||
</HeaderTemplate>
|
</HeaderTemplate>
|
||||||
@@ -489,24 +489,70 @@
|
|||||||
<asp:CheckBox ID="ChkPSFaltante" runat="server" />
|
<asp:CheckBox ID="ChkPSFaltante" runat="server" />
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:BoundField HeaderText="Clasificación" DataField="Clasificacion" ItemStyle-HorizontalAlign="Left" Visible="false" />
|
<asp:BoundField HeaderText="Clasificación" DataField="Clasificacion" ItemStyle-HorizontalAlign="Left" Visible="false" >
|
||||||
<asp:BoundField HeaderText="Proveedor" DataField="NombreComercial" ItemStyle-HorizontalAlign="Left" Visible="false" />
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left" DataFormatString=" {0}" />
|
</asp:BoundField>
|
||||||
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" />
|
<asp:BoundField HeaderText="Proveedor" DataField="NombreComercial" ItemStyle-HorizontalAlign="Left" Visible="false" >
|
||||||
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left" DataFormatString=" {0}" >
|
||||||
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" >
|
||||||
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
|
</asp:BoundField>
|
||||||
<asp:BoundField HeaderText="Sección Almacén" DataField="SeccionAlmacen" />
|
<asp:BoundField HeaderText="Sección Almacén" DataField="SeccionAlmacen" />
|
||||||
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-HorizontalAlign="Left" />
|
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-HorizontalAlign="Left" >
|
||||||
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-HorizontalAlign="Left" />
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" ItemStyle-HorizontalAlign="Left" DataFormatString="{0:d}" />
|
</asp:BoundField>
|
||||||
<asp:BoundField HeaderText="Existencia" DataField="CantidadAlmacen" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
|
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-HorizontalAlign="Left" >
|
||||||
<asp:BoundField HeaderText="U. Medida" DataField="Abreviatura" ItemStyle-HorizontalAlign="Left" />
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" ItemStyle-HorizontalAlign="Left" DataFormatString="{0:d}" >
|
||||||
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:TemplateField HeaderText="">
|
||||||
|
<HeaderTemplate>Conteo <br /> Anterior</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Literal ID="Label3" runat="server" Text='<%# Eval("CantidadPrevio", "{0:#,###.##}") %>'></asp:Literal>
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField HeaderText="Existencia" DataField="CantidadAlmacen" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" >
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="U. Medida" DataField="Abreviatura" ItemStyle-HorizontalAlign="Left" >
|
||||||
|
|
||||||
<asp:BoundField HeaderText="Buen Estado" DataField="BuenEstado" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
|
<ItemStyle HorizontalAlign="Left" />
|
||||||
<asp:BoundField HeaderText="ME.Vendible" DataField="MalEstado" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
|
</asp:BoundField>
|
||||||
<asp:BoundField HeaderText="ME.No vendible" DataField="NoVendible" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
|
<asp:BoundField HeaderText="Buen Estado" DataField="BuenEstado" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" >
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:TemplateField HeaderText="">
|
||||||
|
<HeaderTemplate>ME.<br/>Vendible</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Literal ID="Label1" runat="server" Text='<%# Eval("MalEstado", "{0:#,###.##}") %>'></asp:Literal>
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="">
|
||||||
|
<HeaderTemplate>ME.<br/>No vendible</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Literal ID="Label2" runat="server" Text='<%# Eval("NoVendible", "{0:#,###.##}") %>'></asp:Literal>
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
|
||||||
<asp:BoundField HeaderText="Inv. Físico" DataField="CantidadInventarioFisico" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
|
<asp:BoundField HeaderText="Inv. Físico" DataField="CantidadInventarioFisico" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" >
|
||||||
<asp:BoundField HeaderText="Diferencia" DataField="Diferencia" DataFormatString="{0:#,###.##}" ItemStyle-Font-Bold="true" />
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
<asp:BoundField HeaderText="Costo" DataField="Costo" DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" />
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="Diferencia" DataField="Diferencia" DataFormatString="{0:#,###.##}" ItemStyle-Font-Bold="true" >
|
||||||
|
|
||||||
|
<ItemStyle Font-Bold="True" />
|
||||||
|
</asp:BoundField>
|
||||||
|
<asp:BoundField HeaderText="Costo" DataField="Costo" DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" >
|
||||||
|
<ItemStyle HorizontalAlign="Right" />
|
||||||
|
</asp:BoundField>
|
||||||
</Columns>
|
</Columns>
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
|
|
||||||
|
|||||||
@@ -514,9 +514,7 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
|
|
||||||
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
|
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
|
||||||
|
|
||||||
|
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Faltan", DatosFiltros:=SbFiltros.ToString())
|
||||||
|
|
||||||
ExportarExcelGembox(GvTemp, "Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Faltan", DatosFiltros:=SbFiltros.ToString())
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -545,7 +543,7 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
|
|
||||||
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
|
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
|
||||||
|
|
||||||
ExportarExcelGembox(GvTemp, "Reporte de Inventario Fisico - Productos que Sobran " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Sobran", DatosFiltros:=SbFiltros.ToString())
|
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos que Sobran " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Sobran", DatosFiltros:=SbFiltros.ToString())
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -572,7 +570,7 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
|
|
||||||
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
|
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
|
||||||
|
|
||||||
ExportarExcelGembox(GvTemp, "Reporte de Inventario Fisico - Productos Coincidentes " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos Coincidentes", DatosFiltros:=SbFiltros.ToString())
|
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos Coincidentes " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos Coincidentes", DatosFiltros:=SbFiltros.ToString())
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -596,6 +594,19 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
|
|
||||||
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
|
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
|
||||||
|
|
||||||
|
Dim SbFiltrosExtra As New StringBuilder()
|
||||||
|
SbFiltrosExtra.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
|
||||||
|
SbFiltrosExtra.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
|
||||||
|
|
||||||
|
SbFiltrosExtra.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
|
||||||
|
|
||||||
|
SbFiltrosExtra.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
|
||||||
|
|
||||||
|
SbFiltrosExtra.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
|
||||||
|
SbFiltrosExtra.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
|
||||||
|
|
||||||
|
SbFiltrosExtra.AppendFormat("Estatus: {0}|", lbEstatus.Text)
|
||||||
|
|
||||||
|
|
||||||
Dim ObjInventarios As New ClsInventarios
|
Dim ObjInventarios As New ClsInventarios
|
||||||
Dim DTExtra As New DataTable
|
Dim DTExtra As New DataTable
|
||||||
@@ -607,11 +618,268 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
ObjInventarios.Dispose()
|
ObjInventarios.Dispose()
|
||||||
|
|
||||||
'ExportToExcelGembox
|
'ExportToExcelGembox
|
||||||
GvGrupos.ExportToExcelGembox("Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra)
|
ExportToExcelGembox2(GvGrupos, "Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra, DatosFiltrosExtra:=SbFiltrosExtra.ToString)
|
||||||
'ExportarExcelGembox(GvGrupos, "Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra)
|
'ExportarExcelGembox(GvGrupos, "Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ExportToExcelGembox2(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing, Optional DatosFiltrosExtra As String = "")
|
||||||
|
|
||||||
|
Dim sw1 As New StringWriter()
|
||||||
|
Dim htw1 As New HtmlTextWriter(sw1)
|
||||||
|
GridView.RenderControl(htw1)
|
||||||
|
|
||||||
|
Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault
|
||||||
|
|
||||||
|
Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString()))
|
||||||
|
|
||||||
|
htmlStream1.Position = 0
|
||||||
|
Dim sr1 As New StreamReader(htmlStream1)
|
||||||
|
Dim myStr1 = sr1.ReadToEnd()
|
||||||
|
sr1.Dispose()
|
||||||
|
htmlStream1.Dispose()
|
||||||
|
sw1.Dispose()
|
||||||
|
|
||||||
|
Dim HtmlCompleto As String = myStr1
|
||||||
|
|
||||||
|
HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "")
|
||||||
|
|
||||||
|
Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto))
|
||||||
|
|
||||||
|
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet)
|
||||||
|
|
||||||
|
Dim excel As GemBox.Spreadsheet.ExcelFile
|
||||||
|
|
||||||
|
excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options)
|
||||||
|
|
||||||
|
If Usuario IsNot Nothing Then
|
||||||
|
|
||||||
|
Dim TotalRowHeader As Integer = 6
|
||||||
|
Dim TotalRowFooter As Integer = 2
|
||||||
|
|
||||||
|
|
||||||
|
Dim worksheet = excel.Worksheets(0)
|
||||||
|
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
|
||||||
|
Dim celdasConTexto = worksheet.GetUsedCellRange(True)
|
||||||
|
celdasConTexto.Style.Font.Name = "Calibri Light"
|
||||||
|
|
||||||
|
Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoNombreEmpresa.Merged = True
|
||||||
|
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
|
||||||
|
RangoNombreEmpresa.Style.Font.Size = 18 * 20
|
||||||
|
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||||
|
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
|
||||||
|
Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoTitulo.Merged = True
|
||||||
|
RangoTitulo.Value = Titulo
|
||||||
|
RangoTitulo.Style.Font.Size = 20 * 20
|
||||||
|
RangoTitulo.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||||
|
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
If DatoTituloExtra.Length > 0 Then
|
||||||
|
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoDatoTituloExtra.Merged = True
|
||||||
|
RangoDatoTituloExtra.Value = DatoTituloExtra
|
||||||
|
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
|
||||||
|
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
||||||
|
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If DatosFiltros.Length > 0 Then
|
||||||
|
|
||||||
|
Dim Arreglo As String() = DatosFiltros.Split("|"c)
|
||||||
|
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
|
||||||
|
For Each TextoFiltro As String In Arreglo
|
||||||
|
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoDatoTituloExtra.Merged = True
|
||||||
|
RangoDatoTituloExtra.Value = TextoFiltro
|
||||||
|
RangoDatoTituloExtra.Style.Font.Size = 12 * 20
|
||||||
|
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
||||||
|
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
TotalRowHeader += 1
|
||||||
|
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
' TotalRowHeader += 2
|
||||||
|
|
||||||
|
For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
||||||
|
|
||||||
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20
|
||||||
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||||
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
||||||
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
|
||||||
|
|
||||||
|
If i > 0 Then
|
||||||
|
Try
|
||||||
|
worksheet.Columns(i).AutoFit(1)
|
||||||
|
Catch ex As Exception
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter
|
||||||
|
|
||||||
|
worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió"
|
||||||
|
worksheet.Rows(IndexEndTable + 1).Cells(0).Value = Usuario.Nombre
|
||||||
|
|
||||||
|
worksheet.Rows(IndexEndTable).Cells(2).Value = "Fecha Impresión"
|
||||||
|
worksheet.Rows(IndexEndTable + 1).Cells(2).Value = DateTime.Now.ToString("dd/MM/yyyy")
|
||||||
|
|
||||||
|
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
|
||||||
|
|
||||||
|
If Imagen.Exists Then
|
||||||
|
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
|
||||||
|
Using sr As New StreamReader(Ruta)
|
||||||
|
Dim ms As New MemoryStream()
|
||||||
|
sr.BaseStream.CopyTo(ms)
|
||||||
|
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
||||||
|
|
||||||
|
If I > 0 Then
|
||||||
|
|
||||||
|
If 1 = 1 Then
|
||||||
|
worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
|
||||||
|
Else
|
||||||
|
worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Try
|
||||||
|
worksheet.Columns(I).AutoFit(1)
|
||||||
|
Catch ex As Exception
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If DTExtra IsNot Nothing Then
|
||||||
|
|
||||||
|
Dim NombreTabla As String = ""
|
||||||
|
|
||||||
|
If DTExtra.TableName IsNot Nothing Then
|
||||||
|
NombreTabla = DTExtra.TableName
|
||||||
|
End If
|
||||||
|
If NombreTabla.Trim = "" Then
|
||||||
|
NombreTabla = "hoja2"
|
||||||
|
End If
|
||||||
|
|
||||||
|
'excel.Worksheets.Add(NombreTabla)
|
||||||
|
|
||||||
|
Dim workbookDTExtra = New ExcelFile
|
||||||
|
Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla)
|
||||||
|
|
||||||
|
worksheetDTExtra.InsertDataTable(DTExtra,
|
||||||
|
New InsertDataTableOptions() With
|
||||||
|
{
|
||||||
|
.ColumnHeaders = True,
|
||||||
|
.StartRow = 0
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns()
|
||||||
|
For i As Integer = 0 To columnCount - 1
|
||||||
|
worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1))
|
||||||
|
worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be"))
|
||||||
|
worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
' CLONA EL ENCABEZADO
|
||||||
|
TotalRowHeader = 6
|
||||||
|
TotalRowFooter = 2
|
||||||
|
|
||||||
|
worksheet = worksheetDTExtra
|
||||||
|
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
|
||||||
|
celdasConTexto = worksheet.GetUsedCellRange(True)
|
||||||
|
celdasConTexto.Style.Font.Name = "Calibri Light"
|
||||||
|
|
||||||
|
RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoNombreEmpresa.Merged = True
|
||||||
|
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
|
||||||
|
RangoNombreEmpresa.Style.Font.Size = 18 * 20
|
||||||
|
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||||
|
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
|
||||||
|
RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoTitulo.Merged = True
|
||||||
|
RangoTitulo.Value = Titulo
|
||||||
|
RangoTitulo.Style.Font.Size = 20 * 20
|
||||||
|
RangoTitulo.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
||||||
|
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
If DatoTituloExtra.Length > 0 Then
|
||||||
|
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoDatoTituloExtra.Merged = True
|
||||||
|
RangoDatoTituloExtra.Value = DatoTituloExtra
|
||||||
|
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
|
||||||
|
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
||||||
|
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If DatosFiltrosExtra.Length > 0 Then
|
||||||
|
|
||||||
|
Dim Arreglo As String() = DatosFiltrosExtra.Split("|"c)
|
||||||
|
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
|
||||||
|
For Each TextoFiltro As String In Arreglo
|
||||||
|
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
||||||
|
RangoDatoTituloExtra.Merged = True
|
||||||
|
RangoDatoTituloExtra.Value = TextoFiltro
|
||||||
|
RangoDatoTituloExtra.Style.Font.Size = 12 * 20
|
||||||
|
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
||||||
|
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
||||||
|
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
||||||
|
TotalRowHeader += 1
|
||||||
|
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
Imagen = New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
|
||||||
|
|
||||||
|
If Imagen.Exists Then
|
||||||
|
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
|
||||||
|
Using sr As New StreamReader(Ruta)
|
||||||
|
Dim ms As New MemoryStream()
|
||||||
|
sr.BaseStream.CopyTo(ms)
|
||||||
|
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
|
excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
|
||||||
|
excel.Worksheets(0).Name = Titulo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -827,201 +1095,5 @@ Partial Class Inventarios_RepAnomalias
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Public Sub ExportarExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing)
|
|
||||||
|
|
||||||
Dim sw1 As New StringWriter()
|
|
||||||
Dim htw1 As New HtmlTextWriter(sw1)
|
|
||||||
GridView.RenderControl(htw1)
|
|
||||||
|
|
||||||
Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault
|
|
||||||
|
|
||||||
Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString()))
|
|
||||||
|
|
||||||
htmlStream1.Position = 0
|
|
||||||
Dim sr1 As New StreamReader(htmlStream1)
|
|
||||||
Dim myStr1 = sr1.ReadToEnd()
|
|
||||||
sr1.Dispose()
|
|
||||||
htmlStream1.Dispose()
|
|
||||||
sw1.Dispose()
|
|
||||||
|
|
||||||
Dim HtmlCompleto As String = myStr1
|
|
||||||
|
|
||||||
HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "")
|
|
||||||
|
|
||||||
Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto))
|
|
||||||
|
|
||||||
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet)
|
|
||||||
|
|
||||||
Dim excel As GemBox.Spreadsheet.ExcelFile
|
|
||||||
|
|
||||||
excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options)
|
|
||||||
|
|
||||||
If Usuario IsNot Nothing Then
|
|
||||||
|
|
||||||
Dim TotalRowHeader As Integer = 6
|
|
||||||
Dim TotalRowFooter As Integer = 2
|
|
||||||
|
|
||||||
|
|
||||||
Dim worksheet = excel.Worksheets(0)
|
|
||||||
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
|
|
||||||
Dim celdasConTexto = worksheet.GetUsedCellRange(True)
|
|
||||||
celdasConTexto.Style.Font.Name = "Calibri Light"
|
|
||||||
|
|
||||||
Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
|
|
||||||
RangoNombreEmpresa.Merged = True
|
|
||||||
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
|
|
||||||
RangoNombreEmpresa.Style.Font.Size = 18 * 20
|
|
||||||
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
|
|
||||||
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
|
||||||
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
|
||||||
|
|
||||||
|
|
||||||
Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
|
|
||||||
RangoTitulo.Merged = True
|
|
||||||
RangoTitulo.Value = Titulo
|
|
||||||
RangoTitulo.Style.Font.Size = 20 * 20
|
|
||||||
RangoTitulo.Style.Font.Name = "Calibri Light"
|
|
||||||
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
|
||||||
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
|
||||||
|
|
||||||
If DatoTituloExtra.Length > 0 Then
|
|
||||||
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
|
||||||
RangoDatoTituloExtra.Merged = True
|
|
||||||
RangoDatoTituloExtra.Value = DatoTituloExtra
|
|
||||||
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
|
|
||||||
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
|
|
||||||
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
|
||||||
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
If DatosFiltros.Length > 0 Then
|
|
||||||
|
|
||||||
Dim Arreglo As String() = DatosFiltros.Split("|"c)
|
|
||||||
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
|
|
||||||
For Each TextoFiltro As String In Arreglo
|
|
||||||
|
|
||||||
Dim RangoDatosFiltro = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
|
|
||||||
|
|
||||||
RangoDatosFiltro.Merged = True
|
|
||||||
RangoDatosFiltro.Style.WrapText = True
|
|
||||||
RangoDatosFiltro.Value = TextoFiltro
|
|
||||||
RangoDatosFiltro.Style.Font.Size = 11 * 20
|
|
||||||
RangoDatosFiltro.Style.Font.Name = "Calibri Light"
|
|
||||||
RangoDatosFiltro.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
|
||||||
RangoDatosFiltro.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
|
||||||
|
|
||||||
TotalRowHeader += 1
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
'TotalRowHeader += 2
|
|
||||||
|
|
||||||
For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
|
||||||
|
|
||||||
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20
|
|
||||||
worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
|
|
||||||
worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
|
|
||||||
|
|
||||||
worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
||||||
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
|
|
||||||
|
|
||||||
If i > 0 Then
|
|
||||||
Try
|
|
||||||
worksheet.Columns(i).AutoFit(1)
|
|
||||||
Catch ex As Exception
|
|
||||||
End Try
|
|
||||||
End If
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter
|
|
||||||
|
|
||||||
worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió"
|
|
||||||
worksheet.Rows(IndexEndTable + 1).Cells(0).Value = Usuario.Nombre
|
|
||||||
|
|
||||||
worksheet.Rows(IndexEndTable).Cells(2).Value = "Fecha Impresión"
|
|
||||||
worksheet.Rows(IndexEndTable + 1).Cells(2).Value = DateTime.Now.ToString("dd/MM/yyyy")
|
|
||||||
|
|
||||||
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
|
|
||||||
|
|
||||||
If Imagen.Exists Then
|
|
||||||
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
|
|
||||||
Using sr As New StreamReader(Ruta)
|
|
||||||
Dim ms As New MemoryStream()
|
|
||||||
sr.BaseStream.CopyTo(ms)
|
|
||||||
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
|
|
||||||
End Using
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
|
||||||
|
|
||||||
If I > 0 Then
|
|
||||||
|
|
||||||
'If 1 = 1 Then
|
|
||||||
' worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
|
|
||||||
'Else
|
|
||||||
' worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
|
|
||||||
'End If
|
|
||||||
worksheet.Columns(I + 1).Style.NumberFormat = "@"
|
|
||||||
|
|
||||||
Try
|
|
||||||
worksheet.Columns(I).AutoFit(1)
|
|
||||||
Catch ex As Exception
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
|
|
||||||
If DTExtra IsNot Nothing Then
|
|
||||||
|
|
||||||
Dim NombreTabla As String = ""
|
|
||||||
|
|
||||||
If DTExtra.TableName IsNot Nothing Then
|
|
||||||
NombreTabla = DTExtra.TableName
|
|
||||||
End If
|
|
||||||
|
|
||||||
If NombreTabla.Trim = "" Then
|
|
||||||
NombreTabla = "hoja2"
|
|
||||||
End If
|
|
||||||
|
|
||||||
'excel.Worksheets.Add(NombreTabla)
|
|
||||||
|
|
||||||
Dim workbookDTExtra = New ExcelFile
|
|
||||||
Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla)
|
|
||||||
|
|
||||||
|
|
||||||
worksheetDTExtra.InsertDataTable(DTExtra,
|
|
||||||
New InsertDataTableOptions() With
|
|
||||||
{
|
|
||||||
.ColumnHeaders = True,
|
|
||||||
.StartRow = 0
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns()
|
|
||||||
For i As Integer = 0 To columnCount - 1
|
|
||||||
worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1))
|
|
||||||
worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be"))
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
|
|
||||||
excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
|
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
Reference in New Issue
Block a user