簡體   English   中英

水晶報表中的重復數據

[英]Duplicated data in crystal reports

我正在嘗試從水晶報告中的 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,我選擇另一半部分(對應於 tableequipos)並按 supr。 它顯示:

在此處輸入圖片說明

但是,如果我想將兩者一起顯示,則會重復兩個表之一的字段。 我嘗試移動到另一部分,但只顯示一個文件,而不是必須顯示的 2 或 3。

我該怎么做才能在同一份報告中正確顯示它們?

如圖所示,檢查您的數據庫字段是否被 _No 重復。 使用任一字段,您的問題將得到解決。

在此處輸入圖片說明

您在 Crystal Reports 中獲得的所有數據都基於通過將所有給定表連接或鏈接在一起而形成的一組行。 詳細信息部分代表一行。 當您將leerEquiposleerServicios放在同一個報告中時,它們會合並到同一組行中,如下所示:

|ID_Equipo|ID_Servicio|ID_Orden|
|60       |41         |8       |
|61       |41         |8       |
|60       |42         |8       |
|61       |42         |8       |
|60       |43         |8       |
|61       |43         |8       |

你有兩個equipos 和三個servicios。 由於它們交叉連接(以每種可能的組合方式組合),結果是六行。

如果您希望看到 Servicios 的列表和 Equipos 的列表彼此完全分開,您需要兩個完全獨立的行集(即一組兩個 Equipo 行和一組三個 Servicio 行)。 通常最安全的方法是使用子報表來做到這一點。

如果 Servicios 和 Equipos 之間存在連接(當它們具有相同的 ID_Orden 時),您必須詢問您希望在一行中看到哪些信息:如果您希望每個 Servicio 都有一行,則按 Servicio 對報告進行分組,然后您可以例如,在匯總字段中插入計算機數量。 如果您想要兩行 - 每個 Equipo 一行,則按 Equipo 分組。

您可以在網上找到很多關於 Crystal Reports 中重復行的說明(和問題):
Crystal Reports 中的“重復記錄”疑難解答
處理重復記錄或“表膨脹”

嘗試選項Select Distinct Records Database下的Select Distinct Records以排除重復記錄。

除此之外,我建議您檢查鏈接為什么會產生重復記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM