只能打印Datagrid
首先在报表设计器上放足够多的控件
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 longfor 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
首先在报表设计器上放足够多的控件
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 longfor 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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货