private void RecuperarDatosOrdenesPago()
        {
            int estado = 1;

            int.TryParse(ddlEstado.SelectedItem.Value, out estado);
            string   proveedor   = txbProveedor.Text.Trim().Replace('\'', ' ');
            string   sucursal    = txbSucursal.Text.Trim().Replace('\'', ' ');
            string   flujoon     = txbFlujoOnbase.Text.Trim().Replace('\'', ' ');
            string   placa       = txbPlaca.Text.Trim().Replace('\'', ' ');
            DateTime fechaInicio = DateTime.ParseExact(txbFechaDesde.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
            DateTime fechaFin    = DateTime.ParseExact(txbFechaHasta.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

            LiquidacionICRL.TipoRespuestaGrilla respuestaGrilla = LiquidacionICRL.LiquidacionGrilla(
                estado, proveedor, sucursal, flujoon, placa, fechaInicio, fechaFin);
            bool    operacionExitosa       = respuestaGrilla.correcto;
            DataSet respuestaGrillaDataset = new DataSet();

            respuestaGrillaDataset = respuestaGrilla.dsLiquidacionGrilla;

            if (operacionExitosa)
            {
                if (respuestaGrillaDataset.Tables[0].Rows.Count > 0)
                {
                    GridViewOrdenesPago.DataSource = respuestaGrillaDataset;
                    GridViewOrdenesPago.DataBind();

                    GridViewOrdenesPago.Visible    = true;
                    lblMensajeOrdenesPago.Text     = "";
                    btnGenerarReporteExcel.Enabled = true;
                    btnGenerarReportePdf.Enabled   = true;
                }
                else
                {
                    GridViewOrdenesPago.Visible    = false;
                    lblMensajeOrdenesPago.Text     = "<p>No existen datos.</p><p>Introduzca otros valores en su consulta.</p>";
                    btnGenerarReporteExcel.Enabled = false;
                    btnGenerarReportePdf.Enabled   = false;
                }

                LabelMensaje.Visible = false;
            }
            else
            {
                btnGenerarReporteExcel.Enabled = false;
                btnGenerarReportePdf.Enabled   = false;
                LabelMensaje.Visible           = true;
                LabelMensaje.Text = "Error en la recuperacion de los datos de pago!";
            }
        }
        protected void btnExportarResultados_Click(object sender, EventArgs e)
        {
            if (!VerificarPagina(true))
            {
                return;
            }
            try
            {
                #region Recuperar datos
                int estado = 1;
                int.TryParse(ddlEstado.SelectedItem.Value, out estado);
                string   proveedor   = txbProveedor.Text.Trim().Replace('\'', ' ');
                string   sucursal    = txbSucursal.Text.Trim().Replace('\'', ' ');
                string   flujoon     = txbFlujoOnbase.Text.Trim().Replace('\'', ' ');
                string   placa       = txbPlaca.Text.Trim().Replace('\'', ' ');
                DateTime fechaInicio = DateTime.ParseExact(txbFechaDesde.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                DateTime fechaFin    = DateTime.ParseExact(txbFechaHasta.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

                LiquidacionICRL.TipoRespuestaGrilla respuestaGrilla = LiquidacionICRL.LiquidacionGrilla(
                    estado, proveedor, sucursal, flujoon, placa, fechaInicio, fechaFin);
                bool    operacionExitosa       = respuestaGrilla.correcto;
                DataSet respuestaGrillaDataset = new DataSet();
                respuestaGrillaDataset = respuestaGrilla.dsLiquidacionGrilla;
                #endregion

                #region Descripcion estados
                AccesoDatos             adatos     = new AccesoDatos();
                List <ListaNomenclador> estadosnom = adatos.FlTraeNomenGenerico("Estados", 0);
                #endregion

                #region Creacion del archivo CSV
                Response.Clear();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment;filename=LBCCotizaciones.csv");
                Response.Charset     = "";
                Response.ContentType = "text/csv";

                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                sb.Append("ORDEN;");
                sb.Append("FECHA ORDEN;");
                sb.Append("PROVEEDOR/BENEFICIARIO;");
                sb.Append("ESTADO;");
                sb.Append("TOTAL ORDEN;");
                sb.Append("PAGADO BS;");
                sb.Append("NO PAGADO BS;");
                sb.Append("PAGADO US;");
                sb.Append("NO PAGADO US;");
                sb.Append("FLUJO ONBASE;");
                sb.Append("CLIENTE;");
                sb.Append("PLACA;");
                sb.Append("ID FLUJO");
                sb.Append("\r\n");

                for (int i = 0; i < respuestaGrillaDataset.Tables[0].Rows.Count; i++)
                {
                    for (int j = 0; j < respuestaGrillaDataset.Tables[0].Rows[i].ItemArray.Count(); j++)
                    {
                        string valorCelda = respuestaGrillaDataset.Tables[0].Rows[i][j].ToString().Trim();
                        valorCelda = valorCelda.Replace(";", ",");

                        if (j == 3)
                        {
                            foreach (ListaNomenclador estadonom in estadosnom)
                            {
                                if (estadonom.codigo.Trim() == valorCelda)
                                {
                                    valorCelda = estadonom.descripcion;
                                    break;
                                }
                            }
                        }

                        if (valorCelda.Contains("span"))
                        {
                            string subs = valorCelda.Substring(valorCelda.IndexOf('>') + 1);
                            valorCelda = subs.Remove(subs.LastIndexOf('<'));
                        }

                        byte[] bytes = System.Text.Encoding.Default.GetBytes(valorCelda);
                        valorCelda = System.Text.Encoding.Default.GetString(bytes);

                        if (j == respuestaGrillaDataset.Tables[0].Rows[i].ItemArray.Count() - 1)
                        {
                            sb.Append(valorCelda);
                        }
                        else
                        {
                            sb.Append(valorCelda + ';');
                        }
                    }

                    sb.Append("\r\n");
                }

                Response.Output.Write(sb.ToString());
                #endregion

                LabelMensaje.Visible = false;
            }
            catch (Exception ex)
            {
                LabelMensaje.Visible = true;
                LabelMensaje.Text    = "Error al exportar los resultados!";
            }
            finally
            {
                Response.Flush();
                Response.Close();
                Response.End();
            }
        }