Hallo Forum,
ich komm mal wieder nicht weiter und bitte um Eure Hilfe.
Habe zwei sevGrid die miteinander verbunden sind.
Im Ersten werden Kundenadressen angezeigt.
Im Zweiten die dazugehörigen Bestellungen, entsprechend der Auswahl im Grid der Kunden.
Nun erstelle ich einen WebReport auf welchem oben die Kundenadresse steht, sowie darunter aufgelistet die Bestellungen. Anschließend drucke ich diesen Kunden aus.
Soweit so gut.
Um nicht jede Kundenadresse einzeln anzuklicken und dann zu drucken, habe ich im sevGrid1 (Kundenadressen) die .AllowMultiSelect = True gesetzt.
Wie kann ich nun alle angeklickten Kunden inklusive Ihrer Bestellungen auf einmal drucken.
Im voraus herzlichen Dank
Gruss Rudi
soweit mein vorläufiger Code:
Private Sub Form_Load()
sSQL = "SELECT ID, KundenCode, Vorname, Nachname, PLZ, Ort, Strasse, Bem FROM" & _
"Kunden" & _
" ORDER BY KundenCode"
Set oDB = OpenDatabase(App.Path & "\Daten.mdb")
Set oRs = oDB.OpenRecordset(sSQL)
With Grid1
.LockUpdate True
.CreateClone = True
Set .Recordset = oRs
.Columns(1).Caption = "ID"
.Columns(2).Caption = "Kunden-Code"
.Columns(3).Caption = "Vorname"
.Columns(4).Caption = "Nachname"
.Columns(5).Caption = "PLZ"
.Columns(6).Caption = "Ort"
.Columns(7).Caption = "Strasse"
.Columns(8).Caption = "Bemerkung"
.Caption = "Kunden Daten"
.AutoSort = True
.ScrollBars = SB_AUTO
.AllowMultiSelect = True
.AutoSelectMouseMove = True
.AllowEdit = False
.AutoUpdate = True
.AllowDelete = True
.AllowColumnSizing = True
.LockUpdate False
.Refresh
.RefreshEx
.Columns(8).AdjustWidthToGridSize
oRs.Close
Set oRs = Nothing
End With
With Grid2
.BalloonTip = True
.LockUpdate True
.CreateClone = True
.ColumnAdd "ID", , , , False
.ColumnAdd "KundenCode", "Kunden-Code", 1150, , True
.ColumnAdd "Bestelldatum", "Datum", 1150, , , , , , SORT_DATE
.ColumnAdd "ArtikelNr", "Artikel Nummer", 2000, ALIGNMENT_CENTER, , , _
ALIGNMENT_CENTER
.ColumnAdd "Menge", "Menge", 2000, ALIGNMENT_CENTER, , , ALIGNMENT_CENTER
.ColumnAdd "Artikelname", "Artikel Name", 4500, ALIGNMENT_LEFT, , , _
ALIGNMENT_CENTER
.ColumnAdd "Lieferdatum", "Liefertermin", 1400, , , , ALIGNMENT_CENTER
.AutoSort = True
.ScrollBars = SB_VERTICAL
.AllowEdit = True
.AutoUpdate = True
.LockUpdate False
.Refresh
.Columns(6).AdjustWidthToGridSize
End With
End Sub
Private Sub Grid1_RowChange(ByVal nRow As Long)
KC = Grid1.Text(nRow, 2)
Kunde = Grid1.Text(nRow, 4)
Ort = Grid1.Text(nRow, 6)
With Grid2
.Caption = "Bestellungen des Kunden --->>" & Kunde
Set .Recordset = oDB.OpenRecordset("SELECT ID, KundenCode, Bestelldatum," & _
"ArtikelNr, Menge, Artikelname, Lieferdatum FROM Bestellungen" _
& " WHERE (KundenCode = '" & KC & "')")
.Refresh
End With
End Sub
Private Sub cmdDrucken_Click()
Dim bResult As Boolean
Dim nPages As Long
With Grid2
.ReportMaxButton = False
.ReportMinButton = False
.HTMLTableRowsPerPage = 20
.HTMLShowNavigation = False
.HTMLUseScreenFormating = True
.ReportButtonBar = True
.ReportButtonStyle = BUTTON_BIG
.ReportButtonCaption(BUTTON_PRINTPAGE) = "aktuelle Seite"
.ReportButtonCaption(BUTTON_PRINTALL) = " alles drucken"
.ReportButtonVisible(BUTTON_PAGESETUP) = True
On Error Resume Next
MkDir App.Path & "\report"
On Error GoTo 0
bResult = .DoHTMLReport(App.Path & "\report\report.htm")
If bResult Then
.HTMLShowReport , False, True
End If
End With
End Sub
Private Sub cmdAbort_Click()
End
End Sub
Private Sub Grid2_HTMLNewPage(ByVal nPage As Long, ByVal nPages As Long, _
sHeader As String, bCancel As Boolean)
Dim sHTML As String
With Grid2
sHTML = "<p><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>" & _
"<TD><FONT SIZE=+1><B>Kunde <br>" & Kunde & " aus " & Ort & "<br>" & _
"</FONT></TD></TR></TABLE></P>"
.HTMLPrint sHTML
.HTMLPrint "<H1>Bestellungen</H1>"
End With
sHeader = "Seite " & CStr(nPage) & " von " & CStr(nPages) & _
"|>Stand: " & Format$(Now, "dd.mm.yyyy")
If nPage = 6 Then Grid2.HTMLShowReport , False, True
End Sub
Private Sub Grid2_HTMLEndPage(ByVal nPage As Long, ByVal nPages As Long, _
ByVal nRow As Long, ByVal nRows As Long, sFooter As String, _
bCancel As Boolean)
If nPage = nPages Then
sFooter = "Anzahl bisherige Bestellungen: " & FormatNumber(nRows, 0, , , _
vbTrue)
End If
End Sub |