金蝶K3序時簿頁面增加物料即時庫存顯示功能


K3默認序時簿是不體現即時庫存的,如果需要在序時簿將物料的即時庫存數據帶入,可以按照下方的步驟實現:

本文以銷售訂單序時簿增加即時庫存為例,其他單據以此方法參考即可。
如果希望在訂單新增環節體現物料即時庫存,參見另外一篇文章https://blog.csdn.net/hzfw2008/article/details/77461406

一、步驟
1、 創建視圖,按物料合計庫存。
2、 獲取目標序時簿typeid
3、 修改序時簿關聯關系表ICTableRelation,追加與即時庫存關聯關系
4、 修改序時簿字段表ICChatBillTitle,追加顯示即時庫存字段。

5、 序時簿過濾器中顯示隱藏列中勾選顯示庫存字段。


二、涉及到的表介紹:

序號 表名 表功能
1 ictransactiontype 單據業務類型表
2 iclisttemplate 序時簿模版表
3 ICTableRelation 序時簿所有表之間的連接關系
4 ICChatBillTitle 序時簿顯示字段表


三、分步驟實現:

1、 創建庫存合計視圖vw_rtstock。

CREATE VIEW [dbo].[vw_rtstock]
AS
SELECT a.FItemID, SUM(a.FQty) kc
FROM dbo.ICInventory a LEFT JOIN dbo.t_Stock b ON a.FStockID = b.FItemID
WHERE 1=1 AND b.FTypeID = 500
GROUP BY a.FItemID

 

2、 獲取目標單據序時簿模版內碼(這里以銷售訂單為例,獲取到32)

 

SELECT flisttemplateid,* FROM ictransactiontype
WHERE fname LIKE '%銷售訂單%'

 

 

3、 按序時簿模版內碼獲取模版代碼(本例銷售訂單序時簿為61)

SELECT ftemplateid,* FROM iclisttemplate WHERE fid = 32

 

4、增加序時簿關聯表連接關系

 

--select * from ICTableRelation where ftypeid = 61
INSERT INTO dbo.ICTableRelation(FTypeID,FTableName,FTableNameAlias,
FFieldName,FTableName11,FTableNameAlias11,FFieldName11,FLogic,FBillID,FFieldID,FMode,FIndex,FCondition,FLeftParentheses,FRightParentheses,FLogicOperator,FISConst,FConstType,FSubFilter)
SELECT
ftypeid,ftablename,FTableNameAlias,FFieldName,'vw_rtstock','kc','fitemid',flogic,fbillid,ffieldid,fmode,findex,'','','','=',0,0,''
FROM dbo.ICTableRelation WHERE ftypeid = 61 AND finterid = 16

 

 

5、增加序時簿顯示字段

 

--SELECT * FROM ICChatBillTitle WHERE ftypeid = 61
insert ICChatBillTitle (FInterID, FTypeID, FColCaption, FHeadSecond,
FColName, FTableName, FColType, FColWidth, FVisible, FItemClassID,
FVisForQuest,FReturnDataType,FCountPriceType, FCtlIndex, FName,
FTableAlias, FAction, FNeedCount, FIsPrimary,FLogicAction, FStatistical,
FMergeable,FVisForOrder, FColCaption_CHT, FColCaption_EN,FControl,
FMode,FControlType, FPrecisionField, FAlign, FEditable, FFormat,
FFormatType)
Select 500001, 61, '即時庫存$', '' ,'kc', 'vw_rtstock', 2, 1000, 3, -1, 0,
0, 1, 5, 'kc', 'kc', '', 1, 0, '', 1, 0,1, '即時庫存$', 'stockQty $',
0, 0, 5, '', 0, 0, '', 0

 

 

6、 重新打開K3,銷售訂單序時簿過濾器顯示隱藏列中勾選顯示即時庫存。

 

 

 

 

7、最終成品:

 

 

四、 功能表字段釋義參考
1. ICTransactionType:該表反映了供需鏈所有單據的總體情況。
ICTransactionType
FbrNo
FID 單據事務類型內部ID
FROB 紅藍字標記 :1表示該單據區分紅 藍字 ,0表示沒有紅藍字之分
Fname 單據名稱
Ftype 單據類別
FtempalteID 單據模版ID (與 ICTemplate,ICTemplateEntry 表中的FID對應
FvchTempalteID (未用)
FheadTable 單據表頭對應的數據庫表名
FentryTable 單據表體對應的數據庫表名
FcheckPro (未用)
FformWidth 單據錄入時的缺省寬度
FformHeight 單據錄入時的缺省高度
FfixCols 單據的固定列數目



2. ICListTemplate:該表反映了供需鏈所有序時簿的總體情況。
ICListTemplate
FID 內碼(主鍵)
Fname 序時簿名稱
FTemplateID 模版ID
FLogicStr 菜單的隱含/權限驗證SS:1 區分發票/單據審核(已經取消)H: 菜單的隱含Fmodule,FmoduleDetail:驗權(與t_Objecttype對應)
FBillTemplateID 單據模版對應ID
FmenuID 菜單模板,與ICListtoolbar 表中的FID對應
Ffilter 缺省過濾條件
FSourceType 1-序時簿模板,2-交叉分析報表
FgoupID 模板屬於哪個業務系統
FneedStatistic 模板在交叉分析報表中是否顯示
FneedCount 是否有合計行
FBillCls 單據類型(200-入庫單 201-出庫單 202-調撥單 204-盤盈/盤虧單)
FMasterTable 主表別名(優化需要)

原文鏈接:https://blog.csdn.net/hzfw2008/article/details/77460804

 

本人的需求是在,委外加工入庫上增加勾稽期間,勾稽期間欄位FYearPeriod已經存在ICStockBill表上,

只在ICChatBillTitle表插入數據即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM