2013-07-17 7 views
0

Я пытаюсь создать сквозную функциональность для другого отчета с помощью Свойства текстового поля> Действие> Перейти к URL-адресу, все параметры, которые находятся в сквозном отчете, включены в выражение url, чтобы гарантировать, что значения по умолчанию в буровом отчете не используются, и указаны в том порядке, в котором они существуют в drill-through rdl.URL-адрес перехода по URL-адресу SSRS 2008 не работает, но работает, если строка введена вручную

@ReportIntermediate - многозначный параметр, все остальные являются одними значениями.

=Globals!ReportServerUrl 
& "/reportserver?" 
& replace(Globals!ReportFolder, " ", "+") 
& "/Snapshot+Report" 
& "&rs:Command=Render&rs:ParameterLanguage=en-AU&rc:Parameters=false" 
& "&ReportRegion=National" 
& "&ReportDate=" & Code.URLEncode(Format(Parameters!ReportDate.Value, "yyyy-MM-dd")) 
& "&ReportIntermediaryGroup=" & CStr(Fields!GroupIntermediaryNo.Value) 
& "&ReportNumberOfMonthsToShow=3" 
& "&ReportIntermediaryState=National" 
& Fields!ParameterIntermediaryList.Value 

Где Fields!ParameterIntermediaryList.Value отформатирован как:

&ReportIntermediary=123456789&ReportIntermediary=123456789 

и образец строки, которая формируется с помощью выражения являются:

http://localhost/ReportServer/Pages/ReportViewer.aspx?/Folder/Sub+Folder/Snapshot+Report&rs:Command=Render&rs:ParameterLanguage=en-AU&ReportRegion=National&ReportDate=2013-06-01&ReportIntermediaryGroup=123456789&ReportNumberOfMonthsToShow=3&ReportIntermediaryState=National&ReportIntermediary=123456789&ReportIntermediary=123456789&ReportIntermediary=123456789 

я поставил выше выражение в тексте в строке строки матрицы, и строка кажется хорошо сформированной. Когда я беру эту строку и вручную вводим ее в адресную строку IE, отчет будет отображаться.

Если ручной метод будет отображаться, почему в отчете не будет работать по клику?

Я также попытался установить выражение Go to URL на =ReportItems!txtLink.Value, где это текстовое поле содержит строковое значение, созданное выражением выше. Это тоже не работает.

Вот XML из файла RDL:

<CellContents> 
    <Textbox Name="txtGroupIntermediaryName"> 
     <KeepTogether>true</KeepTogether> 
     <Paragraphs> 
      <Paragraph> 
       <TextRuns> 
        <TextRun> 
         <Value>=Fields!GroupIntermediaryName.Value</Value> 
         <Style> 
          <FontSize>8pt</FontSize> 
          <TextDecoration>Underline</TextDecoration> 
          <Color>Blue</Color> 
         </Style> 
        </TextRun> 
       </TextRuns> 
       <ListLevel>1</ListLevel> 
       <Style /> 
      </Paragraph> 
     </Paragraphs> 
     <ActionInfo> 
      <Actions> 
       <Action> 
        <Hyperlink>=Globals!ReportServerUrl 
        &amp; "/reportserver?" 
        &amp; replace(Globals!ReportFolder, " ", "+") 
        &amp; "/Snapshot+Report" 
        &amp; "&amp;rs:Command=Render&amp;rs:ParameterLanguage=en-AU&amp;rc:Parameters=false" 
        &amp; "&amp;ReportSegment=Dealer" 
        &amp; "&amp;ReportRegion=National" 
        &amp; "&amp;ReportDate=" &amp; Code.URLEncode(Format(Parameters!ReportDate.Value, "yyyy-MM-dd")) 
        &amp; "&amp;ReportIntermediaryGroup=" &amp; CStr(Fields!GroupIntermediaryNo.Value) 
        &amp; "&amp;ReportNumberOfMonthsToShow=3" 
        &amp; "&amp;ReportIntermediaryState=National" 
        &amp; Fields!ParameterIntermediaryList.Value</Hyperlink> 
       </Action> 
      </Actions> 
     </ActionInfo> 
     <Style> 
      <Border> 
       <Style>None</Style> 
      </Border> 
      <BackgroundColor>=iif(ReportItems!txtRowGroupBackgroundFormat.Value = 1, Code.ColourPalette("row-highlight"), Nothing)</BackgroundColor> 
      <PaddingLeft>2pt</PaddingLeft> 
      <PaddingRight>2pt</PaddingRight> 
      <PaddingTop>2pt</PaddingTop> 
      <PaddingBottom>2pt</PaddingBottom> 
     </Style> 
    </Textbox> 
    <rd:Selected>true</rd:Selected> 
</CellContents> 

ответ

0

Проблема была вызвана текстом (в текстовом поле, которое имеет Goto Url действие на него), которые отступ для целей форматирования.

Удаление этого отступа разрешает действию работать.

Это можно сделать любым из следующих способов:

  • Нажатие кнопки Decrease Indent на Report Formatting Toolbar
  • Выбор текстового поля, а затем собирается на Properties панели и настройки ListLevel равным 0
  • Перейдите в XML и найдите тег <ListLevel>1</ListLevel> и установите 1 на 0 (это будет большее число, если отступ больше, например, 2, 3 ..., n)
0

Функция CStr вызывает ошибку при попытке преобразовать параметр многозначным. Вместо этого используйте функцию Join. Вы можете конвертировать как это и использовать любой разделитель вы хотите:

Join(Fields!GroupIntermediaryNo.Value, ",") 
+0

Функция 'CStr()' не используется с параметром multi-value –

 Смежные вопросы

  • Нет связанных вопросов^_^