合同结算单上对方单位为空的问题215号工程师问题描述:890版本,合同管理中合同结算单上对方单位为空,但是有合同编码显示,联查上游的合同,显示正常。问题现象:问题分析:如上图所示,合同结算单0000000003在界面上看,有合同编码0000000012显示,但是合同名称,合同性质,对方单位都显示为空。查询后台情况,合同结算单主表cm_balance表中不会记录合同名称,合同性质,对方单位的信息,只是有合同编码记录,合同编码存在,为什么其他信息会显示为空呢?我们先联查合同,看看合同是否正常。联查出来的合同0000000012,如下图,合同名称,对方单位,合同性质都显示正常。那会是什么原因呢?我们尝试,刷新合同结算单,后台跟踪看看。刷新合同结算单,后台跟踪情况,如下图。跟踪发现,取合同结算单表头数据的存储过程cm_getbalanceheaddata,我们具体打开此存储过程查看一下,表头数据是如何取出的。从上图,打开的存储过程查看,我们注意到where条件中,有guid的条件,由此推断,是否合同结算单主表中的guid与合同主表的guid不同呢?我们后台查询一下。后台查看结果,的确两张表中的guid不同。至此,找到问题原因。解决方案:找到问题原因后,进行解决则十分简单,只是需要将cm_balance表中的guid修改正确即可。修改之后,我们先后台查询一下结果。后台查询guid修改正确,然后我们前台重新打开合同结算单查看。此时看到合同结算单上,合同名称,合同性质,合同类型以及对方单位都显示出来了。总结:合同模块中,表之间的关联关系,除了有合同编码外,还有guid字段,取数时,会判断guid的值进行关联取数。如果出现此种情况,可以查询后台的guid是否一致。872版本上也是如此。