Tabela na raporcie

Opis

Wykorzystanie raportów w Accessie to chleb powszedni dla każdego kto się nim zajmuje. Możliwości oferowane przez produkt są naprawdę spore, ale jest jedna rzecz która nie jest zaimplementowana w standardzie, a bardzo przydatna. Chodzi mi o sytuacje kiedy chcemy przedstawić na raporcie tabele z obramowaniem. Wszystko będzie w porządku, jeżeli nie skorzystamy z właściwości można powiększać, wtedy efekt może nie być zadowalający, ponieważ powiększone będzie tylko to pole które tego wymaga. W rezultacie otrzymamy coś takiego:

Rozwiązanie

Wyjściem z sytuacji jest napisanie kodu, który sam sprawdzi ile ma wysokości największe pole i obrysuje całość. Jedyne co musimy zrobić to ustawić następujace właściwości dla pola tekstowego:

  • Styl tła: Przezroczysty
  • Styl obramowania: Przezroczysty

I w zdarzeniu Przy wydruku dla sekcji Szczegóły dodać kod rysujący:

Private Sub Szczegóły_Print(Cancel As Integer, PrintCount As Integer)

    Dim ctr         As Control
    Dim I           As Integer
    Dim l           As Integer
    Dim W           As Integer
 
    Me.ScaleMode = 1
    W = 0
    l = Me.Width
    I = 0
    For Each ctr In Me.Section(acDetail).Controls
        If ctr.Visible Then
            If ctr.Height > I Then I = ctr.Height
            If ctr.Left < l Then l = ctr.Left
            W = W + ctr.Width
        End If
    Next
    If W > 0 Then
        Me.Line (l - 1, 0)-(l + W, I + 1), RGB(0, 0, 0), B
        For Each ctr In Me.Section(acDetail).Controls
            If ctr.Left <> l And ctr.Visible Then Me.Line (ctr.Left, -I + 271)-(ctr.Left, I), RGB(0, 0, 0)
        Next
    End If
End Sub

Efekt Działania:

Podsumowanie

Warto jeszcze nadmienić, ze grubość rysowanej kreski można regulować poprzez właściwość raportu DrawWidth. Zamieszczam również przykładowy plik mdb.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar