在SharePoint中链接一对多(员工到薪资历史记录)列表

时间:2012-07-30 17:16:10

标签: sharepoint ms-access one-to-many

这是我的问题:

[编辑]:好的,此时这几乎变成了一个单独的问题...我的道歉。要切入追逐,这是我的业务要求。我有一个包含Salary字段的Employee记录(列表中的项)。我需要能够查看员工薪资历史的报告。

就是这样。在我看来(这肯定来自SQL /数据库背景)这意味着一对多的表(一个员工有很多工资)。事实证明这在SharePoint中并不那么简单,因为我必须过滤Salary字段以仅显示给定Employee的SalaryHistory列表中的Salaries。

我的新问题是最好的方法是什么?是否可以仅使用具有Salary字段的Employee列表,然后以某种方式查看或显示该特定Salary字段的历史记录?例如,如果员工00001的薪资从50,000更改为60,000,我可以查看显示此薪资字段历史记录的某种报表/页面吗?

[/编辑]

我想将现有的MS Access / VBA遗留系统转换为SharePoint 2010.现有的MS Access系统非常简单:Employees数据库,包含典型的Employee信息,包括Salary History。我遇到麻烦的一个问题是,员工不仅有工资,还有工资历史。这意味着主管应该能够查看员工的薪资历史,而不仅仅是员工的当前薪水。

在我看来,这是一对多关系:一个链接到薪资历史表的员工表(一对多是员工在一段时间内可以有很多工资)。

在SharePoint中实现此功能的最佳方法是什么?我尝试过使用InfoPath以及一些自定义代码,但我似乎无法正确使用它。在我看来,这是一个相对简单的概念,但我无法将其从概念转变为具体的SharePoint解决方案。

任何想法或建议?

谢谢,

格伦

1 个答案:

答案 0 :(得分:1)

这种设置在SharePoint中运行良好。唯一真正的基本要求是您的关系需要是“基本”设置。

两个表之间的关系需要两件事:

a)您为父表使用标准自动编号主键。

b)您为子表使用标准长号列。

原来以上是Access的基本默认值。所以第一个提示/技巧是确保正确设置关系。 IF 您这样做是正确的,然后您可以调整大小并将表格发送到SharePoint,并且您的关系数据将完全正确。

既然SharePoint支持级联删除(和删除限制)的关系数据库功能,那么如果删除父记录,那么子表中的子记录将为您级联删除。

请记住,在上载期间,可能会更改“无意义”的PK编号ID(这意味着也可能会发生子级FK(外键)的级联更新。

因为你现有的关系百合不会正确,所以你最好“删除”关系,并重新创建它们。

另外,请不要忘记检查Access中的选项以使用“新”缓存格式。我正在谈论的是这一个:

enter image description here

此设置的结果非常令人惊讶,因为您的应用程序现在将以“离线”连接模式运行。这意味着如果您连接到此数据库的多个用户都拔出了网络插头,那么它们都可以继续工作。它们都有一个本地高速缓存(这种设置通常可以在sql server周围运行)。因此,如果您在10,000记录表上运行报告,则不需要任何带宽!

当互联网连接恢复或您从现场返回带有Wi-Fi的咖啡店时,数据将为您同步(所有连接用户之间的数据实时同步)。此设置通常需要对现有VBA代码进行零更改。 (有一个例外需要更改代码)。

现在,下一个问题/部分是如何设置关系以便它们进入SharePoint。我将解释以下视频中的步骤:

http://www.youtube.com/watch?v=3wdjYIby_b0&list=PL27E956A1537FE1C5&index=2&feature=plpp_video

请注意,在上面这意味着您必须使用关系向导,而不是关系设计窗口来正确设置这些关系。如果您执行上述操作,那么向上扩展到SharePoint将发送表,并将在SharePoint上保持关系完整。

编辑:此外,在上面的视频中,我将数据库发布到SharePoint,因为我有Access Web Services可用。您不需要发布,但可以使用“数据库工具”选项卡并使用SharePoint按钮。 enter image description here