一般情況下先用EXCEL做好一個樣表文件,設(shè)定好打印區(qū)域和樣式,需要填內(nèi)容的時候,先程序復制一個樣表文件,然后調(diào)用API打開表格填寫內(nèi)容并打印,如果想用API來實現(xiàn)調(diào)整模板和打印預覽,可能比較困難,而且很抽象,個人覺得費時費力效果還不一定理想

東興網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),東興網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為東興近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的東興做網(wǎng)站的公司定做!
報表打印應(yīng)該也能實現(xiàn),但是我覺得你這個用文本打印更簡單,將數(shù)據(jù)輸出到txt文件,結(jié)果用RichTextBox顯示,但是需要簡單的排版,調(diào)用打印機打印RichTextBox即可的
排版用tab()、space()、vbcrlf或PrintLine(1)換行,代碼類似如下樣式
PrintLine(1, TAB(60), "準考證" )
PrintLine(1)
PrintLine(1, "姓名:" xingming Space(3) "準考證號:" cel(1) Space(3) cel(2) Space(3) cel(3))
但是TAB()排版比較規(guī)整
打印代碼類似如下:
PrintDialog1.Document = PrintDocument1
PrintDocument1.DocumentName = "準考證"
PrintDialog1.AllowSomePages = False
PrintDialog1.ShowHelp = False
PrintDialog1.ShowNetwork = False
PrintDialog1.AllowSelection = False
PrintDialog1.AllowPrintToFile = False
MySReader = New StringReader(RichTextBox1.Text)
stringToPrint = MySReader.ReadToEnd()
PageSetupDialog1.Document = PrintDocument1
PageSetupDialog1.PageSettings.Margins.Bottom = 50
PageSetupDialog1.PageSettings.Margins.Top = 50
PageSetupDialog1.PageSettings.Margins.Left = 50
PageSetupDialog1.PageSettings.Margins.Right = 50
If PageSetupDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintDocument1.DefaultPageSettings = PageSetupDialog1.PageSettings '頁面設(shè)置
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
If PrintDialog1.PrinterSettings.IsValid = True Then
PrintDocument1.Print()
MsgBox("打印完成!" vbCrLf "Print completed!", , "Print hint(打印提示)")
Else
MsgBox("打印失敗!打印機不可用。" vbCrLf "Print failed! The printer is not valid.", , "Print hint(打印提示)")
End If
Else
Exit Sub
End If
End If
可以把數(shù)據(jù)導出到EXCEL,然后使用EXCEL進一步處理后使用。
也可以做成vb報表(VB自帶有)。
先設(shè)置報表格式,打印時向報表傳遞數(shù)據(jù)就可以了。
VB下數(shù)據(jù)報表打印輸出方法有多種,一是通過自己的設(shè)計和編程完成報表打印輸出。二是通過MS OFFICE實現(xiàn)報表打印輸出。三是應(yīng)用數(shù)據(jù)報表設(shè)計器的報表打印輸出。本人經(jīng)常使用第一種方法,它具有根據(jù)需要靈活應(yīng)用的特點,但需編寫程序。下附代碼,第一段代碼定義基本變量,第二段代碼定義打印函數(shù),第三段代碼是具體打印代碼,含數(shù)據(jù)轉(zhuǎn)換。第四段代碼是窗體加載代碼,具體連接數(shù)據(jù)庫和打印代碼根據(jù)你所涉及的數(shù)據(jù)要求進行修改。
Option Explicit
Private n As Integer
Private m As Integer
Private zh_dm(10) As Double
Private dy_dm(3000, 10) As Variant
Private zsl As Integer
Private y As Integer
Private x As Integer
Private i As Integer
Private k As Integer
Private p As Integer
Private pa As Integer
Private j As Integer
Private txt As String
Private fnt As Integer
Private dd As Variant
Public Function prnt(x As Variant, y As Variant, fnt As Variant, txt0 As Variant)
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontSize = fnt
Printer.Print txt0
End Function
Private Sub cmdPrint_Click()
Adodc1.Recordset.MoveFirst
For i = 0 To zsl - 1
For j = 0 To 7
dy_dm(i, j) = Adodc1.Recordset(j)
Next j
Adodc1.Recordset.MoveNext
Next i
'確定頁數(shù)
k = Int(zsl / 80)'80為每頁行數(shù)
If k - zsl / 80 0 Then
k = k + 1
End If
fnt = 8
For p = 0 To k - 1
pa = p + 1
y = 300
x = 4500
txt = "機物料庫存"
dd = prnt(x, y, fnt, txt)
x = 8500
txt = "第" p + 1 "頁"
dd = prnt(x, y, fnt, txt)
y = 500
x = 600
txt = "備件代碼"
dd = prnt(x, y, fnt, txt)
x = 1500
txt = "備件名稱"
dd = prnt(x, y, fnt, txt)
x = 3500
txt = "備件規(guī)格"
dd = prnt(x, y, fnt, txt)
x = 5500
txt = "進口計算機號"
dd = prnt(x, y, fnt, txt)
x = 7500
txt = "最低儲備量"
dd = prnt(x, y, fnt, txt)
x = 9000
txt = "庫存量"
dd = prnt(x, y, fnt, txt)
For i = 0 + p * 80 To 79 + p * 80
y = 700 + 180 * (i - p * 80)
x = 600
txt = dy_dm(i, 1)
dd = prnt(x, y, fnt, txt)
x = 1500
txt = dy_dm(i, 2)
dd = prnt(x, y, fnt, txt)
x = 3500
txt = dy_dm(i, 3)
dd = prnt(x, y, fnt, txt)
x = 5500
txt = dy_dm(i, 4)
dd = prnt(x, y, fnt, txt)
x = 7500
txt = dy_dm(i, 5)
dd = prnt(x, y, fnt, txt)
x = 9000
txt = dy_dm(i, 6)
dd = prnt(x, y, fnt, txt)
If Int(i / 10) - i / 10 = 0 Then
Printer.Line (500, 695 + (i - p * 80) * 180)-(10000, 695 + (i - p * 80) * 180)
End If
Next i
If zsl - p * 80 80 Then
Printer.Line (500, 695 + 180 * 80)-(10000, 695 + 180 * 80)
Printer.NewPage
End If
Next p
Printer.EndDoc ' 打印完成。
Cls
End Sub
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=jwl_dbf"
Adodc1.RecordSource = "select cs.js_dm,cs.備件代碼,cs.備件名稱,cs.備件規(guī)格,cs.進口計算機號,cs.最低庫存量,sl.結(jié)存數(shù)量,sl.結(jié)存金額,sl.結(jié)存單價,sl.類別代碼 from JWCK_BM as cs,jwl_jiec as sl" _
" where cs.備件代碼 = sl.備件代碼" " and cs.備件代碼" "''" " order by sl.類別代碼,sl.備件代碼"
Adodc1.Refresh
DataGrid1.Refresh
zsl = Adodc1.Recordset.RecordCount
Adodc3.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=jwl_dbf"
Adodc3.RecordSource = "select sum(結(jié)存金額) as hj from jwl_jiec"
Adodc3.Refresh
End Sub
以上供參考。其它請參考西安交通大學出版社出版的“VISUAL BASIC 6.0 高級編程技巧-ADO數(shù)據(jù)訪問篇“
NET中數(shù)據(jù)庫數(shù)據(jù)導入Excel并打印摘要:眾所周知,WEB上的打印是比較困難的,常見的WEB上打印的方法大概 ... type=button value=打印預覽onclick=document.all.WebBrowser.ExecWB(7,1) ... 3、將數(shù)據(jù)庫的數(shù)據(jù)或要打印的內(nèi)容導出到Excel,Word中去打印
不會吧,在vb.net工程中,選擇新項目的追加,在實用程序的選項中,可看到有CrystalReport的選項。
它和VB不同,VB用的是控件。
你最好,上網(wǎng)或去書店看一看有關(guān)vb.net的報表設(shè)計。
本文名稱:vb.net直接打印報表 vb打印excel
本文來源:http://chinadenli.net/article32/doojgpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、Google、用戶體驗、云服務(wù)器、搜索引擎優(yōu)化、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)