导出为PDF时,货币将消失

导出为PDF时,货币将消失,pdf,reporting-services,format,report,currency,Pdf,Reporting Services,Format,Report,Currency,当我将报表导出为pdf时,货币消失 代码如下: <TextRun> <Value>=Fields!dTransactionAmount.Value</Value> <Style>

当我将报表导出为pdf时,货币消失

代码如下:

                                <TextRun>
                                  <Value>=Fields!dTransactionAmount.Value</Value>
                                  <Style>
                                    <FontFamily>Tahoma</FontFamily>
                                    <FontSize>9pt</FontSize>
                                    <Format>=Code.getChargeCurrency()</Format>
                                  </Style>
                                </TextRun>
                              </TextRuns> 

Public Shared Function getChargeCurrency() As string
    if NOT chargeNum = invoiceNumber then
        currency ="'$'#,0.00;('$'#,0.00)"
    else 
        currency="#,0.00;(#,0.00)"
        
    end if
    
    chargeNum = invoiceNumber
    Return currency
    End Function ``` 

=字段!DTTransactionAmount.Value
塔荷马
9磅
=Code.getChargeCurrency()
公共共享函数getChargeCurrency()作为字符串
如果不是chargeNum=invoiceNumber,则
currency=“$”,0.00;(“$”,0.00)
其他的
currency=“#,0.00;(#,0.00)”
如果结束
chargeNum=发票编号
返回货币
结束函数“`”

没有答案,但我猜

如果您通过url直接呈现到PDF,那么它可以工作吗?使用如下url测试它

http://myReportServer/ReportServer?/myReportName&rs:Format=PDF  
如果这样做有效,那么我怀疑在渲染到屏幕时该变量已被设置,因此在渲染到PDF时chargenum已=invoicenumber

我对您的情况了解不够,无法知道最佳解决方案是什么,但您可以尝试将
Globals.RenderFormat
值存储在变量中,并在检查其他两个变量是否已更改时检查该值是否未更改

类似于

if chargeNum <> invoiceNumber AND lastRenderFormat <> currentRenderFormat then
    currency ="'$'#,0.00;('$'#,0.00)"
else 
    currency="#,0.00;(#,0.00)"
    
end if

chargeNum = invoiceNumber
lastRenderFormat = currentRenderFormat
如果chargeNum invoiceNumber和lastRenderFormat currentRenderFormat,则
currency=“$”,0.00;(“$”,0.00)
其他的
currency=“#,0.00;(#,0.00)”
如果结束
chargeNum=发票编号
lastRenderFormat=currentRenderFormat

Hi,我对SSRS报告非常陌生。这是否意味着,当我导出为PDF时,它会重新加载/运行报告?这有意义吗?我想它只是翻译成PDF。没错。它使用缓存的数据,但会再次呈现所有数据。在屏幕上查看时,可以将其视为“呈现为HTML”。如果需要另一种格式,它必须使用不同的渲染器并重新启动。如果您是新手,我可以假设您从其他开发人员那里继承了此报告吗?是和否,我正在重新开发它,但这部分代码已经是我的。我现在要睡觉了,现在是凌晨1点,但我想知道最初是什么设置chargenum变量的。似乎您可以使用format属性中的一个简单表达式来实现这一点,但我不确定您的数据集中有哪些数据,或者变量是如何设置的,等等。谢谢!我刚从一开始就将chargenum设置为0。它就像一个柜台