【问题标题】:Collect data from 80 users, hiding other user's data收集 80 个用户的数据,隐藏其他用户的数据
【发布时间】:2012-06-28 11:48:23
【问题描述】:

我的妻子在一家中型零售连锁店工作。 80 家门店的经理每人(共 900 人)必须填写一行绩效信息,但不允许查看其他门店员工的数据。

我的妻子目前使用大量电子表格来管理这项工作,因为每个月主管都会更改他们想要收集的内容,而他们的 IT 团队没有资源来更新他们的 SAS 系统。她必须手动将所有数据编译到 1 个电子表格中进行分析,这既费时又容易出错。她最近从不得不为 20 家网点这样做到 80 家网点,并认为她必须是一种更简单的方法。

是否有一个简单的基于表单的系统,可以利用已安装的内容(microsoft office 和 lotus,但不是 MSAccess),或者可以从网络驱动器运行。云应用程序被禁止。 Excel 的安全性全是错误的。 Word 表单模板可以附加到共享数据源吗?有任何想法吗?

TIA

【问题讨论】:

  • 向每位经理发送相同的 Excel 模板,然后使用编程代码将它们组合成一个工作表。您可以将所有文件放入一个文件夹并编写一个解析每个文件的循环。

标签: database forms ms-office


【解决方案1】:

您可以有一个包含所有数据的表,然后在此表上为每个单独的商店创建“影子表”。

在 MySQL 中,这可能是“分区表”(我从未使用过,所以不确定它是如何工作的)或临时表的使用。

然后您需要实现一种方法,当用户在给定位置(IP 地址)登录时,触发器将创建临时表,然后使用该 IP 地址上商店的相关数据填充它。

另一种选择(可能也更容易)是为每个商店指定一个表,然后在您创建的每个表上授予用户特定的权限。同样,您需要触发器在更新时使用信息填充单个“主表”,或者您只需发送一个 select * from outlet1, outlet2... outlet80

同样,您可以决定从上述选择创建一个临时表,并实施一个自定义脚本以仅在需要时创建它。 事实上,我可能会这样做。 然后在您的 Web 界面中有一个按钮来创建临时表,并将其显示给当前用户(当然,前提是他们具有查看所有表所需的权限)。

我不确定 Lotus 是否能够实现这一点,我不知道它的“数据库”解决方案。我知道在 Access 中做类似的事情并不难,唯一的缺点是需要处理用户识别(Access 本身不这样做),我也不知道 Lotus。

根据我的经验,“平面文件数据库系统”通常不会以原生方式处理用户权限,而是将其置于界面开发中来处理。

我不确定这个答案有多大帮助,但它可能会带你一点点找到解决方案(即使你最终选择了服务器/客户端 dbms 系统)

【讨论】:

    【解决方案2】:

    您可以为此使用 Lotus。一个简单的开始:

    1. 创建一个表单和一个视图的数据库
    2. 在表单上添加您想要的任何字段,但还添加一个“Readers”类型的计算时组合多值字段,其公式为:

      “[管理员]”:@Name([CANONICALIZE];@userName)

    3. 除了具有管理员角色的人(例如,您的妻子)之外,视图将仅向每个用户显示用户创建的记录。用户必须每行创建一条记录。

    或者,您可以在数据库中创建一个代理,该代理从 Excel 文件中读取数据,并使用在创建文档时计算出的 READERS 字段值来构建文档(记录)。

    如果这是您想在此处回复的路线,我将发布一些代码以 (i) 提示用户选择一个 excel 文件,(ii) 将 excel 文件数据读入 lotus notes,(iii)实现一个 READERS 字段,以查看文档在创建者和管理员角色之间保密。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2021-03-24
      • 2019-12-18
      • 2011-10-17
      • 2018-03-17
      相关资源
      最近更新 更多