f_getrightsize.srf 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. $PBExportHeader$f_getrightsize.srf
  2. global type f_getrightsize from function_object
  3. end type
  4. forward prototypes
  5. global function decimal f_getrightsize (decimal arg_aw, decimal arg_ah, decimal arg_bw, decimal arg_bh, decimal arg_flag)
  6. end prototypes
  7. global function decimal f_getrightsize (decimal arg_aw, decimal arg_ah, decimal arg_bw, decimal arg_bh, decimal arg_flag);Long rslt = 0
  8. IF arg_ah >= arg_bh AND arg_aw >= arg_bw THEN
  9. IF arg_flag = 1 THEN
  10. RETURN arg_bh
  11. ELSE
  12. RETURN arg_bw
  13. END IF
  14. ELSEIF arg_ah >= arg_bh AND arg_aw <= arg_bw THEN
  15. arg_bh = arg_bh * (arg_aw / arg_bw)
  16. IF arg_flag = 1 THEN
  17. RETURN arg_bh
  18. ELSE
  19. RETURN arg_aw
  20. END IF
  21. ELSEIF arg_ah <= arg_bh AND arg_aw >= arg_bw THEN
  22. arg_bw = arg_bw * (arg_ah / arg_bh)
  23. IF arg_flag = 1 THEN
  24. RETURN arg_ah
  25. ELSE
  26. RETURN arg_bw
  27. END IF
  28. ELSEIF arg_ah <= arg_bh AND arg_aw <= arg_bw THEN
  29. IF arg_bh / arg_bw <= arg_bw / arg_bh THEN
  30. arg_bh = arg_bh * (arg_aw / arg_bw)
  31. IF arg_flag = 1 THEN
  32. RETURN arg_bh
  33. ELSE
  34. RETURN arg_aw
  35. END IF
  36. ELSE
  37. arg_bw = arg_bw * (arg_ah / arg_bh)
  38. IF arg_flag = 1 THEN
  39. RETURN arg_ah
  40. ELSE
  41. RETURN arg_bw
  42. END IF
  43. END IF
  44. END IF
  45. end function