Informe Gráfico con Datos Filtrados

Deseo crear un informe que refleje Gráficos con datos filtrados de un formulario.

Con el siguiente código (que veo que esta como complicado).

Option Compare Database
Option Explicit

Enum Propuestas Period Enum
ByMonth = 1
ByQuarter = 2
ByYear = 3
End Enum

Sub Print Reports(Report View As AcView)
Dim str Report Name As String
Dim str Report Filter As String
Dim str Report Filter1 As String
Dim l Propuestas Count As Long

If Nz(Me.lstReportFilter) <> "" Then
strReportFilter = "([PropuestasGroupingField] = """ & Me.lstReportFilter & """)"
End If
If Nz(Me.lst Report Filter1) <> "" Then
strReportFilter1 = "([PropuestasGroupingField1] = """ & Me.lstReportFilter1 & """)"
End If
Select Case Me.lst Propuestas Period
Case By Year
str Report Name = "Informe de Propuestas anuales"
l Propuestas Count = DCountWrapper("*", "Análisis de Propuestas", "[Año]=" & Me.cbYear)
Case By Quarter
str Report Name = "Informe de Propuestas trimestrales"
l Propuestas Count = DCountWrapper("*", "Análisis de Propuestas", "[Año]=" & Me.cbYear & " AND [Trimestre]=" & Me.cbQuarter)
Case By Month
str Report Name = "Informe de Propuestas mensuales"
l Propuestas Count = DCountWrapper("*", "Análisis de Propuestas", "[Año]=" & Me.cbYear & " AND [Mes]=" & Me.cbMonth)
End Select
If l Propuestas Count > 0 Then
TempVars.Add "Agrupar por", Me.lst Propuestas Reports.Value
TempVars.Add "Agrupar por", Me.lst Propuestas Reports1.Value
TempVars.Add "Mostrar", DLookupStringWrapper("[Mostrar]", "Informes de Propuestas", "[Agrupar por]='" & Nz(Me.lst Propuestas Reports) & "'")
TempVars.Add "Mostrar", DLookupStringWrapper("[Mostrar]", "Informes de Propuestas", "[Agrupar por]='" & Nz(Me.lstPropuestasReports1) & "'")
TempVars.Add "Año", Me.cb Year.Value
TempVars.Add "Trimestre", Me.cb Quarter.Value
TempVars.Add "Mes", Me.cb Month.Value
DoCmd.OpenReport strReportName, ReportView, , strReportFilter, acWindowNormal
DoCmd.OpenReport strReportName, ReportView, , strReportFilter1, acWindowNormal
Else
Msg Box OK Only No Propuestas In Period
End If
End Sub

Private Sub Form_Load()
Set Propuestas Period By Year
Init Filter Items
Init Filter Items1
End Sub

Sub SetPropuestasPeriod(PropuestasPeriod As PropuestasPeriodEnum)
Me.lstPropuestasPeriod = PropuestasPeriod
Me.cbQuarter.Enabled = (PropuestasPeriod = ByQuarter)
Me.cbMonth.Enabled = (PropuestasPeriod = ByMonth)
End Sub

Private Sub lstPropuestasPeriod_AfterUpdate()
SetPropuestasPeriod Me.lstPropuestasPeriod
End Sub

Private Sub lstPropuestasReports_AfterUpdate()
InitFilterItems
End Sub

Private Sub lstPropuestasReports1_AfterUpdate()
InitFilterItems1
End Sub

Private Sub InitFilterItems()
Me.lstReportFilter.RowSource = DLookupStringWrapper("[Origen de fila de filtro]", "Informes de Propuestas", "[Agrupar por]='" & Nz(Me.lstPropuestasReports) & "'")
Me.lstReportFilter = Null
End Sub
Private Sub InitFilterItems1()
Me.lstReportFilter1.RowSource = DLookupStringWrapper("[Origen de fila de filtro]", "Informes de Propuestas", "[Agrupar por]='" & Nz(Me.lstPropuestasReports1) & "'")
Me.lstReportFilter1 = Null
End Sub

Private Sub cmdPreview_Click()
PrintReports acViewReport
End Sub

Private Sub cmdPrint_Click()
PrintReports acViewNormal
End Sub

Private Function GetLastPropuestasDate() As Date
GetLastPropuestasDate = Nz(DMaxWrapper("[Fecha de Entrega Cliente]", "Propuestas"), Date)
End Function

Si existe una manera más fácil o un procedimiento más sencillo, les agradecería me ayudaran.

Las Gráficas deberían ser tipo torta con los siguientes campo filtrados, por ejemplo:

- Aprobadas por Usuario (mensuales)

- Aprobadas por Usuario (en BsF y en USD)

O cualquier otra combinación que realice con los filtros.

1 Respuesta

Respuesta
1

José: Mira éste enlace en el que viene explicado paso a paso la Inserción de Gráficos en Formularios o Informes.

http://informaticapc.com/microsoft-access-2010/graficos.php 

En mi opinión debes crear con antelación la o las consultas que necesites, que lo puedes hacer con el asistente. Eso si no puedes sacar directamente los datos de alguna Tabla o Consulta que ya tengas. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas