问题描述
我是Crystal Reports的新手,正在尝试维护其他人的代码-请多多包涵。我有一个水晶报表,该报表与带有2个相关数据表的数据集相关。
我正在按MaxDepth : 6
MaxDepthDirs : {/Users/jdoe/Documents/Ram Dass Audio Collection/The Path of Service,/Users/jdoe/Documents/Ram Dass Audio Collection/Conscious Aging,/Users/jdoe/Documents/Ram Dass Audio Collection/Cultivating the Heart of Compassion,/Users/jdoe/Documents/Cheatsheets/YAML Ain't
Markup Language_files}
分组。在我的组标题中,显示来自JurorProfile数据表的信息。
在报告详细信息中,我有RowNumber,JurorProfile.JurorPK
和JurorQuestionAnswers.Question
。
在我的C#代码中,我像这样填充数据:
JurorQuestionAnswers.Answer
但是,当我运行报告时,会显示“组标题”,并且我会为每个问题打印一个记录号,但不会显示“问答”。
Crystal Reports似乎没有将第二次查询的数据结果映射到DataTable。
更奇怪的是,
public void SetDataSource(AdoProvider provider,int sessionPK,int jurorPK)
{
string commandText;
AdoQuery query;
commandText = $@"select j.* from Juror j
where j.JurorPK in (select JurorFK from SessionJurorLink where SessionFK = @sessionId)
{(jurorPK > 0 ? " and jurorPK = @jurorId" ? "")}
";
query = provider.CreateQuery(commandText,null,provider.CreateParameter("sessionId",DbType.Int32),provider.CreateParameter("jurorId",DbType.Int32)
);
AdoReader jReader = query.ExecuteReader(sessionPK,jurorPK);
report.Database.Tables["JurorProfile"]
.SetDataSource((IDataReader)jReader.DataReader);
commandText = $@"select ... from JurorAnswers ...
where sessionFK = @sessionId
{(jurorPK > 0 ? " and jurorFK = @jurorId " : "")}
order by JurorFK,Rank,ParentFK,QuestionPK
";
query = provider.CreateQuery(commandText,DbType.Int32)
);
AdoReader qaReader = query.ExecuteReader(sessionPK,jurorPK);
report.Database.Tables["JurorQuestionAnswers"]
.SetDataSource((IDataReader)qaReader.DataReader);
}
DataTable当前具有一个冗余的Lastname和Firstname字段。如果我将这些字段包括在详细信息区域(JurorQuestionAnswers
,JurorQuestionAnswers.Lastname
)中,它们实际上就会显示出来-数据已正确映射。
我在做什么错了?
更新-链接标签的图像
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)