vb实现打印功能具体点 如何用VB实现表格打印功能?

VB\u600e\u4e48\u5b9e\u73b0\u6253\u5370\u529f\u80fd

\u4ece\u5e94\u7528\u7a0b\u5e8f\u4e2d\u6253\u5370
Visual Basic \u4e3a\u6253\u5370\u6b63\u6587\u548c\u56fe\u5f62\u63d0\u4f9b\u4e86\u4e09\u79cd\u6280\u672f\u3002
\u53ef\u5728\u7a97\u4f53\u4e2d\u5efa\u7acb\u6240\u9700\u8981\u7684\u8f93\u51fa\uff0c\u7136\u540e\u7528 PrintForm \u65b9\u6cd5\u6253\u5370\u7a97\u4f53\u3002
Private Sub Command1_Click()
Me.PrintForm
End Sub

\u901a\u8fc7\u8bbe\u7f6e Printers \u96c6\u5408\u4e2d\u7684\u7f3a\u7701\u7684\u6253\u5370\u673a\uff0c\u53ef\u4f20\u9001\u6b63\u6587\u548c\u56fe\u5f62\u5230\u6253\u5370\u673a\u3002
...

\u53ef\u5148\u4f20\u9001\u6b63\u6587\u548c\u56fe\u5f62\u7ed9 Printer \u5bf9\u8c61\uff0c\u518d\u7528 NewPage \u548c EndDoc \u65b9\u6cd5\u6253\u5370\u3002

Option Explicit
Private y As Integer
Private x As Integer
Private txt As String
Private fnt As Integer
Private dd As Variant
'\u6253\u5370\u51fd\u6570
Public Function prnt(x As Variant, y As Variant, fnt As Variant, txt As Variant)
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontSize = fnt
Printer.Print txt
End Function

Private Sub cmdPrint_Click()
fnt = 18
y = 300
x = 500
txt = "\u6253\u5370"
dd = prnt(x, y, fnt, txt)
Printer.EndDoc ' \u6253\u5370\u5b8c\u6210\u3002
End Sub
\u5176\u5b83\u5982\u6570\u636e\u67e5\u8be2\u7b49\u8bf7\u53c2\u9605\u5982\u4e0b\u7f51\u5740:
http://zhidao.baidu.com/question/4168806.html

VB\u4e0b\u6570\u636e\u62a5\u8868\u6253\u5370\u8f93\u51fa\u65b9\u6cd5\u6709\u591a\u79cd\uff0c\u4e00\u662f\u901a\u8fc7\u81ea\u5df1\u7684\u8bbe\u8ba1\u548c\u7f16\u7a0b\u5b8c\u6210\u62a5\u8868\u6253\u5370\u8f93\u51fa\u3002\u4e8c\u662f\u901a\u8fc7MS OFFICE\u5b9e\u73b0\u62a5\u8868\u6253\u5370\u8f93\u51fa\u3002\u4e09\u662f\u5e94\u7528\u6570\u636e\u62a5\u8868\u8bbe\u8ba1\u5668\u7684\u62a5\u8868\u6253\u5370\u8f93\u51fa\u3002\u672c\u4eba\u7ecf\u5e38\u4f7f\u7528\u7b2c\u4e00\u79cd\u65b9\u6cd5\uff0c\u5b83\u5177\u6709\u6839\u636e\u9700\u8981\u7075\u6d3b\u5e94\u7528\u7684\u7279\u70b9\uff0c\u4f46\u9700\u7f16\u5199\u7a0b\u5e8f\u3002\u4e0b\u9644\u4ee3\u7801\uff0c\u7b2c\u4e00\u6bb5\u4ee3\u7801\u5b9a\u4e49\u57fa\u672c\u53d8\u91cf\uff0c\u7b2c\u4e8c\u6bb5\u4ee3\u7801\u5b9a\u4e49\u6253\u5370\u51fd\u6570\uff0c\u7b2c\u4e09\u6bb5\u4ee3\u7801\u662f\u5177\u4f53\u6253\u5370\u4ee3\u7801\uff0c\u542b\u6570\u636e\u8f6c\u6362\u3002\u7b2c\u56db\u6bb5\u4ee3\u7801\u662f\u7a97\u4f53\u52a0\u8f7d\u4ee3\u7801\uff0c\u5177\u4f53\u8fde\u63a5\u6570\u636e\u5e93\u548c\u6253\u5370\u4ee3\u7801\u6839\u636e\u4f60\u6240\u6d89\u53ca\u7684\u6570\u636e\u8981\u6c42\u8fdb\u884c\u4fee\u6539\u3002
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
'\u786e\u5b9a\u9875\u6570
k = Int(zsl / 80)'80\u4e3a\u6bcf\u9875\u884c\u6570
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 = "\u673a\u7269\u6599\u5e93\u5b58"
dd = prnt(x, y, fnt, txt)
x = 8500
txt = "\u7b2c" & p + 1 & "\u9875"
dd = prnt(x, y, fnt, txt)
y = 500
x = 600
txt = "\u5907\u4ef6\u4ee3\u7801"
dd = prnt(x, y, fnt, txt)
x = 1500
txt = "\u5907\u4ef6\u540d\u79f0"
dd = prnt(x, y, fnt, txt)
x = 3500
txt = "\u5907\u4ef6\u89c4\u683c"
dd = prnt(x, y, fnt, txt)
x = 5500
txt = "\u8fdb\u53e3\u8ba1\u7b97\u673a\u53f7"
dd = prnt(x, y, fnt, txt)
x = 7500
txt = "\u6700\u4f4e\u50a8\u5907\u91cf"
dd = prnt(x, y, fnt, txt)
x = 9000
txt = "\u5e93\u5b58\u91cf"
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 ' \u6253\u5370\u5b8c\u6210\u3002
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.\u5907\u4ef6\u4ee3\u7801,cs.\u5907\u4ef6\u540d\u79f0,cs.\u5907\u4ef6\u89c4\u683c,cs.\u8fdb\u53e3\u8ba1\u7b97\u673a\u53f7,cs.\u6700\u4f4e\u5e93\u5b58\u91cf,sl.\u7ed3\u5b58\u6570\u91cf,sl.\u7ed3\u5b58\u91d1\u989d,sl.\u7ed3\u5b58\u5355\u4ef7,sl.\u7c7b\u522b\u4ee3\u7801 from JWCK_BM as cs,jwl_jiec as sl" & _
" where cs.\u5907\u4ef6\u4ee3\u7801 = sl.\u5907\u4ef6\u4ee3\u7801" & " and cs.\u5907\u4ef6\u4ee3\u7801>" & "''" & " order by sl.\u7c7b\u522b\u4ee3\u7801,sl.\u5907\u4ef6\u4ee3\u7801"
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(\u7ed3\u5b58\u91d1\u989d) as hj from jwl_jiec"
Adodc3.Refresh
End Sub

\u4ee5\u4e0a\u4f9b\u53c2\u8003\u3002\u5176\u5b83\u8bf7\u53c2\u8003\u897f\u5b89\u4ea4\u901a\u5927\u5b66\u51fa\u7248\u793e\u51fa\u7248\u7684\u201cVISUAL BASIC 6.0 \u9ad8\u7ea7\u7f16\u7a0b\u6280\u5de7-ADO\u6570\u636e\u8bbf\u95ee\u7bc7\u201c

最方便同时也是最灵活的打印方式是直接利用VB的Printer对象,只要把平时用Print命令输出到窗体的内容直接发到Printer对象即可:

Printer.Print "要打印的内容放在这里"
Printer.Print "打印的内容可以分多行输出"
Printer.Print "也可以把打印内容放到变量中,比如后面的这个x"; x
Printer.PaintPicture LoadPicture("图片文件名"), 0, 0 '还可以直接在打印机中输出图片
Printer.Line (0, 0) - (3000, 2100) '还可以画线、画圆等等,跟屏幕输出是完全一样的
Printer.EndDoc '这个命令可以把上面要打印的内容真正发往打印机

可使用VB自带的水晶报表控件(Crystal Reports)或其它的报表控件,来实现报表的制作和打印。

  • vb瀹炵幇鎵撳嵃鍔熻兘鍏蜂綋鐐
    绛旓細鏈鏂逛究鍚屾椂涔熸槸鏈鐏垫椿鐨勬墦鍗版柟寮忔槸鐩存帴鍒╃敤VB鐨凱rinter瀵硅薄锛屽彧瑕佹妸骞虫椂鐢≒rint鍛戒护杈撳嚭鍒扮獥浣撶殑鍐呭鐩存帴鍙戝埌Printer瀵硅薄鍗冲彲锛歅rinter.Print "瑕佹墦鍗扮殑鍐呭鏀惧湪杩欓噷"Printer.Print "鎵撳嵃鐨勫唴瀹瑰彲浠ュ垎澶氳杈撳嚭"Printer.Print "涔熷彲浠ユ妸鎵撳嵃鍐呭鏀惧埌鍙橀噺涓紝姣斿鍚庨潰鐨勮繖涓獂"; x Printer.PaintPicture LoadPicture...
  • 鍦VB涓庝箞鏍疯兘瀹炵幇鍦鍏蜂綋浣嶇疆涓婄殑鎵撳嵃鍟婅阿璋
    绛旓細鐩存帴浣跨敤Printer鐨刾rint鏂规硶缁撳悎CurrentX锛孋urrentY涓や釜鍧愭爣杩涜瀹氫綅銆
  • vb鐢≒rinter瀵硅薄瀹炵幇绐椾綋鎵撳嵃搴旇鎬庝箞鍋?
    绛旓細EndDoc 鍛婅瘔VB锛岀▼搴忓垱寤烘枃妗g粨鏉燂紝VB 搴斿皢瀹冨彂閫佸埌鐗╃悊鎵撳嵃鏈轰笂鎵撳嵃銆侹illDoc 鍙栨秷褰撳墠鎵撳嵃浣滀笟銆傚簲鐢ㄧ▼搴忓簲璇ョ粓姝㈢敱EndDoc 鍜孠illDoc 鎵璁惧畾鐨勬瘡涓墦鍗颁綔涓氥俍oom 灞炴х敤浜庡畾涔夋墦鍗拌緭鍑虹殑缂╂斁鍥犲瓙銆侰opies 灞炴х敤浜庡畾涔夋墦鍗扮殑鍓湰鏁扮洰銆
  • VB涓璸rint鏂规硶鐨勭壒鐐 璇风紪绋嬩妇渚嬭鏄
    绛旓細charpos 鍙夈傛寚瀹氫笅涓瓧绗︾殑鎻掑叆鐐銆備娇鐢ㄥ垎鍙 (;) 鐩存帴灏嗘彃鍏ョ偣瀹氫綅鍦ㄤ笂涓涓鏄剧ず鐨勫瓧绗︿箣鍚庛備娇鐢 Tab(n) 灏嗘彃鍏ョ偣瀹氫綅鍦ㄧ粷瀵瑰垪鍙蜂笂銆備娇鐢ㄦ棤鍙傛暟鐨 Tab 灏嗘彃鍏ョ偣瀹氫綅鍦ㄤ笅涓涓墦鍗板尯鐨勮捣濮嬩綅缃傚鏋滅渷鐣 charpos锛屽垯鍦ㄤ笅涓琛屾墦鍗颁笅涓瀛楃銆傝鏄 鍙互鐢ㄧ┖鐧芥垨鍒嗗彿鏉ュ垎闅斿涓〃杈惧紡銆傚绯荤粺鎸囧畾...
  • vb璋冪敤excel妯℃澘杩涜鎵撳嵃
    绛旓細title As String Dim tmp1 As Variant, tmp2 As Variant Dim fieldName As String With de1.rsselTmpReport If .RecordCount > 0 Then col = 0 de1.rsexcel.MoveFirst Do While Not de1.rsexcel.EOF If de1.rsexcel.Fields("isprint").Value Then If LANG = 0 Then...
  • VB鎬庝箞瀹炵幇鎵撳嵃鍔熻兘
    绛旓細Visual Basic 涓烘墦鍗版鏂囧拰鍥惧舰鎻愪緵浜嗕笁绉嶆妧鏈傚彲鍦ㄧ獥浣撲腑寤虹珛鎵闇瑕佺殑杈撳嚭锛岀劧鍚庣敤 PrintForm 鏂规硶鎵撳嵃绐椾綋銆侾rivate Sub Command1_Click()Me.PrintForm End Sub 閫氳繃璁剧疆 Printers 闆嗗悎涓殑缂虹渷鐨鎵撳嵃鏈锛屽彲浼犻佹鏂囧拰鍥惧舰鍒版墦鍗版満銆...鍙厛浼犻佹鏂囧拰鍥惧舰缁 Printer 瀵硅薄锛屽啀鐢 NewPage 鍜 EndDoc ...
  • 鍦VB涓浣瀹炵幇鎵撳嵃鐨鍔熻兘
    绛旓細Printer瀵硅薄鏈変笁涓緢閲嶈鐨勬柟娉曪細EndDoc(寮濮鎵撳嵃),KillDoc(涓柇鎵撳嵃)鍜孨ewPage(鎹㈤〉).渚嬪锛氭湁涓涓滄敞鎰26鏃ョ梾姣掞紒鈥濇彁绀鸿鎵撳嵃10浠斤紝骞跺姞椤电爜锛岀敤濡備笅绋嬪簭娈瀹炵幇锛歅rivate Sub command_Click()Dim i As Integer Dim str As String str="娉ㄦ剰26鏃ョ梾姣掞紒"Printer.FontName="榛戜綋"Printer.FontSize=...
  • 鍏充簬VB涓璸rint鐨勭敤娉?
    绛旓細1銆丳rint鏂规硶 Print鏂规硶鍙敤浜庣獥浣撱佸浘鐗囨銆佺珛鍗崇獥鍙c鎵撳嵃鏈绛夊璞°傜敤鏉ユ樉绀烘枃鏈瓧绗﹀拰琛ㄨ揪寮忕殑鍊笺傝〃杈惧紡锛歄bject.Print锛孫biect鏄璞$殑鍚嶇О锛屽璞″彲浠ユ槸绐椾綋(Form)銆佺珛鍗崇獥鍙(Debug)銆佸浘鐗囨(PictureBox)銆佹墦鍗版満(Printer)绛夈 Print鍏抽敭瀛楀彲浠ョ敤鈥濓紵鈥濋噷浠f浛銆傝〃杈惧紡琛ㄦ槸鏈夎嫢骞茶〃杈惧紡缁勬垚锛屽悇琛ㄨ揪寮...
  • VB涓婂浣鎵撳嵃绐椾綋鎸囧畾浣嶇疆鐨勫唴瀹?
    绛旓細VB鍙互鐢–urrentX銆丆urrentY 灞炴瀹炵幇瀹氫綅鎵撳嵃銆傜敤ScaleMode 灞炴х‘瀹鎵撳嵃鏈瀵硅薄鍧愭爣鐨勫害閲忓崟浣嶃侰urrentX銆丆urrentY 灞炴э紝杩斿洖鎴栬缃笅涓娆℃墦鍗版垨缁樺浘鏂规硶鐨 姘村钩 (CurrentX) 鎴栧瀭鐩 (CurrentY) 鍧愭爣銆係caleMode 灞炴э紝褰撲娇鐢ㄥ浘褰㈡柟娉曟垨璋冩暣鎺т欢浣嶇疆鏃讹紝杩斿洖鎴栬缃竴涓硷紝璇ュ兼寚绀哄璞″潗鏍囩殑搴﹂噺鍗曚綅銆鍏蜂綋...
  • 鎬!鐢╒B瀹炵幇涓涓鎵撳嵃WORD鏂囨。鍔熻兘銆傘傘
    绛旓細VB瀹炵幇鎵撳嵃WORD鏂囨。鍔熻兘鐨勬濊矾濡備笅锛氫竴銆佽璁′竴涓墦鍗版ā鏉挎枃浠讹紝鍦ㄩ渶瑕佸~鍐欐暟鎹殑鍦版柟浣滄爣璁帮紱浜屻佸湪鎵撳嵃鍓嶏紝鍙鍒舵ā鏉挎枃浠跺埌涓涓复鏃舵枃浠讹紝鐒跺悗鎵撳紑姝や复鏃舵ā鏉挎枃浠讹紝鍦ㄦ爣璁板閫氳繃鏇挎崲鍔熻兘濉啓鏁版嵁銆備笁銆佹樉绀烘墦鍗伴夐」瀵硅瘽妗嗭紝杩涜鎵撳嵃杈撳嚭銆備互涓嬫槸绀轰緥婧愪唬鐮侊紝璇蜂笅杞藉弬鑰冿細http://files.7lx.com/data/2010...
  • 扩展阅读:如何一次打印多份文件 ... vba实现自动打印 ... 免费的搜题软件 ... vba实现打印功能 ... vba选择打印机并打印 ... visio打印如何铺满a3 ... 别怕vba其实很简单第三版 ... vb打印代码怎么写 ... vb怎么打出三角形 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网