Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Inventarios_RepApartados2 Inherits ClsPaginas #Region " PROPIEDADES " Private Property DtApartados As DataTable Get Return DirectCast(ViewState("DtApartados"), DataTable) End Get Set(value As DataTable) ViewState("DtApartados") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then SetValues() End If End Sub #Region " SET VALUES " Private Sub SetValues() DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyectos.DataBind() DdlSubProyectos.Items.Insert(0, New ListItem(" Todas ", "-1")) DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) DdlCliente.DataBind() DdlCliente.Items.Insert(0, New ListItem(" Todos ", "-1")) DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, -1) DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem(" Todos ", "-1")) DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlPS.DataBind() DdlPS.Items.Insert(0, New ListItem(" Todos ", "-1")) txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString txtFechaF.Text = Now.ToShortDateString CargaGrupo() End Sub Private Sub CargaGrupo() DdlGrupo.Items.Insert(0, New ListItem("Año", "1")) DdlGrupo.Items.Insert(1, New ListItem("Mes", "2")) DdlGrupo.Items.Insert(2, New ListItem("Año/Mes", "3")) DdlGrupo.Items.Insert(3, New ListItem("Fecha", "4")) DdlGrupo.Items.Insert(4, New ListItem("Cliente", "5")) DdlGrupo.Items.Insert(5, New ListItem("Vendedor", "7")) DdlGrupo.Items.Insert(6, New ListItem("Sucursal", "8")) DdlGrupo.Items.Insert(7, New ListItem("Producto/Servicio", "9")) DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("7") End Sub #End Region Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() End Sub Private Sub CargaDatos() Dim CveAlmacenApartado = -1 If DdlSubProyectos.SelectedValue.ToEntero > 0 Then CveAlmacenApartado = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen IN (9) And Estatus = 'Activo' And CveSubProyecto = {DdlSubProyectos.SelectedValue.ToEntero}").ToEntero If CveAlmacenApartado <= 0 Then Alert("No se encontro el almacen de Apartado de la sucursal seleccionada. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If Dim ObjInventarios As New ClsInventarios If ObjInventarios.ApartadosRep2(CveAlmacenApartado, DdlCliente.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlGrupo.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjInventarios.DtResultados DtApartados = ObjInventarios.DtResultados GvDatos.DataBind() UpDatos.Update() End If ObjInventarios.Dispose() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim Css As String = "Texto" If e.Row.DBCampo("GPO") = "Total Pesos" Or e.Row.DBCampo("GPO") = "Total Dólares" Then e.Row.CssClass = "Totales" End If ' PARA LIGA Dim FechaI, FechaF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") 'LIGA A DETALLE Dim Liga As String = $"/Inventarios/RepApartados.aspx?Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveCliente={e.Row.DBCampo("CveCliente")}&CveVendedor={e.Row.DBCampo("CveVendedor")}&CveSubProyecto={e.Row.DBCampo("CveSubProyecto")}&CvePS={e.Row.DBCampo("CvePS")}&FechaI={FechaI}&FechaF={FechaF}" e.Row.FCLiteral("LtlGrupo").Text = "" & e.Row.FCLiteral("LtlGrupo").Text & "" End If End Sub #Region "IMPRESION" Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click GeneraImpresion() End Sub Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GeneraImpresion("Excel") End Sub Private Sub GeneraImpresion(Optional Formato As String = "PDF") If DtApartados IsNot Nothing Then Dim StrFiltro As New StringBuilder If DdlGrupo.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Agrupado por: {0}", DdlGrupo.SelectedItem.Text) If txtFechaI.Text <> "" Then StrFiltro.AppendFormat(" Fecha Inicio: {0}", txtFechaI.Text) If txtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin: {0}", txtFechaF.Text) If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Sucursal: {0}", DdlSubProyectos.SelectedItem.Text) If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Vendedor: {0}", DdlVendedor.SelectedItem.Text) If DdlCliente.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Cliente: {0}", DdlCliente.SelectedItem.Text) If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Producto/Servicio: {0}", DdlPS.SelectedItem.Text) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("Filtros", StrFiltro.ToString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepApartados2.rdlc", DtApartados, params, String.Format("ReporteApartados-{0}", Now.ToDateTime.ToShortDateString), Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub #End Region End Class