本文介绍如何在报表编写器中将 HR 出勤余额字段(数组)拉入薪资支票报告或直接存款收款报告。 对于 HR,你需要拖动数组,这些数组中的出勤字段将按照字母数字顺序打印。 下面还包括一个示例,以及一些常见的故障排除问题。 默认情况下,“工资单”端的“休假/病假”字段默认包括在这些预设报告中,您必须将其删除,然后拖动 HR 数组以显示余额。
适用于: Microsoft Dynamics GP
原始 KB 数: 4021536
注意
若要将 HR 中的时间代码余额添加到员工薪酬或 DD 收入表,请使用以下步骤:(罐装的报表将默认为工资单)。
在编辑任何报表之前,应将当前修改的报表导出到文件夹中进行安全保存或引用。 要执行此操作:
- 在 Microsoft Dynamics GP 中,转到 Microsoft Dynamics GP >工具>自定义>自定义维护。
- 突出显示报表,然后选择 顶部的 EXPORT 。
- 将报表保存到所选的文件或位置。 该扩展将是
.pkg
。
决议
打开报表编写器:为此,请选择>报表编写器。
选择“产品: Microsoft Dynamics GP”,选择“ 确定”。
在菜单栏中选择“ 报表 ”。
如果您已经有修改过的报表,该报表会列在右侧。 如果未修改报表,请在“原始报表”列中的左侧找到它,并选择突出显示要修改的报表(例如员工检查或直接存款收益表),然后选择“插入”将其移动到“已修改的报表”列表。 选择 突出显示“修改后的报表”列表中的报表 ,然后选择“ 打开”。 (选择所需的报表。
然后选择“ 布局 ”按钮。 (这将打开工具箱、报表定义和报表布局窗口)。
在“工具箱”窗口(如下所示),选择“工资工时检查”表,向下滚动以选择“可用时间数组”,并将此字段拖动到“报表布局”窗口,希望这些字段位于其中。 (在报表布局上,可以找到工资休假和病假字段,并突出显示这些字段,然后按 Delete 将其从报表中删除。然后,将上面的新时间可用数组字段拖出其位置。
6b. 将新字段拖放到报表时,将打开“ 报表字段选项” 窗口。 把1放在数组索引中。
6c. 此外,在“报表字段选项”窗口中,选择 FORMAT 字段旁边的省略号 按钮。 在“格式查找”中,选择任何不包含美元符号的选项(如 DLR11_U2)。 选择“确定”,并再次选择“确定”以关闭窗口。 (如果你不这样做,你的小时数将旁边出现一个美元符号。)
6d. 重复 5a 和 5b,并拖动出“可用时间”数组,其中包含要列在文档上的任意数量的代码。 为每个数组索引增加 1,因此下一个 数组索引 就是 2,依此类推。规则是拖动出相当于需要打印最多代码的员工所需数量的数组。 (大多数用户拖出一个度假和一个生病的时间,所以将字段拖到布局两次。
注意
代码将以字母数字顺序打印。 (请参阅下一部分的示例。因此,如果打印代码较少,并且所有员工都在同一代码中注册,则更容易。
例如,Array #1 可能会打印出一名员工的病假时间,但为另一名员工提供休假时间。 因此,可以在下一步中拖动相应的标题,以使用每个代码:
添加字段标签:在“可用时间数组”字段的左侧,如果需要,只需将 VAC 和 SICK 标签硬编码到报表。 但是,由于代码以字母数字顺序打印,因此,它们可能会为不同员工以不同顺序打印。因此,你还需要拖动 时间代码数组 字段,以便每位员工的字段标签可以自动设定。 请遵循以下步骤进行操作。
在工具箱中,将下拉列表更改为工资单支票描述。
向下滚动到时间代码数组并将此字段拖动到报表。
此时将弹出一个报表 字段选项窗口 ,并在“ 数组索引 ”字段中放置 1。 (1 的此字段标签将与报表上的“可用时间”数组 1 相对应。
根据需要对要记录的任意数量的数字重复 6b 和 6c。每次将数组索引增加 1。 (注意:确保将时间代码数组1拖放到时间可用数组1旁边,因为它们对应。将时间代码数组2拖放到时间可用数组2旁边,依此类推。)
保存对报表所做的更改。 (关闭所有窗口,并在出现提示时选择 保存。)
转到文件>Microsoft Dynamics GP 重新返回 GP 并退出报表编写器。
返回 GP,请务必 向用户授予对修改后的报表的访问权限 。 转到Microsoft Dynamics GP>工具>设置>系统/备用修改的窗体和报告。
测试 为多个员工打印修改后的报表,并验证现在显示正确的余额。
对要修改的任何其他报表重复步骤,例如收益表或重新印记付款单等。
详细信息
示例:
下面是如何在不同员工的不同数组中打印代码的示例:
员工 #A 分配到两个代码:SICK 和 HVAC。 (每小时空置)
员工 #B 分配到三个代码:HOL、SICK 和 SVAC。 (工资空缺)
- 因此,我们将三个可用时间和时间代码数组拖到检查中。
这是代码的打印方式:
- 对于员工 #A:列表 1 - HVAC、列表 2 - SICK。
- 对于员工 #B:数组1 - HOL,数组2 - SICK,数组3 - SVAC。
- 因此,如果员工有不同的代码,则可以看到他们将按不同的顺序打印。 在 Array #1 中,第一名员工的假期标记为 VAC,但在 Array #3 中,假期标记适用于另一名员工。 偶然,两者的 SICK 都是数组 #2。 代码按字母数字顺序打印。
- 如果将 HOL 标记为员工 B 不显示,则员工 B 的排列 1 将是生病假,排列 2 将是休假。因此,员工 A 将按顺序显示休假和生病假,而员工 B 将按顺序显示生病假和休假。
如果我希望将病假(SICK)和事假(VAC)打印在每个人的直接存款(DD)报表上,应该怎么办? 我该怎么做?
在上面的示例中,可以将数组字段 #2 拖到收益报表的 SICK 区域。 但是,VAC 代码对每位员工来说都是不同的数组,因此不能提取任何数组作为 VAC 时间。
建议删除收益声明中的硬编码标题,改为将相应的时间代码数组拖放到每个可用时间数组的旁边。
以下是一系列选项:
拖动标题或时间码数组以对应每个可用时间数组,并且不要将标题进行硬编码。 (它们根据当前收益表进行硬编码,你不希望,因为代码将按不同顺序为每个员工打印。仅当所有员工都在同一代码中注册时,才会对报表上的字段标签进行硬编码。
可以在 HOL 代码(或虚拟代码)中注册员工 A,以便为员工打印相同数量的数组。 (尽管上述示例中的顺序仍然不同。在此示例中,必须将三个数组拖到收益表(适合 1 个框中,另一个框中的 2 个数组)使字体更小。VAC 是一名员工的数组 1,另一个是数组 3,因此,除非你愿意重命名代码,否则你必须将所有三个代码拖到语句中,以及相应的标题或时间代码数组。
重命名一些代码以强制它们按特定顺序打印。 例如,由于字母数字顺序,上述示例中的 HVAC 和 SVAC 打印在相反的数组中。 可以重命名这些代码或设置新代码(如 VACH 和 VACS),以便这两个代码在两名员工的打印顺序中位于最后。 然后在 HOL 或虚拟代码中注册员工 A。 然后,上述示例中所有员工的数组 1、2 和 3 是相同的。 如果所有员工的头衔顺序都相同,那么您可以对头衔进行硬编码。
- 不建议对游戏进行硬编码。 请改用相应的时间代码数组,以缓解将来添加新代码时出现的问题。 这将防止在未来发生不一致。
- 但是,你修改支票或收益表的方式确实由你决定,因为它是修改后的报表。
故障排除提示
下面是注释,查看是否对标头或说明使用数组,以及是否对每个数组的标头或说明进行硬编码:
如何获取按特定顺序显示的代码,以便我可以对标题进行硬编码
如果 对标头 或说明进行硬编码,而不是使用时间代码数组,则可以使用以下提示强制它们按特定顺序显示:
如果要确保代码始终先打印,可以设置 1sick 或 1vac 等代码。 使用编号序列使其按特定顺序打印。 (或者你可以把 Comp 转换为 Xcomp ,这样它会最后打印。)
或者,可以将所有员工分配到所有代码,前提是 0 余额将打印给不使用代码的雇员。
或者创建一个虚拟代码,为那些缺少一个代码的员工填补。 例如,如果你有一个叫做 COMP 的系统导致你的代码不适用于所有人,那么你可以创建一个虚拟代码并将其命名为填充或CompNone(或者你想要的任何名字,以便它在字母数字顺序中与其他代码一致),然后将此代码分配给其他员工。 在支票上打印此标记。 这将打印 0 个余额,因为它不用于这些员工。
如何获取用于打印的代码
转到卡片>HR>Attendance>维护并显示员工和权益类型代码,你将看到一个名为:在工资单上打印可用时间的框。 如果标记此框,则此时间将在支票上显示。
(此框对应于 TATM1030 表中的 PRNAVAILTMEPYRL 字段。值为 1 表示可以在员工薪酬上显示该字段。
最好使用 SQL 查询工具并检查TATM1030表。 有时,它可能会在前端上显示标记,但表可能不会显示 1 的值。 在这种情况下,需要更新表。
选择执行此操作的任何方式都由你决定。 请务必先将数据加载到测试环境中,然后对其进行测试,以确认获得所需的结果。
如果代码未打印出来
- 只有福利类型才会打印。
- 确保在 “员工出勤维护”窗口中标记了“工资单 上的打印可用时间”选项。 (卡片>HR>员工出勤>维护)
- 工时代码必须关联到工资代码。 在“员工出勤维护”窗口中回查时间代码进行验证。 (或转到工具>设置>HR>考勤>时间代码。)
如果列出了六个数组,但并非所有员工都被分配了六个代码,如何在打印剩余数组时不显示零值?
在报表编写器中双击该数组,然后选择“当为空时隐藏”,而不是“可见”。
我修改了报表,但用户仍然看到旧报表
你需要授予对报表的访问权限,以便用户能够使用它。