我花了好几个小时寻找,但没有成功。
我正在编程地创建SSRS中报表的快照,使用创建报表文件夹的c#。报告是在这些文件夹中创建的,但是为了防止出现错误,我将删除整个文件夹结构,然后重新创建报告,以防止SSRS抛出异常。
我正在使用ReportingService2010。
ReportingService2010.DeleteItem(deleteFolderPath);…
ReportingService2010.CreateFolder(folder, parentFolder, null);-这是我需要检查文件夹和报告是否存在的行
var ret = CheckExist(linkedReportName, newParent);
var param = GetReportParameters(existingReportPath);
ReportingService2010.SetItemParameters(existingReportPath, param);--如果不删除文件夹结构,则会在try/Catch之后抛出错误
ReportingService2010.CreateLinkedItem(linkedReportName, newParent, existingReportPath, props);我需要添加一个方法来查看报表和报表文件夹是否已经创建。
发布于 2014-12-08 23:03:16
另一种可能的选择是直接使用报表服务器数据库中Catalog表的path、type和parentid字段。如果您打开Server并查看该表,您应该非常清楚需要做什么。
可以使用C#运行SQL命令,如
SELECT COUNT(*) FROM CATALOG WHERE PATH LIKE '%TheFolderNameImLookingFor%'如果计数大于零,则文件夹存在。
您可以根据您的需要更改此选项。文件夹项的类型为1;报表项的类型为2,因此可以使用此类型来区分报表和文件夹。
发布于 2015-10-22 08:00:04
我认为最好的方法是ReportService2010.GetItemType()方法。这将返回一个字符串(ReportingService2010.ListItemTypes()方法),包括不存在(而不是抛出异常)的可能值"Unknown"或文件夹的"Folder"。
发布于 2015-07-30 10:24:34
如何删除文件夹,如果它们存在使用ListChildren;
var items = ReportingService2010.ListChildren(parentFolder, false);
if (items.Where(x => x.TypeName == "Folder").Any(x => x.Name == folder))
{
ReportingService2010.DeleteItem(folder, parentFolder, null);
}https://stackoverflow.com/questions/27321039
复制相似问题