f_mtrl_pz.srf 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. $PBExportHeader$f_mtrl_pz.srf
  2. global type f_mtrl_pz from function_object
  3. end type
  4. forward prototypes
  5. global function string f_mtrl_pz (s_pzwin_open arg_s_open)
  6. end prototypes
  7. global function string f_mtrl_pz (s_pzwin_open arg_s_open);String rslt_pz
  8. String ls_col_name
  9. Int li_flag_status,li_flag_woodcode,li_flag_pcode
  10. Long ll_statustype,ll_woodcodetype,ll_pcodetype
  11. IF arg_s_open.arg_mtrlid = 0 THEN
  12. rslt_pz = ''
  13. GOTO ext
  14. END IF
  15. ls_col_name = Lower(arg_s_open.arg_col)
  16. IF Pos(ls_col_name,'status') > 0 THEN
  17. SELECT statusflag,statustype
  18. INTO :li_flag_status,:ll_statustype
  19. FROM u_mtrldef
  20. Where mtrlid = :arg_s_open.arg_mtrlid;
  21. IF sqlca.SQLCode <> 0 THEN
  22. rslt_pz = ''
  23. GOTO ext
  24. END IF
  25. CHOOSE CASE li_flag_status
  26. CASE 0
  27. arg_s_open.arg_mtrlid = 0
  28. arg_s_open.arg_dwname = 'dw_pz_ch_color'
  29. OpenWithParm(w_pz_ch,arg_s_open)
  30. rslt_pz = Message.StringParm
  31. CASE 1
  32. arg_s_open.arg_mtrlid = ll_statustype
  33. arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
  34. OpenWithParm(w_pz_ch,arg_s_open)
  35. rslt_pz = Message.StringParm
  36. CASE 2
  37. OpenWithParm(w_configure_ch,arg_s_open)
  38. rslt_pz = Message.StringParm
  39. CASE 3
  40. rslt_pz = ''
  41. GOTO ext
  42. CASE 4
  43. arg_s_open.arg_id = arg_s_open.arg_mtrlid
  44. arg_s_open.arg_mtrlid = ll_statustype
  45. arg_s_open.arg_editmode = true
  46. OpenWithParm(w_configure_pzmx_ch,arg_s_open)
  47. rslt_pz = Message.StringParm
  48. CASE ELSE
  49. rslt_pz = ''
  50. GOTO ext
  51. END CHOOSE
  52. ELSEIF Pos(ls_col_name,'woodcode') > 0 THEN
  53. SELECT woodcodeflag,woodcodetype
  54. INTO :li_flag_woodcode,:ll_woodcodetype
  55. FROM u_mtrldef
  56. Where mtrlid = :arg_s_open.arg_mtrlid;
  57. IF sqlca.SQLCode <> 0 THEN
  58. rslt_pz = ''
  59. GOTO ext
  60. END IF
  61. CHOOSE CASE li_flag_woodcode
  62. CASE 0
  63. arg_s_open.arg_mtrlid = 0
  64. arg_s_open.arg_dwname = 'dw_pz_ch_woodcode'
  65. OpenWithParm(w_pz_ch,arg_s_open)
  66. rslt_pz = Message.StringParm
  67. CASE 1
  68. arg_s_open.arg_mtrlid = ll_woodcodetype
  69. arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
  70. OpenWithParm(w_pz_ch,arg_s_open)
  71. rslt_pz = Message.StringParm
  72. CASE 4
  73. arg_s_open.arg_id = arg_s_open.arg_mtrlid
  74. arg_s_open.arg_mtrlid = ll_woodcodetype
  75. arg_s_open.arg_editmode = true
  76. OpenWithParm(w_configure_pzmx_ch,arg_s_open)
  77. rslt_pz = Message.StringParm
  78. CASE ELSE
  79. rslt_pz = ''
  80. GOTO ext
  81. END CHOOSE
  82. ELSEIF Pos(ls_col_name,'pcode') > 0 THEN
  83. SELECT pcodeflag,pcodetype
  84. INTO :li_flag_pcode,:ll_pcodetype
  85. FROM u_mtrldef
  86. Where mtrlid = :arg_s_open.arg_mtrlid;
  87. IF sqlca.SQLCode <> 0 THEN
  88. rslt_pz = ''
  89. GOTO ext
  90. END IF
  91. CHOOSE CASE li_flag_pcode
  92. CASE 0
  93. arg_s_open.arg_mtrlid = 0
  94. arg_s_open.arg_dwname = 'dw_pz_ch_pcode'
  95. OpenWithParm(w_pz_ch,arg_s_open)
  96. rslt_pz = Message.StringParm
  97. CASE 1
  98. arg_s_open.arg_mtrlid = ll_pcodetype
  99. arg_s_open.arg_dwname = 'dw_pz_ch_pztype'
  100. OpenWithParm(w_pz_ch,arg_s_open)
  101. rslt_pz = Message.StringParm
  102. CASE 4
  103. arg_s_open.arg_id = arg_s_open.arg_mtrlid
  104. arg_s_open.arg_mtrlid = ll_pcodetype
  105. arg_s_open.arg_editmode = true
  106. OpenWithParm(w_configure_pzmx_ch,arg_s_open)
  107. rslt_pz = Message.StringParm
  108. CASE ELSE
  109. rslt_pz = ''
  110. GOTO ext
  111. END CHOOSE
  112. ELSE
  113. rslt_pz = ''
  114. GOTO ext
  115. END IF
  116. ext:
  117. RETURN rslt_pz
  118. end function