參考:
十余年專注建站、設(shè)計(jì)、互聯(lián)網(wǎng)產(chǎn)品按需設(shè)計(jì)網(wǎng)站服務(wù),業(yè)務(wù)涵蓋品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站建設(shè)、小程序制作、軟件系統(tǒng)開發(fā)、app軟件開發(fā)公司等。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解每個(gè)客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動(dòng)各中小企業(yè)全面信息數(shù)字化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運(yùn)營(yíng)效率。
把執(zhí)行SQL語(yǔ)句后得到的記錄集逐條(含字段名)顯示在LISTVIEW控件中
'----------------------------------------------------------------
Public Sub ListUpdate(ByRef rs As Recordset, ByRef lv As ListView)
Dim head As ColumnHeader, Item As ListItem
Dim i As Integer, j As Integer
Dim lvWidth As Integer
lvWidth = lv.Width
'初始化LISTVIEW的某些屬性
lv.View = lvwReport
lv.GridLines = True
lv.FullRowSelect = True
lv.ListItems.Clear
lv.ColumnHeaders.Clear
For i = 0 To rs.Fields.Count - 1
Set head = lv.ColumnHeaders.Add
head.Text = rs.Fields(i).Name
head.Width = lvWidth / rs.Fields.Count
Next
For j = 1 To PERPAGE
If rs.EOF Then Exit For
Set Item = lv.ListItems.Add
Item.Text = "" rs.Fields(0).Value
For i = 1 To rs.Fields.Count - 1
Item.SubItems(i) = "" rs.Fields(i).Value
Next
rs.MoveNext
Next
End Sub
' 打印
Public Sub PrintRecordset(ByRef recRecordset As Recordset, ByVal strType As String)
Dim LeftMargin As Integer
Dim HeadTopPosition As Integer
Dim FieldNum As Integer
Dim PageCounter As Integer
Dim MyRecordset As ADODB.Recordset
Const FooterTopPosition = 24
Set MyRecordset = recRecordset
PageCounter = 1
' 設(shè) 置Printer 對(duì) 象 坐 標(biāo) 的 度 量 單 位 為 厘 米
Printer.ScaleMode = vbCentimeters
LeftMargin = 1.5
HeadTopPosition = 2
' 定 義 打 印 頁(yè) 左 上 角 的X 坐 標(biāo) 和Y 坐 標(biāo), 通 過(guò) 改 變ScaleLeft 和ScaleTop 的 值, 可 改 變 打 印 頁(yè) 的 左 邊 距 和 上 邊 距
Printer.ScaleLeft = -LeftMargin
Printer.ScaleTop = -HeadTopPosition
Printer.Font.Name = "Times New Roman"
Printer.Font.Size = 12
Printer.Print "音像店顧客管理系統(tǒng)"
Printer.Print strType
Printer.Print ""
If MyRecordset.EOF And MyRecordset.BOF Then
MsgBox "No Record At Presend!", vbCritical And vbOKOnly, "Print Error"
Exit Sub
End If
MyRecordset.MoveFirst
Do Until Printer.CurrentY FooterTopPosition
'Print the fields of the recordset in sequence
For FieldNum = 0 To MyRecordset.Fields.Count - 1
Printer.Print MyRecordset.Fields(FieldNum).Name _
": " _
MyRecordset.Fields(FieldNum).Value
If Printer.CurrentY FooterTopPosition Then
Printer.CurrentX = 8
Printer.Print "Page: " PageCounter
' 創(chuàng) 建 多 頁(yè) 文 檔
Printer.NewPage
PageCounter = PageCounter + 1
End If
Next FieldNum
MyRecordset.MoveNext
If MyRecordset.EOF Then Exit Do
' 在 記 錄 之 間 空 一 行
Printer.Print ""
Loop
'Print the Page number as a footer
Printer.CurrentX = 8
Printer.CurrentY = FooterTopPosition
Printer.Print "Page: " PageCounter
' 將 輸 出 送 到 打 印 機(jī)
Printer.EndDoc
End Sub
簡(jiǎn)單,代碼如下:
Print("...")
Print("---分頁(yè)---")
Print("...")
有個(gè)PrintDocument控件,可以實(shí)現(xiàn)打印。。。
MSDN原話:
使用 PrintDocument 組件
涉及 PrintDocument 組件的兩種主要情況是:
簡(jiǎn)單的打印作業(yè),如打印單個(gè)文本文件。在這種情況下,應(yīng)將 PrintDocument 組件添加到 Windows 窗體,然后在 PrintPage 事件處理程序中添加打印文件的編程邏輯。 該編程邏輯應(yīng)以使用 Print 方法打印文檔結(jié)束。
此方法向打印機(jī)發(fā)送一個(gè) Graphics 對(duì)象,該對(duì)象包含在 PrintPageEventArgs 類的 Graphics 屬性中。
有關(guān)如何使用 PrintDocument 組件打印文本文檔的示例,請(qǐng)參見(jiàn)
如何:打印 Windows 窗體中的多頁(yè)文本文件。
更為復(fù)雜的打印作業(yè),如想要重新使用已編寫的打印邏輯的情況。
在這種情況下,應(yīng)從 PrintDocument 組件派生一個(gè)新組件,并重寫
(請(qǐng)參見(jiàn) Visual Basic 的 重寫或 C# 的 重寫) PrintPage 事件。
將 PrintDocument 組件添加到窗體后,它出現(xiàn)在 Windows 窗體設(shè)計(jì)器底部的欄中