目前正在处理一个提取帐户设置的报告,这确实需要一些背景故事。
用户可以在帐户上进行设置,但是其他用户可以进入并使用“编辑”操作代码,然后取消先前的设置,创建新的设置,具有不同的付费选项,新帐户设置,真的。我们支付办公室的方式取决于谁拥有原始设置。
我正在制作的报告需要提取设置的原始创建者,但需要提供最新的设置信息。
就像accountNumber,oldUser,oldUserSupervisor,newSetUpDate,newSetUpAmt将是收集的列。
这些列来自一个名为“Setups”的表
当查询表时,如果你没有任何限制,它将显示所有过去的设置和当前,但是有一个非活动标志,isActive =“N”如果它不活动,isActive =“Y”如果它是......
我需要做的是获取原始安装程序用户,然后提取有关新设置的信息并制作如上所列的一行。
我尝试使用变量遍历每条记录,但它总是返回最新信息。
这是我在公式研讨会中使用的变量(我在标题中确实初始化了它们)
Shared DateVar createDate;
Shared BooleanVar countNext;
Shared StringVar previousRehab;
Shared StringVar cUser;
// Checking for the correct create date
If ( countNext = true ) Then
createDate := {CreateDate}
Else
createDate := createDate;
// Checking for the correct user
If ( countNext = true ) Then
cUser := {User}
Else
cUser := cUser;
//Checking for the correct cancel code
If ( {cancelReason} = "EDIT" ) Then
countNext := False
Else
countNext := True;
应该扫描每条记录,如果匹配则保存信息,然后停止搜索并打印记录。目前,它始终显示最新信息,而不会触及过去。
答案 0 :(得分:1)
这样你就会陷入困境。
按照以下流程:
假设帐户在新旧方面很常见。
使用account number
将这些列oldUser, oldUserSupervisor, newSetUpDate, newSetUpAmt
放在详细信息部分。
对于每一列,创建一个数组来存储所有数据并在组头重置数组。请遵循以下流程。
在组标题中创建公式@Reset
Shared Stringvar Array olduser="";
Shared Stringvar Array oldUserSupervisor="";
Shared Srtingvar array newSetUpDate="";
Shared Stringvar Array newSetUpAmt="";
现在详细信息为4列创建4个不同的公式,并写如下。我正在显示一列扩展到4列的日期和金额确保在存储到数组之前转换为字符串:
创建公式@storeolduser
olduser:=olduser+databasefield;
1
像这样为4列创建4个公式
在报表页脚中提取全部4个数组的第一个元素作为旧信息,数组的最后一个元素具有最新信息
olduser[1] //will give first user access
olduser[Ubound[olduser]] //will give last user accessed
提取组页脚中的所有内容并根据您的要求显示