实施设备管理模块
吐槽一下用友U8对设备管理方面的功能,真的还有很大的改进空间。
使用设备管理与备件领用,需要打用友生产制造CP-U8V12.5-101712-180123-MM
和库存管理CP-U8V12.5-101701-180118-ST的补丁。不打的话生成的出库单行号为空,如果材料有批次管理,选择批次后软件报错强退。
需求*:维修部作业时,录入维修单-->派工-->生成维修备件出库单-->领料-->补料-->维修完成验收-->关闭维修单
报表:计算维修员绩效、计算车间设备完好率等等。
问题一:用友U8设备管理模块填写的作业单,系统没有维修员字段,只有使用自定义项,而其他出库单带不出维修项目的维修员自定义字段。
解决方案:为了让业务人员不重复录入数据,使用触发器把维修员字段写到维修备件信息的备注字段,参照维修单领料时,筛选备件备注字段。
问题二:备注字段只能出现在表体,需求是打印在表头。
解决方案:开发在U8增加了一个打印按纽,使用第三方报表设计器重新自已制作了一个打印模版。
以下是触发器:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/******************************************
* 功能:解决其他出库单带不出维修员的问题
* 思路:保存作业单时,更新备件表的备注字段
******************************************/
CREATE TRIGGER [dbo].[Tgr_TEST_AuditEQWorkInv] ON [dbo].[EQ_WorkInventory]
AFTER insert
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
SET NOCOUNT ON;
--update [dbo].[EQ_WorkInventory] set cMemo =(select cDefine33 from EQ_WorkItem where cItemCode=EQ_WorkInventory.cItemCode and cBillCode=(SELECT cBillCode FROM DELETED ))
--使用游标
declare eq_cursor cursor scroll for
select b.cBillCode,b.cItemCode,b.cDefine33 from EQ_WorkInventory a inner join EQ_WorkItem b on a.cBillCode=b.cBillCode where a.cBillCode=(select top 1 cBillCode from inserted ) and a.cItemCode=b.cItemCode
for update
-- 打开游标
open eq_cursor
declare @cDefine33 varchar(12), @ItemCode int,@BillCode varchar(12)
--填充数据
fetch next from eq_cursor into @BillCode,@ItemCode,@cDefine33
--假如检索到了数据,才处理
while @@FETCH_STATUS=0
begin
update EQ_WorkInventory set cMemo=@cDefine33 where current of eq_cursor
fetch next from eq_cursor into @BillCode,@ItemCode,@cDefine33
end
-- 关闭游标
close eq_cursor
--释放游标
deallocate eq_cursor
COMMIT
END TRY
BEGIN CATCH
print ERROR_MESSAGE()
ROLLBACK
END CATCH
END
GO