使SQL Server报告服务使用度量测量
-
19-09-2019 - |
题
我刚开始使用SQL Server报告服务来创建和编程报告。
立即使我烦恼的一件事:我似乎找不到一种简单的方法来告诉投标(商业智能开发工作室,又名Visual Studio) 公制 对于测量值 - 您知道 - 毫米,厘米等,而不是英寸等。
我试图弄清楚这是否是Visual Studio内部的设置(如果是的话:在哪里?),或者这是否取决于报告服务实例(再次:如果是:如果是这样,则在哪里可以在哪里我改变了???)。
必须有一种改变这个问题的方法!除了美国外,世界上没有人仍在以英寸为数字.....来吧 - 整个世界早已采用了公制系统!不要告诉我微软让我回到黑暗时代.....
解决方案
对于SSRS 2008,编辑 Report.rdl
模板在
<Visual_Studio_Install_dir>\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject
并在关闭之前添加以下行 </Report>
标签:
<rd:ReportUnitType>Cm</rd:ReportUnitType>
这将默认所有新报告(由添加新项目 - >选择报告创建)以使用厘米。但是,正如埃德(Ed)所指出的那样,报告向导创建的报告似乎很难编码以使用英寸。
还有其他值得注意的是,无论您放在那儿 Report.rdl
创建新报告时将使用文件,因此您可以设置默认页面大小,字体等...
其他提示
我知道我正在复活一个长的死线,但是对于那些在VS2010中寻找此操作的人,RDL文件位于一个略有不同的位置。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject\Report.rdl
我在英国,因此发现必须不断从英寸转换为CM以及从“ En-us”到“ engb”非常烦人。我有时会忘记,然后才意识到我的约会专栏说这是第31个月的第七天。为什么在VS中没有可用的选择“ EN-GB”是我的默认场所,而“ CM”是我的默认测量单元完全超出了我。微软提供所有主要语言的软件,并支持多种日历类型,但随后他们会采用这样的内容,似乎他们假设所有使用VS的开发人员均基于美国... </rant>
我修改了我的report.rdl文件,如下所示,该文件解决了该问题,但是如前所述,只有当我不使用向导的情况下。我尚未找到在向导中设置默认值的任何方法。在report.rdl的文件夹中,有一个名为reportwizard.wsz的文件,但看起来它只是包含各种对象的指针。我们可以使用一些东西,但我不会屏住呼吸。
我写的报告中有95%具有A4景观的页面属性,各个方面的0.5厘米边距和没有交互式的大小以及标题顶部的文本框,因此我也将其扔进去。如果要复制或对其进行修改以适应整个report.rdl文件。
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Textbox Name="TextBoxReportTitle">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Report Title</Value>
<Style>
<FontSize>20pt</FontSize>
<FontWeight>Bold</FontWeight>
<Color>SteelBlue</Color>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>textbox1</rd:DefaultName>
<Height>0.9cm</Height>
<Width>28.7cm</Width>
<DataElementOutput>NoOutput</DataElementOutput>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Height>5cm</Height>
<Style />
</Body>
<Width>28.7cm</Width>
<Page>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<InteractiveHeight>0cm</InteractiveHeight>
<InteractiveWidth>0cm</InteractiveWidth>
<LeftMargin>0.5cm</LeftMargin>
<RightMargin>0.5cm</RightMargin>
<TopMargin>0.5cm</TopMargin>
<BottomMargin>0.5cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
<AutoRefresh>0</AutoRefresh>
<Language>en-GB</Language>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
</Report>
如果您定期使用许多默认报告设计,那么制作新模板非常容易。只需用您想要的基本外观和所有设置的所有设置,然后将RDL的副本保存到上方的文件夹中,我删除了RDL的副本 <rd:ReportID>
标签是因为该标签是自动生成的。现在,如果您将新项目添加到项目中,您的新模板将出现在VS中的列表中。
我自己找到了解决方案 - 有点。
创建新报告后,我可以右键单击报告设计表面并选择“报告属性”。在那里,我可以在英寸和厘米之间进行测量。
但是我仍然没有找到告诉报告服务的方法 总是 默认情况下想要公制系统……欢迎其他提示!
我还发现,如果您有现有报告并希望更改这些参数,则可以右键单击报告旁边的空白空间,以查看报告属性并从英寸到CM更改并修改页面尺寸。
使用BIDS 2005(我尚未使用2008版),您可以在设计师理解的任何单元中定义测量值 - 在同一报告中可以接受以定义某些以英寸为单位的测量值,有些则以厘米为单位,有些像素等级等。
如果您查看RDL文件中存储的报告定义(如XML),您会发现该值存储在您提供的单元中(而不是将其转换为引擎盖下的帝国测量值) - 如本示例:
<InteractiveWidth>8.5in</InteractiveWidth>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
如果默认报告模板中以英寸为单位的值打扰您,则可以更改它们 - 在SQL 2005中,该模板默认存储在
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject\Report.rdl
对于SQL 2008,此位置可能略有不同。
(请注意,这没有修改报告向导产生的报告。)