个人博客 用于记载日常收集的一些技术文章 ...
K3 BOS : 隐藏菜单 K3 BOS : 隐藏菜单
Private Sub m_BillInterface_AfterSelBillBeforeFillData(ByVal dcData As KFO.IDictionary, ByVal dctLink As KFO.IDictionary)
Call m_BillInterface_AfterLoadBill
End Sub


Private Sub m_BillInterface_AfterLoadBill()

Dim oBand As K3ClassEvents.BOSBand: Set oBand = m_BillInterface.MenuBar.BOSBands("BandToolBar") '【 BandToolBar 工具栏 】
Dim oTool As K3ClassEvents.BOSTool

If m_BillInterface.BillStatus = Enu_BillStatusExt_View Then '【 Enu_BillStatusExt_View 查看 】【 Enu_BillStatusExt_New 新增 】【 Enu_BillStatusExt_Modify 修改 】

oBand.BOSTools("mnuFileSave").Visible = False '【 保存 mnuFileSave 】
oBand.BOSTools("mnuRecover").Visible = False '【 恢复 mnuRecover 】
oBand.BOSTools("mnuEditResetOrder").Visible = False '【 单序 mnuEditResetOrder 】
Else
oBand.BOSTools("mnuFileSave").Visible = True '【 保存 mnuFileSave 】
End If

'----------------------------------------------------------------------------------------------------------------------------------
Set oBand = m_BillInterface.MenuBar.BOSBands("Menu") '【 Menu 菜单栏 】

oBand.BOSTools("mnuFile").Visible = False '【 文件 】
oBand.BOSTools("mnuEdit").Visible = False '【 编辑 】
oBand.BOSTools("mnuData").Visible = False '【 查看 】

oBand.BOSTools("mnuSelectBill").Visible = False '【 选单 】

'----------------------------------------------------------------------------------------------------------------------------------
Set oBand = Nothing
Set oTool = Nothing
End Sub
郭少锋 编辑 2023-04-11 09:42:20 创建 2023-04-11 09:36:16 K3 BOS
K3 BOS : VB 时间格式 K3 BOS : VB 时间格式 Function aTime() As String
aTime = Format(Now(), "yyyy-mm-dd hh:MM:ss") & "." & (Timer() * 1000 Mod 1000) '时间格式 + 毫秒
End Function


Public Sub Show()
Debug.Print aTime
End Sub
郭少锋 创建 2023-04-11 00:23:02 K3 BOS
K3 BOS : Vb6 清空即时窗口 K3 BOS : Vb6 清空即时窗口 ctrl+a 全选后,按 del 键,就可以清空了。 郭少锋 创建 2023-04-11 00:15:12 K3 BOS K3 BOS : 打开序时簿 K3 BOS : 打开序时簿 K3ClassEvents.K3Lib.LoadList 2000000

Set dctFilter = New KFO.Dictionary
dctFilter("CanSelectMultiRow") = True //允许多选
dctFilter("ShowFilter") = False //不显示过滤条件界面
dctFilter("ShowStatus") = 2 //2 表示选单
dctFilter("Filter") = "v1.FBillNo='WIN000001'" //过滤出单据编号为 WIN000001 的单据

Set VctRet = m_BillInterface.K3Lib.LoadOldList(1, dctFilter) //调外购入库单(单据类型 ID为 1)的序时薄

如果是选单调用则返回选择的单据信息到 VctRet 包里
备注:dctFilter("Filter") 中 v1 代表老单单据头的数据表,u1 代表老单单据体的数据表
郭少锋 创建 2023-04-10 23:46:49 K3 BOS
K3 BOS : 获取菜单 K3 BOS : 获取菜单 Private Sub m_BillInterface_AfterLoadBill()
On Error Resume Next

For i = 1 To m_BillInterface.MenuBar.BOSBands.Count
Debug.Print i & " " & m_BillInterface.MenuBar.BOSBands(i).BandName & " " & m_BillInterface.MenuBar.BOSBands(i).Caption & " " & m_BillInterface.MenuBar.BOSBands(i).Visible

For a = 1 To m_BillInterface.MenuBar.BOSBands(i).BOSTools.Count
Debug.Print i & "." & a & " " & m_BillInterface.MenuBar.BOSBands(i).BOSTools(a).ToolName & " " & m_BillInterface.MenuBar.BOSBands(i).BOSTools(a).Caption & " " & m_BillInterface.MenuBar.BOSBands(i).BOSTools(a).Visible
Next a
Next i
End Sub

1 mnuFile 文件(&F) True
1.1 mnuFileSave 保存(&S) False
1.2 mnuEditCopy 复制 False
1.3 miSeparator False
1.4 mnuExcelExport 按Excel打印格式引出数据 True
1.5 mnuFilePrintDesign 套打文件设计(&D) True
1.6 mnuFileNotePrintSetup 打印模板设置... True
1.7 mnuFilePageSetup 页面设置(&U)... True
1.8 mnuFilePrintSetup 打印设置 True
1.9 miSeparator False
1.10 mnuFilePreview 打印预览(&V) True
1.11 mnuFilePrint 打印... False
1.12 mnuFileKDFPrintSetup KDF模板设计 False
1.13 mnuFileKDFPrintPreview KDF打印预览 False
1.14 mnuFileKDFPrintBill KDF打印 False
1.15 miSeparator False
1.16 mnuBillReportPreview 标准打印预览 False
1.17 mnuBillReportPrint 标准打印... False
1.18 miSeparator False
1.19 mnuFileExportBillTpl 数据模板导出(&E)... False
1.20 mnuFileImportBill 数据导入(&I)... False
1.21 miSeparator False
1.22 mnuSendMessage 消息 False
1.23 mnuSendSMS 短信 False
1.24 mnuSendEmail 邮件 False
1.25 mnuSendIMMessage 云之家 False
1.26 miSeparator False
1.27 mnuFileExit 退出(&X) True

2 mnuEdit 编辑 True
2.1 mnuEditAddRow 插入一行 True
2.2 mnuEditDelRow 删除一行 True
2.3 mnuEditDelEntry 删除所有分录 True
2.4 miSeparator False
2.5 mnuRecover 恢复 True
2.6 mnuEditResetOrder 单序 True
2.7 mnuCopyRow 复制行 True
2.8 mnuEditCopyAllRow 复制所有行 False
2.9 mnuBatchFillField 批量填充 True
2.10 mnuEditFind 查找 True
2.11 mnuStartIMComunication 启动IM交流 False
2.12 miSeparator False
2.13 mnuEditCheck 审核 False
2.14 mnuEditUnCheck 反审核 False
2.15 miSeparator False
2.16 mnuEditStartMultiCheck 启动审核 False
2.17 mnuEditMultiCheck 多级审核 False
2.18 mnuEditMCTransferLaunch 转交 False
2.19 mnuEditMCAidanceLaunch 发起协办 False
2.20 mnuEditMCAidance 协办 False
2.21 mnuManualSubmitMultiCheck 提交审核 False
2.22 mnuEditUnMultiCheck 驳回审核 False
2.23 mnuEditUnPassMultiCheck 审核不通过 False
2.24 mnuEditCheckRoad 查看审核 False
2.25 miSeparator False
2.26 mnuMakeOneToOne 按单生成凭证 False
2.27 mnuBOSViewVoucher 查看凭证 False

3 mnuData 数据 True
3.1 mnuDataLookUp 资料查询 True
3.2 miSeparator False
3.3 mnuDataFirst 第一条单据(&F) False
3.4 mnuDataPre 上一条单据(&P) False
3.5 mnuDataNext 下一条单据(&N) False
3.6 mnuDataLast 最后一条单据(&L) False
3.7 miSeparator False
3.8 mnuDataRefesh 刷新 True
3.9 miSeparator False
3.10 mnuCaculate 金蝶计算器 True
3.11 miSeparator False
3.12 mnuStockQuery 库存查询 False
3.13 miSeparator False
3.14 mnuDataAccessory 附件 True
3.15 mnuDataAccessoryEntry 单据体附件 True
3.16 mnuIMAttach IM附件 False
3.17 miSeparator False
3.18 mnuDataViewPicture 查看物料图片(&P) True

4 mnuFormat 格式 True
4.1 mnuFormatColWidth 列宽(&C)... True
4.2 miSeparator False
4.3 mnuFormatBack 背景图案 True
4.4 miSeparator False
4.5 mnuFormatFroze 冻结列(&Z) True
4.6 mnuFormatUnFroze 取消冻结列(&U) True

5 BandToolBar 工具栏 True
5.1 mnuFileSave 保存 False
5.2 miSeparator False
5.3 mnuRecover 恢复 True
5.4 mnuEditResetOrder 单序 True
5.5 mnuFilePrint 打印 False
5.6 mnuFilePreview 预览 True
5.7 miSeparator False
5.8 mnuEditStartMultiCheck 启动审核 False
5.9 mnuEditCheck 审核 False
5.10 mnuEditMultiCheck 审核 False
5.11 mnuEditUnMultiCheck 驳回 False
5.12 mnuEditCheckRoad 查看审核 False
5.13 miSeparator False
5.14 mnuDataFirst 首张 False
5.15 mnuDataPre 前张 False
5.16 mnuDataNext 后张 False
5.17 mnuDataLast 末张 False
5.18 miSeparator False
5.19 mnuDataLookUp 资料 True
5.20 miSeparator False
5.21 mnuDataRefesh 刷新 True
5.22 mnuDataAccessory 附件 True
5.23 mnuSetEntryViewMode 汇总 False
5.24 miSeparator False
5.25 mnuCaculate 计算器 True
5.26 miSeparator False
5.27 mnuStartIMComunication 启动IM交流 False
5.28 mnuSendMessage 消息 False
5.29 mnuSendSMS 短信 False
5.30 mnuSendEmail 邮件 False
5.31 mnuSendIMMessage 云之家 False
5.32 mnuScreenCapture 涂鸦 False
5.33 miSeparator False
5.34 mnuFileExit 退出 True

6 mnuBackGround 背景图案 True
6.1 mnuSddx 驿动的心 True
6.2 mnuLyp 落叶飘 True
6.3 mnuLsj 蓝水晶 True
6.4 mnuMyz 母与子 True
6.5 mnuPhz 徘徊着 True
6.6 mnuQjb 茄子煲 True
6.7 mnuXmm 小苗苗 True
6.8 miSeparator False
6.9 mnuBackColor 背景色... True
6.10 miSeparator False
6.11 mnuMore 更多的... True

7 mnuSelectBill 选单 True

8 mnuOption 选项 True
8.1 mnuOptionAfterSaveNew 保存后立即新增 True
8.2 mnuOptionCheckSource 单据保存前检查源单状态 True
8.3 mnuFileNeedFilter 选单时需要过滤条件 True
8.4 mnuOptionLinkBill 选单时关联整单 True
8.5 mnuFormatIndentity *号标识必录项 True
8.6 mnuOptionBatchFull 批量填充只填充本列为空的行 True
8.7 mnuOptionFilterFQtyIsZero 屏蔽数量为零的批次 True
8.8 mnuGridSet 单据分录当前行设置 True
8.9 mnuOptionNoItemList 禁止下拉列表自动显示 True
8.10 mnuFillModeOption 选单填充模式 True
8.11 mnuCopyRowMode 单据当前行复制选项 True
8.12 mnuOptionDispPicture 单据载入时不加载图片字段内容 True
8.13 mnuOptionEnterVertical 回车自动跳转下行 True
8.14 mnuOptionNumberKey 纯用小键盘 True
8.15 mnuCopyFieldValue 连续新增携带 True
8.16 mnuOptionEntrySet 单据体设置 True
8.17 mnuOptionPrintNull 数值为零打印显示为空 True
8.18 mnuOptionCopyRecursively 复制级联子单据体对应分录信息 True
8.19 mnuQueryBaseSet 录入物料字段时查询依据 True
8.20 mnuOptionSortDisp 在非录单顺序排序时保存给与提示 True
8.21 mnuOptionLockFontBlack 锁定字段字体黑色显示 True
8.22 mnuToolBarDefine 工具条设置 True

9 mnuCust 自定义动作 True

10 mnuBandFillMode 选单填充模式 True
10.1 mnuFillModeAppend 追加 True
10.2 mnuFillModeReplace 叠盖 False

11 mnuCopyRowModeBand PopupBand1 True
11.1 mnuCopyRowEnd 追加到所有分录之后 True

12 mnuHelp 帮助(&H) True

13 mnuGridSet PopupBand1 True
13.1 mnuGridHighBack 高亮显示背景色 True
13.2 mnuGridHighFront 高亮显示前景色 True

14 mnuQueryBaseSet 录入物料字段时查询依据 True
14.1 mnuQueryByFHelpCode 按助记码查询 True
14.2 mnuQueryByFModel 按规格型号查询 True
14.3 mnuQueryByFNumberNameModel 按代码、名称或规格型号查询 True
14.4 mnuQueryByPinYinOrFirstLetter 按物料名称的拼音或首字母查询 True

郭少锋 创建 2023-04-10 23:14:51 K3 BOS
K3 BOS : K3 菜单问题 K3 BOS : K3 菜单问题 Private Sub m_ListInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar) '添加菜单

Dim oTool As K3ClassEvents.BOSTool

'---------------------------------------------------------------------------------------------------------------------------
Set oTool = oMenuBar.BOSTools.Add("mnuMultiToOne") ‘修改了标题,菜单会生效,工具栏没有变化
With oTool
.Caption = "生成凭证"
.Description = "生成凭证"
End With

'---------------------------------------------------------------------------------------------------------------------------

Dim oBand As K3ClassEvents.BOSBand: Set oBand = oMenuBar.BOSBands("BandToolBar") '【工具栏】隐藏后,菜单里的按钮也会隐藏

oBand.BOSTools("mnuFilePrint").Visible = False '【 打印 】
oBand.BOSTools("mnuFilePreview").Visible = False '【 预览 】

oBand.BOSTools("mnuEditStartMultiCheck").Visible = False '【 启动审核 】
oBand.BOSTools("mnuEditCheckRoad").Visible = False '【 查看审核 】
oBand.BOSTools("mnuVoucherOptions").Visible = False '【 凭证选项 】

oBand.BOSTools("mnuViewUnionQuery").Visible = False '【 关联信息 】
oBand.BOSTools("mnuDataAccessory").Visible = False '【 附件 】
oBand.BOSTools("mnuCaculate").Visible = False '【 计算器 】

'---------------------------------------------------------------------------------------------------------------------------
oMenuBar.BOSBands("mnuEdit").BOSTools("mnuEditUnPassMultiCheck").Visible = False '【 审核不通过 】

'---------------------------------------------------------------------------------------------------------------------------
oMenuBar.BOSBands("mnuFile").BOSTools("mnuFilePrint").Visible = True '【 打印 】显示后,工具栏里的按钮也会显示
oMenuBar.BOSBands("mnuFile").BOSTools("mnuFilePreview").Visible = True '【 预览 】

oMenuBar.BOSBands("mnuEdit").BOSTools("mnuEditStartMultiCheck").Visible = True '【 启动审核 】
oMenuBar.BOSBands("mnuEdit").BOSTools("mnuEditCheckRoad").Visible = True '【 查看审核 】
oMenuBar.BOSBands("mnuEdit").BOSTools("mnuVoucherOptions").Visible = True '【 凭证选项 】

oMenuBar.BOSBands("mnuView").BOSTools("mnuViewUnionQuery").Visible = True '【 关联信息 】
oMenuBar.BOSBands("mnuView").BOSTools("mnuDataAccessory").Visible = True '【 附件 】
oMenuBar.BOSBands("mnuView").BOSTools("mnuCaculate").Visible = True '【 计算器 】

'mnuFile 文件
'mnuEdit 编辑
'mnuView 查看
'mnuSelectBill 选单

'----------------------------------------------------------------------------------
Set oBand = Nothing
Set oTool = Nothing

End Sub
郭少锋 编辑 2023-04-10 19:44:14 创建 2023-04-10 15:45:42 K3 BOS
K3 BOS : K3 添加菜单 添加按钮 K3 BOS : K3 添加菜单 添加按钮 Private Sub m_BillInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar)

Dim oTool As K3ClassEvents.BOSTool
Dim oBand As K3ClassEvents.BOSBand


'*************** 新增 BOS 菜单 ***************

Set oTool = oMenuBar.BOSTools.Add("MyMenu") ''新增 MyMenu 菜单对象

With oTool '使用 With 可以提高运行速度

.Caption = "MyMenu"
.ToolTipText = "这是一个自定义的菜单"
.Description = "MyMenu"
.ShortcutKey = 13
.Visible = True
.Enabled = True
.BeginGroup = False
.ToolPicture = App.Path & "\xiada.ico" '【当前插件位置】图标
.SetPicture 0, vbButtonFace
End With

Set oBand = oMenuBar.BOSBands("mnuEdit")
oBand.BOSTools.InsertAfter "mnuEditStartMultiCheck", oTool '将菜单对象 插入【编辑】【历史价格查询】之后

Set oBand = oMenuBar.BOSBands("BandToolBar")
oBand.BOSTools.InsertBefore "mnuFileExit", oTool '将菜单对象 插入【工具栏】【退出】之前


'*************** 新增 BOS 菜单 ***************

Set oTool = oMenuBar.BOSTools.Add("MenuWG") '新增 MenuWG 菜单对象
With oTool
.Caption = "查看关联入库单"
.ToolTipText = "查看关联入库单"
.Description = "查看关联入库单"
.ShortcutKey = 23
.Visible = True
.Enabled = True
.BeginGroup = False
.ToolPicture = App.Path & "\xiacha.ico"
.SetPicture 0, vbButtonFace
End With

Set oBand = oMenuBar.BOSBands("mnuEdit")
oBand.BOSTools.InsertAfter "mnuEditStartMultiCheck", oTool '将菜单对象 插入 指定一级菜单

Set oBand = oMenuBar.BOSBands("BandToolBar")
oBand.BOSTools.InsertBefore "mnuFileExit", oTool '将菜单对象 插入 指定工具栏


'*************** 完成 BOS 菜单 ***************

Set oTool = Nothing
Set oBand = Nothing
End Sub
郭少锋 编辑 2023-04-10 14:28:02 创建 2023-03-29 21:11:08 K3 BOS
SQL : SQL 简写 SQL : SQL 简写 (
Select FNumber From t_Voucher Where FYear= 2023 AND FPeriod= 4 and FGroupID = 1
Union
Select FNumber From t_voucherblankout Where FYear= 2023 AND FPeriod= 4 and FGroupID = 1
) Order By FNumber
郭少锋 创建 2023-04-07 11:33:19 SQL
K3 BOS : 实现动态过滤条件 K3 BOS : 实现动态过滤条件 在单据的Change事件中
 If dct(“FKey”)=”FDeptID” then
m_BillInterface.DataSrv.TableInfo(m_BillInterface.TableInfo("Map")("FItemID"))("FFilter") = " x2.FNumber =’”  &  m_BillInterface.getfieldvalue(“FDeptID” ) & “’”
 End if
注意:上面的代码不支持调试,如果调试,发现赋值为空,没有将过滤条件赋值成功,但编译后运行没有问题。
郭少锋 创建 2023-04-06 22:26:37 K3 BOS
K3 BOS : K3 新增单据 自动弹出 选单界面 K3 BOS : K3 新增单据 自动弹出 选单界面 Private Sub m_BillInterface_AfterNewBill()

m_BillInterface.BillCtl.DoSelBill 210001201 '新增单据 自动显示 选单界面
End Sub

m_BillInterface.BillCtl.DoSelBill lClassTypeID '(原单的ClassTypeID)
m_BillInterface.BillCtl.DoSelOldBill lClassTypeID '(原单的ClassTypeID) 工业单据
郭少锋 编辑 2023-04-06 22:04:28 创建 2023-04-06 21:08:56 K3 BOS