Как передать параметры отчету о SSRS программно

все, что вам нужно сделать, это установить тему в вашем диалоге.

 @Override
    public int getTheme() {
        return R.style.dialog;
    }

стиль

<style name="dialog" parent="android:Theme.Dialog">
        <item name="android:windowBackground">@drawable/radius</item>
        <item name="android:windowMinWidthMajor">80%</item>
        <item name="android:windowMinWidthMinor">85%</item>
        <item name="android:windowNoTitle">true</item>
    </style>

radius.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="10dp" />
    <padding
        android:bottom="8dp"
        android:left="8dp"
        android:right="8dp"
        android:top="8dp" />
</shape>
14
задан LunaCrescens 15 December 2008 в 15:47
поделиться

3 ответа

Можно сделать следующее: (это работает оба над локальными отчетами как полностью Унесенные отчеты SSRS. но в полном режиме, используйте соответствующий класс, часть параметра остается тем же),

LocalReport myReport = new LocalReport();
myReport.ReportPath = Server.MapPath("~/Path/To/Report.rdlc");

ReportParameter myParam = new ReportParameter("ParamName", "ParamValue");
myReport.SetParameters(new ReportParameter[] { myParam });

// more code here to render report
15
ответ дан 1 December 2019 в 09:13
поделиться

Если сервер Отчета непосредственно доступен, можно передать параметры в Querystring при доступе к отчету с URL:

http://MyServer/ReportServer/?MyReport&rs:Command=Render&Param1=54321&Param2=product

Можно добавить выходное форматирование путем добавления следования конца URL:

&rs:Format=Excel

или

&rs:Format=PDF

11
ответ дан 1 December 2019 в 09:13
поделиться

Я давно не писал этот код, но он может помочь: Ваш веб-проект должен быть веб-сайтом, а не проектом типа «Веб-приложение ASP.Net», иначе вы не сможете добавить ссылку, указанную ниже. Щелкните проект правой кнопкой мыши и добавьте папку ASP.Net - App_WebReferences. Вам нужно будет указать сервер, на котором находится ваша SRS; выберите .asmx. После добавления папка на этом уровне называется RSService, и в ней находятся две вещи: reportservice.discomap и .wsdl. В моем VB я использую Imports RSService и Imports System.Web.Services.Protocols, затем ...

Dim MyRS As New ReportingService

Служба отчетов находится на другом сервере, чем веб-сервер, на котором работает приложение, поэтому я не могу сделать следующее: MyRS.Credentials = System.Net.CredentialCache.DefaultCredentials

Вместо: MyRS.Credentials = New System.Net.NetworkCredential (rs1, rs2, rs3) , где rs1 / 2/3 - это логин к ящику SRS, пароль к ящику SRS и имя домена ". (Они зашифрованы в моем web.config.)

Затем массовая вставка:

MyRS.Credentials = New System.Net.NetworkCredential(rs1, rs2, rs3)

Dim ReportByteArray As Byte() = Nothing
Dim ReportPath As String = "/SRSSiteSubFolder/ReportNameWithoutRDLExtension"
Dim ReportFormat As String = "PDF"
Dim HistoryID As String = Nothing
Dim DevInfo As String = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>"
'Dim x As ReportParameter - not necessary
Dim ReportParams(0) As ParameterValue
ReportParams(0) = New ParameterValue()
ReportParams(0).Name = "TheParamName"
ReportParams(0).Value = WhateverValue

Dim Credentials As DataSourceCredentials() = Nothing
Dim ShowHideToggle As String = Nothing
Dim Encoding As String
Dim MimeType As String
Dim ReportHistoryParameters As ParameterValue() = Nothing
Dim Warnings As Warning() = Nothing
Dim StreamIDs As String() = Nothing
'Dim sh As New SessionHeader() - not necessary
''MyRS.SessionHeaderValue = sh - not necessary

ReportByteArray = MyRS.Render(ReportPath, ReportFormat, HistoryID, DevInfo, ReportParams, Credentials, _
    ShowHideToggle, Encoding, MimeType, ReportHistoryParameters, Warnings, StreamIDs)
'(Yay! That line was giving "HTTP error 401 - Unauthorized", until I set the credentials
' as above, as explained by http://www.odetocode.com/Articles/216.aspx.)

'Write the contents of the report to a PDF file:
Dim fs As FileStream = File.Create(FullReportPath, ReportByteArray.Length)
fs.Write(ReportByteArray, 0, ReportByteArray.Length)
fs.Close()

Call EmailTheReport(FullReportPath)

If IO.File.Exists(FullReportPath) Then
    IO.File.Delete(FullReportPath)
End If
1
ответ дан 1 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: