以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自定义用户表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102452)

--  作者:13865161910
--  发布时间:2017/6/20 10:48:00
--  [求助]自定义用户表问题
 用户表设计了如下列:
[账号][密码][姓名][身份证号码][分组][单位名称][手机号][代理品牌]
已经实现自定义用户表,并实现正常登录。现在想根据客户选择的代理品牌,来给某个参数表的某一列加权限,
比如[代理品牌]值为A,则显示的产品参数[列1][列3][列4][列2]用“***”显示掩码,[列1][列3][列4]正常显示;
比如[代理品牌]值为B,则显示的产品参数[列2][列3][列4][列1]用“***”显示掩码,[列2][列3][列4]正常显示;
 
请教是否要在全局代码定义?然后在表属性设置drawcell设置代码?代码该怎么输入权限这块?之前的username都是定义 _username

--  作者:有点色
--  发布时间:2017/6/20 11:01:00
--  

可以用一个变量记录 代理品牌 的值。

 

在登陆按钮那里赋值 _dlpp = dr("代理品牌")

 

那,在drawcell事件,就可以写代码

 

If _dlpp = "A" AndAlso e.Col.Name = "列2" Then

    e.Text = "***"

End If


--  作者:13865161910
--  发布时间:2017/6/20 11:07:00
--  回复:(有点色)可以用一个变量记录 代理品牌 的值。...
 


可以用一个变量记录 代理品牌 的值。



在登陆按钮那里赋值 _dlpp = dr("代理品牌")



那,在drawcell事件,就可以写代码



If _dlpp = "A" AndAlso e.Col.Name = "列2" Then

e.Text = "***"

End If


这个变量是写入您示例代码中的dlpp吗?还是用“代理品牌”四个字?
_dlpp 就是引用变量吗?

--  作者:有点色
--  发布时间:2017/6/20 11:12:00
--  

在全局代码定义 Public _dlpp As String = ""

 

登陆成功后赋值 _dlpp = dr("代理品牌")


--  作者:13865161910
--  发布时间:2017/6/20 14:16:00
--  回复:(有点色)在全局代码定义 Public _dlpp As Str...
 感谢,问题已解决!
测试过程中,还发现几个问题,请教一下:
1、点击登录后,设计的窗口背景色会持续显示大概5s左右。(登录窗口添加了一个panel控件,用于移动窗口功能的实现,是不是这个控件导致的?这个持续的时间,估计是表全部加载导致的!是不是应该登录后,表开始不加在?在进入主界面后,点击不同页面,在加载不同的表? 对此概念还有点模糊,引用的是外部表,将外部表记载到项目里面,和直接使用sql命令加载外部表的数据,这两个有什么区别?!)

2、关闭窗口的时候,如果不点击设计的关闭按钮Forms("用户登陆").Close,而是用鼠标右键点击任务栏进行关闭,就会跳转到foxtable项目页面,这是为何?

--  作者:有点色
--  发布时间:2017/6/20 14:47:00
--  

1、你在点击登录以后,执行了加载全部表数据库的代码?那些都是比较耗时的代码。

 

    你可以把窗口设置为透明,再加载数据,就不会有背景颜色持续5s的情况。

 

    登录后,需要时候的表,都应该加载。

 

   添加进来的表,可以设置修改列、代码事件等。sql命令加载的,代码编写麻烦。

 

2、你可以在beforeClose或者afterclose事件写代码,代码就是你关闭按钮的代码。


--  作者:13865161910
--  发布时间:2017/6/20 15:04:00
--  回复:(有点色)1、你在点击登录以后,执行了加载全部...

1、你在点击登录以后,执行了加载全部表数据库的代码?那些都是比较耗时的代码。
你可以把窗口设置为透明,再加载数据,就不会有背景颜色持续5s的情况。
登录后,需要时候的表,都应该加载。
添加进来的表,可以设置修改列、代码事件等。sql命令加载的,代码编写麻烦。
2、你可以在beforeClose或者afterclose事件写代码,代码就是你关闭按钮的代码。


re.
1、窗口设置透明的话,岂不是会让整个窗口背景都变淡?!看上去蛮变扭
主要是主数据用的是mssql,就是在项目里添加数据源然后添加数据表,选择加载所有数据,是不是默认加载几行,或者干脆不加载?
在使用的时候用sql加载?
有个矛盾,我虽然在添加外部数据表的时候设置了加载全部数据,但为了实现数据在打开页面不加载到表控件中,我在主窗口的afterload代码中加入了“Tables("表A").filter = False”,只有当进行数据筛选操作的时候在加载符合筛选条件的数据,是不是此时表是加载进来的?只是未显示在控件table表中?
2、我看其他帖子有老师说,关闭按钮代码还是写e.Form.close()(我之前写的是Forms("窗口名").close  【两个代码有区别吗?】),然后在窗口的beforeclose事件,写“basemainform.close”,不知道对否?是不是主窗口都要这样设置?还是向您说的,直接将关闭窗口的代码写到beforeclose或afterclose中?
这两个写关闭代码有区别吗?我看一个是关闭窗口前执行,一个是关闭窗口后执行,basemainform.close 这个是啥意思?帮助没看到此类说明
[此贴子已经被作者于2017/6/20 15:05:21编辑过]

--  作者:有点色
--  发布时间:2017/6/20 15:18:00
--  

1、你可以在需要的时候,再加载表或数据。

 

     你设置 Tables().Filter,设置的是筛选,不是加载,那个时候表格和数据都是加载出来了。

 

2、AfterClose写代码 BaseMainForm.Close 即可。BaseMainForm是foxtable的主窗口。


--  作者:13865161910
--  发布时间:2017/6/20 15:21:00
--  回复:(有点色)1、你可以在需要的时候,再加载表或数...
 是这样,因为设计是的自定义的主窗口,完全脱离开foxtable的主窗口,所以是不是既要关闭我自己设计的主窗口,还要在beforeclose写上basemainform.close?
--  作者:有点色
--  发布时间:2017/6/20 15:27:00
--  
以下是引用13865161910在2017/6/20 15:21:00的发言:
 是这样,因为设计是的自定义的主窗口,完全脱离开foxtable的主窗口,所以是不是既要关闭我自己设计的主窗口,还要在beforeclose写上basemainform.close?

 

嗯嗯,是的。