如果每个子窗体的 SaveData 过程所做的事情是一样的话,那在基窗体的 OnClose 或者 OnCloseQuery事件
中调用它就行了。
中调用它就行了。
解决方案 »
- 写代码多无聊.
- 如何实现只输入字母的可以索引到所有以该字母开头的汉字
- access插入数据
- 关于SQL Explorer中对DB2数据库进行Delete的SQL语句执行出错的问题!!!
- 编绎器的Build with runtime packages作用
- 招delphi程序员
- 如何获取网页返回的状态,也就是,如何判断 一个网页能否打开?
- 来者给分!两台机器同时录数据,编号为主健,并且自动产生,有可能产生重复!如何避免?
- Delphi中用于手机的JindiSMSControl1 控件的使用
- delphi 2007卸载后再安装,为什么要序列号?
- 我熟悉c/c++,用BCB做过几个小程序,现在想学Delphi
- 不清空目录,就不能把这个目录删掉? 请教?
将保存按扭放在父窗体中,然后父窗体中放入DataSouce控件,主细表和单表需单独定义父窗体,以下是主细表父窗体的Click's code:
if MessageBox(self.handle,'请确认是否保存该单据的修改?','请确认',mb_yesno+mb_iconwarning)=id_no then
abort;
DM.Database1.StartTransaction ;
try
if datasource1.DataSet.State in [dsedit,dsinsert] then
datasource1.DataSet.Post ;
ttable(datasource2.DataSet).applyupdates;
dmdb1.Database1.Commit ;
ttable(datasource2.DataSet).commitupdates;
except
showmessage('保存失败!');
dmdb1.Database1.Rollback ;
datasource1.Edit ;
abort;
end;
方法二:
定义全局函数SaveDate(t_master,t_detail:tTable;D:tDatabase):boolean;
也许我说的不够清楚。我的意思是:每个子窗体的SaveData执行的操作不同,当操作员单击主菜单时,Menu Click中的代码应能根据当前活动的MDIChildFrm的信息自动执行此《活动窗体》的SaveData
if Application.MainForm.MDIChildCount>0 then
(Application.MainForm.ActiveMDIChild as Application.MainForm.ActiveMDIChild.ClassParent).SaveData;