以文本方式查看主题 - 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?
嗯嗯,是的。 |