ANET 发表于 2024-2-22 10:17:03

V17.2 GrapeCity.ActiveReports.SectionReportModel.TextBox excel导出值问题

问题描述:




Me.txtAmount.Border.BottomColor = System.Drawing.Color.Black
Me.txtAmount.Border.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.None
Me.txtAmount.Border.LeftColor = System.Drawing.Color.Black
Me.txtAmount.Border.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.None
Me.txtAmount.Border.RightColor = System.Drawing.Color.Black
Me.txtAmount.Border.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.None
Me.txtAmount.Border.TopColor = System.Drawing.Color.Black
Me.txtAmount.Border.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.None
Me.txtAmount.CanShrink = True
Me.txtAmount.DataField = "AMOUNT"' 假设该绑定字段的值是 10.00 *****************
Me.txtAmount.Height = 0.1875!
Me.txtAmount.Left = 8.3125!
Me.txtAmount.Name = "txtSubAmount2"
Me.txtAmount.OutputFormat = "$#,##0.00"' 指定了输出格式 *********************
Me.txtAmount.Style = "text-align: right; font-size: 8.5pt; font-family: 'Arial'; "
Me.txtAmount.Text = Nothing
Me.txtAmount.Top = 0.0625!
Me.txtAmount.Width = 0.9375!

Private mdblSubTotal As Decimal = 20.00
txtAmount.Text = Format(mdblSubTotal, "currency")



txtAmount 的值导出PDF后正常显示为预期的 $20.00, 但是导出excel后显示为绑定的 AMOUN字段的值 ¥10.00
txtAmount.Text = Format(mdblSubTotal, "currency") 在V17中失去作用(针对 excel)

该问题目前通过把 txtAmount.Text = Format(mdblSubTotal, "currency") 改成 txtAmount.Value=mdblSubTotal 解决了。

但是目前我们遗留代码太多,希望升级后不要改变原有代码的行为,麻烦看看有其它不用改代码可以修复的方法没,多谢。

注:txtAmount.Text = Format(mdblSubTotal, "currency")在 V5 版本中工作正常。

Eden.Sun 发表于 2024-2-22 10:17:04

本帖最后由 Eden.Sun 于 2024-4-17 15:19 编辑


咱们这部分的代码和报表能不能提供一下,我们开发同事可以进一步判断。
咱们的版本跨度太大,逻辑也是有变化的, 只有这一段设置的话,无法确定具体的原因。
目前判断可能是新版本中,在导出excel的时候是带着格式和数据一起导出的,在设置了text属性之后,原先的DataField和OutputFormat也生效了,并且覆盖了text的效果。

Eden.Sun 发表于 2024-2-22 13:50:21

问题描述:
AR V5版本的属性在AR17版本的支持。

问题支持:
您好,V5到V17.2版本跨度太大了。这之间的属性变化,可能虚要根据实际情况去进行变动了。
您可以看看我们的api文档:
https://developer.mescius.com/activereportsnet/docs/latest/online/overview.html



ANET 发表于 2024-3-18 20:23:50

发现了类似的其它问题:
Me.txtTrialDate.DataField = "MeetDate"' e.g: 2023-10-12 10:00:00
Me.txtTrialDate.OutputFormat = "MMM,d yyyy"
'下面给Text赋值,这个值是另外一种格式化形式,和OutputFormat 不一致,在PDF/HTML 能以Text值为优先展示,但是导出excel时,给Text赋的值没起作用,Text没有被优先使用
txtTrialDate.Text = 'le' + txtTrialDate.Text .ToLower()

这应该是一个Bug, 当显式给Text赋值后,Text应该是优先级最高的,这在导出PDF/HTML时符合预期,但是excel没有正常工作,希望在新版本能修复此问题。
谢谢。

ANET 发表于 2024-3-18 20:25:37

就是说绑定有DataField ,同时指定了 OutputFormat后,又给Text赋值了不同的格式化字符串,或者赋值了任意的其它字符串,导出PDF/HTML能显示该字符串,但是excel不行。

Eden.Sun 发表于 2024-3-19 09:30:56

麻烦您提供下您的代码片段和您的pdf和excel的到处效果,我们反馈一下。

ANET 发表于 2024-4-17 10:23:13

抱歉,回复晚了,就是最上面贴的代码,简单说就是TextBox绑定了 DataField并且指定OutputFormat之后, 我再去修改 Text的值,在导出PDF/HTML后,修改后的Text值能正常显示,但是 excel不行,还是显示的绑定的DataField上的字段的值。
页: [1]
查看完整版本: V17.2 GrapeCity.ActiveReports.SectionReportModel.TextBox excel导出值问题