以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教这个语句有问题吗?怎么我写进表达式生成器就不行呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57041) |
-- 作者:jfmeng -- 发布时间:2014/9/17 10:45:00 -- 请教这个语句有问题吗?怎么我写进表达式生成器就不行呢? 问题如题:
IIF(Parent(学生信息和报名收费).年级 = 7,10,IIF(Parent(学生信息和报名收费).年级 = 1 and Parent(学生信息和报名收费).未足龄 = \'否\'
谢谢 [此贴子已经被作者于2014-9-17 10:51:30编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/9/17 10:54:00 -- 提示什么错? |
-- 作者:czy -- 发布时间:2014/9/17 11:01:00 -- 检查父表年级列是不是数值型 |
-- 作者:jfmeng -- 发布时间:2014/9/17 11:02:00 -- 很奇怪, 这会儿又对了.谢谢 |
-- 作者:jfmeng -- 发布时间:2014/9/17 11:04:00 -- 附带一个问题:为什么表间关联时, 父表和子表总有些字段名不出现呢?
|
-- 作者:有点甜 -- 发布时间:2014/9/17 11:08:00 -- 表达式列是不能做关联字段的。 |
-- 作者:jfmeng -- 发布时间:2014/9/17 16:52:00 -- 哦,谢谢! 再请教一下:
If e.DataCol.Name = "报名日期" Then If e.DataRow.IsNull("报名日期") Then e.DataRow("报名序号") = Nothing Else Dim bh As String = Format(e.DataRow("报名日期"),"yyyyMMdd") \'取得编号的8位前缀 If e.DataRow("报名序号").StartsWith(bh) = False \'如果编号的前8位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(报名序号)","报名日期 = #" & e.DataRow("报名日期") & "# And [报名日期] <> " & e.DataRow("报名日期")) \'取得该天的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(9,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("报名序号") = bh & "-" & Format(idx,"000") End If End If End If
这是帮助里的表事件,按日期自动生成“报名序号”的代码,我根据自己的列名,变更了,但不能自动生成 报名序号呢。请教问题出在哪里。<!--EndFragment--> |
-- 作者:有点甜 -- 发布时间:2014/9/17 16:55:00 -- 回复楼上,你只有修改了报名日期的值,才会重新生成序号的。 |
-- 作者:jfmeng -- 发布时间:2014/9/17 17:01:00 -- 现在改日期了,提示: 运行错误,调用的目标发生了异常。 |
-- 作者:jfmeng -- 发布时间:2014/9/17 17:03:00 -- .NET Framework 版本:2.0.50727.5420 Foxtable 版本:2014.9.16.1 错误所在事件:表,学生信息表,DataColChanged 详细错误信息: 调用的目标发生了异常。 未找到类型“Integer”的公共成员“StartsWith”。 |