ceng.de
Goto Top

Timeline - Gantt Chart mit Microsoft Access - DrawLine

Seit einiger Zeit suche ich nach einer Möglichkeit, Datum in Form einer Ganttchart oder einer Timeline in einem Bericht aufzuzeigen. Ich fand einige nicht kostenfreie Software, aber nichts, was mir wirklich geholfen hätte. Ich habe mit Kreuztabellen, Charts und anderem Experimentiert. Heute bin ich auf den Trichter gekommen, einfach die "Draw Line" Funktion zu nutzen und.... ich komme dahin, wo ich hinwill.

MS Info: http://msdn.microsoft.com/en-us/library/ff198297.aspx

4b67e3387771a048186691e9b78d7e21

zunächst einmal meine Rohdaten:

Tabelle:
Personenname (Text); Geboren (Jahreszahl mit - für v.Chr.); Gestorben (Jahreszahl mit - für v.Chr.)

Bericht:
Ereignis auf Detailbereich_Format des Report Ber_Skolar_Familien_Timeline2

Ereignisprozedur:


Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    ' Call the Drawline procedure  
    DrawLine
End Sub
 
Sub DrawLine()
'http://msdn.microsoft.com/en-us/library/ff198297.aspx  

'expression.Line(Step(x1, y1) – Step(x2, y2), color, BF)  


    Dim rpt As Report, lngColor As Long, RasterColor As Long
        Dim sngTop As Single, sngLeft As Single
    Dim sngWidth As Single, sngHeight As Single
    Dim Startoffsetkoordinate As Single
    
    ' Name des Reports, auf dem die Prozedur angewandt wird  
    Set rpt = Reports!Ber_SkolarFamilien_Timeline2
    
    'Skalierungfaktor, damit die Werte auf eine Seite passen  
    Skalierung = 1.5
    
    'Offset für richtigen Start der Skala (damit Namen noch angezeigt werden können)  
    Startoffsetkoordinate = 6500
    
    ' FARBEN  
    ' Farbe des Rasters  
    RasterColor = RGB(0, 0, 0)
    ' Farbe der Balken  
    lngColor = RGB(0, 0, 255)
    
    ' Nutzung der Daten in ... (http://msdn.microsoft.com/en-us/library/bb213754(v=office.12).aspx)  
    ' Millimeter  
    rpt.ScaleMode = 6
    ' Pixel  
    rpt.ScaleMode = 3
    
    
    ' Oben links X-Koordinate  
    x1 = (Geb + Startoffsetkoordinate) / Skalierung
    
    ' Start Y ist die obere Kante des Detailbereich (dieser kann dynamisch sein)  
    y1 = rpt.ScaleTop
        
    ' Breite  
    ' Rechts X-Koordinate  
    x2 = (Gest + Startoffsetkoordinate) / Skalierung
    
    ' Unten Links Y-Koordinate  
    y2 = rpt.ScaleHeight
    

    ' Gefüllte Box mit Farbe aus lngColor zeichnen  
    rpt.Line (x1, y1)-(x2, y2), lngColor, BF
    
    'Berechnung des Startpunkt für die erste Linie des Raster  
    Rasterpunkt = Startoffsetkoordinate - StartRaster
    
    ' Startoffsetkoordinate Linien  
    
    ' Startoffsetkoordinate  
    rpt.Line (Rasterpunkt / Skalierung, y1)-(Rasterpunkt / Skalierung, y2), RasterColor
    ' 1. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 1000) / Skalierung, y1)-((Rasterpunkt + 1000) / Skalierung, y2), RasterColor
    ' 2. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 2000) / Skalierung, y1)-((Rasterpunkt + 2000) / Skalierung, y2), RasterColor
    ' 3. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 3000) / Skalierung, y1)-((Rasterpunkt + 3000) / Skalierung, y2), RasterColor
    ' 4. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 4000) / Skalierung, y1)-((Rasterpunkt + 4000) / Skalierung, y2), RasterColor
    ' 5. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 5000) / Skalierung, y1)-((Rasterpunkt + 5000) / Skalierung, y2), RasterColor
    ' 6. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 6000) / Skalierung, y1)-((Rasterpunkt + 6000) / Skalierung, y2), RasterColor
    ' 7. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 7000) / Skalierung, y1)-((Rasterpunkt + 7000) / Skalierung, y2), RasterColor
    ' 8. Startoffsetkoordinate  
    rpt.Line ((Rasterpunkt + 8000) / Skalierung, y1)-((Rasterpunkt + 8000) / Skalierung, y2), RasterColor

End Sub

Content-ID: 187611

Url: https://administrator.de/contentid/187611

Ausgedruckt am: 21.11.2024 um 16:11 Uhr