按列排序时发生SortExpression表达式

问题描述 投票:0回答:1

在RDLC报告中,我在对字段进行排序时收到以下错误。

The SortExpression expression for the text box ‘textbox1’ contains an error: Input string was not in a correct format.

这是间歇性发生的,而且我无法弄清楚发生此错误的具体原因是什么。谁能告诉我,发生此错误的原因是什么?

我的RDLC XML的一部分如下,

<Textbox Name="textbox1">
    <CanGrow>true</CanGrow>
    <UserSort>
        <SortExpression>=Trim(Fields!Account.Value)</SortExpression>
        <SortExpressionScope>table1_Group1</SortExpressionScope>
        <SortTarget>dsReportData</SortTarget>
    </UserSort>
    <KeepTogether>true</KeepTogether>
    <Paragraphs>
        <Paragraph>
            <TextRuns>
                <TextRun>
                    <Value>=Parameters!AccountNumberDisplayText.Value</Value>
                    <MarkupType>HTML</MarkupType>
                    <Style>
                        <FontFamily>Verdana</FontFamily>
                        <FontSize>9pt</FontSize>
                        <FontWeight>Bold</FontWeight>
                        <Color>#000000</Color>
                    </Style>
                </TextRun>
            </TextRuns>
            <Style />
        </Paragraph>
    </Paragraphs>
    <rd:DefaultName>textbox1</rd:DefaultName>
    <ZIndex>30</ZIndex>
    <Style>
        <Border>
            <Color>White</Color>
            <Style>Solid</Style>
        </Border>
        <TopBorder>
            <Color>White</Color>
        </TopBorder>
        <BottomBorder>
            <Color>White</Color>
        </BottomBorder>
        <LeftBorder>
            <Color>#eeeeeb</Color>
        </LeftBorder>
        <RightBorder>
            <Color>#eeeeeb</Color>
        </RightBorder>
        <BackgroundColor>#dcdcdc</BackgroundColor>
        <PaddingLeft>2pt</PaddingLeft>
        <PaddingRight>2pt</PaddingRight>
        <PaddingTop>2pt</PaddingTop>
        <PaddingBottom>2pt</PaddingBottom>
    </Style>
</Textbox>
c# xml sorting rdlc sortexpression
1个回答
0
投票

[我认为AccountNumberDisplayText偶尔会引发一个解析异常,因为看起来您正在尝试将字符串转换为数值,并且可以正常工作,直到出现字符阻塞为止。

我认为这里的问题不在代码本身,而在输入中

您可以尝试使用Val函数来净化更多输入内容

可能的代码编辑为:

    <Textbox Name="textbox1">
    <CanGrow>true</CanGrow>
    <UserSort>
        <SortExpression>=Trim(Val(Fields!Account.Value))</SortExpression>
        <SortExpressionScope>table1_Group1</SortExpressionScope>
        <SortTarget>dsReportData</SortTarget>
    </UserSort>
    <KeepTogether>true</KeepTogether>
    <Paragraphs>
        <Paragraph>
            <TextRuns>
                <TextRun>
                    <Value>=Val(Parameters!AccountNumberDisplayText.Value)</Value>
                    <MarkupType>HTML</MarkupType>
                    <Style>
                        <FontFamily>Verdana</FontFamily>
                        <FontSize>9pt</FontSize>
                        <FontWeight>Bold</FontWeight>
                        <Color>#000000</Color>
                    </Style>
                </TextRun>
            </TextRuns>
            <Style />
        </Paragraph>
    </Paragraphs>
    <rd:DefaultName>textbox1</rd:DefaultName>
    <ZIndex>30</ZIndex>
    <Style>
        <Border>
            <Color>White</Color>
            <Style>Solid</Style>
        </Border>
        <TopBorder>
            <Color>White</Color>
        </TopBorder>
        <BottomBorder>
            <Color>White</Color>
        </BottomBorder>
        <LeftBorder>
            <Color>#eeeeeb</Color>
        </LeftBorder>
        <RightBorder>
            <Color>#eeeeeb</Color>
        </RightBorder>
        <BackgroundColor>#dcdcdc</BackgroundColor>
        <PaddingLeft>2pt</PaddingLeft>
        <PaddingRight>2pt</PaddingRight>
        <PaddingTop>2pt</PaddingTop>
        <PaddingBottom>2pt</PaddingBottom>
    </Style>
</Textbox>
© www.soinside.com 2019 - 2024. All rights reserved.