f_cmpl_trancode.srf 999 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. $PBExportHeader$f_cmpl_trancode.srf
  2. global type f_cmpl_trancode from function_object
  3. end type
  4. forward prototypes
  5. global function string f_cmpl_trancode (string arg_stationname, string p1, string p2, string p3)
  6. end prototypes
  7. global function string f_cmpl_trancode (string arg_stationname, string p1, string p2, string p3);String rslt = ''
  8. String ls_formula
  9. SELECT trancode_formula
  10. INTO :ls_formula
  11. FROM u_station
  12. Where stationname = :arg_stationname;
  13. IF sqlca.SQLCode <> 0 THEN
  14. RETURN p1 + p2 + p3
  15. END IF
  16. IF ls_formula = '' THEN
  17. RETURN p1 + p2 + p3
  18. END IF
  19. datastore ds_cmp
  20. ds_cmp = Create datastore
  21. ds_cmp.DataObject = 'ds_cmp_trancode'
  22. Long row
  23. row = ds_cmp.InsertRow(0)
  24. ds_cmp.Object.p1[row] = p1
  25. ds_cmp.Object.p2[row] = p2
  26. ds_cmp.Object.p3[row] = p3
  27. String ls_rs
  28. ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_formula + "'")
  29. IF ls_rs <> '' THEN
  30. Destroy ds_cmp
  31. RETURN p1 + p2 + p3
  32. END IF
  33. ds_cmp.AcceptText()
  34. rslt = ds_cmp.Object.cmp[row]
  35. Destroy ds_cmp
  36. RETURN rslt
  37. end function