lc3w
发表于 2018-12-17 18:31:18
本帖最后由 lc3w 于 2018-12-18 11:03 编辑
KearneyKang 发表于 2018-12-17 16:14
你适当修改子报表的那个高度。纸张不用修改就可以解决你的问题了。
你刚才发的图,第一页最后这个换页位置,血糖应该有一个结果又打印不出来了,每个项目应该和界面上那个查询对比一下数据对不对,我反馈的这个问题就是主从报表数据总是错乱的问题。
:'(
lc3w
发表于 2018-12-18 11:01:30
我觉得这是一个很简单的主从报表啊,怎么会这么复杂,这么长时间都找不出原因所在?
KearneyKang
发表于 2018-12-18 11:53:50
经过多次验证发现,这是一个bug已经提交给研发的同事,有结果会第一时间反馈给你。
bug号:268431
lc3w
发表于 2018-12-18 13:29:17
KearneyKang 发表于 2018-12-18 11:53
经过多次验证发现,这是一个bug已经提交给研发的同事,有结果会第一时间反馈给你。
bug号:268431
;P原来是一个BUG,被我发现的这个BUG是否有奖。。。。。开玩笑的,这个对我而言是个很急的事情,应如何解决
KearneyKang
发表于 2018-12-18 16:03:05
有奖励的,奖励500金币。具体等研发那边反馈。
lc3w
发表于 2018-12-19 13:33:58
那这个贴子我继续等着
KearneyKang
发表于 2018-12-19 18:10:27
本帖最后由 KearneyKang 于 2018-12-20 16:53 编辑
您好,问题已经解决了,这主要是由于你使用FetchData事件来设置控件的值。它是用文档-ReportEvents编写的。请尝试处理Detail_Format事件,其中为子报表控制分配报告,如下实现主要代码:private void LabItems_Format(object sender, System.EventArgs e)
{
LabItemsResults rptLabResults = new LabItemsResults(dt);
subItemIndexResult.Report = rptLabResults;
}<blockquote> private void LabItems_Format(object sender, System.EventArgs e)在报表设计里添加这段代码触发 LabItems_Format这个事件
this.detail.Format += new System.EventHandler(this.LabItems_Format);
部分代码:
public partial class LabItems : GrapeCity.ActiveReports.SectionReport
{
DataSet _dsResult;
DataTable _dtCheckItems = null;
private int iRow = 0;
DataTable dt = new DataTable();
public LabItems(DataSet dsResult)
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
_dsResult = dsResult;
_dtCheckItems = _dsResult.Tables["CheckItemsByLaboratory"];
}
private void LabItems_Format(object sender, System.EventArgs e)
{
LabItemsResults rptLabResults = new LabItemsResults(dt);
subItemIndexResult.Report = rptLabResults;
}
private void LabItems_FetchData(object sender, FetchEventArgs eArgs)
{
if (iRow >= _dtCheckItems.Rows.Count)
{
return;
}
else
{
eArgs.EOF = false;
}
CheckItemsDTO checkItems = CheckItemsBLL.GetModel(_dtCheckItems.Rows);
#region 显示项目检查信息
CheckItemsName.Text = checkItems.CheckItemName;//项目名称
//如果检验者ID不为空则说明不是外送检验项目
tbOperatorUser.Text = checkItems.OperatorUserName;//检验者
tbAssessorUser.Text = checkItems.AssessorUserName;//审核者
tbCheckEndDate.Text = Convert.ToDateTime(checkItems.CheckEndDate).ToShortDateString().ToString().Replace("/", "-");//检查时间
#endregion 显示项目检查信息
#region 显示项目指标结果
dt = pubBLL.GetDataTableBy(ref _dsResult, "CheckItemIndexResult_" + checkItems.ID);
if (dt.Rows.Count <= 0)
{
throw new Exception("【" + checkItems.CheckItemName + "】的结果指标记录数量为0");
}
Tools.WriterLog("【" + checkItems.CheckItemName + "】以下" + dt.Rows.Count.ToString() + "条结果:");
//LabItemsResults rptLabResults = new LabItemsResults(dt);
//subItemIndexResult.Report = rptLabResults;
#endregion 显示项目指标结果
iRow++;
}
}
lc3w
发表于 2018-12-26 12:00:48
测试可以,谢谢!!
KearneyKang
发表于 2018-12-26 13:47:26
不客气:)