Foxtable(狐表)用户栏目专家坐堂 → 数据能否从其它列取值?


数据能否从其它列取值?
选择项
输入
您还未登录,不能参与。 [ 参与人数 0 人 截止时间:2039/5/10 10:41:00 | 查看参与用户]
您需要达到所设定的数值才能参与:文章 0 积分 0 魅力 0 金钱 0 威望 0
  共有16285人关注过本帖树形打印复制链接

主题:数据能否从其它列取值?

帅哥哟,离线,有人找我吗?
cjguan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:9 积分:218 威望:0 精华:0 注册:2011/5/24 22:36:00
数据能否从其它列取值?  发帖心情 Post By:2011/12/24 10:41:00 [只看该作者]

我的表中有三个字段,起始日期,起始年,起始月。起始年和起始月的值取自起始日期,能否让其自动生成?谢谢!

或者在报表设计中能否用什么函数将起始年和起始月从起始日期中取出来?

[此贴子已经被作者于2011-12-24 10:45:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/24 11:01:00 [只看该作者]

 

Dim d As Date = #12/31/2007#
Output.Show(d
.Year
)

 

你在命令窗口试试,这样得到的结果


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/24 11:01:00 [只看该作者]

如果不懂写法再提.

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/12/24 11:02:00 [只看该作者]

表属性:

DataColChanged事件中代码:

 

If e.DataCol.Name = "起始日期" Then '如果更改的是起始日期列
    If e.DataRow.IsNull("起始日期") Then '起始日期是否为空
        e.DataRow("年") = Nothing '如果为空,则清除年
        e.DataRow("月") = Nothing '如果为空,则清除月
    Else
        '否则从起始日期列中提取年和月
        e.DataRow("年") = e.DataRow("起始日期").Year
        e.DataRow("月") = e.DataRow("起始日期").Month
    End If
End If


 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/12/24 11:10:00 [只看该作者]

也可以不用在表中列出年和月的列,只要报表中打印出来,下面随便做了一个示例,你放到窗口中的按钮中打印一下就知道了

Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
Dim rx As New prt.RenderText '定义一个文本对象
Dim CurRow As Row = Tables("表A").Current
'加入标题
rx.text = "员工资料卡"
rx.Style.FontBold = True '字体加粗
rx.Style.FontSize = 16 '大体大小为16磅
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
rx.Style.Spacing.Bottom = 3 '和下面的对象(表格)距离3毫米
doc.Body.Children.Add(rx) '加入到报表中
'指定行数?列数?列宽?行高
rt.Rows.Count = 7 '设置总行数
rt.Cols.Count = 5 '设置总列数
rt.Height = 80 '设置表格的高度为80毫米
rt.Rows(6).Height = 40 '设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行
rt.Cols(0).Width = 24 '设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列)
rt.Cols(1).Width = 35
rt.Cols(2).Width = 24
rt.Cols(3).Width = 40
rt.Cells(0,0).Text= "起始日期"
rt.Cells(0,1).Text = CurRow("起始日期")
rt.Cells(1,0).Text= "年"
rt.Cells(1,1).Text = CurRow("起始日期").Year

rt.Cells(1,2).Text= "月"
rt.Cells(1,3).Text = CurRow("起始日期").Month
doc.Body.Children.Add(rt) '将表格对象加入到报表中
Doc.Preview() '预览


 回到顶部
帅哥哟,离线,有人找我吗?
jxkqf
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:7463 威望:0 精华:0 注册:2009/9/7 10:55:00
  发帖心情 Post By:2011/12/24 22:04:00 [只看该作者]

杨版之热情、敬业 

令人感动!!!!


 回到顶部
帅哥哟,离线,有人找我吗?
cjguan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:9 积分:218 威望:0 精华:0 注册:2011/5/24 22:36:00
  发帖心情 Post By:2011/12/24 22:26:00 [只看该作者]

谢谢热心指导。不过我在提问中没有表达清楚。起始日期字段是文本,如20101224,不是日期格式,最好是在报表中用函数取起始日期的前四位成为起始年,等。我不知应该怎么写?请指点。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/12/24 23:23:00 [只看该作者]

五楼的代码的这几句改成这样就可以了,看红字部分

 

rt.Cells(1,0).Text= "年"
rt.Cells(1,1).Text = Left(CurRow("起始日期"),4)
rt.Cells(1,2).Text= "月"
rt.Cells(1,3).Text =Mid(CurRow("起始日期"),5,2)


 回到顶部