簡體   English   中英

SSRS文件錯誤信息:參數面板中定義的參數數量不等於單元格定義數量

[英]SSRS file error message: The number of defined parameters is not equal to the number of cell definitions in the parameter panel

我已使用自動化服務工具將報告文件從 Crystal (.rpt) 轉換為 SSRS (.rdl)。 當我在 Viusal Studio SSDT 中預覽報告時,我收到一條非常奇怪的錯誤消息:

“定義的參數數量不等於參數面板中的單元格定義數量”

在此處輸入圖片說明

我也嘗試在 Report Builder 中運行它,但收到了相同的錯誤消息。

RDL 文件有 1710 行; 下面是一些看起來相關的節點的代碼 - ReportParameters、ReportLayout、QueryParameters、CommandText。

有誰知道是什么導致了這個錯誤? 我如何才能解決它? 我看過一篇文章,建議隱藏參數必須有一個默認值——SSRS 報告的定義無效 8 個參數中有 7 個是隱藏的,沒有一個有默認參數。 但我不確定默認值應該是什么(如果必須有的話)。

任何幫助表示贊賞。

第 16..20 行

    <QueryParameters>
      <QueryParameter Name=":PmPROD_WHSEPROD_CODE">
        <Value>=Parameters!PmPROD_WHSEPROD_CODE.Value</Value>
      </QueryParameter>
    </QueryParameters>

第 1533..1573 行

  <ReportParameters>
    <ReportParameter Name="PmPROD_WHSEPROD_CODE">
      <DataType>String</DataType>
      <Prompt>Pm-PROD_WHSE.PROD_CODE</Prompt>
    </ReportParameter>
    <ReportParameter Name="g_invtot">
      <DataType>Float</DataType>
      <Prompt>invtot</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_grdtotinv">
      <DataType>Float</DataType>
      <Prompt>grdtotinv</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_totweight">
      <DataType>Float</DataType>
      <Prompt>totweight</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_grand_tot_wgt">
      <DataType>Float</DataType>
      <Prompt>grand_tot_wgt</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_grdtotwgt">
      <DataType>Float</DataType>
      <Prompt>grdtotwgt</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_totinv">
      <DataType>Float</DataType>
      <Prompt>totinv</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
    <ReportParameter Name="g_totqtyonorder">
      <DataType>Float</DataType>
      <Prompt>totqtyonorder</Prompt>
      <Hidden>true</Hidden>
    </ReportParameter>
  </ReportParameters>

第 1574..1586 行

  <ReportParametersLayout>
    <GridLayoutDefinition>
      <NumberOfColumns>4</NumberOfColumns>
      <NumberOfRows>2</NumberOfRows>
      <CellDefinitions>
        <CellDefinition>
          <ColumnIndex>0</ColumnIndex>
          <RowIndex>0</RowIndex>
          <ParameterName>PmPROD_WHSEPROD_CODE</ParameterName>
        </CellDefinition>
      </CellDefinitions>
    </GridLayoutDefinition>
  </ReportParametersLayout>

第 21..55 行

<CommandText>
Select ORD_HDR.ORDER_SEQ_CODE ORD_HDR_ORDER_SEQ_CODE
    , ORD_HDR.MASTER_ORDER_NBR
    , ORD_HDR.STATUS_CODE
    , ORD_HDR.ORDER_TYPE
    , ORD_HDR.BILL_PO_ID
    , ORD_HDR.SHIP_PO_ID
    , ORD_HDR.SHIP_DATE
    , ORD_HDR.DELIVERY_DATE
    , ORD_HDR.SHIP_FROM_WHSE ORD_HDR_SHIP_FROM_WHSE
    , ORD_DTL.PROD_CODE ORD_DTL_PROD_CODE
    , ORD_DTL.CASES_ORD
    , PRODUCT.DESCR
    , Command.PRICE COMMAND_PRICE
    , Command.NAME COMMAND_NAME
    , Command.CITY COMMAND_CITY
    , Command.STATE_CODE COMMAND_STATE_CODE
 From (SELECT d.prod_code,
d.order_seq_code,
d.price + NVL (d.market_price_adj, 0) price,
h.cust_shipto_code,
c.name,
c.city,
c.state_code
FROM ord_dtl d, ord_hdr h, customer_shipto c
WHERE     d.order_seq_code = h.order_seq_code
AND h.cust_code = c.cust_code
AND h.cust_shipto_code = c.cust_shipto_code) Command
 INNER JOIN ROCCO.ORD_HDR ORD_HDR on (Command.ORDER_SEQ_CODE = ORD_HDR.ORDER_SEQ_CODE)
 INNER JOIN ROCCO.ORD_DTL ORD_DTL on (Command.PROD_CODE = ORD_DTL.PROD_CODE and ORD_DTL.ORDER_SEQ_CODE = ORD_HDR.ORDER_SEQ_CODE)
 INNER JOIN ROCCO.CUSTOMER CUSTOMER on (ORD_HDR.CUST_CODE = CUSTOMER.CUST_CODE)
 INNER JOIN ROCCO.PRODUCT PRODUCT on (ORD_DTL.PROD_CODE = PRODUCT.PROD_CODE)
 Where (((ORD_HDR.ORDER_TYPE &lt;&gt; 'tr') And (ORD_DTL.PROD_CODE = :PmPROD_WHSEPROD_CODE)) And (Not (ORD_HDR.STATUS_CODE in ('ED', 'dl', 'ip', 'sp')))) And (ORD_HDR.SHIP_FROM_WHSE = '06')
 Order by ORD_DTL.PROD_CODE
    , ORD_HDR.DELIVERY_DATE</CommandText>

所以事實證明,即使參數被隱藏,它仍然需要在 RDL 文件中有一個標簽。 我通過測試另一份報告以查看 RDL 文件如何處理隱藏參數來解決這個問題。

要更正問題 RDL 文件...

  1. 我在文本編輯器中打開它
  2. 更新了<ReportParametersLayout><CellDefinitions>節點,為每個參數包含一個<CellDefinition>節點(下面的代碼)
  3. 保存了文件
  4. 在 Visual Studio SSDT 項目中重新打開該文件,然后它就起作用了! 報告預覽完成得很好。

希望這對其他人有幫助。

  <ReportParametersLayout>
    <GridLayoutDefinition>
      <NumberOfColumns>4</NumberOfColumns>
      <NumberOfRows>2</NumberOfRows>
      <CellDefinitions>
        <CellDefinition>
          <ColumnIndex>0</ColumnIndex>
          <RowIndex>0</RowIndex>
          <ParameterName>PmPROD_WHSEPROD_CODE</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>1</ColumnIndex>
          <RowIndex>0</RowIndex>
          <ParameterName>g_invtot</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>2</ColumnIndex>
          <RowIndex>0</RowIndex>
          <ParameterName>g_grdtotinv</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>3</ColumnIndex>
          <RowIndex>0</RowIndex>
          <ParameterName>g_totweight</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>0</ColumnIndex>
          <RowIndex>1</RowIndex>
          <ParameterName>g_grand_tot_wgt</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>1</ColumnIndex>
          <RowIndex>1</RowIndex>
          <ParameterName>g_grdtotwgt</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>2</ColumnIndex>
          <RowIndex>1</RowIndex>
          <ParameterName>g_totinv</ParameterName>
        </CellDefinition>
        <CellDefinition>
          <ColumnIndex>3</ColumnIndex>
          <RowIndex>1</RowIndex>
          <ParameterName>g_totqtyonorder</ParameterName>
        </CellDefinition>
      </CellDefinitions>
    </GridLayoutDefinition>
  </ReportParametersLayout>

您還可以從報告 xml 文件中刪除“ReportParametersLayout”標簽

Design - NewDesign,復制 OldDesign 中的所有對象並粘貼到 NewDesign 中,刪除 OldDesign 並發布。 這也是我的解決方案,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM