Topvision 发表于 2021-5-10 14:09:12

取值可以判断取某个字符前面的所有数据,或者后面的,或者区间的截取方法吗?

本帖最后由 Crystal.Li 于 2021-5-11 16:21 编辑

1.某个字段,需要取某个+号和-的前面的内容可以吗?或者什么之间,取位数,截取方法2,比如20210510我只要后六位,210510,但是打印的数据源取出来是20210510,这个有办法解决吗?


Crystal.Li 发表于 2021-5-10 15:17:17

本帖最后由 Crystal.Li 于 2021-5-10 15:18 编辑

您好,这个可以使用substring函数结合Len函数实现:

1、Len函数取字符串的长度;
2、Substring函数截取后六位,可传入两个参数,区间为左闭右开,比如"123456".Substring(0,2) 返回 “12”

Topvision 发表于 2021-5-10 15:49:26

Crystal.Li 发表于 2021-5-10 15:17
您好,这个可以使用substring函数结合Len函数实现:

1、Len函数取字符串的长度;


那1根据字符来判断截取,这个有办法吗?取+/-前面/后面所有这个问题

Crystal.Li 发表于 2021-5-10 16:14:43


您好,可以结合indexOf函数实现此需求哦~如上图所示:P

Topvision 发表于 2021-5-10 16:45:39

Crystal.Li 发表于 2021-5-10 16:14
您好,可以结合indexOf函数实现此需求哦~如上图所示

上面的方法我测试都ok了
客户要求是这样:如果不含+号和-号,则显示本身。如果含+号,则取+前面内容,如果包含-,取-前面内容
这个需要怎么来写?

Crystal.Li 发表于 2021-5-10 16:50:38

这个您需要使用switch函数哦~

switch函数结合indexOf函数,如果不存在+ -符号,indexoOf函数会返回-1

Topvision 发表于 2021-5-10 17:06:16

Crystal.Li 发表于 2021-5-10 16:50
这个您需要使用switch函数哦~

switch函数结合indexOf函数,如果不存在+ -符号,indexoOf函数会返回-1

First(Fields!出库单号.Value, "出库主表").indexOf("-")="-"
那这个判断里面含有"-",这样写可以吗?

Crystal.Li 发表于 2021-5-10 17:14:19

Topvision 发表于 2021-5-10 17:06
First(Fields!出库单号.Value, "出库主表").indexOf("-")="-"
那这个判断里面含有"-",这样写可以吗?

First(Fields!出库单号.Value, "出库主表").indexOf("-")
----------------------------------------------------------
indexOf函数返回的是该字符的index,比如 "12-3".indexOf("-")返回数字2,如果字符串内不存在"-",返回-1。

Topvision 发表于 2021-5-11 09:20:26

Crystal.Li 发表于 2021-5-10 17:14
First(Fields!出库单号.Value, "出库主表").indexOf("-")
------------------------------------------- ...

=Switch(( First(Fields!出库单号.Value, "出库主表").indexOf("-"))="2",First(Fields!出库单号.Value, "出库主表").Substring(0,First(Fields!出库单号.Value, "出库主表").indexOf("-")))

这一条里面可以出来值,但是switch多个条件就不可以了,如下:
=Switch((First(Fields!出库单号.Value, "出库主表").indexOf("-"))="2",(First(Fields!出库单号.Value, "出库主表").Substring(0,First(Fields!出库单号.Value, "出库主表").indexOf("-"))),
        (First(Fields!出库单号.Value, "出库主表").indexOf("+"))="2",(First(Fields!出库单号.Value, "出库主表").Substring(0,First(Fields!出库单号.Value, "出库主表").indexOf("+"))),
        (First(Fields!出库单号.Value, "出库主表").indexOf("-"))="-1",First(Fields!出库单号.Value, "出库主表"),
       (First(Fields!出库单号.Value, "出库主表").indexOf("+"))="-1",First(Fields!出库单号.Value, "出库主表"))
加了后面带""变成直接输出源码了,不带可以出来值,这个我写的哪个方面有问题吗?

Crystal.Li 发表于 2021-5-11 10:08:42

您现在的需求是这个 ”如果不含+号和-号,则显示本身。如果含+号,则取+前面内容,如果包含-,取-前面内容“ 对吧? 如果是这个的话,您稍等下,我给您写个示例
页: [1] 2
查看完整版本: 取值可以判断取某个字符前面的所有数据,或者后面的,或者区间的截取方法吗?