K3單據表結構描述和相關關聯SQL語句以及金蝶插件相關說明


/* 單據類型 */
SELECT * FROM ICBillNo 
/* 界面描述-工業單據 */
SELECT * FROM ICTransactionType WHERE FID = 713
SELECT * FROM ICTemplate WHERE FID = 'B01' ORDER BY FCtlIndex
SELECT * FROM ICTemplateEntry WHERE FID = 'B01' ORDER BY FCtlOrder
/* 界面描述-BOS單據 */
SELECT * FROM ICClassType WHERE FID = 1000000
SELECT * FROM ICClassTypeEntry WHERE FParentID = 1000000
SELECT * FROM ICClassTableInfo WHERE FClassTypeID = 1000000 ORDER BY FTableName,FTabIndex
/* 表結構描述 */
SELECT * FROM t_TableDescription WHERE FTableName = 'ICStockBill'
SELECT * FROM t_FieldDescription WHERE FTableID = 210008

/* 下推關聯信息 */
SELECT * FROM ICClassLink WHERE FDestTranTypeID = 2 AND FSourTranTypeID = 713
SELECT * FROM ICListTemplate WHERE FID = 713
SELECT DISTINCT FTableName,FTableAlias FROM ICChatBillTitle WHERE FTypeID = 713 --AND FTableName IN ('ICQCBill','ICQCBillEntry')


/* 基礎資料 */
SELECT * FROM t_ItemClass 
SELECT * FROM t_Item 
SELECT * FROM t_ItemPropDesc

  v_ICBillFlow 老單據過濾方案表

select FRemark from v_ICBillFlow where fname='銷售訂單' and FDestTranTypeID=2(銷售定的過濾方案)

 select b.FName,a.* 
from icstockbill a join ictranstype b on a.ftrantype=b.FID查詢所有單據及名稱,然后在根據單據信息表(ICStockBill)的單據類型字段(ftrantype)的值來找到相關信息

I、工業單據的自定義信息保存在IcTemplate和IcTempLateEntry,自定義的選單關系定義在IcSelbills和IctableRelation表中。選單模板表中定義源單和目標單據的表與字段的對應關系,以實現將源單信息寫入目標單據。

 

根據單據類型和單據id查詢單據頭和單據體字段的關聯信息說明 
SELECT t1.FID,t1.FCtlOrder,t1.FCtlIndex,t1.FCtlType,t1.FLookupCls,t1.FNeedSave,t1.FValueType,t1.FSaveValue,t1.FFieldName,t1.FEnable,t1.FPrint,t1.FHeadCaption AS FHeadCaption,CASE WHEN tu.FWidth IS NULL THEN t1.FWidth ELSE tu.FWidth END AS FWidth,t1.FNeedCount,CASE WHEN ISNULL(ta.FRelationID,'') ='' THEN t1.FRelationID ELSE ta.FRelationID END FRelationID,CASE WHEN ISNULL(ta.FAction,'') ='' THEN t1.FAction ELSE ta.FAction END AS FAction,t1.FMustInput,t1.FFilter,t1.FSaveRule,t1.FDefaultCtl,
CASE WHEN tu.FVisForBillType IS NULL THEN t1.FVisForBillType ELSE tu.FVisForBillType END AS FVisForBillType,t1.FRelateOutTbl,t1.FSysMustInputItem,t1.FStatCount,t1.FFormat,t1.FMaxValue,t1.FMinValue,t1.FDefaultValue,t1.FCtlOrder AS FNewCtlOrder,t1.FCtlIndex AS FNewCtlIndex,t1.FMaxValue,t1.FMinValue,t1.FAllowCopy,t1.FLookUpType,t1.FVisForBillType AS FVisForBillTypeSys,t1.FOptionExt
FROM ICTemplateEntry t1 INNER JOIN ICTransactionType t2 ON t1.FID=t2.FTemplateID
LEFT JOIN ICBillAction ta ON ta.FTransType = t2.FID AND ta.FFieldName=t1.FFieldName AND FFuncID = 3
LEFT JOIN ICUserTemplateEntry tu ON tu.FTemplateID= t1.FID AND tu.FFieldName= t1.FFieldName AND tu.FUserID = 16394
WHERE t2.FID= 29//代表的是其他出庫單
ORDER BY t1.FCtlOrder

 個別用戶查看或操作錯誤但換其他用戶正常

 解決方法:刪除%systemroot%\Kingdee\K3ERP\DataFlowTemp文件夾下所有文件。

如果無法解決則執行語句:delete from t_userfilewhere FuserID=(select FuserIDfrom t_userWhere Fname=‘問題用戶名’

k3用戶單據過濾方案SQL

select   * from icclassprofile inner join ICClassType on ICClassType.FId=icclassprofile.ftrantype--所有用戶的所有單據的過濾方案SQL語句(工業老單據)

--新單報銷單過濾方案出錯解決方案如下以某一個用戶為例
select *from ICClassProfileEntry WHERE FSchemeID=154 and Fkey='Relation'
##<&FEmp2_DSPName##<&0##<&劉泰維##<&##<&並且##<&||##<&FDate##<&10##<&2010-06-1##<&##<&##<&||
update ICClassProfileEntry set Fvalue=''where  FSchemeID=154 and Fkey='Relation'
delete from ICClassProfileEntry  WHERE FSchemeID=154 and Fkey='Relation'

 

更新倉庫庫存方式:checkinventory(系統里的存儲過程)這個是校驗庫存用的,其實可以用來更新庫存

 

更改賬套的更新庫存方式(單據是保存后更新還是審核后更新):

SELECT *  FROM t_systemprofile where fdescription like '%庫存更新%'

其中的FVALUE字段是0 對應的審核后更新庫存, 1是對應 保存后更新庫存(同一表是有提示的,以提示為准)

 

獲取單據最大內碼方式(調用下列存儲過程)存儲單據內碼相關的表 :IcMaxNum    ic_maxnum(單據內碼最大編號表)

exec GetIcMaxNum 'icstockbill',1000,1,16394        四個參數的含義:'icstockbill'需要跟新的表   1000是可以返回的參數,這里直接傳值,1是步長,16394(用戶內碼)是系統管理員內碼,可以用當前登錄用戶代替說明。

在IcBillNo表中,系統是用此表的FCurNo字段跟蹤各種事務類型單據的“單據號碼進度”,以實現在下次新增單據時單據編號可以自動加1。在IcMaxNum表中,FMaxNum字段為當前最大ID。IcBillNo.FCurNo與IcMaxNum.FMaxNum和 ic_maxnum.Fnumber如果落后與實際的單據代碼與內碼,會導致單據不能保存,提示“pk_XXXX重復,不能在XXXX表插入重復值”或提示不能刪除已審核單據

 

如何獲取是藍單紅單? 

紅單:m_BillTransfer.SaveVect(1)("IsRedBill")=True

 

 

設置工業老單據單據體某個字段的焦點的語句

m_BillTransfer.grid.SetFocus m_BillTransfer.grid.SetActiveCell(lCol,lRow) 

 

 

BOS單下推采購申請的時候,分錄里的到貨日期怎么樣根據提前期自動算出來啊???
修改ICSelbills 表中列Faction 
(CASE WHEN u1.FSendItemDate>GetDate() Then  u1.FSendItemDate else getDate() end )-isnull(t_4.FFixLeadTime,0)
你看能不能參考 一下。這個是計算采購日期 
是在到貨日期這個字段里面的Faction里寫語句

 

金蝶學習相關文檔

金蝶二次開發客戶化開發指導手冊  http://wendang.baidu.com/view/13e80d27a5e9856a561260d2.html

金蝶二次開發的工業單據k3BillTransfer組件指導手冊 http://www.docin.com/p-19337126.html

金蝶數據庫相關說明文檔 http://www.docin.com/p-177728470.html#

客戶化開發基礎組件:http://wenku.baidu.com/view/ca9bf01ffc4ffe473368abf4.html

金蝶工業插件 billfunc全部公開的方法和屬性 http://www.docin.com/p-77551207.html#

金蝶標准版本數據庫說明:http://www.docin.com/p-2825904.html#documentinfo

別人金蝶開發的博客都是些實用的開發案例http://tangjun141.blog.163.com/blog/#m=0&t=1&c=fks_087070092094083074081086082095081080085069086085083067

深圳美合源公司開發的金蝶報表  http://wenku.baidu.com/view/056772fd04a1b0717fd5dd8a.html

金蝶k3總賬學習 http://www.doc88.com/p-098909605481.html


免責聲明!

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



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