Rdlc报表由于reportviewer版本升级导致修改旧版报表后客户端无法打开

安装VS2017后,reportviewer另外下载安装的,繁体的,都没找到简体的。

修改原来的rdlc报表时,版本会不一样,导致客户端打印的时候报错。

Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report '' is invalid. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: The definition of this report is not valid or supported by this version of Reporting Services. The report definition may have been created with a later version of Reporting Services, or contain content that is not well-formed or not valid based on Reporting Services schemas. Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition' which cannot be upgraded.

查看报表文件的时候发现

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

命名空间已经从

”http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition“

变成

”http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition“

为了和原来的版本保持一致,可以从报表文件的代码里面进行添加修改。

   <TablixRows>
                <TablixRow>
                  <Height>0.5cm</Height>
                  <TablixCells>
                    <TablixCell>
                      <CellContents>
                        <Textbox Name="textbox20">
                          <CanGrow>true</CanGrow>
                          <KeepTogether>true</KeepTogether>
                          <Paragraphs>
                            <Paragraph>
                              <TextRuns>
                                <TextRun>
                                  <Value>="哈哈(" &amp; First(Fields!ManageType.Value, "A") &amp; ")"</Value>
                                  <Style>
                                    <FontFamily>宋体</FontFamily>
                                  </Style>
                                </TextRun>
                              </TextRuns>
                              <Style />
                            </Paragraph>
                          </Paragraphs>
                          <rd:DefaultName>textbox20</rd:DefaultName>
                          <Style>
                            <BottomBorder>
                              <Color>Black</Color>
                              <Style>Solid</Style>
                              <Width>1pt</Width>
                            </BottomBorder>
                            <PaddingLeft>2pt</PaddingLeft>
                            <PaddingRight>2pt</PaddingRight>
                            <PaddingTop>2pt</PaddingTop>
                            <PaddingBottom>2pt</PaddingBottom>
                          </Style>
                        </Textbox>
                      </CellContents>
                    </TablixCell>
                    <TablixCell>
                      <CellContents>
                        <Textbox Name="textbox21">
                          <CanGrow>true</CanGrow>
                          <KeepTogether>true</KeepTogether>
                          <Paragraphs>
                            <Paragraph>
                              <TextRuns>
                                <TextRun>
                                  <Value>=format(First(Fields!PrescriptDate.Value, "A"),"yyyy年MM月dd日")</Value>
                                  <Style>
                                    <FontFamily>宋体</FontFamily>
                                  </Style>
                                </TextRun>
                              </TextRuns>
                              <Style />
                            </Paragraph>
                          </Paragraphs>
                          <rd:DefaultName>textbox21</rd:DefaultName>
                          <Style>
                            <BottomBorder>
                              <Color>Black</Color>
                              <Style>Solid</Style>
                              <Width>1pt</Width>
                            </BottomBorder>
                            <PaddingLeft>2pt</PaddingLeft>
                            <PaddingRight>2pt</PaddingRight>
                            <PaddingTop>2pt</PaddingTop>
                            <PaddingBottom>2pt</PaddingBottom>
                          </Style>
                        </Textbox>
                        <ColSpan>4</ColSpan>
                      </CellContents>
                    </TablixCell>
                    <TablixCell />
                    <TablixCell />
                    <TablixCell />
                  </TablixCells>
                </TablixRow>

注意增加行要在            <TablixRowHierarchy>节点下增加                <TablixMember>。否则会提示行数量不对。

    <TablixRowHierarchy>
              <TablixMembers>
                <TablixMember>
                  <KeepWithGroup>After</KeepWithGroup>
                  <KeepTogether>true</KeepTogether>
                </TablixMember>
                <TablixMember>
                  <KeepWithGroup>After</KeepWithGroup>
                  <KeepTogether>true</KeepTogether>
                </TablixMember>

 

 

2020-1-18 这两天将VS升级到2019了,然后又悲剧了一回。

虽然VS2019本身感觉挺好用的,但是reportviewer的问题真是坑死人。

我有些报表原本是引用了本地程序集,但是编译的时候无法加载程序集,这就很尴尬了,到现在也没解决,目前是先去掉引用,通过别的方式曲线救国。

过程:

安装完rdlc么有设计器,从扩展更新里面下载安装了最新rdlc设计器安装包。

从nuget里面下载了最新版的Microsoft.ReportingServices.ReportViewerControl.Winforms.150.1400.0和Microsoft.SqlServer.Types.14.0.314.76

编译的时候报错,框架问题,需要.net4.6, 我原本的是.net4.0,升级框架,解决问题,后面客户端升级可能就要一番功夫了。

经过测试,有了一个好处,修改rdlc命名空间会变成2016,但是打印不会出错误提示了。

就是引用自定义程序集出错有点烦,后续有解决了再更新。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值