linkage service服务

来源:互联网 发布:股民信息采集软件 编辑:程序博客网 时间:2024/06/08 17:48
Linkage service

概要

PFC的linkage service帮助你实现主/从窗口合作处理。
Linkage service包括如下功能:

Linkage style(连接风格):控制 从窗口的DataWindow检索数据(从 数据窗口要指定检索参数,不必写pfc_retrieve)、过滤数据(从窗口要编写pfc_retrieve代码)、滚动到特定行(从窗口要编写pfc_retrieve代码)。
retrieve
filter
scroll

Update style(更新风格):控制Linkage service更新DataWindows的方式(top-down, bottom-up, top-down then bottom-up, bottom-up then top-down, or a developer-specified custom update)
更新方式:
topdown (默认)
     从顶级主窗口开始到末级从窗口的顺序进行更新

bottomup
     从末级开始到顶顺序进行更新

topdown-bottomup   (适应于表有外键关系统的 级联的 增加,修改时先保存主再对从的进行保存,删除时先删除从的再删除主的这样不会出现错误)
       第一次更新 从顶级到末级进行insert update ,第二次更新 从末级到顶级 进行delete
bottomup-topdown 
       第一次更新 从末级到顶级 进行delete,第二次更新 从顶级到末级进行insert update

delete style 删除风格:当你删除主纪录时,该选项可以设成删除从纪录、不理会从纪录。
update extend 更新扩展:允许你将其他的控件也作为默认数据保存过程。
Cascading key changes:当用户改变主纪录时,Linkage service会自动修改从纪录

prompt (提醒功能)只有当连接风格为retrieve时,且数据窗口控件必须为可更新时才可用。

数据发生变化时的提醒窗口:当主数据发生变化,从数据即将丢失时,该选项可以显示一个提醒窗口。
删除数据时的提醒窗口:当用户删除数据时可以显示提醒窗口

使用说明
你可以使用Linkage service处理各种DataWindow中的合作。尽管如此,大部分时候都是用于处理主/从关系的DataWindow 。

开启Linkage service:
调用u_dw的of_SetLinkage函数:
dw_emplist.of_SetLinkage(TRUE)
u_dw自动删除所有Service 。

使用Linkage service实现主/从处理:
在主从DataWindow中同时开启Linkage service:
dw_master.of_SetLinkage(TRUE)
dw_detail.of_SetLinkage(TRUE)

为顶级主DataWindow设置事务对象:从窗口会自动使用主数据窗口的事务对象
dw_master.inv_linkage.of_SetTransObject(SQLCA)


将从DataWindow连接到主DataWindow中:
dw_detail.inv_linkage.of_SetMaster(dw_master)

调用函数of_Register注册关联列:
dw_dwtail.inv_linkage.of_Register(”emp_id”,”emp_id”)


调用函数of_SetStyle建立当主数据改变时从数据的动作。

下面的例子说明了当主数据改变时从数据检索数据:
dw_detail.inv_linkage.of_SetStyle(dw_detail.inv_linkage.RETRIEVE)


调用主DataWindow的of_Retrieve函数:
IF dw_master.of_Retrieve()= -1 特Then
MessageBox(”Error”,”Retrieve error”)
Else
Dw_Master.SetFocus()
End if

你可以将以上的代码全部写在一个事件中。
在主DataWindow的pfc_Retrieve事件中添加检索数据的代码:
Return this.Retrieve()




数据改变时的提醒窗口(尽限于retrieval风格)
在从DataWindow中调用of_SetUpdateOnRowChange函数:
dw_detail.inv_linkage.of_SetUpdateOnRowChange(TRUE)     行改变自动更新   
在从Datawindow中调用of_SetConfirmOnRowChange函数
dw_detail.inv_linkage.of_SetConfirmOnRowChange(TRUE)


数据删除时的提醒窗口(尽限于retrieval风格)
在从DataWindow中调用of_SetUpdateOnRowChange函数:
dw_detail.inv_linkage.of_SetUpdateOnRowChange(TRUE)   行改变自动更新   
在从DataWindow中调用of_SetConfirmOnDelete函数
dw_detail.inv_linkage.of_SetConfirmOnDelete(TRUE)   


开启casacding key

在所有关联的DataWindow中调用of_SetSyncOnKeyChange函数
dw_master.inv_linkage.of_SetSyncOnKeyChange(TRUE) 
dw_detail.inv_linkage.of_SetSyncOnKeyChange(TRUE)


设置删除风格:

在主DataWindow中调用函数of_SetDeleteStyle
                                                            .delete_rows
dw_master.inv_linkage.of_SetDeleteStyle(dw_cust.inv_linkage.DISCARD_ROWS)

启用更新扩展:
为其他需要添加到默认保存过程中的控件调用函数of_SetOtherSaveObjects
PowerObject lpo_objs[ ]
// This example adds the lv_salesinfo ListView
// to the save process.
lpo_objs[1] = lv_salesinfo
dw_master.inv_linkage.of_SetOtherSaveObjects(lpo_objs)



 
原创粉丝点击