Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Μορφοποίηση εκτυπώσεων απόδειξης η τιμολογίου
Kαλημέρα σε όλους τους φίλους του forum.Αντιμετωπίζω ένα πρόβλημα Kαι ζητάω πάλι την πολίτιμη βοήθειά σας .Στις φόρμες της επισυναπτόμενης βάσης και στη φόρμα κινήσεις πελάτη υπάρχουν 2 κουμπιά εντολών το ένα απόδειξη και το άλλο τιμολόγιο.Πάτώντας ή την απόδειξη η το τιμολόγιο εκτυπώνει τα δεδομένα από την φόρμα κινήσεις πελατών. Αυτά ενημερωτικά.Τώρα εγώ θέλω απο τη φόρμα μορφοποίηση εκτυπώσεων να εισάγω στοιχεία στα πεδία για να μετακινώ τα δεδομένα στην απόδειξη και στο τιμολόγιο(Δηλαδή μορφοποίηση εκτυπώσεων απόδειξης και τιμολογίου).Υπάρχει ο κώδικας στην φόρμα μορφοποίηση εκτυπώσεων μήπως γνωρίζει κάποιο μέλος πως πρέπει να γίνει; Ευχαριστώ Αλέξανδρος |
#2
| |||
| |||
Καλησπέρα Αλέξανδρε, βλέποντας τη ΒΔ σου, διαπίστωσα ότι η μέθοδος που ακολουθείς για να δημιουργήσεις τις εκθέσεις «Απόδειξη» και «Τιμολόγιο» είναι αρκετά μπερδεμένη. Συγκεκριμένα: 1) Τοποθετείς στις εκθέσεις κάποια αδέσμευτα στοιχεία ελέγχου, τα οποία παίρνουν τις τιμές από τα στοιχεία της φόρμας «ΚινήσειςΠελάτη» και 2) προσπαθείς να τα μετακινήσεις σε θέσεις που ορίζονται από τα στοιχεία της φόρμας «ΜορφωποίησηΕκτυπώσεων». Η απορία μου είναι γιατί δεν ακολουθείς την απλή μέθοδο να σχεδιάσεις μία έκθεση που θα βασίζεται στο ερώτημα που βασίζεται και η φόρμα «ΚινήσειςΠελάτη» και θα έχει παρόμοια πεδία (δεσμευμένα και αδέσμευτα); Έτσι δε θα χρειαζόταν η φόρμα «ΜορφωποίησηΕκτυπώσεων» και η πληκτρολόγηση των στοιχείων για τη θέση των πλαισίων ελέγχου των εκθέσεων. Φιλικά/Γιώργος |
#3
| |||
| |||
Kαλημέρα Γιώργο Βασικά ξεκίνησα κτίζοντας αυτή την βάση και να μαθαίνω access λόγω που έκανα κάποια ενοικιαζόμενα διαμερίσματα .Με λίγο διάβασμα και βοήθεια φίλων έκανα μια βάση για ένα μικρό ξενοδοχείο. Μετά μου ζητούσαν και άλλοι την βάση. Επειδή ήθελε ο καθένας να έχει δικό του λογότυπο και το δικό του σχέδιο για το τιμολόγιο σκέφτηκα η μόνη λύση είναι να μετακινούνται τα πλαίσια της έκθεσης με τα δεδομένα και να πηγαίνουν στο σημείο που έχει επιλέξει ο κάθε ιδιοκτήτης. Δηλαδή όπως είναι σε όλα τα τιμολόγια που είναι προσχεδιασμένα και μετά μπαίνουν οι τιμές. Έτσι ο κάθε κάτοχος της βάσης να μπορεί από μόνος να σχεδιάζει και να διαμορφώνει το δικό του τιμολόγιο αφού η βάση θα είναι ΜDE και κλειδωμένη και δεν μπορεί χειροκίνητα να μετακινήσει τα πλαίσια της έκθεσης παρά μόνο απο την φόρμα της μορφοποίησης.Πάντως με την εκτύπωση δεν έχω πρόβλημα απλά γίνεται η μετακίνηση των πλαισίων στην έκθεση χειροκίνητα. Και αυτό το κώδικα τον έχω μετά απο ερωτήσεις και προσπάθειες φίλων οι οποίοι βοήθησαν και εχουν κάποιες γνώσεις όχι βεβαια γνώσεις επίπεδο Forum. Φιλικά Αλέξανδρος |
#4
| |||
| |||
Καλησπέρα Αλέξανδρε Για να προσθέσουμε στοιχεία ελέγχου σε μία έκθεση με τη μέθοδο CreateReportControl θα πρέπει να προηγηθεί το άνοιγμα της έκθεσης σε προβολή σχεδίασης. Αν η ΒΔ είναι σε μορφή .mde η έκθεση δε μπορεί να ανοίξει σε μορφή σχεδίασης και συνεπώς δεν μπορούν να προστεθούν στοιχεία ελέγχου. Με κώδικα θα μπορούσαμε να μετακινήσουμε τα στοιχεία ελέγχου που περιέχει μια έκθεση, αλλά δε θα μπορούσαμε να αποθηκεύσουμε την έκθεση με τις νέες θέσεις τους. Κατά τη γνώμη μου, για να υλοποιηθεί το ζητούμενο, θα πρέπει: 1) Η έκθεση να βασίζεται σε πίνακα (ή ερώτημα) και να περιέχει όλα τα πεδία (δεσμευμένα και υπολογιζόμενα). 2) Να δημιουργηθεί πίνακας (πχ tblFormat) με πεδία: «fName» Θα αποθηκεύει το όνομα των στοιχείων της έκθεσης. «fX», «fY», «fW», «fH». Που θα αποθηκεύουν τη θέση και τις διαστάσεις των στοιχείων ελέγχου, σε κατάλληλες μονάδες (πχ mm). 3) Να δημιουργηθεί μία φόρμα (πχ frmFormat», που θα βασίζεται στον πίνακα «tblFormat» και θα τροποποιεί τα στοιχεία της θέσης και των διαστάσεων των στοιχείων ελέγχου της έκθεσης. 4) Να γραφεί κατάλληλος κώδικας στο συμβάν Report_Load. Όπως: Κώδικας: Private Sub Report_Load() Dim rs As DAO.Recordset Const m As Double = 56.7 Set rs = CurrentDb.OpenRecordset("tblFormat") With rs .MoveLast If .RecordCount > 0 Then .MoveFirst Do Until .EOF Me.Controls(.Fields("fName")).Move .Fields("fX") * m, .Fields("fY") * m, _ .Fields("fW") * m, .Fields("fH") * m .MoveNext Loop End If End With rs.Close End Sub Φιλικά/Γιώργος |
#5
| |||
| |||
Kαλησπέρα Γιώργο Τώρα είδα το μηνυμά σου και κοιτάζω τον νέο τρόπο να δω και το επισυναπτόμενο.Θα το δουλέψω το βράδυ και θα απαντήσω αύριο.Σε ευχαριστώ όμως για την βοηθειά σου και το πολύτιμο χρόνο που διέθεσες για την εφαρμογή μου. Φιλικά Αλέξανδρος |
#6
| |||
| |||
Καλημέρα Γιώργο Τελικά το παράδειγμα μου δείνει αυτο που ήθελα το μόνο αλλαξα το συμβάν απο Load σε open στην έκθεση γιατι δεν δούλευε σε Load.Θα παίξω λίγο με τις μετακινήσεις να δω εαν ανεβωκατεβαίνει το στοιχείο ελέγχου της εκθεσης σε όλη την σελίδα γιατί σε μεγαλύτερη τιμή βγάζει σφάλμα.Και δεν μένει τώρα παρα να διαμορφωσω την βάση μου.Μεγάλη υπόθεση να ξέρεις καλά κώδικα .Κάνεις το lap top και χορεύει τσιφτεντέλη.Φίλε Γιώργο και πάλι ένα μεγάλο ευχαριστώ.Εμείς με 3 στρέμματα κώδικα και τίποτα δεν κάναμε 5 γραμμές εσύ ολα είναι ready. Mε εκτίμηση Αλέξανδρος |
#7
| |||
| |||
Καλημέρα Αλέξανδρε, σ’ ευχαριστώ για τα καλά λόγια. Έχεις δίκιο. Το συμβάν Load πραγματοποιείται μόνο αν ανοίξουμε την έκθεση σε προβολή προεπισκόπησης. Αν την εκτυπώσουμε κατευθείαν δεν πραγματοποιείται, οπότε δεν εκτελείται και ο κώδικας μορφοποίησης. Το Open, συνεπώς είναι το κατάλληλο συμβάν για την προσθήκη του κώδικα. Καλή συνέχεια Φιλικά/Γιώργος |
#8
| ||||
| ||||
Καλημέρα σε όλους! Σε κάθε περίπτωση πρέπει να προσέχει ο χρήστης να μην υπερβαίνει τα περιθώρια της Έκθεσης. Δείτε ένα "πείραμα" στο συνημμένο παρακάτω. Μπορείτε να μετακινήσετε μέσα στο τετράγωνο που εμφανίζεται στη φόρμα τις Ετικέτες καθώς και να αλλάξετε τις διαστάσεις τους σχεδόν όπως σε Design Mode. Οι διαστάσεις του τετραγώνου σχήματος αυξομειώνονται ανάλογα τα περιθώρια της Έκθεσης. Έχει καλή συμπεριφορά αλλά λόγω τεχνικών περιορισμών, όχι τόσο καλή όσο η ενσωματωμένη λειτουργία της Access. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#9
| |||
| |||
Καλησπέρα στην παρέα Φίλε Τάσο, βρίσκω την προσέγγισή σου εξαιρετική. Μου θύμισες ότι υπάρχουν και οι κλάσεις και οι συναρτήσεις API........ Να είσαι καλά για να μας διδάσκεις. Γιώργος ΥΓ Στη ρουτίνα AccLabel_MouseMove υπάρχει η γραμμή κώδικα: NewW = CtlWidth + X – CtlWidth, που δημιουργεί ερωτήματα για την ορθότητά της |
#10
| |||
| |||
Kαλησπέρα σε όλους Τελικά λαμβάνουμε τόση βοήθεια αλλα και πολλές επιλογές που δεν ξέρουμε τι να πρωτοδιαλέξουμε.Ή θα το χάσουμε με τόσα νέα πραγματα και τόσες εναλλαγές η θα γίνουμε πιο inteligent και σοφοί.Ευχαριστούμε και εσένα Τάσο για τις επηξηγήσεις αλλά και το παράδειγμά σου που θα πρέπει και όλη η κοινότητα που μας παρακολουθεί να εκφράζεται παρομοίως.Να΄στε καλα καλό βράδυ. Με εκτίμηση Αλέξανδρος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Εκθέσεις ] Εκτύπωση απόδειξης είσπραξης | smasak | Access - Ερωτήσεις / Απαντήσεις | 9 | 17-11-14 11:45 |
[VBA] ComboBox Πλήθος Εκτυπώσεων | gfevran | Excel - Ερωτήσεις / Απαντήσεις | 2 | 09-11-14 23:13 |
[VBA] Επιλογή αριθμού εκτυπώσεων αντιγράφων | gfevran | Excel - Ερωτήσεις / Απαντήσεις | 9 | 28-08-14 10:56 |
[ Πρόσθετα ] Πρόβλημα στη μεταφορά τιμολογίου σε βιβλίο εσόδων | rmaria | Excel - Ερωτήσεις / Απαντήσεις | 6 | 15-01-14 22:16 |
Δημιουργία έντυπης απόδειξης | Νωντας | Access - Ερωτήσεις / Απαντήσεις | 4 | 27-05-12 16:35 |
Η ώρα είναι 09:39.