以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 表事件的代码如何转换为窗口代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=120678)

--  作者:hanzhang98
--  发布时间:2018/6/21 17:43:00
--  [求助] 表事件的代码如何转换为窗口代码
从论坛下载了个“权限管理-小例”的示例,里面有给“用户表”-用户“密码”加密的功能(也就是打开表时,密码列的字符是“zgv9FQWbaNZ2iIhNej0+jA==”这样的),但这个功能和代码是在表事件里面,代码如下:

表事件

 

权限_PrepareEdit

 

Select Case e.Col.Name

    Case "表名"

        e.Col.ComboList = DataTables("表列").GetComboListString("表名")

    Case "列名"

        e.Col.ComboList = DataTables("表列").GetComboListString("列名", "表名 = \'" & e.Row("表名") & "\'")

End Select

 

用户_CellButtonClick

 

Select Case e.Col.Name

    Case "密码"

        e.Cancel = True

        Dim result As DialogResult

        result = MessageBox.Show("你希望重置该用户的密码吗?", "重置密码", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)

        If result = DialogResult.Yes Then

            Dim pwd As String = MD5Encrypt("123456")   \'初始密码123456

            e.Row(e.Col.Name) = pwd

        End If

End Select

 

用户_DataColChanging

 

Select Case e.DataCol.Name

    Case "密码"

        If e.NewValue = "" OrElse e.NewValue = MD5Encrypt("123456") Then

            e.NewValue = MD5Encrypt("123456")

        Else

            e.NewValue = MD5Encrypt(e.NewValue)

        End If

End Select


如何能让上述在表里面“给用户密码加密的代码”在“增加用户”和“更改用户”窗口里使用。也就是说在“增加用户”和“更改用户”窗口给用户的密码也能加密并写入表中。谢谢!

 

[此贴子已经被作者于2018/6/21 17:46:26编辑过]

--  作者:有点甜
--  发布时间:2018/6/21 17:45:00
--  

你增加用户、更改用户的代码怎么写的?贴出来看看。


--  作者:hanzhang98
--  发布时间:2018/6/21 18:20:00
--  

完全按2018版使用帮助“自定义用户与权限管理之一”:写的,代码上不去,说是字符数超限。谢谢版主。



 


[此贴子已经被作者于2018/6/21 18:25:26编辑过]

--  作者:有点甜
--  发布时间:2018/6/21 18:25:00
--  

增加用户代码这样写的

 

cmd.CommandText = "Insert Into {Users} ([Name],[Group],[Password]) Values (\'"
cmd.CommandText = cmd.CommandText & UserName & "\',\'" & UserGroup & "\',\'" & Password & "\')"

 

那就需要改成

 

cmd.CommandText = "Insert Into {Users} ([Name],[Group],[Password]) Values (\'"
cmd.CommandText = cmd.CommandText & UserName & "\',\'" & UserGroup & "\',\'" & MD5Encrypt(Password) & "\')"


--  作者:hanzhang98
--  发布时间:2018/6/21 18:37:00
--  
再麻烦请教版主一个问题,就是按2018版使用帮助“自定义用户与权限管理之一”的用户管理窗口的列表框如何能显示出两列内容来,即显示“用户编码、用户名称”两列并按用户编码排序。代码如下:(还是上不去代码)



另外,如何将列表框选定的用户在“用户编码、用户姓名、用户密码”等文本框显示出“用户”表的列内容。谢谢版主。


--  作者:hanzhang98
--  发布时间:2018/6/21 18:42:00
--  
再请教版主:“增加用户”和“更改用户”窗口给用户的密码加密并写入表中后,在登录窗口输入的密码是不是也得用加密方法验证,登录窗口的加密验证代码又如何写。谢谢!
--  作者:有点甜
--  发布时间:2018/6/21 20:46:00
--  
以下是引用hanzhang98在2018/6/21 18:37:00的发言:
再麻烦请教版主一个问题,就是按2018版使用帮助“自定义用户与权限管理之一”的用户管理窗口的列表框如何能显示出两列内容来,即显示“用户编码、用户名称”两列并按用户编码排序。代码如下:(还是上不去代码)



另外,如何将列表框选定的用户在“用户编码、用户姓名、用户密码”等文本框显示出“用户”表的列内容。谢谢版主。

 

afterLoad事件

 

cmd.CommandText = "SELECT DISTINCT Name From {Users}"

 

改成,细节自己调整

 

cmd.CommandText = "SELECT DISTINCT 用户编码+Name as name From {Users}"

 


--  作者:有点甜
--  发布时间:2018/6/21 20:47:00
--  
以下是引用hanzhang98在2018/6/21 18:42:00的发言:
再请教版主:“增加用户”和“更改用户”窗口给用户的密码加密并写入表中后,在登录窗口输入的密码是不是也得用加密方法验证,登录窗口的加密验证代码又如何写。谢谢!

 

If e.Form.Controls("PassWord").Value = dr("Password") Then

 

改成,请灵活变通

 

If e.Form.Controls("PassWord").Value = MD5Encrypt(dr("Password")) Then


--  作者:hanzhang98
--  发布时间:2018/6/22 17:16:00
--  
甜版主、老师好。如下代码能实现列表框双列显示,但须老师修正。(发不上代码来,说是参数错误,只好发个图片,望老师见谅)


图片点击可在新窗口打开查看此主题相关图片如下:2018-06-22 17.02.36.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/6/22 17:16:27编辑过]

--  作者:有点甜
--  发布时间:2018/6/22 17:41:00
--  

改成

 

lst.Items.add(dr("用户编码") & "    " & dr("用户姓名"))