條碼系統工單導入到K3產品入庫

好久沒有在網站上寫的東西了,今天早上正好有這個空閒時間

公司的條碼系統已經運行了快一年了,這套系統也是我剛剛進入公司,開始實施開發並導入使用的,這裏我的目的不是討論該套系統,

今天主要目的還是想說明下,條碼系統導入K3所實現的過程,

K3中所相關的也是最主要的是3張表,即:ICStockBill,ICStockBillEntry,icmaxnum

尤其是表:icmaxnum,第一次導入是隻是導入了前2張,後來發現數據是導入進去了,過一段時間就消失了,後來查明原因

才知道問題在於 表:icmaxnum,這個表的功能是實現最大單據號(最大序號,這裏的序號其實我已經通過函數獲得),

但獲得後還必須將當前的序號寫入到這個表中,這點很重要,


以下是導入工具的,主存儲過程,裏面有相關的函數、子存儲過程的(這些代碼如果需要可以聯絡我,包括每天導入數據併發送郵件的工具

該工具是VS 2008開發的,語言:C#)




///////////////////////////////////////////////////////////////////////////////////////////

USE [AIS20150326095508]

GO

/****** Object:  StoredProcedure [dbo].[Luke_Insert_ICStockBill]    Script Date: 04/14/2015 08:47:24 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author:Luke.Lu

-- Create date: 2015-3-31

-- Description:增加表ICStockBill,ICStockBillEntry記錄

-- =============================================

ALTER PROCEDURE [dbo].[Luke_Insert_ICStockBill]

AS

  begin transaction

  declare @FInterID nvarchar(10)

  declare @FDate datetime

  declare @FTranType int

  declare @FBrNo nvarchar(10)

  declare @FBillNo nvarchar(50)

  declare @FBillerID  int --制單人

  declare @FDeptID nvarchar(10) --部門

  declare @FFManagerID int --驗收人

  declare @FSManagerID int --保管人

  declare @FROB nvarchar(10)

  declare @FEntryID nvarchar(10)

  declare @FItemID nvarchar(10)

  declare @FQty int

  declare @FPrice int

  declare @FUnitID nvarchar(10)

  declare @FAuxQty int

  declare @FDCStockID nvarchar(20) --存放倉庫

  declare @Icount int

  declare @i      int

  declare @FItem nvarchar(50)

  set @FPrice=0

  set @FUnitID=dbo.Luke_GetUnit('Set')

  set @FQty=0 --應收入庫數量,需要經常變動*,K3基本收貨數量數字上等於@FAuxQty

 -- SET @FAuxQty=1-----實際入庫數量,需要經常變動*

 -- set @FItemID=dbo.Luke_GetFitemID('TEST') --料號,需要經常變動*

  set @FEntryID=0 --序號,需要經常變動*

  set @FROB=1 --藍字

  set @FBillerID=dbo.Luke_GetEmpID_FBillerID('Administrator')

  set @FDeptID=dbo.Luke_GetFSCStockID('電鍍車間')

  set @FFManagerID=dbo.Luke_GetEmpID('SYSADMIN')

  set @FSManagerID=dbo.Luke_GetEmpID('SYSADMIN')

  set @FInterID=dbo.Luke_GetICStockBill_FInterID()

  --set @FDate=getdate()

  set @FTranType=dbo.Luke_GetFTranType('KCZH') --傳輸標識

  set @FBrNo=0

  set @FBillNo=dbo.Luke_GetMaxFBillNo()

  set @FDCStockID=dbo.Luke_GetStockID('一次電鍍良品次數')

  SET NOCOUNT ON

  --條件包括日期

  select @Icount=count(*) from  AIS20110901110631.dbo.CT_B_JOB_COMP_SUM_FORK3I_VIEW where Comp_date=CONVERT (varchar(10), getdate()-1, 120) 

  if (@Icount is not null or @Icount<>0)

  print @Icount

    --條件包括日期

  DECLARE cur CURSOR FOR select itemcode,comp_date,sumQty from  AIS20110901110631.dbo.CT_B_JOB_COMP_SUM_FORK3I_VIEW where Comp_date=CONVERT (varchar(10), getdate()-1, 120) order by itemcode desc

  open cur

  --FETCH  from cur into @FItem,@FDate,@FAuxQty

  --BEGIN TRANSACTION

  while @@FETCH_STATUS=0

  begin 

 FETCH next from cur into @FItem,@FDate,@FAuxQty

 set @FItemID=dbo.Luke_GetFitemID(@FItem)

 set @FEntryID=@FEntryID + 1 

      print @FEntryID

      print @FItem

      print @FDate

      print @FAuxQty

 if @FEntryID<=@Icount 

 begin

--插入到表ICStockBill

 --BEGIN transaction

--插入ICStockBill

 if @FEntryID=1

 begin

 insert into ICStockBill(FBrNo,FInterID,FTranType,FDate,FBillNo,FDeptID,FFManagerID,FSManagerID,FBillerID,FROB)values (@FBrNo,@FInterID,@FTranType,@FDate,@FBillNo,@FDeptID,@FFManagerID,@FSManagerID,@FBillerID,@FROB)

 end

 --插入ICStockBillEntry

 if (@FItemID is not null or len(@FItemID)<1)

   begin

    insert into ICStockBillEntry(FBrNo,FInterID,FItemID,FQty,FUnitID,FEntryID,FAuxQty,FDCStockID)values(@FBrNo,@FInterID,@FItemID,@FAuxQty,@FUnitID,@FEntryID,@FAuxQty,@FDCStockID) 

      --更新單據最大號表中記錄  

    Update icmaxnum set Fmaxnum=(select max(FInterID) from ICStockBillEntry) where Ftablename='ICStockBill'

    

   end

 else

   begin

    --BEGIN transaction

     EXEC dbo.Luke_CreateItem @FItem,@FAuxQty,@FDate

--   if @@error>0 

--begin

--  rollback transaction

--  retrun

--   end

--   else

--    begin

--      commit transaction

    

--     end 

   end 

 

 --select @@fetch_status       

 --FETCH  from cur into @FItem,@FDate,@FAuxQty

 if @@error>0 

begin

 rollback transaction

 retrun

  end

  --else

  --   begin

     

  --    Update icmaxnum set Fmaxnum=(select max(FInterID) from ICStockBillEntry) where Ftablename='ICStockBill'

     

  --   end 

  

 --else

 --  commit transaction

end   

  

  

   end   

  commit transaction

  --FETCH next from cur into @FItem,@FDate,@FAuxQty   



   --else

 

  --begin

  



  close cur

  DEALLOCATE cur

  SET NOCOUNT OFF

  

  

 --  begin

 --    -- --插入ICStockBill

-- insert into ICStockBill(FBrNo,FInterID,FTranType,FDate,FBillNo,FDeptID,FFManagerID,FSManagerID,FBillerID,FROB)

-- --values (@FBrNo,@FInterID,@FTranType,@FDate,@FBillNo,@FDeptID,@FFManagerID,@FSManagerID,@FBillerID,@FROB)

 --    select  

 --    @FBrNo,

 --    @FInterID,

 --    @FTranType,

 --    comp_date,

 --    @FBillNo,

 --    @FDeptID,

 --    @FFManagerID,

 --    @FSManagerID,

 --    @FBillerID,

 --    @FROB

 --    from   AIS20110901110631.dbo.CT_B_JOB_COMP_SUM_FORK3I_VIEW where Comp_date=CONVERT (varchar(10), getdate()-1, 120) 

 --  end

 --   begin

 --   --  --插入ICStockBillEntry

----insert into ICStockBillEntry(FBrNo,FInterID,FItemID,FQty,FUnitID,FEntryID,FAuxQty,FDCStockID)

---- --values(@FBrNo,@FInterID,@FItemID,@FQty,@FUnitID,@FEntryID,@FAuxQty,@FDCStockID) 

 ----    select 

 ----    @FBrNo,

 ----    @FInterID,

 ----    dbo.Luke_GetFitemID(itemcode),

 ----    @FQty,

 ----    @FUnitID,

 ----    --IDENTITY(INT,1,1) as id,

 ----    1,

 ----    sumQty,

 ----    @FDCStockID

 ----    from  AIS20110901110631.dbo.CT_B_JOB_COMP_SUM_FORK3I_VIEW where Comp_date=CONVERT (varchar(10), getdate()-1, 120) 

       

 --   end 

  

  

 -- if @@error>0

--begin

--rollback transaction

--return

--end

  

 -- commit transaction

  ///////////////////////////////////////////////////////////////////////////////////////////

---本信息來至於ACCESS技巧網 Http://www.mdbtip.com


http://www.mdbtip.com/Html/?865.html


wKioL1UsaJGTx5NKAAIfK3ZSfZk659.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章