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