首先说一下父子窗体的关联关系是如何做到的。主窗体和子窗体的数据源具有外键关联关系。所以把子窗体做成菜单再拖拽到主窗体的Design中,就会自动创建关联关系。当然这种动态关联关系可以自己重新定义,这个以后再谈。本文主要介绍如何使新建的行自动生成行号。
第一步,首先给表写一个获取当前最大行号的方法:
public static Line maxLineNum(VYA_CaseNumGrady _caseNumGrady)
{
return (select maxof(LineNum) from VYA_CaseListLine1
where VYA_CaseListLine1.CaseNum == _caseNumGrady).LineNum ;
}
第二步,重写窗体数据源的initValue():
public void initValue()
{
VYA_CaseListLine1.LineNum = VYA_CaseListLine1::maxLineNum(caseListTable1.CaseNum)+1;
super();
}
这样就完成了。但这里涉及到一个很重要的前提,那就是获取主表的外键值。这里涉及到一个很重要的概念,那就是父子窗体的值传递,我们下节再聊。