Crystal reports Crystal报告中未显示的字段

Crystal reports Crystal报告中未显示的字段,crystal-reports,sap,Crystal Reports,Sap,您好,我有下面的动态存储过程,它在最后返回一个正常的结果集,但是crystal reports没有返回任何字段,任何人都可能知道哪里出了问题 当我在studio management中运行该程序时,它工作正常。这是一份使用sap crystal版本的报告,以防产生影响 我通常会将结果输出到excel,它运行正常,但对于crystal,它不允许我在field explorer中选择任何字段 ALTER PROCEDURE [dbo].[ReportByDates] @DateFro

您好,我有下面的动态存储过程,它在最后返回一个正常的结果集,但是crystal reports没有返回任何字段,任何人都可能知道哪里出了问题

当我在studio management中运行该程序时,它工作正常。这是一份使用sap crystal版本的报告,以防产生影响

我通常会将结果输出到excel,它运行正常,但对于crystal,它不允许我在field explorer中选择任何字段

ALTER PROCEDURE [dbo].[ReportByDates]

       @DateFrom date NULL,
       @DateTo date NULL
AS            

SET NOCOUNT ON;

DECLARE @DynamicColumnsDivision AS VARCHAR(max)  
DECLARE @DynamicColumnsDivision2 AS VARCHAR(max)  
DECLARE @DynamicColumnsDivisionTotal AS VARCHAR(max)  
SELECT @DynamicColumnsDivision = COALESCE(@DynamicColumnsDivision + ', ', '')  
+ 'ISNULL(' +Quotename(fieldname) + ',0) as ' + Quotename(fieldname) 
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'Division'
) AS FieldList  





SELECT @DynamicColumnsDivision2 = COALESCE(@DynamicColumnsDivision2 + ', ', '')  
+ Quotename(fieldname)
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'Division'

) AS FieldList 


SELECT @DynamicColumnsDivisionTotal = COALESCE(@DynamicColumnsDivisionTotal + '+', '')  
+ 'ISNULL(' +Quotename(fieldname) + ',0)' 
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'Division'
) AS FieldList  


DECLARE @DynamicColumnsGQO AS VARCHAR(max)  
DECLARE @DynamicColumnsGQO2 AS VARCHAR(max) 
DECLARE @DynamicColumnsGQOTotal as VARCHAR(max)

SELECT @DynamicColumnsGQO = COALESCE(@DynamicColumnsGQO + ', ', '')  
+ 'ISNULL(' +Quotename(fieldname) + ',0) as ' + Quotename(fieldname) 
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'GQO'
) AS FieldList  





SELECT @DynamicColumnsGQO2 = COALESCE(@DynamicColumnsGQO2 + ', ', '')  
+ Quotename(fieldname)
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'GQO'

) AS FieldList 

SELECT @DynamicColumnsGQOTotal = COALESCE(@DynamicColumnsGQOTotal + '+', '')  
+ 'ISNULL(' +Quotename(fieldname) + ',0)' 
FROM (

SELECT 
DISTINCT
PrcCode + ' - ' + cc.PrcName as fieldname

FROM OPRC cc 
WHERE Active = 'Y' AND CCTypeCode = 'GQO'
) AS FieldList  

DECLARE @Query NVARCHAR(MAX)

SET @Query = 
'SELECT Account, AcctName, ' + @DynamicColumnsDivision + ', ' + @DynamicColumnsDivisionTotal + ' as DivisionTotal , ' + @DynamicColumnsGQO + ', ' + @DynamicColumnsGQOTotal + ' as GQOToatl
FROM
(
SELECT 
line.Account,
nom.AcctName,
line.ProfitCode + '' - '' + cc.PrcName as fieldname,
CASE WHEN line.Debit <> 0 THEN line.Debit *-1 WHEN line.Credit <> 0 THEN line.Credit  ELSE 0 END as DispValue
FROM OJDT head
LEFT JOIN  JDT1 line on head.TransId = line.TransId
LEFT JOIN OACT nom on line.Account = nom.AcctCode
LEFT JOIN OPRC cc ON line.ProfitCode = cc.PrcCode
WHERE head.RefDate BETWEEN ''' + CONVERT(VARCHAR(10),@DateFrom, 101) + ''' AND ''' + CONVERT(VARCHAR(10),@DateTo, 101) + '''
) AS SourceTable PIVOT
(
SUM(DispValue)
FOR fieldname IN (' + @DynamicColumnsDivision2 + ', '+@DynamicColumnsGQO2 + ')
) AS PivotTable;

'
--SELECT @Query
execute(@Query)
编辑2
奇怪的是,我复制了整个过程,并声明了datefrom和dateto元素,效果很好。那么,为什么从存储过程调用它时,它工作正常。

如果存储过程不返回任何数据,Crystal Reports将无法显示列。确保它返回数据


无论如何,您始终可以尝试删除存储过程,然后在数据库助手中再次添加它。Crystal Reports在使用存储过程时更新字段不是很好,或者至少在旧版本中不是这样。

Ander它返回数据很好,我说过它在管理研究中有效。当您首次在Crystal Reports中设计报告时,它返回数据。我在SAP Crystal Reports中试用过,效果很好。尝试删除存储过程并再次添加。最奇怪的是,我们转储了存储过程,没有参数和delcaired变量,但是它返回了字段,除非输入了任何参数,否则它不会返回数据。