как передать другой отчет .rdlc в средство просмотра отчетов

У меня есть веб-форма с выпадающим списком, текстовым полем и тремя кнопками. 1) создать отчет 2) распечатать 3) экспортировать в PDF

У меня есть printonebartest.rdlc в качестве отчета по умолчанию, привязанного к reportviewer1, который предназначен для того, чтобы пользователь мог правильно просматривать информацию, однако, когда я печатаю тот же отчет, html искажает макет, поэтому я создал другой отчет printonebartest1.rdlc, который масштабируется для печати информации. правильно, мой вопрос заключается в том, как я могу передать printonebartest1.rdlc в reportviewer1, когда нажата кнопка печати и экспорт в pdf.

Это код, который у меня есть для кнопки печати

  protected void Print_Click(object sender, ImageClickEventArgs e)
        {
            IolaNetWeightWeb.BarTableAdapters.Product_Weight_Data_Sheet_QueryTableAdapter ds = new IolaNetWeightWeb.BarTableAdapters.Product_Weight_Data_Sheet_QueryTableAdapter();
            ReportDataSource rds = new ReportDataSource("Bar_Product_Weight_Data_Sheet_Query", ds.GetData(DropDownList1.Text, DropDownList3.Text));

            // Variables
            Warning[] warnings;
            string[] streamIds;
            string mimeType = string.Empty;
            string encoding = string.Empty;
            string extension = string.Empty;


            // Setup the report viewer object and get the array of bytes
            ReportViewer viewer = new ReportViewer();
            viewer.ProcessingMode = ProcessingMode.Local;
            viewer.LocalReport.ReportPath = "printonebartest1.rdlc";
            viewer.LocalReport.DataSources.Add(rds); // Add datasource here


            byte[] bytes = ReportViewer1.LocalReport.Render("Pdf", null, out mimeType, out encoding, out extension, out streamIds, out warnings);


            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            Response.Buffer = true;
            Response.Clear();
            Response.ContentType = mimeType;
            Response.AddHeader("content-disposition", "inline; filename=PrintOneBar.pdf");
            Response.BinaryWrite(bytes); // create the file
            Response.Flush(); // send it to the client to download
        }

несмотря на то, что я передаю printonebartest1.rdlc, он все еще использует printonebartest.rdlc. Я делаю что-то не так, мне нужно перепривязать источник данных или что-то в этом роде? пожалуйста, помогите, любая помощь приветствуется.


person CodeMan    schedule 25.10.2016    source источник
comment
Вопрос был помечен iText, но я не вижу никакого кода iText. Вы уверены, что вам нужен этот тег?   -  person Amedee Van Gasse    schedule 26.10.2016
comment
@AmedeeVanGasse, вы правы, извините, я думал, что для печати и экспорта в pdf используется itext.   -  person CodeMan    schedule 26.10.2016


Ответы (1)


Все, что вам нужно сделать, это передать «%» в предложение where. Запрос для первого запроса будет выглядеть примерно так:

выберите * из emp, где имя НРАВИТСЯ «%».

Таким образом, для первого запроса он вернет все данные. Последующие будут основаны на пройденном фильтре.

Чтобы определить, является ли это первым запросом, мы всегда можем использовать свойство IsPostBack. Если значение равно false, это действительно первый запрос. Если нет, то это не первый запрос.

Свойство будет FALSE при обновлении браузера с помощью F5 / CTRL + F5, кроме первого запроса через URL.

person Ehayf2016    schedule 25.10.2016
comment
Мой вопрос не имеет ничего общего с запросом, поэтому я не понимаю вашего ответа. - person CodeMan; 26.10.2016