SuperKey1.ecl 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // Example code - use without restriction.
  3. //
  4. IMPORT $;
  5. IMPORT Std;
  6. s1 := $.DeclareData.Accounts(Account[1] = '1');
  7. s2 := $.DeclareData.Accounts(Account[1] = '2');
  8. s3 := $.DeclareData.Accounts(Account[1] = '3');
  9. s4 := $.DeclareData.Accounts(Account[1] IN ['4','5','6','7','8','9']);
  10. Rec := $.DeclareData.Layout_Accounts_Link;
  11. RecPlus := {Rec,UNSIGNED8 RecPos{virtual(fileposition)}};
  12. d1 := DATASET($.DeclareData.SubKey1,RecPlus,THOR);
  13. d2 := DATASET($.DeclareData.SubKey2,RecPlus,THOR);
  14. d3 := DATASET($.DeclareData.SubKey3,RecPlus,THOR);
  15. d4 := DATASET($.DeclareData.SubKey4,RecPlus,THOR);
  16. i1 := INDEX(d1,{PersonID},
  17. {Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance,RecPos},
  18. $.DeclareData.SubIDX1);
  19. i2 := INDEX(d2,{PersonID},
  20. {Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance,RecPos},
  21. $.DeclareData.SubIDX2);
  22. i3 := INDEX(d3,{PersonID},
  23. {Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance,RecPos},
  24. $.DeclareData.SubIDX3);
  25. i4 := INDEX(d4,{PersonID},
  26. {Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance,RecPos},
  27. $.DeclareData.SubIDX4);
  28. BldDat := PARALLEL(
  29. IF(~Std.File.FileExists($.DeclareData.SubKey1),
  30. OUTPUT(s1,
  31. {PersonID,Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance},
  32. $.DeclareData.SubKey1)),
  33. IF(~Std.File.FileExists($.DeclareData.SubKey2),
  34. OUTPUT(s2,{PersonID,Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance},$.DeclareData.SubKey2)),
  35. IF(~Std.File.FileExists($.DeclareData.SubKey3),
  36. OUTPUT(s3,{PersonID,Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance},$.DeclareData.SubKey3)),
  37. IF(~Std.File.FileExists($.DeclareData.SubKey4),
  38. OUTPUT(s4,{PersonID,Account,OpenDate,IndustryCode,AcctType,AcctRate,Code1,Code2,HighCredit,Balance},$.DeclareData.SubKey4)));
  39. BldIDX := PARALLEL(
  40. IF(~Std.File.FileExists($.DeclareData.SubIDX1),
  41. BUILDINDEX(i1)),
  42. IF(~Std.File.FileExists($.DeclareData.SubIDX2),
  43. BUILDINDEX(i2)),
  44. IF(~Std.File.FileExists($.DeclareData.SubIDX3),
  45. BUILDINDEX(i3)),
  46. IF(~Std.File.FileExists($.DeclareData.SubIDX4),
  47. BUILDINDEX(i4)));
  48. SEQUENTIAL(BldDat,BldIDX);