vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 2. ?datagrid frage? 
Autor: Matthias
Datum: 25.03.02 10:54

hallo dieter,

deinen tip hatte ich ja benutzt, aber leider druckt der immer den "start"-inhalt des grids aus. wenn ich also dann aber in den ERLEDIGTE-unterpunkt des treeview springe, dann wird das grid anders gefüllt und diesen inhalt druckt der nicht. sondern den start inhalt:

hier der code:

Public Sub datagrid_drucken()
Dim fmt As String
Dim sRow As String
Dim xPos As Long
Dim I As Long
Dim intProz As Integer
Dim GridWidth As Long
Dim ColWidth As Long
Dim PageWidth As Long
Dim sHeader As String

Screen.MousePointer = 11
With Printer
.ScaleMode = 6 ' Maßeinheit "mm"
xPos = 10 ' 10mm Rand links

.Font.Name = "Arial"
.Font.Size = 12

' Listenbezeichnung
.CurrentY = 10
.CurrentX = xPos
.Font.Bold = True
On Error Resume Next
frminfo.CommonDialog1.CancelError = True
frminfo.CommonDialog1.ShowPrinter

If Err = 0 Then
'MsgBox frmMain.DataGrid1.Caption
Printer.Print "Ausdruck" + vbCrLf
Else
Screen.MousePointer = vbNormal
Exit Sub
End If


.Font.Bold = False

' Format (Spaltenbreiten) + Tabellenkopf
' anhand Bildschirm-Spaltenbreite ermitteln
PageWidth = .ScaleWidth - (xPos * 2)
With frmMain.DataGrid1
' Gesamtbreite
For I = 0 To .Columns.Count - 1
If .Columns(I).Visible Then
GridWidth = GridWidth + .Columns(I).Width
End If
Next I

' Prozentuale Verteilung auf die Spalten
' plus Tabellenkopf
For I = 0 To .Columns.Count - 1
With .Columns(I)
' zunächst Spaltenausrichtung berücksichtigen
Select Case .Alignment
Case dbgCenter
' zentriert
fmt = fmt + "^"
Case dbgRight
' rechtsbündig
fmt = fmt + ">"
End Select

' jetzt Spaltenbreite berechnen
intProz = (.Width / GridWidth * 100 + 0.5)
ColWidth = (PageWidth / 100 * intProz + 0.5)
fmt = fmt + Format$(ColWidth, "0")

' Tabellenkopf
sHeader = sHeader + .Caption
End With

fmt = fmt + "|"
sHeader = sHeader + "|"
Next I

' abschliessendes "|" entfernen
fmt = Left$(fmt, Len(fmt) - 1)
sHeader = Left$(sHeader, Len(sHeader) - 1)
End With

' Tabellenkopf drucken
.Font.Bold = True
.Font.Size = 9
PrintRow xPos, fmt, sHeader
.Font.Bold = False

' Jetzt Recordset "satzweise" ausdrucken
.Font.Size = 8
.CurrentY = .CurrentY + 5
frmMain.dataProjekte.Recordset.MoveFirst
Do While Not frmMain.dataProjekte.Recordset.EOF
sRow = ""
With frmMain.DataGrid1
For I = 0 To .Columns.Count - 1
If .Columns(I).Visible Then

' normaler Text / sonstige Datentypen
sRow = sRow + CStr(FeldInhalt(frmMain.dataProjekte.Recordset.Fields(I))) + "|"
End If

Next I
PrintRow xPos, fmt, sRow
End With

' nächster Datensatz
frmMain.dataProjekte.Recordset.MoveNext
'Wend
Loop
' Druckauftrag beenden
.EndDoc
End With
Screen.MousePointer = 0



errdru2:
Exit Sub

End Sub

Public Function FeldInhalt(Feld As Field) As Variant
If IsNull(Feld.Value) Then
Select Case Feld.Type
Case adInteger, adSmallInt
FeldInhalt = 0
Case adBoolean
FeldInhalt = False
Case Else
FeldInhalt = ""
End Select
Else
FeldInhalt = Feld.Value
End If
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
?datagrid frage?53Matthias25.03.02 10:17
Re: ?datagrid frage?182ModeratorDieter25.03.02 10:19
2. ?datagrid frage?36Matthias25.03.02 10:36
Re: 2. ?datagrid frage?187ModeratorDieter25.03.02 10:47
Re: 2. ?datagrid frage?44Matthias25.03.02 10:54
Re: 2. ?datagrid frage?170ModeratorDieter25.03.02 11:02
Re: 2. ?datagrid frage?35Matthias25.03.02 11:06
Re: 2. ?datagrid frage?181ModeratorDieter25.03.02 11:21
Re: 2. ?datagrid frage?36Matthias25.03.02 11:24
3. ?datagrid frage?42Matthias25.03.02 11:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel