|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
需求:客户需要在到货单参照订单时带出存货的默认仓库,以提高软件易用性,而U6本身不支持这个功能,到货单参照订单时到货单仓库表体会为空。
分析:
表:AA_ColumnDic 这个表记录的是U6所有单据及列表的列信息,由于U6是个庞大的软件,当业务逻辑发生变化时不可能依次去修改所有SELECT
后面的列名,所以需要把列名统一在这个表中进行维护,用cKey列加以区分,例如:定义某单据类型为Demo(以后简称该单据为Demo),就要添加N
多cKey等于Demo的记录,如果Demo增加了某个属性,比如金额(表中对应列名:JinE),则不需要修改代码,只要在这个表中添加一条cKey等于Demo,
cFld为“JinE”的记录,那么在软件所有的SELECT ... FROM DemoTable的地方,都会多SELECT一列JinE。
视图:最终软件中显示出的数据多半不是直接对表进行查询生成的,往往要把某类具有高度“复用性”的查询语句抽象成视图,提高软件质量和运行
效率。比如参照采购订单的那个订单列表就属于此类数据。经过对数据库视图进行分析,很显然这个"copypolist"就是这个视图了,不信select一下看看。
因为凡是大企业做开发对命名的要求都是很严格规范的,copy就是“复制”,po就是“订单”,list就是“列表”了。(那copypplist呢?自己研究吧,O(∩_∩)O哈哈~)
那这表和视图是怎么联动的呢?大家查一下AA_ColumnDic 表就会发现一个奇怪的问题,很多列名后面带了两个@@,自己对比观察,发现这些列正好
跟目标单据类型的列是对应的,那么姑且可以下个结论:在参照生单时,U6是用@@符号在做为生单传递数据标记。
下面让我们开始吧。。。。。Let'S GO~~!
步骤:
1、修改copypolist视图,在这个视图中Left join warehouse on warehouse.cWhCode=Inventory.cDefWarehouse
2、在copypolist的SELECT后面加上warehouse.cWhCode和warehouse.cWhName这样订单这个数据源就被我们DIY上了存货默认仓库的名称和编码了
3、添加生单中取列名的AA_ColumnDic 记录,采购订单生成到货单列表的cKey是pu_cgddtocgdhd(采购_采购订单吐采购到货单~~!雷人吧?)
cFld别忘了cWhCode后面的@@,还有cWhName@@和copypolist的列相对应啊~最后是cQryField的值,既然是对copypolist进行查询,就仿照其他
记录写个copypolist.cWhCode和copypolist.cWhName吧
4、执行脚本。
5、做好订单,设好存货默认仓库,设到货单模板表体中仓库为可见项
6、进入到货单,点参照,然后点设置,发现什么没?多出了两行栏目选项,就是刚才设置的存货默认仓库名称和默认仓库编码,选中,点“系统默认”
重置一下AA_ColumnSet表,确定退出。
7、退出到货单重进
8、参照生单,仓库带出来了吧?哈哈,庆祝一下。
哎~~~~~~大半夜写了这么多,累死我了,大家要帮顶啊~~~~!
回复可看完整脚本文件。
--------------------脚本1--------------------------------
---------------------脚本2--------------------------------------
|
评分
-
查看全部评分
|