freeform样式的数据窗口,如何用代码设置某一字段的值?

axiang99 2002-11-04 03:37:09
例:cb_add_rec的代码:
ll_newrow=dw_step.insertrow(dw_step.GetRow())
//自动填写时间字段
dw_step.SetItem(ll_newrow, "CREATION_DATE", NOW())

以上代码运行时提示错误并退出。而当数据窗口的样式为grid时,是可以使用的。:(
为什么呢?
...全文
54 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongquestion 2002-11-06
  • 打赏
  • 举报
回复
PB限制挺多,但刚才那个问题肯定是程序的问题,把代码上传一份,才能判断错误
louisa5155 2002-11-06
  • 打赏
  • 举报
回复
是呀,修改就出错,有时候辛苦做的FREE DW又要重做,好晕
axiang99 2002-11-06
  • 打赏
  • 举报
回复
谢谢大家!我重新做了一个dw,不作任何修改(原来那个改过布局),代码就可以用了.pb是不是经常出这种问题?:(
axiang99 2002-11-06
  • 打赏
  • 举报
回复
代码就那两行:)
axiang99 2002-11-06
  • 打赏
  • 举报
回复
代码就那两行:)
axiang99 2002-11-06
  • 打赏
  • 举报
回复
代码就那两行:)
hyljqr 2002-11-04
  • 打赏
  • 举报
回复
確定"CREATION_DATE"欄位無誤

"CREATION_DATE"的類型是什么
若是string,則要轉換string(now(),'hh:mm:ss:ff')
txchen 2002-11-04
  • 打赏
  • 举报
回复
看一下字段名,如果数据源是连接了多个表,字段名一般为表名+‘_‘+字段名,
当然也可以在数据窗口对象中修改。
iwithyou 2002-11-04
  • 打赏
  • 举报
回复
你的双引号是不是在en下写的??中文下不行。
axiang99 2002-11-04
  • 打赏
  • 举报
回复
真是变态!我重新做了一个数据窗口,不做任何布局上的调整,就可以用了。是pb的 毛病吧?

另外的问题:
freeform数据窗口中的记录移动时(使用按钮以及标准action),如何取得记录某个字段的值?在rowfocuschanged事件中,getitemnumber()好像不行。:(
iwithyou 2002-11-04
  • 打赏
  • 举报
回复
不应该啊。你把代码放到OPEN下面看看。
txchen 2002-11-04
  • 打赏
  • 举报
回复
请贴出13行是哪一行
axiang99 2002-11-04
  • 打赏
  • 举报
回复
试过了,还是不行。:(
iwithyou 2002-11-04
  • 打赏
  • 举报
回复
ll_newrow=dw_step.insertrow(dw_step.GetRow())
改为
ll_newrow=dw_step.insertrow(0)
axiang99 2002-11-04
  • 打赏
  • 举报
回复
字段名没写错。:(
错误信息为:R0006:error: Ivalid datawindow row/column specified at line 13 in clicked event of object cb_add_rec of w_spec.

好像是说字段名什么的错了,可是的确没错啊。:(
txchen 2002-11-04
  • 打赏
  • 举报
回复
是不是字段名称写错了,
我运行没问题,
你能不能把错误信息贴上
数据窗口源码介绍 (举例见d_dbit_example.srd,测试数据库为PB自带的EAS Demo DB V120) 1.第一行:release 12; 数据窗口所属PB的版本号,如果想把高版本的datawindow导入低版本的PB中要修改此数字; 2.datawindow()行 通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header()行 可以整行复制粘贴,并命名为header[1],header[2],这样可以让数据窗口有多个header 4.table()行 这里全是定义的数据属性,是setitem,update,object.data等方法访问的根源 如果存在table()里的column,数据窗口里可以不存在任何对象,仍然可以访问数据窗口数据 如果想创建一个空的数据窗口,可以只定义: release 12; table() 5.table(column行) 是第几个column,它的ID就是多少,其中也定义了是否可以update时和更新到数据表的字段名 6.table(retrieve行) 检索数据时使用的SQL语句,可以通过setsqlselect或modify("table.sqlselect")方法去动态修改 修改后要重新定义数据窗口的更新属性 7.column()行 id即是对应table(column行)里的行次,名称(name)可以随便命名,也可以没有,则默认为table(column行)里的name 8.compute()行 计算列,可以通过表达式计算显示特定(具体函数可以见共享里的画笔函数). 9.text()行 有时可以代替计算列; 通过定义text的表达式,可以实现一列中显示两个字段,注意结果必须要转换成string类型(而column和compute则不行); 10.htmltable()行 按照格式导出(saveas)html文件,为了保证格式的完整,数据窗口的单位最好设置成pixels GenerateCSS='1' //保持格式及颜色 Border='0' //不要table边框 CellSpacing='0' //单元格无间距(此项在界面上经常设置不上) 注: (1)Grid生成标签,Freeform生成
+ 标签; (2)生成htmltable时,不知为何会在CSS中的开始自动加一个分号";",导致excel等浏览器打开不能正常显示格式; (3)band为foreground或background的对象导不出来,可以动态修改后再导出. 11.export.xml()行 定义导出xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate 12.import.xml()行 定义导入xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate 13.表达式介绍 略 14.其它也略

606

社区成员

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

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