我正在导入一个格式类似于报告的 Excel 文件 - 也就是说,对于它所属的每组行,某些列仅填充一次,例如:
CaseID |Date |Code
157207 | |
|8/1/2012 |64479
|8/1/2012 |Q9967
|8/1/2012 |99203
我需要捕获其中一个组标题(在上面的示例中为 CaseID)并将其用于字段为空白的后续行,然后保存我遇到的下一个值。我添加了一个变量 (User::CurrentCaseId) 和一个脚本转换,代码如下:
public class ScriptMain : UserComponent
{
string newCaseId;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (!Row.CaseIDName_IsNull && Row.CaseIDName.Length > 0)
newCaseId = Row.CaseIDName;
else
newCaseId = "DetailRow";
}
public override void PostExecute()
{
base.PostExecute();
if (newClaimNumber != "DetailRow")
Variables.CurrentCaseId = newCaseId;
}
基本上,我正在尝试读取存在的值并将其保存在此变量中。我使用条件拆分来丢弃只有 CaseID 的行,然后使用派生列将变量值放入新列以完成详细信息行。唉,该值始终为空白(在派生列之后放置一个数据查看器)。我修改了脚本以始终将变量设置为固定字符串 - 派生列仍然是空白的。
这似乎是一个不错的计划……我在 MS 论坛中收到了一些反馈,您不能在同一个数据流任务中设置变量值并使用它的新值。如果是这样,我能想到的唯一解决方案是在存在时将 CaseID 写入表中,并在不存在时将其读回。我真的很讨厌用几百万行(多个 Excel 工作表)来做这件事。有更好的想法吗?
最好的,斯科特