在SSRS中如何将长字符串的值拆分为两个单独的文本框

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

我有这样的表情 =First(Fields!Moneyword.Value, "官方收据")

例如,金钱词的值为“五十二万五千四百八十五” 我想分开 “五十二万五千” 和 《四百八十五》 到两个单独的文本框

我尝试这样的事情 =Split(First(Fields!Moneyword.Value, "官方收据"))(0).ToString() 但它只返回第一个单词之后的单词

reporting-services
1个回答
0
投票

您需要做的第一件事是确定可以应用于始终在正确点处中断的逻辑。这是相当棘手的,因为你不知道会出现什么单位(数百、数千等)。如果您有原始数值,那么使用它来完成此操作可能会更容易。

无论如何,根据您的单个示例,我使用了最后一个“一百”单词的位置,然后查找前面的单词并将其用作拆分点。正如我所说,我认为这在某些情况下不起作用,例如如果号码是 123050。

它可能会为您指明正确的方向,以获得更完整的方法。您可能还想考虑一些自定义代码。

所以,对于左边的部分,你可以使用这个。

=LEFT(
    Fields!Moneyword.Value, 
    InStrRev(Fields!Moneyword.Value, 
             " ", 
             InStrRev(Fields!Moneyword.Value, " hundred") -1
             )
    )

从中间开始向外,我们寻找字符串

" hundred"
的最后一个实例(注意前面的空格)。然后,从字符串中的这一点开始,我们寻找第一个空格。这个空间就是我们要分割字符串的点。

所以不,这只是取左边 n 个字符的情况,其中 n 是我们上面得到的数字。

对于右边的部分,我们只取从分割点开始的字符串部分,如下所示。

=Mid(
    Fields!Moneyword.Value, 
    InStrRev(Fields!Moneyword.Value, " ", InStrRev(Fields!Moneyword.Value, " hundred")-1)
    )
© www.soinside.com 2019 - 2024. All rights reserved.