Foxtable(狐表)用户栏目专家坐堂 → [分享] 通用平台───持续更新(20140928进程识别)......


  共有270063人关注过本帖树形打印复制链接

主题:[分享] 通用平台───持续更新(20140928进程识别)......

帅哥哟,离线,有人找我吗?
lsy
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/5 20:29:00 [显示全部帖子]

以下是引用gua12gua在2014-6-5 20:20:00的发言:
无法切换到开发者?

不需要切换到开发者,自定义菜单是导入的系统菜单。权限都是开发者的。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/5 20:58:00 [显示全部帖子]

如果SQL Server数据库不通了,肯定报错。

这是狐表公司提供的免费空间,速度不行,经常卡死。

[此贴子已经被作者于2014-6-5 20:58:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/9 17:53:00 [显示全部帖子]

这个数据库空间啊!!!

 

前几天偶尔断,这两天偶尔通。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/10 18:05:00 [显示全部帖子]

一上手实际操作,就体会到赵括死而无冤。

纸上谈兵,终将一事无成。

 

下雨天出门───脚踏湿(实)地。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/14 9:26:00 [显示全部帖子]

权限控制,准备收尾的时候,出现个尴尬的问题:

 

如果项目不是太小,需要规范用户的操作流程。

简单的方法,是在窗口中操作,而且是模式窗口,这样能强制用户,按照开发者规定的流程,逐步操作。

打开模式窗口,菜单却用不上了,再好也是水中月、镜中花。

窗口呐,又没有内置菜单。

非主流方法,可以生成菜单,代码又像裹脚布。

 

看来,只能用窗口控件,代替菜单了,只保留部分通用菜单。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/16 9:53:00 [显示全部帖子]

以下是引用bhhgd在2014-6-16 1:38:00的发言:
真能做到通用吗?

当然是尽可能通用,比如加载、筛选、不同数据源,还有好多方面,尤其是权限控制。

权限控制,最为复杂,又必不可少,如果是写死在很多事件代码中,每个新项目都要从头写权限控制,那多烦人啦。

具体的权限,在权限管理表中规定,除了“项目开发”和“系统管理”(这两个权限角色是每个项目都必须具备的),只在事件代码中做逻辑性的判断,不出现具体的角色和用户的名称,最好也不要因为权限控制而写出具体的窗口、菜单、控件、表的名称。

用户与角色也是相对独立的。

 

这样,项目开发者只需在权限管理表中规定哪些可以用权限控制,大部分的菜单、窗口、控件、表,是不需要控制的。

项目开发者修改项目,系统管理员增减、修改角色、用户、对应的权限,不会或很少导致项目出错。

 

想的好,不一定做的对。

[此贴子已经被作者于2014-6-16 10:07:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/18 11:20:00 [显示全部帖子]

以下是引用hanxuntx在2014-6-18 9:27:00的发言:

没有数据库么?

打开一直报错

DLL都拷贝到安装目录了吗?


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/22 18:15:00 [显示全部帖子]

预告:明日重要更新。

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/23 8:01:00 [显示全部帖子]

通用平台,今天更新了。

重点在用户权限管理,以后慢慢说。

 

先说说数据源名称的通用问题:

 

在项目开发的过程中,可能要改变数据源名称,或者一个做好的项目,想只改变业务逻辑就能成为一个新项目,数据源名称往往是要改变的。

而数据源名称,在很多事件中都会有引用。要在众多的事件中找到并修改数据源名称,不会轻松。

 

全局代码:Public _Connection As String '数据源名称

BeforeConnectOuterDataSource _Connection = e.Name

引用示例:Functions.Execute("数据源通用代码",_Connection)

 

凡是用到数据源名称的地方,就用_Connection,而不是具体的名称。

这样,修改了数据源名称,其他事件中的数据源名称,就不用管了。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/6/24 9:12:00 [显示全部帖子]

通用日期括号与逻辑值

 

不同数据源,日期括号与逻辑值不一样。

内部数据源和ACCESS数据源    逻辑真:True,   逻辑假:False, 日期括号:#

SQL数据源    逻辑真:1,   逻辑假:0, 日期括号:'

 

凡是用到SQL语句的地方,例如在cmd.CommandText和LoadFilter中,逻辑值和日期括号,都需要根据数据源的变化而变化。

 

通过以下方法,就可以使逻辑值和日期括号通用:

Public _cmd As New SQLCommand
Public _dt As DataTable 'SQLCommand临时DataTable

Public _rq As String '日期括号
Public _true As Object '逻辑真
Public _false As Object '逻辑假

 

数据源通用代码(内部函数)

 

If DataTables.Contains(Args(0)) Then
    _dt = DataTables(Args(0))
    If _dt.SourceType = 1 Then
        _rq = "#"
        _true = True
        _false = False
    Else
        _rq = "'"
        _true = 1
        _false = 0
    End If
Else
    _cmd.ConnectionName = Args(0)
    If _cmd.C#"
        _true = True
        _false = False
    Else
        If Connections.Contains(_cmd.ConnectionName) Then
            If Connections(_cmd.ConnectionName).SourceType = 1 Then
                _rq = "#"
                _true = True
                _false = False
            Else
                _rq = "'"
                _true = 1
                _false = 0
            End If
        End If
    End If
End If

 

函数调用

只需要在Initialize事件中调用一次,就行了

Functions.Execute("数据源通用代码",_Connection)   '_Connection是通用数据源名称全局变量,等于e.Name

示例

一、
DataTables("订单").LoadFilter = "已付款 = "  & _true
DataTables("订单").Load

 

二、

Dim cmd As New Sqlcommand

cmd.Connection Name = _Connection

Dim d As String = "2012-03-30"
cmd.CommandText = "Select * From {订单} Where 日期 > " & _rq & d & _rq
Output.Show(_cmd.ExecuteReader.DataRows(1)("日期"))

 

三、为了使日期括号用起来更方便,建了一个专门的函数

数据源通用日期

If DataTables.Contains(Args(0)) Then
    _dt = DataTables(Args(0))
    If _dt.SourceType = 1 Then
        _rq = "#"
    Else
        _rq = "'"
    End If
Else
    _cmd.ConnectionName = Args(0)
    If _cmd.C#"
    Else
        If Connections.Contains(_cmd.ConnectionName) Then
            If Connections(_cmd.ConnectionName).SourceType = 1 Then
                _rq = "#"
            Else
                _rq = "'"
            End If
        End If
    End If
End If
If IsDate(Args(1)) Then
    Return _rq & Args(1) & _rq
Else
    Return _rq & "1900-01-01" & _rq
End If

 

调用

Dim cmd As New Sqlcommand

cmd.Connection Name = _Connection

Dim d As String = "2012-03-30"
cmd.CommandText = "Select * From {订单} Where 日期 > " & Functions.Execute("数据源通用日期",_Connection,d)

Output.Show(_cmd.ExecuteReader.DataRows(1)("日期"))

 

 

 

 

 

[此贴子已经被作者于2014-6-24 9:18:08编辑过]

 回到顶部
总数 46 上一页 1 2 3 4 5 下一页