以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]内置的文件管理器到底应该怎么用? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82732) |
||||
-- 作者:shenyl0211 -- 发布时间:2016/3/23 18:14:00 -- [求助]内置的文件管理器到底应该怎么用? 假设“附件”列为多文件列: 1、考虑到任意一个系统都不会只是纯外网或内网使用,所以,经过测试,发现“附件”列属性中关于远程文件、服务器地址、用户名、用户密码、UTF8、根目录等设置都是多余的,最终还是需要用代码进行设置,但帮助文档对此并没有进行系统、完整的讲解,而是一些支离破碎的内容,甚至也没有告知这些应该在哪个项目事件或哪个表事件设置,导致初学者浪费很多时间去反复调试。 由此联想到帮助文档中关于系统升级的属性设置部分也没有考虑到外网和内网共用的情况。 建议狐爸提供一套完整的、使用并控制内置文件管理器进行FTP管理的代码。 2、到底哪一个是帮助文档中说的内置文件管理器?——“附件”列实际上有两个窗口,一个是标题为“附件”的窗口,这个窗口的按钮按照帮助文档是可以控制的,即addcommand.enabled等属性设置是有效的;另一个窗口是标题为“文件管理器”的窗口,上述属性设置对这个窗口是无效的,也可能是我不知道怎么引用并控制这个窗口。这时候会出现下述的漏洞,甚至可以说是悲剧。另外,帮助文档在“窗口设计”一章中提到了“filemanager1”控件。整个帮助是将3种窗口混在一起讲的吗?比如: 独立设置各命令 FileManager提供了以下属性,用于返回底端的各命令: AddCommand
:增加 命令的属性有: Enabled: 逻辑型,用于设置命令是否可用。 示例 希望隐藏文件管理器中的删除和清除两个命令: Dim fm As WinForm.FileManager =
e.Form.Controls("FileManager1") 示例之前应该适用于所有窗口,而示例的dim语句说明该示例只适用于自定义窗口,而下面的代码应该紧跟在上述代码之后进一步讨论这8个命令的属性设置方法,而不应该另立一节,以说明适用于标题为“附件”的内置文件管理器: 设置内置的文件管理器 我们知道,如果将某列的扩展列类型设置为多文件型,默认会自动打开一个文件管理器,可以通过Col的FileManager属性获得此文件管理器,进行细节设置。 示例 假定员工表的附件列是一个多文件型,我们可以通过下面的代码打开此列的文件管理器,并禁用其文件管理器的“删除”和“清除”两个命令:
Tables("员工").Cols("附件").OpenWindow() 问题是:标题为“文件管理器”的这个窗口该如何设置上述属性呢? 而关于“远程文件”的属性设置代码竟然是在搜索“ftp”的时候发现的,且隐藏在附录中,真是太凌乱了: DataTables("合同").DataCols("文档").ExtendType = ExtendTypeEnum.FILES “使用指南”中属性设置的代码形式真是介绍的太少了。 3、“附件”列会自动出现“..."按钮,任何人都可以点此按钮进入“文件管理器”界面进行“增加”操作,这是漏洞,如果多人恶意增加文件会导致服务器的指定文件夹爆满,从而影响其他人的正常上传,而且看不出是谁干的坏事,除非增加包含用户名的文件夹予以专用(这也不失为一种好办法),但真正的权限控制问题并没有解决。 4、我有一个技术文件的“审查管理”表,只允许当前行的"项目经理"(列名)或文件的"编写设计"(列名)者才能点击“增加”按钮上传需要审查的文件(先不谈搞破坏,至少不让别人做无用功),但现在不知道到底该怎么对“文件管理器”(窗口名)中的“增加”按钮进行权限控制,自然也就解决最可怕的“管理”按钮的控制了。 5、另外,如果一个系统中存在多个多文件列,又该如何优化设置呢? 我已经折腾了很久,但仍是不得要领,希望广大高手赐教。在此先谢过了。 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/23 18:32:00 -- 内置的肯定有诸多限制,你可以动态限制一下
当然,最好的,还是自己做一个...... |
||||
-- 作者:shenyl0211 -- 发布时间:2016/3/23 22:09:00 -- 看来只能在文件夹方面动脑子了。谁上传的就都知道,除了开发者和管理者,不能进入别人的文件夹,自己的东西随便折腾吧。 |
||||
-- 作者:大红袍 -- 发布时间:2016/3/23 22:12:00 -- 方法一:控制好文件管理窗口的显示内容;
方法二:每一个用户分配一个ftp用户,定义好每个用户的账号密码,登陆的时候,用代码设置存放目录那些信息,就能控制权限。 |
||||
-- 作者:bahamute -- 发布时间:2016/12/29 13:58:00 -- 同问
[此贴子已经被作者于2016/12/29 13:59:00编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2016/12/29 14:27:00 -- 以下是引用bahamute在2016/12/29 13:58:00的发言:
同问
[此贴子已经被作者于2016/12/29 13:59:00编辑过]
在timerTick事件加入下面的代码,然后去处理一下
Dim lbx As object = e.Form.Controls("FileManager1").basecontrol.Controls("SplitContainer1").panel1.Controls("ListBox1") |