在SSRS中有一个名为Author
的报告属性。
我试图在文本框的报告底部显示作者。我尝试了以下方法:
="Report Created By " & Globals!Author
但它没有用。请告诉我这里缺少的东西。
答案 0 :(得分:0)
我不认为此数据在报表生成器中公开,但是,如果您想维护自定义程序集并将其嵌入报表中,那么您可以使用下面的代码并添加以便报表调用'自定义代码。
创建类似于下面的引用Microsoft.SqlServer.ReportingServices2010的类库项目。
toto
在报告中包含程序集。
一旦程序集在报表服务器上并由报表引用,那么您可以在报表自定义代码中创建一个包装函数,类似于:
using RS = Microsoft.SqlServer.ReportingServices2010;
public class MicrosoftReportingService //: IReportService
{
private RS.ReportingService2010 _service=new RS.ReportingService2010();
public void CheckConnection()
{
_service.Url = <SSSR_ENPOINT>;
NetworkCredential credentials = new NetworkCredential(<USER_NAME>,<PASSWORD>,<DOMAIN>);
_service.Credentials=credentials;
}
private List<RS.CatalogItem> GetReportsInFolder(string path)
{
CheckConnection();
RS.CatalogItem[] reportItems = _service.ListChildren(path, true);
List<RS.CatalogItem> result = new List<RS.CatalogItem>();
foreach (RS.CatalogItem reportItem in reportItems)
if (reportItem.TypeName == "Report" || reportItem.TypeName == "LinkedReport")
result.Add(reportItem);
return result;
}
public CatalogItem GetReportData(string reportPath, string reportName)
{
List<RS.CatalogItem> reportItems = GetReportsInFolder(reportPath);
return reportItems.Where(p=>p.Name==reportName).FirstOrDefault();
}
public string GetReportAuthor(string reportPath, string reportName)
{
CatalogItem item = GetReportData(reportPath,reportName);
return (item == null) ? "" : item.CreatedBy;
}
}
最后,您可以将代码嵌入到表达式中。
Public GetReportAuthor(reportPath As String, reportName As String) As String
Dim rs As New MicrosoftReportingService()
Return rs.GetReporAuthor(reportPath, reportName)
End Procedure