我最近开始使用SQL Server Reporting Services创建和编写报告。
有一件事让我不知所措:我似乎无法找到一种简单的方法告诉BIDS(商业智能开发工作室,又名Visual Studio)使用公制系统测量 - 你知道 - 毫米,厘米等,而不是英寸等等。
我试图弄清楚这是否是Visual Studio中的设置(如果是这样的话:它在哪里?),或者这取决于我们反对的Reporting Services实例(并且再次:如果是这样,那么我可以改变那个???)。
必须有办法改变这个!!除了美国之外,世界上还没有人能用英寸测量.....来吧 - 世界上很久以来一直采用公制系统!不要告诉我微软让我回到黑暗时代.....
答案 0 :(得分:19)
对于SSRS 2008,请在
编辑Report.rdl
模板
<Visual_Studio_Install_dir>\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject
并在结束</Report>
代码前添加以下行:
<rd:ReportUnitType>Cm</rd:ReportUnitType>
这将默认所有新报告(由添加新项目创建 - >选择报告)使用厘米。但是,正如Ed所指出的,报告向导创建的报告似乎是硬编码为使用英寸。
需要注意的是,在创建新报告时,将使用Report.rdl
文件中的任何内容,因此您可以设置默认页面大小,字体等...
答案 1 :(得分:8)
我知道我正在复活一个长期死亡的线程,但对于那些在VS2010中寻找如何做到这一点的人来说,RDL文件的位置略有不同。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject\Report.rdl
我在英国,因此不得不经常从英寸切换到厘米,从'en-US'切换到'en-GB'非常烦人。我有时会忘记,然后才意识到我的日期专栏说这是第31个月的第7天。为什么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的副本保存到上面的文件夹中我删除了<rd:ReportID>
标签,因为这个标签是自动生成的。现在,如果您要在项目中添加新项目,则新模板将显示在VS中的列表中。
答案 2 :(得分:4)
我还发现,如果您有现有报告并希望更改这些参数,则可以右键单击报告属性的空白区域以查看报告属性并从英寸变为厘米并修改页面大小等。
答案 3 :(得分:3)
我自己找到了解决方案 - 有点像。
创建新报告后,我可以右键单击报告设计图面并选择“报告属性”。在那里,我可以选择英寸和厘米之间进行测量。
但我仍然没有找到一种方法告诉Reporting Services我总是默认需要公制系统......欢迎任何进一步的提示!
答案 4 :(得分:1)
使用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,此位置可能略有不同。
(请注意,这不会修改报告向导生成的报告。)