RDLC 传参 报表出现错误 (未解决)
经过测试 可以用的 带传参的 RDLC 在vs2019上 能正常运行
但在vs2019上剪切后,保存, 运行就会报An error 错误, ctr+z 全部 撤销后 保存 一样会报 这个错误, 一脸懵逼 ,这是什么鬼!!!
public Dictionary<string, Type> Getdt_columns_attribute(DataTable dt)
{
if (dt == null) { return null; }
Dictionary<string, Type> dic = new Dictionary<string, Type>(); foreach (DataColumn dc in dt.Columns)
{
dic.Add(dc.ColumnName, dc.DataType);
}
return dic;
}
public string get_数据集中字段(Dictionary<string, Type> types)
{
/*
<Fields>
<Field Name="产品型号"> <!--显示名称-->
<DataField>产品型号</DataField> <!--绑定的数据名称-->
<rd:TypeName>System.String</rd:TypeName> <!--绑定的数据类型-->
</Field>
</Fields>
*/
StringBuilder sb = new StringBuilder();
sb.Append("<Fields>");
foreach (KeyValuePair<string, Type> kvp in types)
{
var t1 = kvp.Key;
var t2 = kvp.Value.FullName;
sb.AppendFormat("<Field Name=\"{0}\">", t1);
sb.AppendFormat("<DataField>{0}</DataField>", t1);
sb.AppendFormat("<rd:TypeName>{0}</rd:TypeName>", t2);
sb.AppendFormat("</Field>"); }
sb.AppendFormat("</Fields>"); var t = sb.ToString();
return sb.ToString();
} public string get_表阵列集合(DataTable dt)
{
/*
<!--表阵 列集合-->
<TablixColumns>
<TablixColumn>
<Width>1.44804in</Width>
</TablixColumn>
</TablixColumns>
*/
StringBuilder sb = new StringBuilder();
sb.AppendFormat("<TablixColumns>"); foreach (DataColumn dc in dt.Columns)
{
sb.AppendFormat("<TablixColumn>");
sb.AppendFormat("<Width>1.44804in</Width>");
sb.AppendFormat("</TablixColumn>");
}
sb.AppendFormat("</TablixColumns>"); var t = sb.ToString();
return sb.ToString();
}
public string get_表阵单元格集合(DataTable dt)
{
/*
<!--表阵单元格集合-->
<TablixCells>
<TablixCell>
<CellContents><Textbox Name="Textbox1">
<CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun>
<Value>产品型号</Value>
<Style><FontFamily>宋体</FontFamily></Style></TextRun></TextRuns><Style><TextAlign>Center</TextAlign></Style></Paragraph></Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Style><Border><Style>Solid<Style></Border><VerticalAlign>Middle</VerticalAlign><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight></Style>
</TextBox></CellContents>
</TablixCell></TablixCells> */
StringBuilder sb = new StringBuilder();
sb.AppendFormat("<TablixCells>");
for (int i = ; i < dt.Columns.Count; i++)
{
sb.AppendFormat("<TablixCell>");
sb.AppendFormat("<CellContents><Textbox Name=\"Textbox{0}\">", i);
sb.AppendFormat("<CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun>");
sb.AppendFormat("<Value>{0}</Value>", dt.Columns[i].ColumnName);
sb.AppendFormat("<Style><FontFamily>宋体</FontFamily></Style></TextRun></TextRuns><Style><TextAlign>Center</TextAlign></Style></Paragraph></Paragraphs>");
sb.AppendFormat("<rd:DefaultName>Textbox{0}</rd:DefaultName>", i);
sb.AppendFormat("<Style><Border><Style>Solid</Style></Border><VerticalAlign>Middle</VerticalAlign><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight></Style>");
sb.AppendFormat("</Textbox></CellContents>");
sb.AppendFormat("</TablixCell>");
}
sb.AppendFormat("</TablixCells>"); var t = sb.ToString();
return sb.ToString(); }
public string get_表阵单元格集合_赋值(DataTable dt)
{
/*
<TablixCells>
<TablixCell> <CellContents><TextBox Name="产品型号">
<CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun>
<Value>=Fields!产品型号.Value</Value>
<Style><FontFamily>宋体</FontFamily></Style></TextRun></TextRuns><Style><TextAlign>Center</TextAlign></Style></Paragraph></Paragraphs>
<rd:DefaultName>产品型号</rd:DefaultName>
<Style><Border><Style>Solid<Style></Border><VerticalAlign>Middle</VerticalAlign><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight></Style>
</TextBox></CellContents>
</TablixCell>
</TablixCells>
*/ StringBuilder sb = new StringBuilder();
sb.AppendFormat("<TablixCells>");
for (int i = ; i < dt.Columns.Count; i++)
{
sb.AppendFormat("<TablixCell>");
sb.AppendFormat("<CellContents><Textbox Name=\"{0}\">", dt.Columns[i].ColumnName);
sb.AppendFormat("<CanGrow>true</CanGrow><KeepTogether>true</KeepTogether><Paragraphs><Paragraph><TextRuns><TextRun>");
sb.AppendFormat("<Value>=Fields!{0}.Value</Value>", dt.Columns[i].ColumnName);
sb.AppendFormat("<Style><FontFamily>宋体</FontFamily></Style></TextRun></TextRuns><Style><TextAlign>Center</TextAlign></Style></Paragraph></Paragraphs>");
sb.AppendFormat("<rd:DefaultName>Textbox{0}</rd:DefaultName>", i);
sb.AppendFormat("<Style><Border><Style>Solid</Style></Border><VerticalAlign>Middle</VerticalAlign><PaddingLeft>2pt</PaddingLeft><PaddingRight>2pt</PaddingRight></Style>");
sb.AppendFormat("</Textbox></CellContents>");
sb.AppendFormat("</TablixCell>");
}
sb.AppendFormat("</TablixCells>"); var t = sb.ToString();
return sb.ToString(); }
public string get_表阵列成员(DataTable dt)
{
/*
<!--表阵 列成员-->
<TablixMembers>
<TablixMember />
</TablixMembers>
*/
StringBuilder sb = new StringBuilder();
sb.AppendFormat("<TablixMembers>");
for (int i = ; i < dt.Columns.Count; i++)
{
sb.AppendFormat("<TablixMember />");
}
sb.AppendFormat("</TablixMembers>"); var t = sb.ToString();
return sb.ToString(); }
//调用
var types = Getdt_columns_attribute(dt);
get_数据集中字段(types);
get_表阵列集合(dt);
get_表阵单元格集合(dt);
get_表阵单元格集合_赋值(dt);
get_表阵列成员(dt);
XML 结构
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"> <!--数据源-->
<DataSources>
<DataSource Name="yderpDataSet"> <!--yderpDataSet为数据集-->
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
</DataSource>
</DataSources>
<!--数据集-->
<DataSets>
<DataSet Name="车间日报表"> <!--表名称-->
<!--字段-->
<Fields>
<Field Name="产品型号"> <!--显示名称-->
<DataField>产品型号</DataField> <!--绑定的数据名称-->
<rd:TypeName>System.String</rd:TypeName> <!--绑定的数据类型-->
</Field>
</Fields>
</DataSet>
</DataSet>
<!--主题-->
<body>
<ReportItems>
<!--表阵-->
<Tablix Name="Tablix1">
<!--表阵主体-->
<TablixBody>
<!--表阵 列集合-->
<TablixColumns>
<TablixColumn>
<Width>1.44804in</Width>
</TablixColumn>
</TablixColumns> <!--表阵行集合-->
<TabLixRows>
<TablixRow>
<Height>0.24664in</Height>
<!--表阵单元格集合-->
<TablixCells>
<TablixCell>
<!--单元格内容-->
<CellContents>
<!--文本框-->
<TextBox Name="Textbox1">
<!--可增长-->
<CanGrow>true</CanGrow>
<!--保持一致-->
<KeepTogether>true</KeepTogether>
<!--段落-->
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>产品型号</Value>
<!--样式-->
<Style>
<FontFamily>宋体</FontFamily>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<!--默认名称-->
<rd:DefaultName>Textbox1</rd:DefaultName>
<Style>
<!--边框:实线-->
<Border>
<Style>Solid</Style>
</Border>
<!--垂直对齐:中间-->
<VerticalAlign>Middle</VerticalAlign>
<!--左边距-->
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
</Style>
</TextBox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow> <TablixRow>
<Height>0.26747in</Height>
<TablixCells>
<TablixCell>
<!--单元格内容-->
<CellContents>
<TextBox Name="产品型号">
<!--可增长-->
<CanGrow>true</CanGrow>
<!--保持一致-->
<KeepTogether>true</KeepTogether>
<!--段落-->
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!产品型号.Value</Value>
<!--样式-->
<Style>
<FontFamily>宋体</FontFamily>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<!--默认名称-->
<rd:DefaultName>产品型号</rd:DefaultName>
<Style>
<!--边框:实线-->
<Border>
<Style>Solid</Style>
</Border>
<!--垂直对齐:中间-->
<VerticalAlign>Middle</VerticalAlign>
<!--左边距-->
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
</Style>
</TextBox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TabLixRows>
</TabliBody>
<!--表阵 列层次结构-->
<TablixColumnHierarchy>
<!--表阵 列成员-->
<TablixMembers>
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<!--表阵行层次结构-->
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<!--固定数据-->
<FixedData>true</FixedData>
<!--保持组-->
<KeepWithGroup>After</KeepWithGroup>
<!--在新的页-->
<RepeatOnNewPage>true</RepeatOnNewPage>
</TablixMember>
<!--表阵成员 -->
<TablixMember>
<Group Name="详细信息" />
<TablixMembers>
<TablixMember />
</TablixMembers>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<!--数据集名称-->
<DataSetName>烧成车间日报表</DataSetName>
<Top>0.07056cm</Top>
<Left>0.5cm</Left>
<Height>1.30584cm</Height>
<Width>19.89838cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>0.59376in</Height>
</body>
<!--报表参数-->
<ReportParameters>
<ReportParameter Name="Title">
<DataType>String</DataType>
<!--允许空值-->
<Nullable>true</Nullable>
<!--允许空白-->
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Line">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="WorkShop">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<Width>8.18603in</Width>
<!--页面-->
<Page>
<!--页头信息-->
<PageHeader>
<Height>1.50812cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Textbox Name="Textbox00">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Title.Value</Value>
<Style>
<FontFamily>宋体</FontFamily>
<FontSize>12pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox00</rd:DefaultName>
<Top>0.05cm</Top>
<Left>0.5cm</Left>
<Height>0.67938cm</Height>
<Width>19.99843cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox01">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>生产线:</Value>
<Style>
<FontFamily>宋体</FontFamily>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!Line.Value</Value>
<Style>
<FontFamily>宋体</FontFamily>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Left</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox01</rd:DefaultName>
<Top>0.76466cm</Top>
<Left>0.5cm</Left>
<Height>0.6cm</Height>
<Width>3.46197cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox02">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!WorkShop.Value</Value>
<Style>
<FontFamily>宋体</FontFamily>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Left</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox02</rd:DefaultName>
<Top>0.76466cm</Top>
<Left>3.96197cm</Left>
<Height>0.6cm</Height>
<Width>16.53646cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageHeader> <!--页脚-->
<PageFooter>
<Height>0.87313cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Textbox Name="Textbox03">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>="第" & Globals!PageNumber & "页 共" & Globals!TotalPages & "页"</Value>
<Style>
<FontFamily>宋体</FontFamily>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox03</rd:DefaultName>
<Top>0.1175cm</Top>
<Left>0.39704cm</Left>
<Height>0.6cm</Height>
<Width>19.99843cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<LeftMargin>0cm</LeftMargin>
<RightMargin>0cm</RightMargin>
<TopMargin>1cm</TopMargin>
<BottomMargin>1cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
</page>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
</Report>
RDLC 传参 报表出现错误 (未解决)的更多相关文章
- java向python ,text文件动态传参或传值问题完美解决
由于业务需要对python文件进行参数传递,通过下面两个java方法完美解决此问题,我的思路是:首先我要先把上次写的参数删除,第二我要新的参数写到python文件中. 第一个方法解决了删除上次传递的参 ...
- url传参中文乱码解决
url传参request.setCharacterEncoding("utf-8");无法解决中文乱码问题 解决方法: 修改tomcat---conf----server.xml文 ...
- vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...
- action之间传参为中文;type='redirect'和 type='redirectAction'主要区别
摘录自:http://blog.csdn.net/lhi705/article/details/7446156 Struts2中action之间传参中文乱码的问题 解决方法一(已经验证,可以): 两个 ...
- vue路由对不同界面进行传参及跳转的总结
最近在做一个公众号的商城项目,主要用的VUE+MUI,其实今天这个点对于有过项目经验的前端工作者来说是最基础的,但也是必须要掌握的,今天小编主要是记录下传参和跳转的一些总结(仅供参考). 首先我们先上 ...
- vue路由传参页面刷新参数丢失问题解决方案
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...
- shell动态向sql传参
一直在想有什么好方法可以实现,用shell动态给sql传参,自己写了一个简单,有什么好方法,欢迎留言补充,下面代码纯手打,可能有疏忽之处,请大佬批评指正指正. 实现方法如下: 1.新建一个文件02.t ...
- RDLC报表BC4000错误
如果RDLC报表报 BC4000错误,那是因为在矩阵外上面添加了文本框的缘故,导致系统不能读到RDLC报表表体,告诉你报表没有定义: 解决办法: 把表头文字放入矩阵中.
- jmeter运行脚本后,请求偶发性的传参错误
问题现象:jmeter写好脚本后,请求偶发性的传参错误 排查过程:1.结合报错返回值,看是不是线程并发引起: 2.排除线程并发引起后,看看是不是取值策略:如果是参数化,看看是不是每次迭代,每次都取唯一 ...
随机推荐
- Double write Buffer的配置
InnoDB和XtraDB使用称为doublewrite缓冲区的特殊功能来提供数据损坏的强大保证.想法是在写入数据文件之前将数据写入主表空间中的顺序日志.如果发生部分页面写入(换句话说,写入损坏),I ...
- APM之原理篇
APM,应用性能监控,有new relic等产品,对APM感兴趣的应该不会不知道它了.主要功能就是统计分析应用的CPU.内存.网络.数据库.UI等性能,并提供错误日志捕获.编码人员需要做的仅仅是使用它 ...
- 第8章:LeetCode--算法:二叉树的创建、遍历、删除、求高度
创建> 需要给定一个root的key,所有小于这个key的放到左边,大于key的放到右边, 比如vector<int> tree = {5,2,7,1,9,3,8},最后的树: 5 ...
- vue项目build 之后,css文件加载图片或者字体文件时404的解决。
ExtractTextWebpackPlugin 提供了一个 options.publicPath 的 api,可以为css单独配置 publicPath . 对于用 vue-cli 生成的项目,di ...
- Java 并发进阶常见面试题总结
声明:本文内容完全来自网络,转自GitHub->JavaGuide(https://github.com/Snailclimb/JavaGuide),致谢 1. synchronize ...
- 又谈F分布
今天看到一篇不错的博文,有感,记录下来,相对来说讲到了本质,也很容易理解.https://www.cnblogs.com/think-and-do/p/6509239.html 首先,老生常谈,还是那 ...
- 【php设计模式】组合模式
定义: 是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式,它创建了对象组的树形结构. 应用场景: 部分.整体场景,如 ...
- 基于SAML2.0的SAP云产品Identity Authentication过程介绍
SAP官网的架构图 https://cloudplatform.sap.com/scenarios/usecases/authentication.html 上图介绍了用户访问SAP云平台时经历的Au ...
- Oracle问题总结
1.账号锁定了 2.忘记密码 3.Oracle create session权利 4.oracle中单引号和双引号的作用 5.不支持 insert into tableName values (... ...
- dedecms:限制栏目列表生成的最大页数防止被采集
dedecms:限制栏目列表生成的最大页数防止被采集 如果您的网站数据量较大,列表很多的话甚至达到上千页,生成列表时就特别耗费时间,这个缺点可以被优化掉:网站好不容易建起来,担心网站内容被采集走,如果 ...