Хобрук: Ваш путь к мастерству в программировании

Как преобразовать RDLC в PDF в IE и Opera

Мой вопрос кажется дублирующим вопросом, но у меня здесь странная проблема. У нас есть веб-приложение, которое преобразует отчеты RDLC в формат PDF, у которого есть некоторый параметр, который будет установлен в коде, а затем добавлен к отчету и преобразован в PDF. У меня есть этот код:

LocalReport rep = new LocalReport();
        rep.ReportPath = "ReimbursementClaimForm.rdlc";
        List<ReportParameter> param = new List<ReportParameter>();
        param.Add(new ReportParameter("NameofthePatient", txtNameofthePatient.Text));
        param.Add(new ReportParameter("MBASIDNo", txtMBASIDNo.Text));
        param.Add(new ReportParameter("DateofBirth", string.Format("{0:dd MMMM, yyyy}", Convert.ToDateTime(txtDateofBirth.Text))));
        param.Add(new ReportParameter("CompleteHomeAddress", txtCompleteHomeAddress.Text));
        param.Add(new ReportParameter("EmailAddress", txtEmailAddress.Text));
        param.Add(new ReportParameter("ContactNos", txtContactNos.Text));
        param.Add(new ReportParameter("ExpenseClaim", txtExpenseClaim.Text));
        param.Add(new ReportParameter("AccountHolderName", txtAccountHolderName.Text));
        param.Add(new ReportParameter("AccountHolderName2", txtAccountHolderName2.Text));
        param.Add(new ReportParameter("AccountNoandAccountType", txtAccountNoandAccountType.Text));
        param.Add(new ReportParameter("BankName", txtBankName.Text));
        param.Add(new ReportParameter("BankBranch", txtBankBranch.Text));
        param.Add(new ReportParameter("BankContactNo", txtBankContactNo.Text));
        param.Add(new ReportParameter("BankAddress", txtBankAddress.Text));
        param.Add(new ReportParameter("BICSwiftCode", txtBICSwiftCode.Text));
        param.Add(new ReportParameter("RTGSCode", txtRTGSCode.Text));
        param.Add(new ReportParameter("IBAN", txtIBAN.Text));
rep.SetParameters(param);
        rep.DisplayName = "ReimbursementClaimForm";
        rep.Refresh();
HttpContext.Current.Response.Buffer = true;
        //HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AppendHeader("content-disposition", "attachement filename=" + Rep.DisplayName + ".pdf");
        HttpContext.Current.Response.ContentType = "application/PDF";
Warning[] warnings;
            string[] streamids;
            string mimeType;
            string encoding;
            string extension;
            byte[] bytes = item.Render("Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings);
        HttpContext.Current.Response.BinaryWrite(bytes);
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.End();

Проблема здесь в том, что всякий раз, когда я развертываю приложение, используя этот код, значения ReportParameter, которые устанавливаются из значений текстовых полей в ASP, не отражаются в сгенерированном файле PDF. При первой попытке значения отображаются, но во второй раз значения не обновляются в PDF. Это происходит в браузерах IE и Opera, но в других браузерах все нормально, и обратите внимание, как только веб-приложение было развернуто в IIS, но на моем локальном компьютере оно отлично работает во всех браузерах. Заранее спасибо.


Ответы:


1

Скорее всего проблемы с кэшированием. Добавьте эту строку прямо над вашим Response.Clear()

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);

Очистите кеш браузера и повторите попытку

21.05.2013
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..