K3 BOS : K3 插件中动态对单据头下拉列表赋值
K3 BOS : K3 插件中动态对单据头下拉列表赋值
插件中动态对单据头下拉列表赋值 Dim oBill As Object Dim dctTableInfo As KFO.Dictionary Dim sKey As String Dim lCtlIndex As Long '先获取下拉列表控件的Index Set dctTableInfo = m_BillInterface.TableInfo sKey = dctTableInfo("Map")("FComboBox") 'FComboBox为下拉列表的关键字 lCtlIndex = dctTableInfo(sKey)("CtlIndex") '再对控件的下拉列表进行赋值 Set oBill = m_BillInterface.BillCtl Call oBill.SetComboxList(lCtlIndex, "VALUELIST{1=a,2=b,3=c}") '1表示保存值,a表示显示值 m_BillInterface.SetFieldValue "FComboBox", "a", -1 '调用赋值函数赋值 注:由于是动态赋值,在下拉表字段的模板中并不存在保存值与显示值的对应关系,在下次显示单据的时候,需要跟据保存值去动态的显示下拉表值(建议保存值和显示值保持一致) 原文链接:https://vip.kingdee.com/article/46693648759848960?productLineId=7&isKnowledge=2&lang=zh-CN
郭少锋
创建 2024-03-13 19:56:48
K3 BOS
K3 BOS : K3 BOS 插件中实现根据对应代码携带出产品编码的示例
K3 BOS : K3 BOS 插件中实现根据对应代码携带出产品编码的示例
'Chang事件是在每个字段录入值发生变化回车之后触发 '参数@dct发生变化的字段模板,@dctFld发生变化的字段值对象 Private Sub m_BillInterface_Change(ByVal dct As KFO.IDictionary, ByVal dctFld As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean) Dim rs As ADODB.Recordset 'FMapID为对应代码关键字 '对对应代码字段录入发生变化做处理 If dct("FKey") = "FMapID" Then '根据对应代码的值查询出相应的产品编号FNumber '注意:实际情况可能获取单据上输入的客户或者供应商ID来组合查询过滤 Set rs = m_BillInterface.K3Lib.GetData("SELECT t2.FNumber FROM ICItemMapping t1 INNER JOIN t_ICItem t2 ON t1.FItemID=t2.FItemID WHERE FMapNumber='" & dctFld("FFND") & "'") If Not rs.EOF Then '将查出的产品编码赋值到界面上去(FItemID为产品编号字段关键字) m_BillInterface.SetFieldValue "FItemID", rs("FNumber"), Row End If Set rs = Nothing End If End Sub 原文链接:https://vip.kingdee.com/article/46697315911139328?productLineId=7&isKnowledge=2&lang=zh-CN
郭少锋
创建 2024-03-13 19:53:27
K3 BOS
SQL : 删除表
SQL : 删除表
IF EXISTS (SELECT 1 FROM (SELECT NAME AS TABLE_NAME, XTYPE AS TABLE_XTYPE FROM sysobjects WHERE XTYPE = 'U' OR XTYPE = 'V') AS KSQL_USERTABLES WHERE TABLE_NAME = 'TMP06FC6F34E07511EEACAB0050563') BEGIN TRUNCATE TABLE TMP06FC6F34E07511EEACAB0050563 DROP TABLE TMP06FC6F34E07511EEACAB0050563 END
郭少锋
创建 2024-03-12 22:04:55
SQL
K3 BOS : 原报表 添加字段
K3 BOS : 原报表 添加字段
#region| 数据计算 + 显示 | public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { #region| 保存原数据 至 新表名 | var aIDBService = ServiceHelper.GetService<IDBService>(); aTableName1 = aIDBService.CreateTemporaryTableName(this.Context); // 生成 临时表名1(只能是这种名称的才能正常使用) base.BuilderReportSqlAndTempTable(filter, aTableName1); // 原数据 保存到 临时表名1 #endregion #region| 生成新数据 至 原表名 | string aSql = string.Format(@"/*dialect*/ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- select a11.* /* ,b12.F_OrgId -- 费用承担公司 ,b12.F_PurposeId -- 收付款用途 ,b12.F_CashFlow -- 现金流量 */ ,(case when a11.FDataType = 0 then isnull(o12.FName,'') else '' end) F_OrgId -- 使用组织_名称 ,(case when a11.FDataType = 0 then isnull(r12.FName,'') else '' end) F_PurposeId -- 收付款用途_名称 ,(case when a11.FDataType = 0 then isnull(p12.FName,'') else '' end) F_CashFlow -- 预置基础资料1_名称 into {0} from {1} a11 left join t_GL_VoucherEntry b12 on b12.FEntryId = a11.FEntryId left join T_ORG_Organizations_L o12 on o12.FOrgId = b12.F_OrgId and o12.FLocaleId = 2052 -- 费用承担公司 left join t_CN_RecPayPurPose_L r12 on r12.FID = b12.F_PurPoseId and r12.FLocaleId = 2052 -- 收付款用途 left join t_BAS_PrebdOne_L p12 on p12.FID = b12.F_CashFlow and p12.FLocaleId = 2052 -- 现金流量 order by a11.FIdentityId ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ", tableName, aTableName1); DBServiceHelper.Execute(this.Context, aSql); #endregion } #endregion
郭少锋
编辑 2024-03-11 17:39:01
创建 2024-03-11 17:37:32
K3 BOS
K3 BOS : 关闭报表:删除临时表
K3 BOS : 关闭报表:删除临时表
#region| 关闭报表:删除临时表 | public override void CloseReport() { base.CloseReport(); #region| 除临时表 | if(!string.IsNullOrEmpty(aTableName1) ) { var aIDBService = ServiceHelper.GetService<IDBService>(); aIDBService.DeleteTemporaryTableName(this.Context ,new string[1]{aTableName1} ); // 删除 临时表数据 } #endregion } #endregion
郭少锋
创建 2024-03-11 17:36:37
K3 BOS
K3 BOS : 插件:简单账表 修改字段名称
K3 BOS : 插件:简单账表 修改字段名称
#region| 添加:要显示的 新字段 | public override ReportHeader GetReportHeaders(IRptParams filter) { var aHeader = base.GetReportHeaders(filter); ListHeader aField = aGetHeader("F_OrgId", aHeader); if (aField != null){ aField.Caption = new LocaleValue("费用承担公司", this.Context.UserLocale.LCID); } // 修改字段名称 else{ aHeader.AddChild("F_OrgId", new LocaleValue("费用承担公司", this.Context.UserLocale.LCID) ); } // 添加字段 aField = aGetHeader("F_PurposeId", aHeader); if (aField != null) { aField.Caption = new LocaleValue("收付款用途", this.Context.UserLocale.LCID); } else { aHeader.AddChild("F_PurposeId", new LocaleValue("收付款用途", this.Context.UserLocale.LCID)); } aField = aGetHeader("F_CashFlow", aHeader); if (aField != null) { aField.Caption = new LocaleValue("现金流量", this.Context.UserLocale.LCID); } else { aHeader.AddChild("F_CashFlow", new LocaleValue("现金流量", this.Context.UserLocale.LCID)); } return aHeader; } #endregion #region| 取得:字段信息 aGetHeader | private ListHeader aGetHeader(string aKey, ReportHeader aHeader) { foreach (var aRow1 in aHeader.GetChilds()) { if (aRow1.GetChildCount() == 0) { if (aRow1.FieldName == aKey) { return aRow1; } } else { foreach (var aRow2 in aRow1.GetChilds()) { if (aRow2.FieldName == aKey) { return aRow1; } } } } return null; } #endregion
郭少锋
编辑 2024-03-11 17:35:14
创建 2024-03-11 17:34:59
K3 BOS
K3 BOS : 列表:根据发布时的单据类型 进行过滤
K3 BOS : 列表:根据发布时的单据类型 进行过滤
# 列表插件:只显示当前发布的单据类型,适用所有单据 FBillTypeID 或 FBillType import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.ServiceHelper') from Kingdee.BOS.ServiceHelper import* from Kingdee.BOS import * from Kingdee.BOS.Log import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * #from Kingdee.BOS.Core.Metadata.EntityElement import * from System import * def PrepareFilterParameter(e): if this.View.OpenParameter == None: return billTypeId = this.View.OpenParameter.GetCustomParameter("BillTypeID"); #单据类型 #this.View.ShowMessage(str(billTypeId)); if billTypeId == None or billTypeId == "": return if e.FilterString != None and e.FilterString.Length > 0: e.FilterString = e.FilterString + " and " e.FilterString = e.FilterString +("FBillTypeID = '" + billTypeId + "'") # 根据发布时的单据类型 进行过滤
郭少锋
创建 2024-03-07 14:42:09
K3 BOS
用友 : 微信多开
用友 : 微信多开
win11 同时打开多个微信 @echo off start "" "C:\Program Files\Tencent\WeChat\WeChat.exe" start "" "C:\Program Files\Tencent\WeChat\WeChat.exe" exit 要打开几个,就复制几行 start "" "C:\Program Files\Tencent\WeChat\WeChat.exe"
郭少锋
编辑 2024-03-05 19:30:16
创建 2024-03-05 19:29:52
用友
K3 BOS : K3 记账凭证:部门 改成 新值
K3 BOS : K3 记账凭证:部门 改成 新值
-- K3 ------------------------------------------------------------------------------------------------------------------------ -- 查询:会计分录序时簿 select a1.FDate, a1.FYear, a1.FPeriod, a1.FGroupID, a1.FNumber ,a2.FVoucherID,a2.FEntryID + 1 FSeq ,a2.FDetailID ,a3.F2 from t_Voucher a1 join t_VoucherEntry a2 on a1.FVoucherID = a2.FVoucherID join t_itemdetail a3 on a3.FDetailID = a2.FDetailID where a1.FDate between '2008-01-02' -- 开始日期 and '2018-01-03' -- 截止日期 and a3.F2 = 238 order by a1.FYear, a1.FPeriod, a1.FGroupID, a1.FNumber ,a2.FEntryID ------------------------------------------------------------------------------------------------------------------------ -- 查询:部门 select FItemID,FNumber,FName,FItemClassID from t_item where FItemClassid=2 and FItemID in ( 238,239 ) ------------------------------------------------------------------------------------------------------------------------ -- 更改:会计分录序时簿:部门 改成 新值 update a3 set F2 = 239 -- 部门:新值 from t_Voucher a1 join t_VoucherEntry a2 on a1.FVoucherID = a2.FVoucherID join t_itemdetail a3 on a3.FDetailID = a2.FDetailID where a1.FDate between '2008-01-02' -- 开始日期 and '2018-01-03' -- 截止日期 and a3.F2 = 238 -- 部门:旧值 ------------------------------------------------------------------------------------------------------------------------ -- 更正:凭证录入.核算项目 update a2 set FItemID = a1.F2 from t_itemdetail a1 join t_itemdetailv a2 on a1.FDetailID = a2.FDetailID where a2.FItemClassID = 2 -- 部门 and a1.F2 != 0 and a1.F2 != a2.FItemID ------------------------------------------------------------------------------------------------------------------------ -- 查看:凭证录入.核算项目 select a1.FDetailID ,a1.F2 ,a2.FItemClassID ,a2.FItemID from t_itemdetail a1 join t_itemdetailv a2 on a1.FDetailID = a2.FDetailID where a2.FItemClassID = 2 -- 部门 and a1.F2 != 0 and a1.F2 != a2.FItemID ------------------------------------------------------------------------------------------------------------------------
郭少锋
编辑 2024-03-03 21:32:28
创建 2024-03-03 20:53:11
K3 BOS
K3 BOS : 云星空
K3 BOS : 云星空
不需要使用 轻分析 / BBC电商 的话,可以关掉 K3CloudTomcat,这个挺占内存的,至于其他服务就不能关了 https://vip.kingdee.com/article/360910888322711296?productLineId=1&isKnowledge=2 K3CloudTomcat 内存占用大,优化
郭少锋
编辑 2024-03-01 22:27:59
创建 2024-03-01 22:26:39
K3 BOS