Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database

Σχετικά έγγραφα
Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος)

Γράψιμο και Διάβασμα σε φύλλο του Excel

Εφαρμοσμένη Πληροφορική ΙΙ (Εργ.) Visual Basic 2010 Εργαστήριο 6 ο

ΣΧΕΣΕΙΣ στην Northwind

Πτυχιακή Εργασία των Σπουδαστών: Σταμέλλος Απόστολος Κυμπάρης Κωνσταντίνος

1. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ. Κειμενογράφος WORD

Threads. Components. (Download File My.Computer.Network.DownloadFile(" files/list.txt", "C:\Temp\list.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εισαγωγή στο πρόγραμμα Microsoft word 2003

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

2 η Εργαστηριακή Άσκηση

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

4. Επιλογή και Επανάληψη

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

Μπίρμπο Μπλένταρ & Τζούμπα Πηνελόπη

Δομές Δεδομένων & Αλγόριθμοι

4 η Εργαστηριακή Άσκηση

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

New Project Windows Forms Applications

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Using Custom Python Expression Functions

ΜICROSOFT VISUAL STUDIO Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Οδηγός για το Europe Agent Print

Το υπολογιστικό φύλλο (Excel)

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Περιεχόμενα. Περιεχόμενα...v

Ε Έκδοση 1 / ΟΔΗΓΙΕΣ (ΗΛΕΚΤΡΟΝΙΚΗΣ) ΜΟΡΦΟΠΟΙΗΣΗΣ ΚΑΝΟΝΙΣΤΙΚΩΝ ΚΕΙΜΕΝΩΝ 01 ΓΕΝΙΚΑ 01 ΓΕΝΙΚΕΣ ΟΔΗΓΙΕΣ

Πίνακας Περιεχομένων. 1. Locals Window & BreakPoints

Browsers. Λειτουργικότητα και Παραμετροποίηση

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

Αντικειμενοστρεφής Προγραμματισμός

Συναρτήσεις στη Visual Basic 6.0

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Οδηγίες Συγγραφής Εργασιών για το 7 ο Διεθνές Συνέδριο για την Έρευνα των Μεταφορών

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πτυχιακή Εργασία. Θέµα: Υλοποίηση ιαδικτυακής Εφαρµογής (Βάση εδοµένων Συγγραµµάτων του τµήµατος Πληροφορικής Α.Π.Θ.)

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ»

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Κεφαλίδες και υποσέλιδα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Αλλαγή της εμφάνισης κειμένου: μέγεθος γραμματοσειράς, είδος γραμματοσειράς

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΙΙ. Φοιτητής:... (ΑΕΜ: ) ΣΕΡΡΕΣ, Ιανουάριος 2010

Υπολογιστικά Φύλλα Microsoft Excel 2016 Level I

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Τεχνολογίες Διαδικτύου (Εξασκηθείτε στην HTML)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Microsoft EXCEL ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ ECDL. Περιεχόμενα. Απόκτησε τώρα το δίπλωμα. για να θεωρείσαι Επαγγελματίας! 1 Χρήση της Εφαρμογής.

1. Σειριακές επικοινωνίες Σειριακές επικοινωνίες και Visual Basic Τα πρωτόκολλα UDP και TCP...15

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Τίτλος Πακέτου Certified Computer Expert-ACTA

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΟΓΡΑΦΗΣΗ ΝΟΣΟΚΟΜΕΙΟΥ

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ WINLABEL

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα

ECDL Module 4 Υπολογιστικά Φύλλα Εξεταστέα Ύλη, έκδοση 5.0 (Syllabus Version 5.0)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Χρήσεις: Στην καρτέλα Χρήσεις βλέπετε και δημιουργείτε τις Χρήσεις άνα ημερολογιακό έτος.

Οδηγίες Συγγραφής Εργασιών για το 6 ο Πανελλήνιο Συνέδριο Οδικής Ασφάλειας

Εκτυπώσεις -> Ενσωματωμένες -> Νέες Μισθολογικές Εκτυπώσεις -> Νέα Μηνιαία Κατάσταση (3 γραμμές) Α3 (Οριζόντια) Α/Α 1037

Αρχεία κειμένου και η VB.NET

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Ενότητα 17 Εκτύπωση Φύλλων Εργασίας και Γραφικών Παραστάσεων

1. Ξεκινήστε το πρόγραµµα Επεξεργασίας Κειµένου. 2. Αλλάξτε την Προβολή σε ιάταξη εκτύπωσης. 3. Αλλάξτε το Ζουµ προβολής σε Πλάτος σελίδας

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Νέες Τεχνολογίες στην Εκπαίδευση

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

POINTERS, AGGREGATION, COMPOSITION

Transcript:

Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database Στο παρόν παράδειγμα, θα δούμε πώς εκτυπώνουμε έναν κατάλογο με συγκεκριμένα στοιχεία μαθητών, με γραμματοσειρά σταθερού πλάτους. Δηλαδή, θα τυπώνουμε μία γραμμή ανά μαθητή. Θα επιστρατεύσουμε το αντικείμενο PrintPreviewDialog, που ενσωματώνει ένα PrintPreview control για προεπισκόπηση της εκτύπωσης. Στην ιδιότητα Document, του αντικειμένου PrintPreviewDialog, εκχωρούμε ένα αντικείμενο PrintDocument (υπάρχει στο Toolbox της VB.NET). Το τελευταίο αποτελεί το βασικό αντικείμενο που προσφέρει η VB.NET για εκτύπωση εγγράφων. Στο γεγονός PrintPage, τοποθετούμε το σχετικό κώδικα εκτύπωσης (το rendering εκτύπωσης). Στο δε γεγονός BeginPrint, αν θέλουμε, τοποθετούμε κώδικα αρχικοποίησης (όπως καθορισμό γραμματοσειρών, αρχείων δεδομένων κλπ). Στην παρακάτω εικόνα βάζουμε σε ένα Datagrid τα στοιχεία των μαθητών που προέρχονται από ένα DataView ενός πίνακα. Μόλις πατήσουμε το button Προεπισκόπηση εκτύπωσης θα ανοίξει το διπλανό παράθυρο με τυπωμένη τη λίστα των μαθητών με τα στοιχεία ΕΠΩΝΥΜΟ, ΟΝΟΜΑ, ΗΜΕΡΟΜ_ΕΓΓΡΑΦΗΣ και ΕΤΟΣ_ΓΕΝΝΗΣΗΣ. Επίσης, δημιουργούμε και αυτόματη αρίθμηση (για λόγους απλότητας παραλείπουμε τίτλους και επικεφαλίδες). Το παράθυρο αυτό προσφέρει τις κλασσικές δυνατότητες zoom, μετάβασης σε ορισμένη σελίδα, επισκόπηση πολλαπλών σελίδων και φυσικά αποστολή στον εκτυπωτή. Imports System.Data.OleDb Imports System.Drawing.Printing Public Class Form1 Inherits System.Windows.Forms.Form Dim strconn$ = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=ΜΑΘΗΤΕΣ.MDB" 'Tα ADO.NET αντικείμενα για την πρόσβαση στη ΒΔ. Dim daadapter As OleDbDataAdapter Dim dsmathites As DataSet Dim MathitesView As DataView 'Το πλήθος των γραμμών (εγγραφών) του View. Dim NbrOfDataRows%

'Ο αριθμός της τρέχουσας εγγραφής εκτύπωσης. Η πρώτη έχει θέση 0. Dim DataRowNbr% = 0 'Για καθορισμό τύπου στοιχισης πεδίου. Private Enum PrintAlignFieldEnum End Enum Left = 1 Center = 2 Right = 3 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load 'Συνδεση με τη ΒΔ και δημιουργία του DataView για τους μαθητές. daadapter = New OleDbDataAdapter("Select * from ΜΑΘΗΤΕΣ order by ΕΠΩΝΥΜΟ,ΟΝΟΜΑ", strconn) dsmathites = New DataSet() daadapter.fill(dsmathites, "tblmathites") MathitesView = New DataView(dsMathites.Tables("tblMathites")) 'Πάρε το πλήθος των μαθητών. NbrOfDataRows = MathitesView.Count 'Σύνδεσέ το με το Datagrid για εμφάνιση των δεδομένων. DataGrid1.DataSource = MathitesView '----------------------------------------------------------------------- 'Προεπισκόπηση εκτύπωσης και εκτύπωση. Private Sub btnprintpreview_click(byval sender As System.Object, _ ByVal e As System.EventArgs) _ Handles btnprintpreview.click Dim PrintPreview As New PrintPreviewDialog() PrintPreview.Document = PrintDoc PrintPreview.StartPosition = FormStartPosition.CenterScreen PrintPreview.ShowDialog() '------------------------------------------------------------------------- 'Η βασική ρουτίνα για την εκτύπωση (rendering εκτύπωσης). Private Sub PrintDoc_PrintPage(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ Handles PrintDoc.PrintPage Dim LinesPerPage# = 0 'πόσες γραμμές ανά σελίδα. Dim NbrLine% = 0 'σε ποιά γραμμή στη σελίδα είμαστε. Dim LeftMargin# = e.marginbounds.left 'αριστερό περιθώριο σελίδας. Dim TopMargin# = e.marginbounds.top 'πάνω περιθώριο σελίδας. Dim y# = 0 'Η θέση (ως προς το ύψος) της τρέχουσας γραμμής. Dim strlinedata$ = "" 'Η γραμμή με τα δεδομένα της εγγραφής.

'H γραμματοσειρά εκτύπωσης σταθερού πλάτους. Dim PrintFont As Font = New Font("Courier new", 9) 'Σε στιγμές οι υπολογισμοί στη σελίδα. e.graphics.pageunit = GraphicsUnit.Point 'Υπολόγισε το πλήθος των γραμμών ανά σελίδα. LinesPerPage = e.marginbounds.height / PrintFont.GetHeight(e.Graphics) 'Τύπωσε μία-μία εγγραφή μέχρι να γεμίσει η σελίδα. While NbrLine < LinesPerPage End While 'Πάρε τη γραμμή η οποία επιστρέφεται διαμορφωμένη όπως θέλουμε από τη συνάρτηση. strlinedata = GetDataLine() If strlinedata.length = 0 Then Exit While 'Υπολόγισε το ύψος της σελίδας στο οποίο θα τυπωθεί η γραμμή. y = TopMargin + NbrLine * PrintFont.GetHeight(e.Graphics) 'Τύπωσέ τη. e.graphics.drawstring(strlinedata, PrintFont, _ Brushes.Black, LeftMargin, _ y, New StringFormat()) 'Και αύξησε τον αριθμό γραμμής κατά 1 και τον αριθμό εγγραφής κατά 1. NbrLine += 1 : DataRowNbr += 1 ' Αν υπάρχουν κι άλλες σελίδες, τύπωσε κι άλλες. If strlinedata.length > 0 Then EndIf e.hasmorepages = True e.hasmorepages = False '------------------------------------------------------------------------- 'Διαμορφώνει τη γραμμή δεδομένων με τα στοιχεία της τρέχουσας εγγραφής. Private Function GetDataLine() As String Try If DataRowNbr <= NbrOfDataRows - 1 Then Dim r As DataRowView = MathitesView(DataRowNbr) Dim strline$ = "" strline = PrintAlign(DataRowNbr + 1, 3, _ PrintAlignFieldEnum.Right) & " " strline += PrintAlign(r.Item("ΕΠΩΝΥΜΟ"), 15, _ PrintAlignFieldEnum.Left) & " " strline += PrintAlign(r.Item("ΟΝΟΜΑ"), 10, _ PrintAlignFieldEnum.Center) & " "

strline += PrintAlign(r.Item("ΗΜΕΡΟΜ_ΕΓΓΡΑΦΗΣ"), 12, _ PrintAlignFieldEnum.Center) & " " strline += PrintAlign(r.Item("ΕΤΟΣ_ΓΕΝΝΗΣΗΣ"), 4, _ PrintAlignFieldEnum.Left) Return strline Return "" Catch ex As Exception End Try MsgBox("Πρόβλημα στην εκτύπωση της γραμμής " & _ DataRowNbr & vbcrlf & ex.message) Return "" '---------------------------------------------------------------------- 'Επιστρέφει το πεδίο στοιχισμένο αριστερά, δεξιά ή κέντρο στο διαθέσιμο χώρο 'MaxLen. Χρήσιμη ρουτίνα! Ο υπόλοιπος χώρος που περισσεύει, συμπληρώνεται με 'κενά. Private Function PrintAlign(ByVal strfield$, ByVal MaxLen%, _ ByVal whatalign As PrintAlignFieldEnum) _ As String Dim strreturnfield$ = "" Dim spaces% 'Πάρε όσους χαρακτήρες βρεις If strfield.length > MaxLen Then strreturnfield = strfield.substring(1, MaxLen) spaces = 0 strreturnfield = strfield spaces = MaxLen - strfield.length ' και για τον υπόλοιπο χώρο γέμισε με κενά. Select Case whatalign Case Is = PrintAlignFieldEnum.Left strreturnfield += FillString(spaces, " ") Case Is = PrintAlignFieldEnum.Right strreturnfield = FillString(spaces, " ") + strreturnfield Case Is = PrintAlignFieldEnum.Center

If (spaces Mod 2) = 0 Then strreturnfield = FillString(spaces / 2, " ") + _ strreturnfield + FillString(spaces / 2, " ") strreturnfield = FillString(spaces \ 2 + 1, " ") + _ strreturnfield + FillString(spaces \ 2, " ") End Select Return strreturnfield '--------------------------------------------------------------------- 'Επιστρέφει ένα string γεμάτο με τον χαρακτήρα ch, nbr φορές. Στη VB6 ήταν η String ρουτίνα. Public Function FillString$(ByVal nbr%, ByVal ch$) Dim i% Dim strreturn$ = "" For i = 1 To nbr Next strreturn += ch Return strreturn End Class Ο μηχανισμός εκτύπωσης στη VB.NET διαφέρει ριζικά από αυτόν στη VB6. Παρέχει, σαφώς, περισσότερες δυνατότητες και το παραπάνω παράδειγμα είναι ένα τυπικό δείγμα εκτύπωσης με γραμματοσειρά σταθερού πλάτους (πχ. Courier new). Ωστόσο, δεν δουλεύει καλά με γραμματοσειρές μεταβλητού πλάτους (π.χ. Arial, Times Νew Roman κλπ) διότι δεν επιτυγχάνεται σωστή στοίχιση. Στην περίπτωση αυτή, η στρατηγική είναι λίγο διαφορετική : Για κάθε γραμμή πρέπει να τυπώνουμε, με τη μέθοδο DrawString, πεδίο-πεδίο. Το κάθε πεδίο θα ξεκινά σε συγκεκριμένη υπολογισμένη θέση (στον άξονα-x). Δείτε το επόμενο tip που προσφέρει έναν γενικό τρόπο εκτύπωσης με γραμματοσειρές σταθερού ή μεταβλητού πλάτους. Χρήστος Μουρατίδης