Заставьте службы отчетов SQL Server использовать метрические измерения - PullRequest
16 голосов
/ 11 ноября 2009

Я только начинаю создавать и программировать отчеты с использованием служб отчетов SQL Server.

Одна вещь, которая меня сразу раздражает: мне кажется, я не могу найти простой способ сказать BIDS (Business Intelligence Dev Studio, также известная как Visual Studio) использовать метрическую систему для измерений - вы знаете - миллиметры, сантиметры и т. д. вместо дюймов и т. д.

Я пытался выяснить, является ли это параметром в Visual Studio (и если да, то где это ??) или это зависит от того, с каким экземпляром служб Reporting Services мы идем (и снова: если да, то где черт возьми, я могу это изменить ???).

Должен быть способ изменить это !! За исключением США, никто в мире до сих пор не измеряет в дюймах ..... давай - мир в целом давно принял метрическую систему! Не говори мне, что Microsoft заставляет меня вернуться в темные века ...

Ответы [ 5 ]

19 голосов
/ 25 ноября 2009

Для SSRS 2008 отредактируйте шаблон Report.rdl в

<Visual_Studio_Install_dir>\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject

и добавьте следующую строку перед закрывающим тегом </Report>:

<rd:ReportUnitType>Cm</rd:ReportUnitType>

По умолчанию все новые отчеты (созданные с помощью «Добавить новый элемент» -> «Выбрать отчет») будут использовать сантиметры. Однако, как отметил Эд, отчеты, созданные мастером отчетов, по-видимому, жестко запрограммированы для использования в дюймах.

Еще один момент, на который следует обратить внимание: все, что вы поместите в этот файл Report.rdl, будет использоваться при создании нового отчета, так что вы сможете установить размеры страниц по умолчанию, шрифты и т. Д. *

8 голосов
/ 20 декабря 2012

Я знаю, что восстанавливаю длинный мертвый поток, но для тех, кто ищет, как это сделать в VS2010, файл RDL находится в немного другом месте.

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject\Report.rdl

Я нахожусь в Великобритании, поэтому меня очень раздражает необходимость постоянно переключаться с дюймов на см и с «en-US» на «en-GB». Я иногда забываю, а потом только осознаю, когда в моем столбце даты написано, что это 7-й день 31-го месяца. Почему в VS нет опции, чтобы сказать «en-GB» - моя локаль по умолчанию, а «cm» - моя единица измерения по умолчанию, полностью за мной. Microsoft предлагает свое программное обеспечение на всех основных языках с поддержкой множества типов календарей, но затем они используют что-то вроде этого, и кажется, что они предполагают, что все разработчики, использующие 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.

4 голосов
/ 05 сентября 2015

Я также обнаружил, что если у вас есть существующий отчет и вы хотите изменить эти параметры, вы можете щелкнуть правой кнопкой мыши пустое пространство СЛЕДУЮЩИЙ к отчету, чтобы просмотреть свойства отчета и изменить его с дюймов на см, а также изменить размеры страниц и т. Д.

3 голосов
/ 12 ноября 2009

Я нашел решение сам - вроде.

Когда создается новый отчет, я могу щелкнуть правой кнопкой мыши на области дизайна отчета и выбрать «Свойства отчета». Там я могу выбирать между дюймами и сантиметрами для своих измерений.

Но я все еще не нашел способа сообщить Reporting Services, что я всегда хочу использовать метрическую систему по умолчанию ...... любые дальнейшие советы приветствуются!

1 голос
/ 11 ноября 2009

Используя 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.

(Обратите внимание, что это не меняет отчеты, созданные мастером отчетов.)

...