protected void GridView_RESULTADOS_BUSQUEDA_RowCommand(object sender, GridViewCommandEventArgs e) { int indexSeleccionado = Convert.ToInt32(e.CommandArgument); if (e.CommandName == "imprimir") { Boolean correcto = true; DateTime fechaInicial = new DateTime(); DateTime fechaFinal = new DateTime(); GridViewRow filaGrilla = GridView_RESULTADOS_BUSQUEDA.Rows[indexSeleccionado]; TextBox textoFechaInicial = filaGrilla.FindControl("TextBox_FechaInicial") as TextBox; try { fechaInicial = Convert.ToDateTime(textoFechaInicial.Text); } catch { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La fecha inicial esta vacio o no tiene el formato correcto (dd/mm/yyyy).", Proceso.Advertencia); fechaInicial = new DateTime(); correcto = false; } TextBox textoFechaFinal = filaGrilla.FindControl("TextBox_FechaFinal") as TextBox; try { fechaFinal = Convert.ToDateTime(textoFechaFinal.Text); } catch { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La fecha final esta vacio o no tiene el formato correcto (dd/mm/yyyy).", Proceso.Advertencia); fechaFinal = new DateTime(); correcto = false; } TextBox textoConclusiones = filaGrilla.FindControl("TextBox_Conclusiones") as TextBox; if (String.IsNullOrEmpty(textoConclusiones.Text.Trim()) == true) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "para poder continuar debe digitar las conclusiones.", Proceso.Advertencia); correcto = false; } if (correcto == true) { Programa _prog = new Programa(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); Decimal ID_PROGRAMA = Convert.ToDecimal(GridView_RESULTADOS_BUSQUEDA.DataKeys[indexSeleccionado].Values["ID_PROGRAMA"]); Decimal ID_CORTE = _prog.AdicionarCorteInformeCliente(ID_PROGRAMA, fechaInicial, fechaFinal, textoConclusiones.Text.Trim()); if (ID_CORTE <= 0) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _prog.MensajeError, Proceso.Error); } else { DataTable tablaPrograma = _prog.ObtenerListaActividadesParaPDFInformeClientes(ID_PROGRAMA, ID_CORTE, fechaInicial, fechaFinal); if (tablaPrograma.Rows.Count <= 0) { if (_prog.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _prog.MensajeError, Proceso.Error); } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "En este momento no se encontraron actividades ejecutadas para el año, cliente Y periodo seleccionado.", Proceso.Advertencia); } } else { byte[] archivo = ImprimirPdfInforme(tablaPrograma); Response.AddHeader("Content-Disposition", "attachment;FileName=informe_programa_clinete_" + ID_PROGRAMA.ToString() + ".pdf"); Response.Clear(); Response.Buffer = true; Response.ContentType = "application/pdf"; Response.BinaryWrite(archivo); Response.End(); } } } } }