все, что вам нужно сделать, это установить тему в вашем диалоге.
@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>
Можно сделать следующее: (это работает оба над локальными отчетами как полностью Унесенные отчеты 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
Если сервер Отчета непосредственно доступен, можно передать параметры в Querystring при доступе к отчету с URL:
http://MyServer/ReportServer/?MyReport&rs:Command=Render&Param1=54321&Param2=product
Можно добавить выходное форматирование путем добавления следования конца URL:
&rs:Format=Excel
или
&rs:Format=PDF
Я давно не писал этот код, но он может помочь: Ваш веб-проект должен быть веб-сайтом, а не проектом типа «Веб-приложение 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