如何将DataGrid中的内容打印出来,请各位高手指点,谢谢了

zhaozhongju 2001-12-13 04:27:58
各位:
我在VB6.0下连接SQLServer2000数据库,查出的结果放在DataGrid中,现在我要将DataGrid中的内容打印出来,不知该如何解决,请各位高手指点迷津,谢谢了
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisbjing 2002-01-29
  • 打赏
  • 举报
回复
本人在网上漫游过程中,发现了一个问题, 为什幺各个网站都说能为你赚到很多钱呢? 就连读一封E-mail点几回广告栏都能挣到钱? 难以置信,天下哪有免费的午餐?(后来才弄清是广告商买单), 可呆着实在是无聊啊,反正闲着也是闲着,比网上闲聊强的多。 找了一个不要身份证,不要会员费, 只要有
个地址,电话号码就能挣到钱的网站, 申请成了会员……(反正挣不到钱也不会吃亏,哼!) 等了一个月,两个月…… 什幺汇款单?连个影子都没有!不过一想,无所谓了,反正也没吃亏! 就当是鬼迷心窍一回吧!哈哈! 可一直到了3个月…… 突然,汇款单到了!不看不知道,一看吓一跳! 9百多美金?折合人民币不就是7千多了吗? 半信半疑,到了银行,交了几十元的手续费,换回了7千多! 真像做梦一样……买了一些一直想买的东东。 兴奋之余,又开始了我的宣传,宣传越多,挣的越多吗? 果然,不到一个月,又飞来了一张单子! 1千3百多美金……真是难以置信! 又过了一个月上涨到了2千4百多美金。所以,事情往往是发生 在想信当中 ,反正也没有亏可吃嘛。 如今,不用上班也有钱花了,真是乐哉乐哉! 你不信?那没办法!只可惜你自己不愿赚这份钱了。 不过,古人云:“宁可信其有,不可信其无”啊! 反正也不吃亏,就当疯一回试试看嘛! 相信我,没错的!(点击一次5美分,折合人民币0.4元多) 加入方法很简单的哦: http://208.32.133.14/?m=2076966(中间没有空格) 进入上面网站(如若点击不成,复制、粘贴到地址栏) 打开网页,点击右上方clickhere活动图标, 或点击蓝色FREESign-uppage字样也可! 然后,跟着提示,一步一步输入信息就ok了。 值得高兴的是它能识别中文信息,而能100%加入! 下面是我为了方便大家的加入详细说明了加入过程中的细节 Firstname*:名字(例:静) LastName*:姓(例:李) CompanyName:可不填 StreetAddress*:家庭住址:(一定要详细填写,不然收不到汇款单喽!) 例:广东省广州市**地方 City*:城市名(例:QingDao 英文填写青岛) State*:可不填 Zip*:邮编(填000000)Country*:国家(选china) Phone*:电话号码(国家代码86+去掉区位号前0的电话号码) 例:020-84079030→86-20-84079030) Fax:可不填E-mail*:电子信箱(所有的交流都通过信箱传递,所以务必填写正确) ConfirmE-mail*:再次输入信箱地址****** Yearofbirth*:出生年例:1970、1980 Gender*:性别Male(男),Femaie(女) Password*:密码(6位以上), ConfirmPassword:确认密码(必须与上相同) howdoyouwanttoreceivecommissionsthatyouearn? 以什幺形式接收礼品? giftcertificates(double$$)奖品*cash现金 如要奖品能收到双倍价格的东西, 但都是一些英文版的书籍、磁带、光盘等,对于中国人来说,还是选择现金比较合算些,请选择cash doyouwanttobenotifiedwhenyourreferralssingup? 加入会员成功时通知你吗?选yes 下一栏,请选择自己的爱好或兴趣(最多可选10种) Submit点击它屏幕上就会出现thankyou的字样 同时你的ID(用户名数字)和密码也会出现在屏幕上 记住它,加入完毕,一切ok了!恭喜发财! 然后,5分钟之内你会收到一封欢迎信!. 宣传方法: http://208.32.133.14/?m=20776966(中间没有空格)先介绍给你的亲朋好友们 然后,到各个网站的留言板中,把上面的内容全部复制、粘贴进去!只要有人点。你就可以挣钱了!多好啊!
hhfh 2002-01-29
  • 打赏
  • 举报
回复
num代表打印的行
index代表打印的列
hhfh 2002-01-29
  • 打赏
  • 举报
回复
private sub form_load()
Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器名"

Adodc1.RecordSource = "SELECT * FROM table"
Adodc1.Refresh
DataGrid1_Refresh
end sub


private sub command1_click()
RowHeight = 200
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
CommonDialog1.ShowPrinter

For Num = 0 To Adodc1.Recordset.RecordCount - 1
DataGrid1.Row = Num

For Index = 0 To 24
DataGrid1.Col = Index
PrintText DataGrid1.Text, LeftStart + 160 + Lblwidth + Index * 800, TopStart + 1100 + (RowHeight + 200) * (Num + 3.7)
Next
Next
Printer.EndDoc
ErrHandler:
end sub

Sub PrintFont(tName As String, nSize As Integer, bBold As Boolean, bUnderline As Boolean, bItalic As Boolean)
Printer.FontName = tName
Printer.FontSize = nSize
Printer.FontBold = bBold
Printer.FontUnderline = bUnderline
Printer.FontItalic = bItalic
End Sub

Sub PrintText(tText As String, tx As Integer, ty As Integer)
Printer.CurrentX = tx
Printer.CurrentY = ty
Printer.Print tText
End Sub

Sub DataGrid1_Refresh()

DataGrid1.Columns(0).Width = 1300
DataGrid1.Columns(1).Width = 1000
DataGrid1.Columns(0).Caption = "文件ID"
DataGrid1.Columns(1).Caption = "分类"
end sub
nixinyi 2002-01-29
  • 打赏
  • 举报
回复
关注
Richard2001 2002-01-29
  • 打赏
  • 举报
回复
下面是一个简单的预览和打印功能例子:
你在Form中间加一个PictureBox,设Appearance=0,大小比例与一张打印纸相似。
再加两个按钮:“预览“(Preview)和“打印“(Print)按钮。

你用DataGrid的内容换掉以下的打印内容,自已可以做一个预览和打印功能了:

Sub SetData(obj As Object)
If TypeOf obj Is Picture Then
obj.Cls
End If

On Error GoTo exit_data

Dim CX, CY, i, curY, curX
Dim StepRow, lColor, adjRowHeight, iBottomRight

lColor = obj.ForeColor
'首行显示公司名称
CX = 4
obj.Font.Bold = False
obj.Font.Size = 9
obj.CurrentY = CX
obj.CurrentX = obj.Width / 2 - obj.TextWidth("地球")
'obj.ForeColor = RGB(256, 0, 0)
obj.Print "地球公司"
StepRow = obj.TextHeight("A")
'标题
CX = CX + StepRow
obj.Font.Bold = True
obj.Font.Size = 2 * 9
obj.CurrentY = CX
obj.CurrentX = obj.Width / 2 - obj.TextWidth("存款")
obj.ForeColor = RGB(256, 0, 0) '红色
obj.Print "存款单据"
StepRow = obj.TextHeight("A")
'首部信息第一行
obj.ForeColor = lColor '恢复
CX = CX + StepRow
obj.Font.Bold = False
obj.Font.Size = 9
obj.CurrentY = CX: obj.CurrentX = 150
obj.Print "左"
obj.CurrentY = CX: obj.CurrentX = obj.Width / 2 - obj.TextWidth("中") / 2
obj.Print "中"
obj.CurrentY = CX: obj.CurrentX = obj.ScaleWidth - 150 - obj.TextWidth("右")
obj.Print "右"


'=================画行线=================
curY = CX + StepRow: curX = 150

For i = 1 To 5
If i = 1 Then
obj.DrawWidth = 2
Else
obj.DrawWidth = 1
End If
obj.Line (curX, curY)-(obj.ScaleWidth - 150, curY)
iBottomRight = curY
'~~~~~
adjRowHeight = obj.TextHeight("A") + 3
curY = curY + adjRowHeight + 4
Next

'=============画竖线=================
curY = CX + StepRow: curX = 150
For i = 1 To 2
obj.DrawWidth = 1
obj.Line (curX, curY)-(curX, iBottomRight)
curX = curX + obj.Width / 2 - obj.TextWidth("中") / 2
Next
obj.Line (obj.ScaleWidth - 150, curY)-(obj.ScaleWidth - 150, iBottomRight)

'==============打印数据==================
Dim str
str = "打印数据"
curY = CX + StepRow + ((adjRowHeight + 4) / 2) - obj.TextHeight("A") / 2
curX = (150 + obj.Width / 2) / 2 - obj.TextWidth(str) / 2
obj.CurrentY = curY
obj.CurrentX = curX
obj.Print str

'...

Exit Sub

exit_data:
MsgBox Error
Exit Sub
End Sub

Private Sub Preview_Click()
SetData Pic
End Sub

Private Sub Print_Click()
SetData Printer
Printer.EndDoc
End Sub
playyuer 2002-01-29
  • 打赏
  • 举报
回复
http://microinfo.top263.net/Zip/DatGrdRpt.zip

欢迎下载 DataGrid 打印解决方案 (www.playyuer.com 提供)
http://www.csdn.net/oldexpert/TopicView.asp?id=125441&table=200101
zhaozhongju 2002-01-29
  • 打赏
  • 举报
回复
怎么再没有回答的了呢???
dbcontrols 2001-12-13
  • 打赏
  • 举报
回复
把DataGrid数据源的查询语句用于数据报表.
http://www.wzjcw.net/vbgood/taishan/index.html有个打印报表的例子.

7,755

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧