|
|||
|
Hola a todos:
soy muy nueva en el mundo de .net e informes .rpt necesito ayuda, no sé si se puede realizar os cuento. Tengo una tabla administrador, una tabla cliente (relacionado con administrador) y una tabla futurocliente (también relacionado con administrador) me gustaría sacar en el mismo informe cada administrador en la cabecera y debajo todos sus clientes y sus futurosclientes, pero no me deja hacerlo: si escribo dos section, lo que hace es duplicarme los datos (pone todos los clientes con todos los posiblesclientes, si tengo 3 clientes y 5 futurosclientes, en lugar de sacarme el listado con los 8, me saca 15!!) el group header lo tengo con administrador (ordenado por apellidos), y dentro tengo un section details, pero no sé donde poner los datos para que no me duplique espero haberme explicado por favor, necesito ayuda... tengo que entregar esta parte en breve y estoy desesperada!! gracias saludos ANA |
|
|||
|
Hola:
muchas gracias por la información... los clientes están en una tabla, y los futuros clientes están en otra... ups... te paso el código... espero que sea éste el que me pides... porque sé que tengo varios, que unos se llaman a otros y ya no estoy muy segura de cuál es... data set? aaaaains que no me suena... como veis, estoy muy perdida... a ver, este código por un lado... es el que se llama cuando elijo el filtro (cp del administrador, etc...) 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() Dim CrRep As New InfClientesyFuturosClientes CrystalReportViewer1.ReportSource = CrRep ' Parche Service Pack 2 Solucion 1 Dim loginfo As CrystalDecisions.Shared.ConnectionInfo loginfo = New CrystalDecisions.Shared.ConnectionInfo loginfo.ServerName = "ANA1" loginfo.DatabaseName = "GTGServicios" loginfo.UserID = "sa" loginfo.Password = "" Dim crtableLogoninfos As New TableLogOnInfos Dim crtableLogoninfo As New TableLogOnInfo Dim crConnectionInfo As New ConnectionInfo Dim CrTables As Tables Dim CrTable As Table crConnectionInfo = loginfo CrTables = CrRep.Database.Tables For Each CrTable In CrTables crtableLogoninfo = CrTable.LogOnInfo crtableLogoninfo.ConnectionInfo = crConnectionInfo CrTable.ApplyLogOnInfo(crtableLogoninfo) Next ' Fin Parche Service Pack 2 Solucion 1 CrystalReportViewer1.DataBind() CrystalReportViewer1.SeparatePages = True 'Importamos report a WORD para imprimirlo Dim FileName As String Dim crExportOptions As ExportOptions Dim crDiskFileDestinationOptions As New DiskFileDestinationOptions 'FileName = "C:\temp\inftemporal.pdf" FileName = System.Configuration.ConfigurationSettings.AppSett ings("C_DirectorioTemporal") crDiskFileDestinationOptions.DiskFileName = FileName 'Filtro del informe CrRep.DataDefinition.RecordSelectionFormula = "(1=1)" If Convert.ToString(Request.QueryString("CodAdministr ador")) <> "" Then CrRep.DataDefinition.RecordSelectionFormula = CrRep.DataDefinition.RecordSelectionFormula & " And (" & Convert.ToString(Request.QueryString("CodAdministr ador")) & " = {Administrador.CodAdministrador}" & ")" End If If Convert.ToString(Request.QueryString("IdConsultor" )) <> "" Then CrRep.DataDefinition.RecordSelectionFormula = CrRep.DataDefinition.RecordSelectionFormula & " And (" & Convert.ToString(Request.QueryString("IdConsultor" )) & " = {Tecnico_1.CodTecnico}" & ")" End If If Convert.ToString(Request.QueryString("IdCaptador") ) <> "" Then CrRep.DataDefinition.RecordSelectionFormula = CrRep.DataDefinition.RecordSelectionFormula & " And (" & Convert.ToString(Request.QueryString("IdCaptador") ) & " = {Tecnico.CodTecnico}" & ")" End If 'Fin del Filtro del informe With CrRep.ExportOptions .DestinationOptions = crDiskFileDestinationOptions .ExportDestinationType = ExportDestinationType.DiskFile .ExportFormatType = ExportFormatType.WordForWindows End With CrRep.Export() Response.ClearContent() Response.ClearHeaders() 'Response.ContentType = "application/pdf" Response.ContentType = "application/msword" 'Response.AddHeader("Content-Disposition", "attachment;filename=informe.pdf") Response.AddHeader("Content-Disposition", "attachment;filename=informe.doc") Response.WriteFile(FileName) Response.Flush() Response.Close() System.IO.File.Delete(FileName) luego, por otro lado, se crea un objeto de esta clase: Public Class InfClientesyFuturosClientes Inherits ReportClass Public Sub New() MyBase.New() End Sub Public Overrides Property ResourceName() As [String] Get Return "InfClientesyFuturosClientes.rpt" End Get Set(ByVal value As [String]) 'Do nothing End Set End Property <Browsable(False), _ DesignerSerializationVisibility(DesignerSerializat ionVisibility.Hidden)> _ Public ReadOnly Property Section1() As Section Get Return Me.ReportDefinition.Sections(0) End Get End Property <Browsable(False), _ DesignerSerializationVisibility(DesignerSerializat ionVisibility.Hidden)> _ Public ReadOnly Property Section2() As Section Get Return Me.ReportDefinition.Sections(1) End Get End Property <Browsable(False), _ DesignerSerializationVisibility(DesignerSerializat ionVisibility.Hidden)> _ Public ReadOnly Property Section3() As Section Get Return Me.ReportDefinition.Sections(2) End Get End Property <Browsable(False), _ DesignerSerializationVisibility(DesignerSerializat ionVisibility.Hidden)> _ Public ReadOnly Property Section4() As Section Get Return Me.ReportDefinition.Sections(3) End Get End Property <Browsable(False), _ DesignerSerializationVisibility(DesignerSerializat ionVisibility.Hidden)> _ Public ReadOnly Property Section5() As Section Get Return Me.ReportDefinition.Sections(4) End Get End Property End Class <System.Drawing.ToolboxBitmapAttribute(GetType(Cry stalDecisions.Shared.ExportOptions), "report.bmp")> _ Public Class CachedInfClientesyFuturosClientes Inherits Component Implements ICachedReport Public Sub New() MyBase.New() End Sub Public Overridable Property IsCacheable() As [Boolean] Implements CrystalDecisions.ReportSource.ICachedReport.IsCach eable Get Return True End Get Set(ByVal value As [Boolean]) ' End Set End Property Public Overridable Property ShareDBLogonInfo() As [Boolean] Implements CrystalDecisions.ReportSource.ICachedReport.ShareD BLogonInfo Get Return False End Get Set(ByVal value As [Boolean]) ' End Set End Property Public Overridable Property CacheTimeOut() As TimeSpan Implements CrystalDecisions.ReportSource.ICachedReport.CacheT imeOut Get Return CachedReportConstants.DEFAULT_TIMEOUT End Get Set(ByVal value As TimeSpan) ' End Set End Property Public Overridable Function CreateReport() As ReportDocument Implements CrystalDecisions.ReportSource.ICachedReport.Create Report Dim rpt As InfFuturosClientes = New InfFuturosClientes rpt.Site = Me.Site Return rpt End Function Public Overridable Function GetCustomizedCacheKey(ByVal request As RequestContext) As [String] Implements CrystalDecisions.ReportSource.ICachedReport.GetCus tomizedCacheKey Dim key As [String] = Nothing '// The following is the code used to generate the default '// cache key for caching report jobs in the ASP.NET Cache. '// Feel free to modify this code to suit your needs. '// Returning key == null causes the default cache key to '// be generated. ' 'key = RequestContext.BuildCompleteCacheKey( ' request, ' null, // sReportFilename ' this.GetType(), ' this.ShareDBLogonInfo ); Return key End Function End Class y aquí se crea una instancia de un rpt... el cual... ups, cómo pego el código?? No sé si esto será suficiente mil gracias ANA |
|
||||
|
Saludos:
A mi forma de ver y trabajar, es mas facil desde un DataSet con DataTables, debido a la simplicidad que ello implica. Por el codigo que muestras, y la falta de relaciones (inner Joins y eso), el problema es dificil de encontrar. Tendrias que hacer un debug detallado, e ir mirando los datos y la forma en que se encadenan. Si quisieras un consejo, usa los DataTables como DataSource del reporte. Existe muchisima informacion de ello que puedes consultar. Lamento no poder ayudar mas. JOSE LUIS.
__________________
Exodo 20:1-17 ----> Dios NO los llamo LAS DIEZ RECOMENDACIONES. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|