关闭

【用友问题】自定义项显示进货仓库,以及是否审核

标签: sqlserversql serverjoininsert任务null
1037人阅读 评论(0) 收藏 举报
分类:

 

采购模块进行定价的时候,参照的是仓库的采购进仓单,但是选择这些单的时候显示的只是表体部分,看

不到到底是那些仓库的货,于是我定时任务的方式去处理这个问题,采用定期的将表头的仓库信息拷入到表体行中,因为这些信息本身只是提供一个参考,不需要做什么处理的,所以直接拷就可以完成任务了。

起初我用的是一个触发器,但是后来考虑到,所有的进出仓的单据都放到这个表中,量大的时候很耽误时间,

同时考虑到定价一般发生在开完单据的第二,第三天。

CREATE TRIGGER tri_savewhname_rdrecords
ON RdRecords
FOR insert ,update
AS
BEGIN   
  UPDATE rdrecords SET cDefine24 =               --对应表体自定义项第三项
  (SELECT cwhname FROM warehouse wh ,rdrecord rd --存储仓库名称到表体
   WHERE wh.cwhcode = rd.cwhcode  AND
         rdrecords.id = rd.id )
  WHERE autoid IN ( SELECT autoid FROM inserted ) AND EXISTS
  (
    SELECT 1 FROM rdrecord rd1, inserted in1
    WHERE  rd1.id = in1.id  AND 
           rd1.cvouchtype = '01'                 --只操作采购入库单
   )
END

 

sqlServer里面建一个SQL Server 代理作业,并不能,定义好时间,语句就可以了。

UPDATE rdrecords
SET cdefine24 =cwhname
FROM warehouse wh inner join  rdrecord rd  on
 wh.cwhcode = rd.cwhcode inner join rdrecords rds on rd.id=rds.id
where rd.cvouchtype='01' and  cdefine24  IS  null

因为只针对采购入库单,所以选择的单据类型为“01”,只要我选择的那个自定义项为空,就可以
进行拷贝动作了。

后面定价员又提出一个问题,就是有些定了价的入库单,被改动了。这样就会使定价出问题,于是希望能
准确的看到那些是否审核。 自然她说得复杂,我们要做的其实不错,如法炮制。
UPDATE rdrecords
SET cdefine24 =cdefine24 + "(已审)"
where   
exists
(
select 1 from rdrecord rd
where
rd.cvouchtype='01' and
rd.id = rdrecords.id  and
rd.cAccounter is not null
)

拷一个“审核”字样到仓库名后面,直观的很。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:190989次
    • 积分:2970
    • 等级:
    • 排名:第11803名
    • 原创:105篇
    • 转载:15篇
    • 译文:1篇
    • 评论:34条
    文章分类
    最新评论