Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -2078,7 +2078,7 @@
|
||||
<rd:DefaultName>Textbox45</rd:DefaultName>
|
||||
<Top>6.53528cm</Top>
|
||||
<Left>18.55801cm</Left>
|
||||
<Height>0.6cm</Height>
|
||||
<Height>0.63528cm</Height>
|
||||
<Width>1.91058cm</Width>
|
||||
<ZIndex>15</ZIndex>
|
||||
<Visibility>
|
||||
@@ -3043,7 +3043,7 @@
|
||||
<Value>=Sum( iif(Fields!Sup.Value = "ACTIVO NO CIRCULANTE" OR Fields!Sup.Value="ACTIVO CIRCULANTE" OR Cint(Fields!TipoCuenta.value) = 9 , Fields!ImporteAnterior.Value, 0), "DataSet1")</Value>
|
||||
</Variable>
|
||||
<Variable Name="TotalPasivoActual">
|
||||
<Value>=Sum( iif(Fields!Sup.Value = "PASIVO CIRCULANTE" OR Fields!Sup.Value = "PASIVO NO CIRCULANTE" OR Fields!Sup.Value = "Pasivo a corto plazo",
|
||||
<Value>=Sum( iif(Fields!Sup.Value = "PASIVO CIRCULANTE" OR Fields!Sup.Value = "PASIVO NO CIRCULANTE" OR Fields!Sup.Value = "Pasivo a corto plazo" OR Fields!Sup.Value = "Pasivo a largo plazo",
|
||||
Fields!ImporteActual.Value, 0), "DataSet1")</Value>
|
||||
</Variable>
|
||||
<Variable Name="TotalPasivoAnterior">
|
||||
@@ -3063,6 +3063,7 @@ Fields!ImporteActual.Value, 0),"DataSet1")</Value>
|
||||
</Variable>
|
||||
<Variable Name="TotalPatrimonioCAnterior">
|
||||
<Value>=Sum(Microsoft.VisualBasic.Interaction.iif(Fields!Sup.Value = "CAPITAL" OR Fields!Sup.Value = "CAPITAL CONTABLE" , Fields!ImporteAnterior.Value, 0),"DataSet1")</Value>
|
||||
<Writable>true</Writable>
|
||||
</Variable>
|
||||
<Variable Name="TotalPatrimonioHAnterior">
|
||||
<Value>=Sum(Microsoft.VisualBasic.Interaction.iif(Fields!Sup.Value = "CAPITAL" OR Fields!Sup.Value = "CAPITAL CONTABLE" , Fields!ImporteActual.Value, 0),"DataSet1")</Value>
|
||||
|
||||
3080
Contabilidad2/Reportes/_RepSituacionFinanciera.rdlc
Normal file
3080
Contabilidad2/Reportes/_RepSituacionFinanciera.rdlc
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ Option Strict On
|
||||
Imports System.Data
|
||||
Imports System.Drawing
|
||||
Imports System.IO
|
||||
Imports CrystalDecisions.CrystalReports.Engine
|
||||
Imports Extensiones
|
||||
Imports GemBox.Spreadsheet
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
@@ -85,6 +86,8 @@ Partial Class Nomina_RepPersonalDIM
|
||||
|
||||
GvDatos.DataBind()
|
||||
|
||||
UpAcciones.Update()
|
||||
UpGvCargaDatos.Update()
|
||||
|
||||
|
||||
End Sub
|
||||
@@ -97,53 +100,346 @@ Partial Class Nomina_RepPersonalDIM
|
||||
End Sub
|
||||
|
||||
Private Sub Imprimir(Optional reporte As String = "PDF")
|
||||
GvDatos.ExportToExcelGembox("RepPersonalDIM", UsuarioActual, "Reporte Personal ", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
|
||||
|
||||
ExportToExcelGembox(GvDatos, "RepPersonalDIM", UsuarioActual, "Reporte Personal DIM", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
||||
End Sub
|
||||
|
||||
Protected Sub LnkDescargaArchivo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LnkDescargaArchivo.Click
|
||||
Dim tabla As DataTable = Dt_Datos ' Reemplaza esto con tu método para obtener la tabla
|
||||
Dim tabla As DataTable = Dt_Datos
|
||||
|
||||
Dim contenido As String = ConvertirTablaATexto(tabla)
|
||||
Dim contenidoBytes As Byte() = Encoding.UTF8.GetBytes(ConvertirTablaATexto(tabla))
|
||||
|
||||
' Guardar el archivo en el servidor
|
||||
Dim nombreArchivo As String = "tabla.txt"
|
||||
Dim rutaArchivo As String = Server.MapPath("~/Descargas/" & nombreArchivo)
|
||||
File.WriteAllText(rutaArchivo, contenido)
|
||||
Using memoryStream As New MemoryStream(contenidoBytes)
|
||||
Response.Clear()
|
||||
Response.ContentType = "text/plain"
|
||||
Response.AddHeader("Content-Disposition", $"attachment; filename=RepPersonalDIM{DdlEjercicio.SelectedItem.Text}.txt")
|
||||
memoryStream.WriteTo(Response.OutputStream)
|
||||
End Using
|
||||
|
||||
' Descargar el archivo
|
||||
Response.ContentType = "text/plain"
|
||||
Response.AppendHeader("Content-Disposition", "attachment; filename=" & nombreArchivo)
|
||||
Response.TransmitFile(rutaArchivo)
|
||||
Response.End()
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function ConvertirTablaATexto(ByVal tabla As DataTable) As String
|
||||
Dim sb As New StringBuilder()
|
||||
Public Function ConvertirTablaATexto(ByVal DT As DataTable) As String
|
||||
|
||||
For Each fila As DataRow In tabla.Rows
|
||||
For i As Integer = 0 To tabla.Columns.Count - 1
|
||||
sb.Append(fila(i).ToString())
|
||||
Dim DTDatos As DataTable = DT.Copy()
|
||||
|
||||
If i < tabla.Columns.Count - 1 Then
|
||||
sb.Append("|") ' Agrega el separador de pipes
|
||||
End If
|
||||
Next
|
||||
Dim columnasARemover As New List(Of DataColumn)()
|
||||
|
||||
sb.AppendLine() ' Agrega un salto de línea al final de cada fila
|
||||
|
||||
For Each columna As DataColumn In DTDatos.Columns
|
||||
If columna.ColumnName.Contains("CvePersonal") Then
|
||||
columnasARemover.Add(columna)
|
||||
End If
|
||||
Next
|
||||
|
||||
Return sb.ToString()
|
||||
|
||||
For Each columna As DataColumn In columnasARemover
|
||||
DTDatos.Columns.Remove(columna)
|
||||
Next
|
||||
|
||||
DTDatos.AcceptChanges()
|
||||
|
||||
Dim sb As New StringBuilder
|
||||
For Each fila As DataRow In DTDatos.Rows
|
||||
For i As Integer = 0 To DTDatos.Columns.Count - 1
|
||||
sb.Append(fila(i).ToString())
|
||||
|
||||
If i < DTDatos.Columns.Count - 1 Then
|
||||
sb.Append("|")
|
||||
End If
|
||||
Next
|
||||
sb.AppendLine()
|
||||
Next
|
||||
|
||||
Return sb.tostring
|
||||
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
Protected Sub GvDatos_DataBound(sender As Object, e As EventArgs)
|
||||
|
||||
Dim row As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
|
||||
Dim cell As New TableHeaderCell()
|
||||
cell.Text = "ANEXO 1 INFORMACION DEL EMPLEADO ->"
|
||||
cell.ColumnSpan = 28
|
||||
cell.HorizontalAlign = HorizontalAlign.Left
|
||||
row.Controls.Add(cell)
|
||||
|
||||
|
||||
|
||||
cell = New TableHeaderCell()
|
||||
cell.ColumnSpan = 18
|
||||
cell.Text = "ANEXO 1 PAGOS POR SEPARACION ->"
|
||||
cell.HorizontalAlign = HorizontalAlign.Left
|
||||
row.Controls.Add(cell)
|
||||
|
||||
|
||||
cell = New TableHeaderCell()
|
||||
cell.ColumnSpan = 2
|
||||
cell.Text = " ANEXO 1 ASIM SAL-> "
|
||||
cell.HorizontalAlign = HorizontalAlign.Left
|
||||
row.Controls.Add(cell)
|
||||
|
||||
|
||||
cell = New TableHeaderCell()
|
||||
cell.ColumnSpan = 58
|
||||
cell.Text = "ANEXO 1 PAGOS DEL PATRÓN EFECTUADOS A SUS TRABAJADORES ->"
|
||||
cell.HorizontalAlign = HorizontalAlign.Left
|
||||
row.Controls.Add(cell)
|
||||
|
||||
cell = New TableHeaderCell()
|
||||
cell.ColumnSpan = 19
|
||||
cell.Text = "ANEXO 1 IMPUESTO SOBRE LA RENTA (RESUMEN) ->"
|
||||
cell.HorizontalAlign = HorizontalAlign.Left
|
||||
row.Controls.Add(cell)
|
||||
|
||||
'row.BackColor = ColorTranslator.FromHtml("#3AC0F2")
|
||||
GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Sub ExportToExcelGembox(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)
|
||||
If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error
|
||||
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(1).Value = "Usuario Imprimió"
|
||||
worksheet.Rows(IndexEndTable + 1).Cells(1).Value = Usuario.Nombre
|
||||
|
||||
worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión"
|
||||
worksheet.Rows(IndexEndTable + 1).Cells(3).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
|
||||
|
||||
|
||||
excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
|
||||
excel.Worksheets(0).Name = Titulo
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim indexRow As Integer = 8
|
||||
Dim indexRowGV As Integer = 0
|
||||
Dim cssClassRow As String = ""
|
||||
|
||||
Dim CountRowFiltros As Integer = -1
|
||||
If DatosFiltros.Trim.Length > 0 Then
|
||||
CountRowFiltros = 0
|
||||
End If
|
||||
|
||||
For indexRow = 8 To worksheet.Rows.Count - 4
|
||||
|
||||
Try
|
||||
cssClassRow = GridView.Rows(indexRowGV).CssClass.Trim()
|
||||
|
||||
Select Case cssClassRow
|
||||
|
||||
Case "Totales"
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#67809f"))
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#ddd")
|
||||
Exit Select
|
||||
Case "SubTotales2"
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#c0c0c0"))
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#000077")
|
||||
Exit Select
|
||||
Case "SubTotales"
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#dddddd"))
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
||||
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#67809F")
|
||||
Exit Select
|
||||
Case Else
|
||||
Exit Select
|
||||
End Select
|
||||
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
indexRowGV += 1
|
||||
Next
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user