我正在创建一个commonreport但是我用逗号而不是点来获取十进制值。我尝试更改文化值,如下所示,并在我的pdf中使用相同的逗号
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
这是我的代码:
ReportGenerator gen = new ReportGenerator(tbl, dt);
ReportDataSource ds = new ReportDataSource(tbl, dt);
LocalReport report=new LocalReport();
Tuple<System.IO.Stream, float> res = gen.GeneraReport(compName, prm, abbr, font);
report.LoadReportDefinition(res.Item1);
Byte[] mybytes = report.Render("PDF"); //for exporting to PDF
using (FileStream fs = File.Create(fn))
{
fs.Write(mybytes, 0, mybytes.Length);
}
Response.Clear();
Response.Buffer = false;
Response.AddHeader("Accept-Ranges", "bytes");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Connection", "Keep-Alive");
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Type", "Application/x-pdf");
Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName + ".pdf");
Response.WriteFile(fn);
Response.End();
我希望它为
ColumnName
1000.0
pdf中的实际输出是
ColumnName
1000,0
提前致谢
答案 0 :(得分:0)
我通过更改
来改变了报告的文化 LoadReportDefinition
属性并且有效。 现在我在PDF中获取小数而不是逗号 我不得不在&#34;字符串内容&#34;处设置断点。并阅读其内容以了解报告使用的文化
Tuple<System.IO.Stream, float> res = gen.GeneraReport(compName, prm, abbr, font);
string content = new StreamReader(res.Item1, Encoding.UTF8).ReadToEnd();
content = content.Replace("<Language>it-IT</Language>", "<Language>en-IN</Language>");
//report.LoadReportDefinition(res.Item1);
report.LoadReportDefinition(new MemoryStream(Encoding.UTF8.GetBytes(content)));
感谢所有帮助过我的人 问候