ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Εκθέσεις ] Αυξομείωση ύψους πεδίου

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 21-04-11, 22:49
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-02-2010
Μηνύματα: 86
Προεπιλογή Αυξομείωση ύψους πεδίου

Καλησπέρα σε όλους τους φίλους του Forum.
Προσπαθώ εδώ και πολύ ώρα να λύσω ένα πρόβλημα αλλά δεν τα καταφέρνω.
Το πρόβλημα είναι το εξής. Σε μια έκθεση έχω ένα πεδίο (πχ πεδίο1) στο οποίο έχω ορίσει την ιδιότητα "Ανάπτυξη" CanGrow σε ΝΑΙ έτσι ώστε όταν τα δεδομένα δεν χωράνε να αναπτύσεται κατακόρυφα. Έτσι όμως η εμφάνιση της έκθεσης δεν είναι ωραία όταν ένα πεδίο είναι ψηλότερο από κάποιο άλλο.
Υπάρχει τρόπος όταν το Πεδίο1 αναπτύσεται κατακόρυφα τότε και τα υπόλοιπα πεδία της ίδιας εγγραφής να πέρνουν το ίδιο ύψος με το πεδίο1 ώστε να είναι ομοιόμορφα.
Προσπάθησα τα εξής αλλά δεν έγινε τίποτε.
me.Πεδίο2.Height = me.Πεδίο1.Height και
me.Πεδίο2.Height = me.Λεπτομέρεια.Height

Φιλικά Δημήτρης.
Απάντηση με παράθεση
  #2  
Παλιά 22-04-11, 10:24
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

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

Δημήτρη, η τιμή στην ιδιότητα Height των πεδίων επηρεάζεται από την Can Shring και Can Grow
μόνο στο συμβάν Print που όμως σ αυτό το χρονικό σημείο είναι πολύ αργά για να τροποποιηθεί.

Αυτό που θα σου πρότεινα είναι να εκμεταλλευτείς την δυνατότητα Can Grow για να εξομοιώσεις
το ύψος του πλαισίου κειμένου που σε ενδιαφέρει με τον παρακάτω τρόπο:

Έστω ότι σε μια έκθεση έχεις τα πεδία: Pedio1 και Pedio2 με τις μορφοποιήσεις τους κτλ.
και θέλεις το ύψος του πεδίου "Pedio2" να επεκταθεί όσο το ύψος του πεδίου "Pedio1".
Τα πεδία αυτά είναι συνδεμένα με πίνακα ή ερώτημα και έχει οριστεί η ιδιότητα τους "Ανάπτυξη" ( CanGrow ) σε ΝΑΙ.

Φρόντισε το Pedio2 να μην είναι ορατό.

Πρόσθεσε άλλο ένα πεδίο, δώσε του το όνομα "PedioΝ" και τοποθέτησε το στη θέση του
πεδίου "Pedio2" (μετακινείς και μικραίνεις το "Pedio2" για να μην σε εμποδίζει στη σχεδίαση).

Στη λειτουργική μονάδα της Έκθεσης πέρασε τον παρακάτω κώδικα:

Κώδικας:
Option Compare Database
Option Explicit

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

    'Αντιγραφή μορφοποιήσεων: Ενεργοποίησε όποιες από τις παρακάτω γραμμές χρειαστεί _
     αν τα 2 Πλαίσια Κειμένου (Pedio1 και PedioN) _
     έχουν διαφορετικές μορφοποιήσεις στη γραμματοσειρά τους.

'    Me.PedioN.Properties("FontSize").Value = Me.Pedio1.Properties("FontSize").Value
'    Me.PedioN.Properties("FontName").Value = Me.Pedio1.Properties("FontName").Value
'    Me.PedioN.Properties("FontWeight").Value = Me.Pedio1.Properties("FontWeight").Value
'    Me.PedioN.Properties("FontItalic").Value = Me.Pedio1.Properties("FontItalic").Value
'    Me.PedioN.Properties("FontUnderline").Value = Me.Pedio1.Properties("FontUnderline").Value

    'Για να αυξηθεί το ύψος του Πεδίου "PedioN"  όσο είναι το ύψος του Πεδίου "Pedio1" _
     σε χρόνο εκτέλεσης, του δίνουμε το κείμενο του Πεδίου "Pedio1" με την παρακάτω εντολή:

    Me!PedioN = Me!Pedio1

End Sub

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    
     'Επαναφορά Μορφοποιήσεων : Ενεργοποίησε όποιες από τις παρακάτω γραμμές χρειαστεί _
      αν τα 2 Πλαίσια Κειμένου (Pedio1 και PedioN) _
      έχουν διαφορετικές μορφοποιήσεις στη γραμματοσειρά τους.

'    Me.PedioN.Properties("FontSize").Value = Me.Pedio2.Properties("FontSize").Value
'    Me.PedioN.Properties("FontName").Value = Me.Pedio2.Properties("FontName").Value
'    Me.PedioN.Properties("FontWeight").Value = Me.Pedio2.Properties("FontWeight").Value
'    Me.PedioN.Properties("FontItalic").Value = Me.Pedio2.Properties("FontItalic").Value
'    Me.PedioN.Properties("FontUnderline").Value = Me.Pedio2.Properties("FontUnderline").Value

    'Τώρα που έχει αυξηθεί το ύψος του Πεδίου "PedioN" μπορούμε να του _
      δώσουμε την τιμή που πρέπει να εμφανίσει δηλ. την τιμή του Πεδίου "Pedio2" (που δεν είναι ορατό).
    Me!PedioN = Me!Pedio2

End Sub
Καλή συνέχεια και καλό Πάσχα!

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 22-04-11 στις 12:28.
Απάντηση με παράθεση
  #3  
Παλιά 22-04-11, 11:54
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-02-2010
Μηνύματα: 86
Προεπιλογή

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

Καλό Πάσχα σε όλους
Ευχαριστώ πολύ
Φιλικά Δημήτρης.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccMultiselectListBox.mdb (292,0 KB, 23 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 22-04-11, 14:12
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα Δημήτρη!
Θα πρέπει να προσαρμόσεις τα ονόματα του αρχείου σου
σε αυτά του παραδείγματος ή το αντίθετο:

  • Pedio2
  • Pedio1
  • Detail = Λεπτομέρεια ( Private Sub Detail_Format(..... και Private Sub Detail_Print )
  • PedioN ( ορατό ) μορφοποίηση όπως το Pedio1
Δες ένα παράδειγμα βασισμένο στον κώδικα του προηγούμενου μου μηνύματος στο επισυναπτόμενο αρχείο.

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccGrowRptField.mdb (260,0 KB, 30 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 22-04-11, 18:28
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-02-2010
Μηνύματα: 86
Προεπιλογή

Καλησπέρα σε όλους.
Τάσο ευχαριστώ για το χρόνο σου.
Έκανα τις αλλαγές που είπες και όντως λειτουργεί, αλλά από ότι είδα στην πράξη για να λειτουργήσει σωστά και να έχουν τα δύο πεδία το ίδιο ύψος θα πρέπει τα δύο πεδία (PedioN και Pedio1) να έχουν το ίδιο ακριβώς πλάτος. Σε διαφορετική περίπτωση το ένα μεγαλώνει περισσότερο από το άλλο. Όταν σε μια έκθεση έχουμε πολλά πεδία και άρα πρόβλημα χώρου τότε υπάρχει πρόβλημα.
Και πάλι ευχαριστώ
Φιλικά Δημήτρης.
Απάντηση με παράθεση
  #6  
Παλιά 22-04-11, 21:14
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Στα πεδία που σε ενδιαφέρουν άλλαξε την ιδιότητα Στυλ Περιγράμματος σε Διαφανές.
Κατόπιν στην ετικέτα των πεδίων (Tag) πληκτρολόγησε ένα "x" και χρησιμοποίησε τον παρακάτω
κώδικα (Τμήμα του προέρχεται από τη βοήθεια της Microsoft):

Κώδικας:
Option Compare Database
Option Explicit

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    Dim H As Integer, ctl As Control
    H = Me.Pedio1.Height    'Το πεδίο με το μεγαλύτερο ύψος
    For Each ctl In Me.Section(0).Controls
        If ctl.Tag = "x" Then
            Me.Line (ctl.Left, ctl.Top)-Step(ctl.Width, H), 12835293, B ' 12835293 = το χρώμα
        End If
    Next
End Sub
Τα λέμε...

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #7  
Παλιά 25-04-11, 19:38
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-02-2010
Μηνύματα: 86
Προεπιλογή

Καλησπέρα σε όλους τους φίλους
Τάσο και πάλι ευχαριστώ για την άμμεση απάντηση.
Δοκίμασα τον κώδικα που έγραψες και λειτουργεί πολύ καλύτερα από τον προηγούμενο και είναι και πιο απλώς. Μόνο ένα μικρό πρόβλημα είχε στην στοίχιση των πεδίων το οποίο λύθηκε με μια μικρή τροποποίηση στον κώδικα.
Η αλλαγή που έκανα για να στοιχίζονται τέλεια τα πεδία στην έκθεση είναι με κόκκινα γράμματα.

Me.Line (ctl.Left - 20, ctl.Top - 20)-Step(ctl.Width, H), 12835293, B ' 12835293 = το χρώμα

Καληνύχτα και καλή πρωτομαγιά να έχουμε τώρα.
Φιλικά Δημήτρης.
Απάντηση με παράθεση
  #8  
Παλιά 25-04-11, 21:38
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα Δημήτρη!

Δεν υπάρχει πρόβλημα στη στοίχιση των πεδίων γιατί ο κώδικας απλά δεν επηρεάζει τα πεδία αλλά σχεδιάζει ένα τετράγωνο με τις ακριβείς διαστάσεις τους (Left., Top, Width, Height).

Δοκίμασε να δώσεις την τιμή 0,05 στην ιδιότητες Άνω περιθώριο και Δεξιό Περιθώριο των πεδίων.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #9  
Παλιά 27-04-11, 15:14
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-02-2010
Μηνύματα: 86
Προεπιλογή

Καλησπέρα σε όλους τους φίλους.
Τάσο εκτυπώνοντας μια έκθεση αυτό που παρατήρησα ότι το πάχος του περιγράμματος των συγκεκριμένων πεδίων ήταν πολύ λεπτό.
Υπάρχει τρόπος να καθορίσουμε το πάχος του περιγράμματος των πεδίων;
Φιλικά Δημήτρης.
Απάντηση με παράθεση
  #10  
Παλιά 27-04-11, 20:23
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα Δημήτρη!

Δοκίμασε:

Κώδικας:
'........
           Me.DrawWidth = 12 ' Προσάρμοσε το
            Me.Line (ctl.Left, ctl.Top)-Step(ctl.Width, H), 12835293, B
'........
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Μορφοποίηση] Αυτοματη μορφοποίηση ύψους merged κελιών Niha Excel - Ερωτήσεις / Απαντήσεις 2 17-07-12 20:16
[Μορφοποίηση] Αυτόματη προσαρμογή ύψους γραμμής Xristos Excel - Ερωτήσεις / Απαντήσεις 11 06-05-11 13:47


Η ώρα είναι 23:22.