水晶报告替换功能

时间:2013-05-17 07:25:55

标签: crystal-reports sql-server-2008-r2 report crystal-reports-2008

我有两张桌子:

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

我想返回以下字符串值: 您的工作日期为5-5-2013和日期10-5-2013

可以使用Crystal Reports实现吗?

或者,可以使用Sql Server实现吗?

2 个答案:

答案 0 :(得分:0)

这里的选项是从表中获取字符串值,并使用水晶报告的字符串函数制作字符串。

我不确定这是如何运作的但是试一试。

  1. 您的日期XXXX和日期@@@@ 工作到一个字符串中并按空格分割,然后点击 XXXX @@@ @ 现在将所需的值 5-5-2013 10-5-2013 输入到varaibles现在加入字符串

    “你做数据工作”+ 5-5-2013 +“和日期”+ 10-5-2013

答案 1 :(得分:0)

假设XXXX@@@@CharString Table2列中的任何其他值只显示为占位符,也可以使用sql实现目标服务器。像这样的查询会这样做:

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