hur.cn - 华软网

 热门搜索

每个事件后面的参数代表什么意思??????

  作者:未知    来源:网络    更新时间:2019/1/5
例如:
DW的itemchanged事件里有(long row, dwobject dwo,string date)
是否是可前往的值,但详细又指那些呢???????????
例如这个string date??
------华软网友回答------
建议看帮助
------华软网友回复------
ItemChanged Event 
----DataWindow ITEMCHANGED 事 件 可 以 有 几 种 不 同 的 操 作: 接 受 前 一 字 段 的 新 值, 因 有 错 误 而 拒 绝 接 受 新 值, 拒 绝 新 值 但 是 继 续 其 它 的 处 理 过 程。 这 些 值 如 下: 

----0 接 受 新 的 数 据 值。( 缺 省) 

----1 拒 绝 新 的 数 据 值。( 启 动ItemEr-ror 事 件) 

----2 拒 绝 新 的 数 据 值 但 是 焦 点 改 变。 

---- 在ITEMCHANGED 事 件 中 使 用SetAction-Code 函 数 可 以 进 行 多 字 段 的 交 叉 确 认。 例 如, 银 行 系 统 中 为 确 认Account Status 是 否 可 以 转 为Inactive, 就 需 检 验Balance 字 段 是 否 为 零: 

----//ItemChanged Event 

----Decimal (2) ld_balance //Customer Account Balance 

----Long ll_currow // Current Row Number 

----String ls_column_name //The name of the column that changed 

----String ls_status //Customer Account Status 

----ll_currow=this.GetRow() 

----ls_column_name=this.GetColumnName() 

----CHOOSE CASE ls_column_name 

----... 

----... 

----CASE "STATUS" 

----ls_status=this.GetText() 

----//If STATUS is Inactive 

----IF ls_status= "I" THEN 

---- ld_balance=this.GetItemDecimal (ll_currow,"BALANCE") 

----IF ld_balance < >0 THEN 

----//SET AN ERROR 

----this.SetActionCode(1) 

----RETURN 

----ELSE 

----//ACCERT THE VALUE 

----this.SetActionCode(0) /* not required since 0 is default */ 

----RETURN 

----END IF 

----END IF 

----END CHOOSE 

---- 在 程 序 中,SetActionCode 函 数 不 一 定 要 在 最 后 一 行, 但 是 由 于 其 他DataWindow 函 数 可 能 会 重 置 动 作 码。 为 了 避 免 这 个 问 题, 一 般 在SetActionCode 后 面 立 即 执 行Re-turn 结 束 这 个 程 序 段。 

---- 在ITEMCHANGED 事 件 中 使 用SetAc-tionCode 函 数 用 途 是 可 以 给 该 字 段 一 个 新 值, 而 不 是 用 户 输 入 的 那 样。 例 如: 用 户 将 日 期 输 入 为 星 期 日, 但 是 我 们 希 望 将 其 改 为 在 此 之 后 的 第 一 个 非 休 息 日。 实 现 这 一 功 能 并 不 像 想 象 的 那 样 简 单: 

----//ItemChanged Event 

----date ldt_process //process date 

----long ll_currow // Current Row Number 

----string ls_column_name // The name of the column that changed 

----ll_currow=this.GetRow() 

----ls_column_name=this.GetColumnName() 

----CHOOSE CASE ls_column_name 

----... 

----... 

----CASE "process_date" 

----ldt_process=f_get_next_bus_date(date(this.GetText())) 

---- 错 误 this.SetText(ldt_process) 

----this.AcceptText() 

----... 

---- 执 行 上 述 代 码, 系 统 将 进 入 死 循 环。 因 为 用AcceptText 函 数 改 变 日 期 的 同 时, 也 触 发ITE MCHANGED 事 件, 只 是 当 前 列 仍 在process-data 列 上, 这 样 就 导 致 堆 栈 溢 出。 因 此 在ITEMCHANG ED 事 件 中 不 能 使 用Ac-ceptText 函 数, 应 使 用 我 们 这 里 介 绍 的Se-tActionCode 这 一 函 数 来 完 成 这 一 功 能: 

----CASE "process_date" 

---- ldt_process=f_get_next_bus_date(date(this.GetText())) 

---- 正 确 this.SetItemText(ll_currow,"process_date",ldt_process)//set value i n buffer 

---- this.SetActionCode(2) // reject edit control value 

----RETURN 

---- 在Primary!Buffer 中 将process_date 的 值 置 为ldt_process,SetActionCode(2) 摒 弃 用 户 在edit 控 件 中 输 入 的 值( 星 期 日), 并 允 许 改 变 焦 点( 没 有 错 误 发 生)。 

------华软网友回复------
看看基础的东西!再看看帮助资料!
------华软网友回复------
从小做起
------华软网友回复------
mark,这个还真不知道 怎么查帮助,希望高手指教了。
------华软网友回复------
...
------华软网友回复------
F1
------华软网友回复------
sdhylj(青锋--SS) ( ) 信誉:100    Blog 
输什么关头字查找?
------华软网友回复------
联机帮助我会看
如果能很好理解我就不会问啦
其实只需你们点化一下,讲授一下,很多东西很快就会懂的
------华软网友回复------
再顶一下
------华软网友回复------
就是当dw中的某一行某一列的值发生改变时触发的事件      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。