5、公式讲解:本系统关键在于子表,主表无任何公式,下面一一讲解子表各公式的作用: 5.1、各列公式:
5.1.1、将[出入选择]列的代码项目写为“请选择|出库|入库”,默认值公式写为“请选择”;(注解:每次新增行后,该列默认为“请选择”;)
5.1.2、将[最后修改]列的刷新公式写为:editlog;(注解:这样该列一旦被改动,将记录最后改动的人和时间;)
5.1.3、将[剩余数量]列的刷新公式写为:[主表!初始数量]+sumfor(gridname,"出入数量","产品名称", "=" ,[产品名称],"出入选择", "=" ,"入库",1,row)-sumfor(gridname,"出入数量","产品名称", "=" ,[产品名称],"出入选择", "=" ,"出库",1,row)+[出入数量]-[出入数量];(注解:该公式用于计算新增一条出入记录时该产品的剩余数量,后半段的+[出入数量]-[出入数量]在数学上没意义的,就是为了[出入数量]列变动时,剩余数量列可以自动刷新。)
5.2、表的公式:
5.2.1、将行预处理公式设置为:SetVariable("%Last_Modify%",[最后修改]);(注解:每次新增行时,变量%Last_Modify%就被赋值为该行的最后修改信息;)
5.2.2、将行验证公式设置为:If([%Last_Modify%]<>[最后修改],RecalcColFor(gridname,"剩余数量","产品名称", "=" ,[产品名称]),true) and If(Text([日期])="" or [出入选择]="请选择" or Text([出入数量])="",MsgBox("请确认日期、出入选择、出入数量都正确填写了!",1,4),true) and If([剩余数量]<=Number(FindText("主表","最低库存","产品名称","=",[产品名称])),MsgBox("本产品的库存量已达到最低标准, 请即使补充哦!",1,4),true);(注解:本公式由三段IF函数组成,第一组IF表示一旦该行被修改,就重新计算该产品的剩余数量;第二组IF表示如果日期没写或出入选择没选或者出入数量没写就弹出提示信息要求写全相关信息;第三组IF表示如果剩余数量小于最底库存了,就提示要求及时补充!)
至此,一套简单的库存流水帐系统的制作已经完成,完全可以实现前面提到的功能需求;
6、总结:本系统关键在于子表,合理地结合使用变量、验证公式、预处理公式将可以定制出各种需求的流水帐系统;