【问题标题】: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@@@@Table2CharString 列中的任何其他值仅显示为占位符,也可以使用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】:

      这里的选项是从表中获取字符串值并使用水晶报表的字符串函数来处理字符串。

      我不确定这将如何工作,但请尝试一下。

      1. do you work on date XXXX 和 date @@@@ 变成一个字符串并用空格分割,然后提取 XXXX@@@@ strong> 现在将所需的值 5-5-201310-5-2013 放入变量中,现在加入字符串,如

        “您是否处理数据“+5-5-2013+”和日期“+10-5-2013”​​

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-01
        • 1970-01-01
        相关资源
        最近更新 更多