以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用专业报表如何取得当前页行、列位置?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12591)

--  作者:xlbull
--  发布时间:2011/9/8 12:04:00
--  [求助]用专业报表如何取得当前页行、列位置?

用专业报表如何取得当前打印页面的行、列位置?

因为 prev.Bottom不是数值型,不能用整数型变量来取值。如何才能获得?  

[此贴子已经被作者于2011-9-8 12:27:15编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/8 12:10:00
--  

http://www.foxtable.com/help/topics/1433.htm

http://www.foxtable.com/help/topics/0447.htm

 


--  作者:xlbull
--  发布时间:2011/9/8 12:30:00
--  
不是表中的位置,是打印页面的坐标位置。因为打印备注型字段后,文字有长有短,无法知道当前所在的位置。
[此贴子已经被作者于2011-9-8 12:36:36编辑过]

--  作者:xlbull
--  发布时间:2011/9/8 12:59:00
--  
图片点击可在新窗口打开查看
--  作者:yangming
--  发布时间:2011/9/8 13:02:00
--  
Dim doc As New PrintDoc \'定义一个报表
Dim
rx As prt.RenderText \'定义一个文本对象
Dim
rm As prt.RenderImage \'定义一个图形队形
Dim
Currow As Row
Dim
tbl As Table = Tables("员工")
For
i as Integer = tbl.TopRow To tbl.BottomRow
    CurRow = tbl.rows(i)

    Dim
rep As New prt.RenderEmpty \'定义一个新的空对象
    rep.BreakBefore = prt.BreakEnum.Page
\'打印前换
    doc.Body.Children.Add(rep )
\'加入到报表中

rx = new prt.RenderText
    rx.Text = CurRow("备注")
    rx.x =
26.5
    rx.y =
76
    rx.Width=
163
    doc.body.Children.Add(rx)

    rm= New prt.RenderImage
    rm.Height =
38
    rm.Width =
34
    rm.Image = GetImage(CurRow(
"照片"))
    rm.x=
149.5
    rm.y =
36
    doc.body.Children.Add(rm)

Next

Doc.Preview()
\'预览报表

--  作者:xlbull
--  发布时间:2011/9/8 14:00:00
--  

如果这个备注很长,到下一页去了,又要在下页的底边加上文字,怎么办?

 


--  作者:狐狸爸爸
--  发布时间:2011/9/8 14:11:00
--  

参考:

http://www.foxtable.com/help/topics/1177.htm

 

例如:

 

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
Dim s As String
s = "新华网绵阳5月16日电(记者孙承斌)16日上午,在四川抗震救灾的"
s = s & "危急时刻,中中央总书?国家主席?中央军委主席锦涛乘飞机赶往四川"
s = s & "省地震灾区,慰问灾区干部群众,看望奋战在抗震救灾第一线的部队官兵?公"
s = s & "安民警和医护人员,指导抗震救灾工作."
rt.Text = "胡涛抵达四川绵阳慰问" \'设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中
rt.Style.FontBold = True \'字体加粗
rt.Style.FontSize = 16 \'字体大小为16磅
doc.Body.Children.Add(rt) \'将文本对象加入到报表
rt = New prt.RenderText \'创建另一个文本对象
rt.Text = s \'设置文本内容
rt.y = "Prev.Bottom + 5" \'设置垂直位置
doc.Body.Children.Add(rt) \'将文本对象加入到报表
doc.Preview() \'预览

 

 


--  作者:xlbull
--  发布时间:2011/9/8 22:40:00
--  
由于备注列中是一篇篇的文章,打印在一页纸上长短不一,又想在页底打印编辑人的姓名,所以中间·的位置不知怎么控制?而且   rt.y = "Prev.Bottom + 5" 中的5可不可以是变量?
--  作者:yangming
--  发布时间:2011/9/8 23:02:00
--  
以下是引用xlbull在2011-9-8 22:40:00的发言:
由于备注列中是一篇篇的文章,打印在一页纸上长短不一,又想在页底打印编辑人的姓名,所以中间·的位置不知怎么控制?而且   rt.y = "Prev.Bottom + 5" 中的5可不可以是变量?

5,可以是变量,比如是窗口上的文本框中输入的值,但是你不会是一篇一篇文件的输入值再打印吧?

 


--  作者:xlbull
--  发布时间:2011/9/9 7:05:00
--  

是一个文件资料库,文章内容放在一个备注型列内,打印时要将作者的姓名打印在此文章最后页的底边,所以想控制页面位置,但又取不到当前文章打印完后所处的位置。

对于 rt.y = "Prev.Bottom + 5",我试了:

k=10

rt.y = "Prev.Bottom + k"

不起作用。

[此贴子已经被作者于2011-9-9 7:08:15编辑过]