【问题标题】:crystal report replace function水晶报表替换功能
【发布时间】:2013-05-20 22:53:39
【问题描述】:
我有两张桌子:
Table 1:
Id stringval
-- ---------
1 do you work on date XXXX and date @@@@
Table 2:
Id CharString ValueString
-- ---------- -----------
1 XXXX 5-5-2013
2 @@@@ 10-5-2013
我想返回以下字符串值:
你在 2013 年 5 月 5 日和 2013 年 10 月 5 日工作吗
这可以使用 Crystal Reports 实现吗?
或者,可以使用Sql Server来实现吗?
【问题讨论】:
标签:
crystal-reports
sql-server-2008-r2
report
crystal-reports-2008
【解决方案1】:
假设XXXX、@@@@ 或Table2 的CharString 列中的任何其他值仅显示为占位符,也可以使用sql server 实现您的目标。像这样的查询会做到这一点:
DECLARE @CharString VARCHAR(100)
DECLARE @ValueString VARCHAR(100)
DECLARE @SearchString VARCHAR(100)
DECLARE @ResultString VARCHAR(100)
SELECT @SearchString = stringval FROM Table1
SELECT @ResultString = stringval FROM Table1
DECLARE c CURSOR FAST_FORWARD FOR
SELECT CharString, ValueString
FROM Table2
OPEN c
FETCH NEXT FROM c INTO @CharString, @ValueString
WHILE @@FETCH_STATUS = 0
BEGIN
IF PATINDEX('%' + @CharString + '%', @SearchString) <> 0
SET @ResultString = REPLACE(@ResultString, @CharString, @ValueString)
FETCH NEXT FROM c INTO @CharString, @ValueString
END
CLOSE c
DEALLOCATE c
SELECT @ResultString
【解决方案2】:
这里的选项是从表中获取字符串值并使用水晶报表的字符串函数来处理字符串。
我不确定这将如何工作,但请尝试一下。
-
将do you work on date XXXX 和 date @@@@ 变成一个字符串并用空格分割,然后提取 XXXX 和 @@@@ strong> 现在将所需的值 5-5-2013 和 10-5-2013 放入变量中,现在加入字符串,如
“您是否处理数据“+5-5-2013+”和日期“+10-5-2013”