报表打印问题,难!!!

iwin 2000-09-05 07:02:00
有谁知道如何实现套打效果,即已经有现成的表格纸张,要在上面的空白位置定位打印。

1、我想实现在预览时能看到表格线和其它已有的标题,这样能看到打印后总的效果,但真正打印时却不把它打印出来。

2、打印的内容不能超出空白的位置范围

3、我还想实现让用户选择要打印的内容和位置(在同一张纸的版面上)
...全文
279 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-09-07
  • 打赏
  • 举报
回复
1: 通过设置线的visible来显示或者隐藏表格线

private sub SetLinesVisible(byval State as boolean)

dim st as Section
for each st in Sections
dim c as object
for each c in st.controls
if typeof c is DDActiveReports.line then
c.visible = State
end if
next
next
end sub
0xFFCD 2000-09-07
  • 打赏
  • 举报
回复
我建议你去http://lovevb.2699.com,里面有几种方法和控件,要么你去usevb.yeah.net去看看
iwin 2000-09-07
  • 打赏
  • 举报
回复
各位高手,能否给出具体的实现代码?
iwin 2000-09-06
  • 打赏
  • 举报
回复
4_eye_cat:
我是一个vb初学者,能否把你的详细代码E给我
lty 2000-09-06
  • 打赏
  • 举报
回复
换算一下打印的坐标,可以是精确的物理尺寸。
显示预览的底线不送打印机不就成了。
用标签显示待打印的文本,用鼠标拖放定位就行了。
4_Eye_Cat 2000-09-06
  • 打赏
  • 举报
回复
用PICBOX可以实现1、2,但是3相对比较...
我现在的手提上没有完整的源码,所以1没给完整的例程,2也是以前写的,如果你能想到比较好的方法就MAIL会我一个咯。

====不在乎加分,在乎交流======== hehe ! //hand

对于1,我是这样做的:设置一个SUB打印原表单,用另一个SUB处理数据打印
e.g.
sub Export(PrnObj as obj)
if obj is picture then DrawBox
PrnData
if not (obj is picture) then obj.enddoc
end sub

对于2:
Sub OutTextA(pObject As Object, ByVal Xstart As Single, Optional ByVal Xend As Single = -1, Optional ByVal pY As Single = 0, Optional ByVal pFont As String = "宋体", Optional ByVal pFONTSIZE As Single = 9.5, Optional pString, Optional pBold As Boolean = False, Optional pItalic As Boolean = False, Optional pUnderline As Boolean = False, Optional Station As Integer = -1)
Dim X As Single, tw As Single, w As Single
Xstart = Xstart + 0.7
Xend = Xend - 0.5
If Xend = -1 Then Station = -1
pObject.CurrentY = pY
DoEvents
pObject.FontUnderline = pUnderline
pObject.FontItalic = pItalic
pObject.FontBold = pBold
pObject.FontSize = pFONTSIZE
pObject.Font = pFont
pObject.FontSize = pFONTSIZE
tw = pObject.TextWidth(pString)
w = Abs(Xend - Xstart)
Do While tw >= w
pObject.FontSize = pObject.FontSize - 1
pObject.CurrentY = pObject.CurrentY + 0.2
tw = pObject.TextWidth(pString)
Loop
Select Case Station
Case -1
pObject.CurrentX = Xstart
Case 0
pObject.CurrentX = Xstart + (w - tw) / 2
Case 1
pObject.CurrentX = Xend - tw
End Select
pObject.Print pString
End Sub
Un1 2000-09-06
  • 打赏
  • 举报
回复
使用activereport应该可以控制到
xiangood 2000-09-06
  • 打赏
  • 举报
回复
用水晶报表可以完成。不过你要自己找这东西。呵呵....
iwin 2000-09-06
  • 打赏
  • 举报
回复
unl:
能给我一份详细例子吗?因为我很菜:-),拜托了!!!


809

社区成员

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

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