1.DataGrid.row=DataGrid.rows-1
DataGrid.col=1
这样就定位在所填加行的第二列上了.
2.打印DataGrid的内容,可以借用水晶报表控件,(VB的安装碟中有)它可以真接跟数据源邦定.如果你的数据很规则,用它很好实现.VB本身的打印功能不强,必要时借助第三方控件.
DataGrid.col=1
这样就定位在所填加行的第二列上了.
2.打印DataGrid的内容,可以借用水晶报表控件,(VB的安装碟中有)它可以真接跟数据源邦定.如果你的数据很规则,用它很好实现.VB本身的打印功能不强,必要时借助第三方控件.
解决方案 »
- 我用Vb写的串口通信程序,在有信号或无信号时都正常,当对方信号较弱时,会收到一些乱码,程序会停止运行,定时器也不动了??
- 既然可以set form1 = nothing ,那还要unload form1 有什么用呢?
- 请问一个在A3纸上打印的问题,解决了马上结贴,欢迎大家加入,谢谢
- 这个问题困难极了!
- ■■■■■■■■■■■■modem编程问题
- 关于用VB编写驱动HP打印机打印当前页的程序
- 有关刷新问题!谢谢!好久了,一直都没有解决!!
- 程序使用ADO2.0打包时需要哪些文件才可在一台没装vb的机器上运行,用vb的打包工具,和setupbuild都不成功,
- 关于怎么判断局域网中的两台电脑网络是连通的还是断开???
- 各位大侠,我听说在自己程序中定义自定义的越键,但我不知道怎么定,特请教,最后有一个源代码给我看,这样我会了解得更快!
- MSFlexGrid控件的一个问题
- 菜鸟送分了!(报表打印问题)
DataGrid.col属性可以取得或设置DataGrid的当前列。
你可以通过这两个属性定位DataGrid的当前网格,
定位之后可以通过DataGrid.EditActive=true使光标显示在当前网格。至于打印,我想不到什么比较好的方法。我的经验总结大致可以通过以下几种方法:
1、是楼上的方法,借助第三方控件或VB自带的DataReport进行打印及预览。
2、是打印前调整DataGrid及窗体的外观(比如将窗体背景色改为白色),隐藏其他控件,然后调用Form.printform方法,打印完成后恢复,或通过一个隐藏的窗体进行打印(在隐藏窗体中放置DataGrid的复制,打印时该窗体只Load不显示)。
3、自己控制打印,也就是根据你所需要的数据自己向Printer画线(Printer.Line)、写字(Printer.Print),这种方法的好处是比较随心所欲,打印出来的效果也比第二种好,但比较麻烦(我用这种比较多)。
首先在报表设计器上放足够多的控件
1.在页标头中放足够多的Label
将页标头命名为 Head
以Label0.Label1.....Label99这样命名
2.在页细节中放足够多的Text
将页细节命名为 Bord
以Text0.Text1.....Text99这样命名
public Print_Custon(byval grid as datagrid,byval rs as adodb.recordset)
dim xs as double
dim countwidth as double
dim colwidth as double
dim i as long
dim j as long
for i = 0 to grid.columns.count - 1
countwidth =grid.columns(i).width +countwidth
next i
xs = countwidth /567/你的报表的宽度 '(把Datagrid的各个列的宽度累计并且换算成厘米,而xs则是你的datagrid和报表的比例)
with Report
for i = 0 to grid.columns.count-1
.section( "Head ").control( "Label " & i).caption=grid.columns(i).caption
.section( "Head ").control( "Label " & i).visible=grid.columns(i).visible
.section( "Bord ").control( "Text " & i).visible=grid.columns(i).visible
if grid.columns(i).visible and grid.columns(i).width >0 then
'如果有未显示的列或列的宽度 <0则不显示
j = i
.section( "Head ").control( "Label " & i).left=colwidth
.section( "Bord ").control( "Text " & i).left=colwidth
.section( "Head ").control( "Label " & i).width=grid.columns(i).width / xs
.section( "Bord ").control( "Text " & i).width=grid.columns(i).width / xs
.section( "Bord ").control( "Text " & i).datafield=grid.columns(i).datafield
colwidth = colwidth +.section( "Head ").control( "Label " & i).width
else
'如果有未显示的列或列的宽度 <0则把它对应的TEXT的数据字段赋值为前面显示的列的数据字段
.section( "Bord ").control( "Text " & i).datafield=grid.columns(j).datafield
end if
next i
set .datasource =rs
.show
end with
以上代码来自: SourceCode Explorer(源代码数据库)
复制时间: 2002-06-02 22:17:57
当前版本: 1.0.700
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: [email protected]
QQ: 9181729
上面的code来自本论坛的f@Q!!!!!