急,400分求教大家一个问题,不够再加!

leonleo 2003-12-25 09:07:19
最近我在做一个小型的数据库,用的是VB6.0+sql2000,现在各个主要模块都已经完成了,但是我需要把DataGrid中的数据表打印出来.具体的要求是这样的:用打印机打印之前需要给出打印预览的画面(打印预览的画面与最后用打印机打出的画面一致),然后把预览画面打印在A4纸上.
请给位大虾给出一个详细的说明,最好是有实际的例子!如果有用,加倍送分
...全文
37 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwzhu666 2003-12-30
  • 打赏
  • 举报
回复
我用的是delphi开发工具的,又打印预览这一个内容的所以我
....
vileboy 2003-12-30
  • 打赏
  • 举报
回复
给你我的代码,可能没有用,你参考下。
Dim intI As Integer

If mRst.State = adStateOpen Then
With rptOp_orderPlan
Set .DataSource = mRst
.DataMember = ""
.Orientation = rptOrientLandscape
.LeftMargin = 10 '左边距
.RightMargin = 10 '右边距
.Sections("section4").Controls("labbegin").Caption = txtBegin
.Sections("section4").Controls("labend").Caption = txtEnd

'设置标签和文本框
For intI = 0 To mRst.Fields.Count - 1 '
.Sections("section1").KeepTogether = True '防止一条记录被分开打印
.Sections("section1").Controls("text" & Trim(str(intI + 1))).DataField = mRst.Fields(intI).Name
.Sections("section1").Controls("text" & Trim(str(intI + 1))).Alignment = 2
.Sections("section1").Controls("text" & Trim(str(intI + 1))).CanGrow = True
.Sections("section1").Controls("text" & Trim(str(intI + 1))).Top = 100
Next
.Sections("section5").Controls("funCount").DataField = mRst.Fields(0).Name
.Show
End With

End If
demon1999 2003-12-29
  • 打赏
  • 举报
回复
再 UP一下
Rotaxe 2003-12-29
  • 打赏
  • 举报
回复
参考一下这个例子
\Program Files\Microsoft Visual Studio\MSDN98\98VS\1033\samples\VB98\DataRept
leonleo 2003-12-29
  • 打赏
  • 举报
回复
再 UP一下
Rotaxe 2003-12-27
  • 打赏
  • 举报
回复
好像没有什么办法,可以用别的控件
leonleo 2003-12-27
  • 打赏
  • 举报
回复
给位有没有解决上面第二个问题的办法?
拜托了!!!
Jianli2004 2003-12-27
  • 打赏
  • 举报
回复
设置DataGrid宽度,手动滚动
erigido 2003-12-27
  • 打赏
  • 举报
回复
crystal Report
Rotaxe 2003-12-27
  • 打赏
  • 举报
回复
msdn里有很详细的说明和例子
leonleo 2003-12-27
  • 打赏
  • 举报
回复
请问一下有没有比较详细的关于DataReport的使用说明
jiangchuandong 2003-12-26
  • 打赏
  • 举报
回复
我觉得输入到excel里是最方便的了
http://expert.csdn.net/Expert/topic/1819/1819831.xml?temp=.707638
victorycyz 2003-12-26
  • 打赏
  • 举报
回复
推荐第三方控件:activereport,功能强大。
leonleo 2003-12-26
  • 打赏
  • 举报
回复
自己UP一下
zjcxc 2003-12-26
  • 打赏
  • 举报
回复
推荐控件,对于数据统计和打印特别有效:
vsflexgrid+vsprint
Rotaxe 2003-12-26
  • 打赏
  • 举报
回复
1:大致这样
dim rs as adodb.recordset
dim conn as new adodb.connection
conn.connectionstring=""
conn.open
set rs=conn.execute"select sum(avg) from emp"
text1.text1=rs(0)
leonleo 2003-12-26
  • 打赏
  • 举报
回复
多谢各位的指教,你们提出的方法我去试一下,解决了问题以后马上结贴.不过现在还有一个问题需要请教:
1。现在我需要统计数据表中的各项数据,例如:要把select sum(avg) from emp 语句得出的数据放到一个窗口的text中,这要怎么样实现呢?我想不通的地方就是这条语句似乎只有操作数据库的功能,而不会像函数一样有返回值
2。一个界面问题。我用DataGrid 制作出的数据表,如果列的数目较多时,这个表格的下面就会出现一个滚动条,当我把这个滚动条拉到最右边的时候,会出现一大块的空白处,这很影响程序的美观。可不可以把滚动条拉到最右边的时候刚好可以到数据表的最后一列?
UP
Rotaxe 2003-12-25
  • 打赏
  • 举报
回复
用VB6.0的Data Report 就可以,功能没有crystal Report强,但简单好用,作简单的报表基本不用编码。
WhoseSoft 2003-12-25
  • 打赏
  • 举报
回复
没用过VB6.0,直接学的VB.NET,在vb.net里用水晶报表很方便的,vb6.0没有水晶报表吗-
我不知道,帮你顶顶,
txlicenhe 2003-12-25
  • 打赏
  • 举报
回复
用crystal Report

If Me.GridM.ApproxCount = 0 Then Exit Sub
With Me.CryReport
.WindowState = crptMaximized
.WindowShowPrintSetupBtn = True
.Connect = "连接字串"
.ReportFileName = App.path & "\Report\rpt1.rpt"
.SQLQuery = "select ..."
.PrintReport
End With

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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