在水晶报表中用数字和字母拆分字符串

时间:2017-05-16 07:41:19

标签: crystal-reports

我在SQL Server数据库上有一个字段,其中包含数字和字母,如下所示:

姓氏姓氏1姓氏3333 1T NP

该字段是nchar数据类型

我需要在字段中提取名称surname1和surname2,并在报告的其他字段中使用3333。

我使用了这段代码

Whileprintingrecords;
stringvar array Names := split({Table.Field}," ");

If ubound(Names) >=3 then
Names [1] + " " +Names [2] +" " + Names [3];

但仅适用于名称和姓氏,例如“name surname1 surname2”

问题是该名称可以是“Jose Luis”,姓氏1或姓氏2“De La Bella”

找到数字时如何分割字段?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果数据字段是一致的&你可以保证最后三个指数是保留的...... 只是连接你知道将成为name,surname1和&的一部分的索引。 surname2(例如,直到数字的索引)

WhilePrintingRecords;

Local StringVar Array Names := SPLIT({Table.Field}, " ");
Local StringVar Name := "";

Local NumberVar index := 0;
Local NumberVar limit := UBOUND(Names)-3;

For index := 1 To limit Do(
    Name := Name & Names[index] & IIF(index = limit, "", " ");
);

Name