Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Εκθέσεις ] Εμφάνιση πλαισίων σε έκθεση (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1388-emfanisi-plaision-se-ekthesi.html)

gmax 27-09-11 06:29

Εμφάνιση πλαισίων σε έκθεση
 
Καλημέρα σας. Έχω βρει πολλές λύσεις στο forum και ελπίζω σε μια ακόμη. Έχω μια έκθεση στην οποία τα δεδομένα που εμφανίζονται στη "λεπτομέρεια" τα έχω μέσα σε πλαίσια (κουτάκια). Σε κάθε σελίδα χωρούν 10 εγγραφές. Όταν υπάρχουν λιγότερες εγγραφές, το υπόλοιπο της λεπτομέρειας μένει κενό. Γίνεται στο κενό της λεπτομέρειας να εμφανίζονται τα πλαίσια κενά; Δηλαδή να εμφανίζονται 10 πλαίσια, ανεξαρτήτως του αριθμού εγγραφών. Ευχαριστώ για άλλη μια φορά.

Tasos 27-09-11 16:58

Καλησπέρα Γιώργο!

Δεν γνωρίζουμε αν στην έκθεση σου υπάρχουν ομαδοποιήσεις δεδομένων για να σου προτείνουμε κάτι.

Ένα παράδειγμα με δεδομένα 2 - 3 σελίδων θα μας διαφώτιζε.

Περιμένουμε νέα σου.

Φιλικά

Τάσος

gmax 27-09-11 18:19

1 Συνημμένο(α)
Καλησπέρα. Ανεβάζω ένα δείγμα και αν δείτε η έκθεση είναι κατά το ήμισυ κενή. Έχω 5 εγγραφές ενώ χωράει 10. Θα ήθελα στον υπόλοιπο χώρο να μου βάζει "κουτάκια" κενά. Ευχαριστώ.

kapetang 28-09-11 09:07

1 Συνημμένο(α)
Καλημέρα στην παρέα

Γιώργο, στη ΒΔ που επισυνάπτω, υπάρχουν δύο υλοποιήσεις του ζητούμενου.

1. Στην έκθεση «Φ/Α 1Χ ΚΟΡΑΣΙΔΩΝ» η υλοποίηση γίνεται σχεδιάζοντας, με κώδικα, ένα πλέγμα γραμμών στην έκθεση.
Το πλέγμα είναι προσαρμοσμένο στη θέση και τις διαστάσεις των πλαισίων κειμένου (πεδίων) στην έκθεση, οπότε αν γίνουν αλλαγές θα πρέπει να γίνει νέα προσαρμογή.
Κώδικας:

Private Sub Report_Page()
    Dim xo As Long, yo As Long, i As Long, x As Variant, a As Long
    x = Array(20, 595, 1423, 5125, 6818, 7700, 9005, 11550)
    yo = 5020: a = 710
    For i = 0 To 7
        Me.Line (x(i), yo)-(x(i), yo + 10 * a)
    Next
    For i = 0 To 10
        Me.Line (x(0), yo + i * a)-(x(7), yo + i * a)
    Next
End Sub

2. Στην έκθεση «Φ/Α 1Χ ΚΟΡΑΣΙΔΩΝ2», η λύση δόθηκε από τον Τάσο (διαχειριστή).
Στη ΒΔ έχει προστεθεί ο πίνακας «ReportTable», ο οποίος χρησιμοποιείται ως προέλευση των δεδομένων της.
Με κατάλληλο κώδικα ο πίνακας φορτώνεται με τα πραγματικά δεδομένα και με τα αναγκαία εικονικά ώστε σε κάθε σελίδα της έκθεσης να έχουμε 10 εγγραφές.
Κώδικας:

Private Sub Report_Load()
    Const LimitNumber = 10
    Dim i As Integer
    Dim RecCount As Integer
    Dim DBs As DAO.Database
    Set DBs = CurrentDb
    DBs.Execute "DELETE * From ReportTable"
    DBs.Execute "INSERT INTO ReportTable SELECT [ΠΛ 1Χ ΚΟΡΑΣΙΔΩΝ].* FROM [ΠΛ 1Χ ΚΟΡΑΣΙΔΩΝ]"
    RecCount = DCount("*", "ReportTable")
    RecCount = RecCount Mod LimitNumber
    For i = RecCount + 1 To LimitNumber
        DBs.Execute "INSERT INTO ReportTable ([Α/Α]) Values(999999999)"
    Next
End Sub

Φιλικά/Γιώργος

gmax 29-09-11 06:07

Καλημέρα σας.
Γιώργο και Τάσο, ευχαριστώ πολύ για τις λύσεις που μου δώσατε. Μάλλον θα χρησιμοποιήσω του Γιώργου γιατί μου είναι πιο εύκολο να την προσαρμόσω και στις υπόλοιπες εκθέσεις (μία για κάθε αγώνισμα). Για άλλη μια φορά ευχαριστώ.

Tasos 29-09-11 12:16

Καλημέρα σε όλους!

Γιώργο, χαίρομαι που βοηθήθηκες!

Για όσους ενδιαφέρονται
Με αφορμή αυτό θέμα δημιουργήσαμε ένα σχετικό παράδειγμα στα χρήσιμα παραδείγματα της Access.

O Σύνδεσμος: http://www.ms-office.gr/forum/access....html#post8200

Στο παράδειγμα αυτό περιέχονται 2 Εκθέσεις.

Η μια (rptOrdersGrouped) χρησιμοποιεί ομαδοποιημένα δεδομένα
και η άλλη (rptProducts) απλά συμπληρώνει εγγραφές στην τελευταία σελίδα της έκθεσης.

Φιλικά

Τάσος


Η ώρα είναι 09:53.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2