八、K3 WISE 开发插件《工业单据老单插件中获取登陆用户名》
备注:如果是BOS新单,都有获取用户名的方法。在单据有m_BillInterface.K3Lib.User.UserId,在序时薄有m_ListInterface.K3Lib.User.UserID
工业单据获取用户名,源代码如下:
工程引用:
Class1代码如下:
'定义插件对象接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillTransfer As k3BillTransfer.Bill Public Sub Show(ByVal oBillTransfer As Object) '接口实现
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = oBillTransfer End Sub Private Sub Class_Terminate() '释放接口对象
'注意: 此方法必须存在, 请勿修改
Set m_BillTransfer = Nothing End Sub Private Sub m_BillTransfer_BillInitialize() '*************** 开始设置菜单 *************** m_BillTransfer.AddUserMenuItem "用户自定义 1", "自定义菜单" '*************** 结束设置菜单 *************** End Sub Private Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String) 'TODO: 请在此处添加代码响应事件 UserMenuClick Select Case Caption
Case "用户自定义 1"
'此处添加处理 用户自定义 1 菜单对象的 Click 事件
MsgBox UserName()
Case Else
End Select End Sub
MMTS代码如下:
Option Explicit
'子系统描述,根据自己系统内容替换
Public Const SUBID = "gl"
Public Const SUBNAME = "总帐系统" 'mts share property lockmode
Private Const LockMethod =
Private Const LockSetGet =
'mts share property
Private Const Process =
Private Const Standard = 'Private m_oSvrMgr As Object 'Server Manager
Private m_oSpmMgr As Object
Public m_oLogin As Object
Private Declare Function CanChangeMtsServer Lib "kdappsvr.dll" () As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public LoginType As String
Public LoginAcctID As Long Public Function CheckMts(ByVal CFG As Long, Optional ByVal ChangeUser As Boolean = False) As Long
CheckMts = False
If CFG Then
If Not m_oLogin Is Nothing And Not ChangeUser Then
CheckMts = True
Exit Function
End If Dim bChangeMts As Boolean
bChangeMts = True
Set m_oLogin = CreateObject("KDLogin.clsLogin")
If InStr(, LoginType, "Straight", vbTextCompare) > And Not ChangeUser Then
If m_oLogin.LoginStraight(SUBID, SUBNAME, LoginAcctID) Then
CheckMts = True
Call OpenConnection
End If
Else
If m_oLogin.Login(SUBID, SUBNAME, bChangeMts) Then
CheckMts = True
Call OpenConnection
End If
End If
Else
m_oLogin.Shutdown
Set m_oLogin = Nothing
End If
End Function
'登录
'Public Function CheckMts(ByVal CFG As Long, Optional ByVal ChangeUser As Boolean = False) As Long
' '检查Mts状态
' CheckMts = False
' Set m_oLogin = Nothing
' If CFG Then
' If Not m_oLogin Is Nothing And Not ChangeUser Then
' CheckMts = True
' Exit Function
' End If
' LoginAcctID = 1
' Dim bChangeMts As Boolean
' bChangeMts = True
' Set m_oLogin = CreateObject("KDLogin.clsLogin")
'' If InStr(1, LoginType, "Straight", vbTextCompare) > 0 And Not ChangeUser Then
'
' '直接调用
' '实现二次开发模块的隐藏登录
' If m_oLogin.LoginStraight(SUBID, SUBNAME, LoginAcctID) Then
' CheckMts = True
' Call OpenConnection
' End If
'' Else
''
'' '重新登录
'' If m_oLogin.Login(SUBID, SUBNAME, bChangeMts) Then
'' CheckMts = True
'' Call OpenConnection
'' End If
'' End If
' Else
' m_oLogin.ShutDown
' Set m_oLogin = Nothing
' End If
'End Function Public Function UserName() As String
If m_oLogin Is Nothing Then
UserName = GetConnectionProperty("UserName")
Else
UserName = m_oLogin.UserName
End If
End Function
Public Function PropsString() As String
If m_oLogin Is Nothing Then
PropsString = GetConnectionProperty("PropsString")
Else
PropsString = m_oLogin.PropsString
End If
End Function
Public Property Get ServerMgr() As Object
Set ServerMgr = GetConnectionProperty("KDLogin")
End Property
Public Function IsDemo() As Boolean
If m_oLogin Is Nothing Then
IsDemo = (GetConnectionProperty("LogStatus") = )
Else
IsDemo = (m_oLogin.LogStatus = )
End If
End Function
Public Function AcctName() As String
If m_oLogin Is Nothing Then
AcctName = GetConnectionProperty("AcctName")
Else
AcctName = m_oLogin.AcctName
End If
End Function
Private Function GetConnectionProperty(strName As String, Optional ByVal bRaiseError As Boolean = True) As Variant Dim spmMgr As Object
'Dim spmGroup As Object
'Dim spmProp As Object
'Dim bExists As Boolean 'Set spmMgr = CreateObject("MTxSpm.SharedPropertyGroupManager.1")
'Set spmGroup = spmMgr.CreatePropertyGroup("Info", LockSetGet, Process, bExists) 'Set spmProp = spmGroup.Property(strName)
'If IsObject(spmProp.Value) Then
' Set GetConnectionProperty = spmProp.Value
'Else
' GetConnectionProperty = spmProp.Value
'End If
Dim lProc As Long
lProc = GetCurrentProcessId()
Set spmMgr = CreateObject("PropsMgr.ShareProps")
If IsObject(spmMgr.GetProperty(lProc, strName)) Then
Set GetConnectionProperty = spmMgr.GetProperty(lProc, strName)
Else
GetConnectionProperty = spmMgr.GetProperty(lProc, strName)
End If
End Function
Private Sub OpenConnection()
'Dim spmMgr As Object
'Dim spmGroup As Object
'Dim spmProp As Object
'Dim bExists As Boolean 'Set spmMgr = CreateObject("MTxSpm.SharedPropertyGroupManager.1")
'Set spmGroup = spmMgr.CreatePropertyGroup("Info", LockSetGet, Process, bExists)
'Set spmProp = spmGroup.CreateProperty("UserName", bExists)
'spmProp.Value = m_oLogin.UserName
'Set spmProp = spmGroup.CreateProperty("PropsString", bExists)
'spmProp.Value = m_oLogin.PropsString
'Set spmProp = spmGroup.CreateProperty("KDLogin", bExists)
'spmProp.Value = m_oLogin
Dim lProc As Long
lProc = GetCurrentProcessId()
Set m_oSpmMgr = CreateObject("PropsMgr.ShareProps")
m_oSpmMgr.addproperty lProc, "UserName", m_oLogin.UserName
m_oSpmMgr.addproperty lProc, "PropsString", m_oLogin.PropsString
m_oSpmMgr.addproperty lProc, "LogStatus", m_oLogin.LogStatus
m_oSpmMgr.addproperty lProc, "AcctName", m_oLogin.AcctName
m_oSpmMgr.addproperty lProc, "KDLogin", m_oLogin
End Sub
Private Sub CloseConnection()
'On Error Resume Next Dim lProc As Long lProc = GetCurrentProcessId()
m_oSpmMgr.delproperty lProc, "UserName"
m_oSpmMgr.delproperty lProc, "PropsString"
m_oSpmMgr.delproperty lProc, "LogStatus"
m_oSpmMgr.delproperty lProc, "AcctName"
m_oSpmMgr.delproperty lProc, "KDLogin" Set m_oSpmMgr = Nothing
End Sub
已实际测试,可以使用!效果如下:
八、K3 WISE 开发插件《工业单据老单插件中获取登陆用户名》的更多相关文章
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...
- 十二、K3 WISE 开发插件《工业单据老单与自己添加的窗体 - 互相传值传参》
===================================== 目录: 1.演示效果--[销售订单]传值给[自定义窗体] 2.演示效果--[自定义窗体]传值给[销售订单] 3.附源码 4. ...
- 二、K3 WISE 开发插件《 工业单据老单客户端插件事件、属性、方法》
===================== 目录: 1.插件事件说明如下 2.插件属性说明如下 3.插件方法说明如下 ===================== 1.插件事件说明如下: 序号 事 ...
- 九、K3 WISE 开发插件《工业单据老单序时薄插件工具栏按钮开发实例》
=============================== 目录: 1.添加工具栏按钮 2.查询被添加工具栏按钮的业务单据的FMenuID和FID 3.添加工具栏按钮和业务单据的映射关系 4.工具 ...
- 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
jQuery,验证表单插件,Ajax 表单插件,验证和提交表单 HTML <form id="reg" method="post" action=&quo ...
- 十、K3 WISE 开发插件《SQL Profiler跟踪单据操作时产生的SQL语句》
=================================== 目录: 1.查询帐套的数据库DBID 2.配置需要跟踪数据库的DBID 3.配置跟踪参数 4.跟踪进行 5.分析跟踪语句 === ...
- K3 WISE 开发插件《K3 WISE常用数据表整理》
在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------ FStatu ...
- 一、K3 WISE 开发插件《K3 WISE常用数据表整理》
在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单. ----------------系统设置------------------------FStatus ...
- 三、K3 WISE 开发插件《K3 WISE开发手册》
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功! 2.主控台的查询分析工具,添加sql直接报表,代码用到临时表,提示“在对应所需名称或序数的集合中未找到项目” 解决:在代 ...
随机推荐
- Java调用使用SSL/HTTPS协议来传输的axis webservice服务
使用SSL/HTTPS协议来传输 Web服务也可以使用SSL作为传输协议.虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议. 1.使用JDK自带的工具创建密匙 ...
- Spark2.3(三十七):Stream join Stream(res文件每天更新一份)
kafka测试数据生成: package com.dx.kafka; import java.util.Properties; import java.util.Random; import org. ...
- js 创建Date对象5种方式
new Date("month dd,yyyy hh:mm:ss"); new Date("month dd,yyyy"); new Date(yyyy,mth ...
- XMR恶意挖矿脚本处理笔记
一.登录 攻击者如何登录系统未能查出,所有日志已被清除.为防万一,把系统中没用的用户都删掉并修改其他用户密码. 二.被攻击后的表象 1.服务器资源被大量占用,资源占用率飙升: 2.服务器所有JS文件被 ...
- linux一些稍微高级的命令
cut 命令:提取文件中指定的字段(列).字符内容.单词的默认分隔符为空格. cut [选项]... [文件]... 选项: -b 按照字节切 -c 按照字符切 -d 指定分割符 -f 指定 ...
- sublime 3插件推荐
新建文件以及快速注释 1. SublimeTmpl 快速生成文件模板 一直都很奇怪为什么sublime text 3没有新建文件模板的功能,像html头部的DTD声明每次都要复制粘贴.用Subli ...
- MVC通用控件库展示-MVC4.0+WebAPI+EasyUI+Knockout--SNF快速开发平台3.0
在我们开发中怎么才能提高效率,就是要有大量的公共组件(控件)可以直接使用而不用自己再开发一遍,既然是公共控件那也得简单实用才行.下面就介绍一下SNF-MVC当中的控件库. 总体控件库展示: 1.通用用 ...
- 译:9.使用Redis进行消息传递
本指南引导您完成使用Spring Data Redis发布和订阅通过Redis发送的消息的过程.Messaging with Redis 1. 我们将构建什么? 您将构建一个使用StringRedis ...
- 常用七种排序的python实现
1 算法复杂度 算法复杂度分为时间复杂度和空间复杂度.其中, 时间复杂度是指执行算法所需要的计算工作量:而空间复杂度是指执行这个算法所需要的内存空间. 算法的复杂性体现在运行该算法时的计算机所需资源的 ...
- 【工具】我的Git学习日志
使用github一段时间,一直使用的是可视化工具,配合公司转用git,提前联系下git的命令. 安装 windows上安装git 从git for windows下载安装包,我下的是Git-2.13. ...