User interface 在App Maker的表小部件中显示每个用户的记录

User interface 在App Maker的表小部件中显示每个用户的记录,user-interface,widget,report,google-app-maker,User Interface,Widget,Report,Google App Maker,我几乎完成了我的第一个App-Maker应用程序(学到了很多,感谢迄今为止的帮助!)。当前,当用户登录和退出工作站点时,该应用程序会收集时间戳数据。由于离开和返回之间的时间可能只有几个小时,而且由于App Maker基于浏览器,我最初遇到了用户无法完成录制并点击时间按钮的问题。我解决了这个问题,将“时间输入”按钮移动到“记录”页面上的弹出窗口,这样当用户返回工作时,他们就可以打开记录,点击“时间输入”并开始工作。很简单,对吧 我现在的问题是,用户无法在UserRecords页面上查看自己的记录

我几乎完成了我的第一个App-Maker应用程序(学到了很多,感谢迄今为止的帮助!)。当前,当用户登录和退出工作站点时,该应用程序会收集时间戳数据。由于离开和返回之间的时间可能只有几个小时,而且由于App Maker基于浏览器,我最初遇到了用户无法完成录制并点击时间按钮的问题。我解决了这个问题,将“时间输入”按钮移动到“记录”页面上的弹出窗口,这样当用户返回工作时,他们就可以打开记录,点击“时间输入”并开始工作。很简单,对吧

我现在的问题是,用户无法在UserRecords页面上查看自己的记录,除非我让他们成为管理员,但这样一来,不仅他们自己可以访问完整的表,还可以显示所有用户的所有记录。导航菜单最初包含我删除的代码片段:

(@user.roles).indexOf('Admins', 'Managers') !== -1
但我不确定我是否遗漏了什么,因为这个问题似乎仍然部分基于用户角色?这是数据源字段的图像,在这个应用程序中只有两个模型,GatePass(如图所示)和Directory(用于用户选择器)

导出如下所示(其目的是让每个用户获得自己的数据,而不是整个源表):

另外,这就是用户输入页面现在的样子(如果有帮助的话),我设法让用户电子邮件自动填充
record.email=Session.getActiveUser().getEmail():


简而言之,用户应该只在UserRecords页面中看到他们的记录,这样他们就可以访问并完成提交。他们的出口情况也是如此。有人能帮忙吗?

在您的模型中,转到数据源选项卡。如果显示了多个数据源,则由您选择正确的数据源。确保取消选中“自动加载数据”选项

接下来,转到表格所在的页面。然后在表上列出以下内容:

var ds = widget.datasource;
if(!app.user.role.Admins){
  ds.query.filters.Email._equals = app.user.email;
}
ds.load();
这应该能奏效。关于管理员角色的权限问题,请确保模型具有适当的权限。为此,请访问模型的安全性 选项卡,并确保设置了正确的权限

参考资料:


您可以使用不同的数据源或使用查询参数使用相同的数据源执行此操作。为了给你更多的帮助,请你编辑一下你的问题,然后贴一张你的模特的截图。我对字段和数据源感兴趣。编辑和更新:)我刚想起我的同事,他在初始测试时不是管理员,创建了多个条目,但在我让他成为管理员之前,没有一个条目作为存储数据写入表中。我不知道为什么会这样?谢谢!它起作用了!我查看了代码并了解了它的流程,因此在这里学到了一些新的东西:)非常感谢您的帮助,将继续使用应用程序运行,并尝试实现较小的功能,例如在输入/提交完整记录后锁定编辑,以及如何从应用程序内通过电子邮件发送报告(唯一让我感到困惑的是将出口/表格附在电子邮件上)。