【发布时间】:2014-05-05 16:40:30
【问题描述】:
我正在尝试从水晶报表中的 3 个表中加载数据。
在每一个中,我都有显示以下数据的存储过程:
代码是:
select distinct * from servicios where ID_Orden = @idordenrecibida
SELECT distinct ID_orden, Consecutivo, Observaciones, Empleado, replace(convert(NVARCHAR, FechaEntrada, 103), ' ', '/') AS FechaEntrada, replace(convert(NVARCHAR, FechaSalida, 103), ' ', '/') AS FechaSalida, Recibe, PrecioFinal
FROM OrdenesServicio
WHERE ID_Orden = @idordenrecibida
SELECT distinct * FROM equipos WHERE ID_Orden = @idordenrecibida
(CR发送的参数在接下来的快照中也是'8')
我想在我的报告中显示相同的结果,但是当我从 CR 调用这些过程时,报告显示了一些重复的结果:
它显示了一些重复的值,与过程的实际结果不同:S
嗯,表单中的代码如下:
OrdenReport oRep = new OrdenReport();
ParameterField Pf = new ParameterField();
ParameterFields Pfs = new ParameterFields();
ParameterDiscreteValue Pdv = new ParameterDiscreteValue();
Pf.Name = "@idordenrecibida"; //nombre del parametro
Pdv.Value = 8;
Pf.CurrentValues.Add(Pdv);
Pfs.Add(Pf);
crystalReportViewer1.ParameterFieldInfo = Pfs;
oRep.Load(@"..\..\OrdenReport.rpt");
crystalReportViewer1.ReportSource = oRep;
这是表单的设计:
我跟随巫师的方式:
如果我在设计器中选择“不重复”选项,“Equipos”会完美显示,但“Servicios”仍然显示重复。事实上,“Equipos”的总数是“servicios”被复制的次数。我尝试修改关系,但仍然出现重复项。 我怎么能在该报告中获得与“exec”相同的数据而不会错误地重复相同的行?谢谢!!
编辑:
我发现只有当我想同时显示两个表的数据时,数据才会显示重复,所以当我从设计器中删除表servicios的字段时:
然后,我执行 control + Z,选择另一半部分(对应于 table equipos),然后按 supr。它显示:
但是,如果我想将两者一起显示,则会复制两个表之一的字段。我尝试移动到另一个部分,但只显示一个文件,而不是必须显示的 2 或 3。
如何才能在同一份报告中正确显示它们?
【问题讨论】:
-
你能检查一下水晶生成的sql查询是正确的吗?我相信你知道如何检查 CR 中的 sql 查询
-
我没有使用CR中的sql查询,我是直接从CR中调用存储过程,我只是在问题的开头添加了它们的代码
标签: c# sql .net sql-server crystal-reports