f_ljfieb_fillmtrl.srf 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. $PBExportHeader$f_ljfieb_fillmtrl.srf
  2. global type f_ljfieb_fillmtrl from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_ljfieb_fillmtrl (string arg_mtrlcode, long arg_ifsend, ref s_mtrldef_array s_post_mtrl, ref string arg_msg)
  6. end prototypes
  7. global function integer f_ljfieb_fillmtrl (string arg_mtrlcode, long arg_ifsend, ref s_mtrldef_array s_post_mtrl, ref string arg_msg);// 获取当前物料与其下级到当前列表
  8. Int rslt = 1
  9. s_mtrldef_array arg_s_mtrldef,s_empty
  10. Long ll_k,ll_j
  11. Long ll_itmx,ll_itmx_parent
  12. String ls_pfcode,ls_pf_str,ls_mtrlcode_pf
  13. datastore ds_prdpf
  14. ds_prdpf = Create datastore
  15. ds_prdpf.DataObject = 'ds_prdpf_send_ljfieb'
  16. ds_prdpf.SetTransObject(sqlca)
  17. arg_s_mtrldef = s_empty
  18. IF f_find_mtrl_ljfieb(arg_mtrlcode,arg_s_mtrldef) = 0 THEN
  19. rslt = 0
  20. arg_msg = '查询编码:'+arg_mtrlcode+'信息失败'
  21. GOTO ext
  22. END IF
  23. ll_itmx = UpperBound(s_post_mtrl.mtrlid)
  24. FOR ll_k = 1 To ll_itmx
  25. IF arg_s_mtrldef.mtrlid[1] = s_post_mtrl.mtrlid[ll_k] And arg_s_mtrldef.mtrlcode[1] = s_post_mtrl.mtrlcode[ll_k] THEN
  26. GOTO ext
  27. END IF
  28. NEXT
  29. ll_itmx++
  30. s_post_mtrl.mtrlid[ll_itmx] = arg_s_mtrldef.mtrlid[1]
  31. s_post_mtrl.mtrlcode[ll_itmx] = arg_s_mtrldef.mtrlcode[1]
  32. s_post_mtrl.mtrlname[ll_itmx] = arg_s_mtrldef.mtrlname[1]
  33. s_post_mtrl.mtrltype[ll_itmx] = arg_s_mtrldef.mtrltype[1]
  34. s_post_mtrl.mtrlsectype[ll_itmx] = arg_s_mtrldef.mtrlsectype[1]
  35. s_post_mtrl.mtrlmode[ll_itmx] = arg_s_mtrldef.mtrlmode[1]
  36. s_post_mtrl.Mtrlorigin[ll_itmx] = arg_s_mtrldef.Mtrlorigin[1]
  37. s_post_mtrl.unit[ll_itmx] = arg_s_mtrldef.unit[1]
  38. s_post_mtrl.dscrp[ll_itmx] = arg_s_mtrldef.dscrp[1]
  39. s_post_mtrl.isuse[ll_itmx] = 1
  40. s_post_mtrl.packqty[ll_itmx] = arg_s_mtrldef.packqty[1]
  41. s_post_mtrl.prdpackcode[ll_itmx] = arg_s_mtrldef.prdpackcode[1]
  42. s_post_mtrl.net_weight[ll_itmx] = arg_s_mtrldef.net_weight[1]
  43. s_post_mtrl.gross_weight[ll_itmx] = arg_s_mtrldef.gross_weight[1]
  44. s_post_mtrl.cubage[ll_itmx] = arg_s_mtrldef.cubage[1]
  45. s_post_mtrl.mtrlengname[ll_itmx] = arg_s_mtrldef.mtrlengname[1]
  46. s_post_mtrl.zxmtrlmode[ll_itmx] = arg_s_mtrldef.zxmtrlmode[1]
  47. s_post_mtrl.unit_scll[ll_itmx] = arg_s_mtrldef.unit_scll[1]
  48. s_post_mtrl.unit_buy[ll_itmx] = arg_s_mtrldef.unit_buy[1]
  49. s_post_mtrl.rate_buy[ll_itmx] = arg_s_mtrldef.rate_buy[1]
  50. s_post_mtrl.rate_scll[ll_itmx] = arg_s_mtrldef.rate_scll[1]
  51. s_post_mtrl.rate_sale[ll_itmx] = arg_s_mtrldef.rate_sale[1]
  52. s_post_mtrl.unit_sale[ll_itmx] = arg_s_mtrldef.unit_sale[1]
  53. s_post_mtrl.statusflag[ll_itmx] = arg_s_mtrldef.statusflag[1]
  54. s_post_mtrl.statustype[ll_itmx] = arg_s_mtrldef.statustype[1]
  55. s_post_mtrl.woodcodeflag[ll_itmx] = arg_s_mtrldef.woodcodeflag[1]
  56. s_post_mtrl.woodcodetype[ll_itmx] = arg_s_mtrldef.woodcodetype[1]
  57. s_post_mtrl.pcodeflag[ll_itmx] = arg_s_mtrldef.pcodeflag[1]
  58. s_post_mtrl.pcodetype[ll_itmx] = arg_s_mtrldef.pcodetype[1]
  59. s_post_mtrl.usermtrlmode[ll_itmx] = arg_s_mtrldef.usermtrlmode[1]
  60. s_post_mtrl.ifcustom[ll_itmx] = arg_s_mtrldef.ifcustom[1]
  61. s_post_mtrl.buyunit[ll_itmx] = arg_s_mtrldef.buyunit[1]
  62. s_post_mtrl.wfjgunit[ll_itmx] = arg_s_mtrldef.wfjgunit[1]
  63. s_post_mtrl.scllunit[ll_itmx] = arg_s_mtrldef.scllunit[1]
  64. s_post_mtrl.saleunit[ll_itmx] = arg_s_mtrldef.saleunit[1]
  65. s_post_mtrl.buydec[ll_itmx] = arg_s_mtrldef.buydec[1]
  66. s_post_mtrl.wfjgdec[ll_itmx] = arg_s_mtrldef.wfjgdec[1]
  67. s_post_mtrl.sclldec[ll_itmx] = arg_s_mtrldef.sclldec[1]
  68. s_post_mtrl.saledec[ll_itmx] = arg_s_mtrldef.saledec[1]
  69. s_post_mtrl.status_check[ll_itmx] = arg_s_mtrldef.status_check[1]
  70. s_post_mtrl.woodcode_check[ll_itmx] = arg_s_mtrldef.woodcode_check[1]
  71. s_post_mtrl.pcode_check[ll_itmx] = arg_s_mtrldef.pcode_check[1]
  72. s_post_mtrl.status_config[ll_itmx] = arg_s_mtrldef.status_config[1]
  73. s_post_mtrl.woodcode_config[ll_itmx] = arg_s_mtrldef.woodcode_config[1]
  74. s_post_mtrl.pcode_config[ll_itmx] = arg_s_mtrldef.pcode_config[1]
  75. s_post_mtrl.configcodetype[ll_itmx] = arg_s_mtrldef.configcodetype[1]
  76. s_post_mtrl.configcode[ll_itmx] = arg_s_mtrldef.configcode[1]
  77. s_post_mtrl.configname[ll_itmx] = arg_s_mtrldef.configname[1]
  78. s_post_mtrl.mtrlcolor[ll_itmx] = arg_s_mtrldef.mtrlcolor[1]
  79. s_post_mtrl.handtype[ll_itmx] = arg_s_mtrldef.handtype[1]
  80. s_post_mtrl.ifpack[ll_itmx] = arg_s_mtrldef.ifpack[1]
  81. s_post_mtrl.ifpackpro[ll_itmx] = arg_s_mtrldef.ifpackpro [1]
  82. s_post_mtrl.ifpackpz[ll_itmx] = arg_s_mtrldef.ifpackpz [1]
  83. s_post_mtrl.ifpackpro2[ll_itmx] = arg_s_mtrldef.ifpackpro2[1]
  84. s_post_mtrl.ifpacktype[ll_itmx] = arg_s_mtrldef.ifpacktype[1]
  85. s_post_mtrl.mtrlprp[ll_itmx] = arg_s_mtrldef.mtrlprp[1]
  86. // s_post_mtrl.pfstr[ll_itmx] = ''
  87. // s_post_mtrl.scid[ll_itmx] = arg_s_mtrldef.scid[1]
  88. s_post_mtrl.mtrltypeid[ll_itmx] = arg_s_mtrldef.mtrltypeid[1]
  89. IF arg_s_mtrldef.ifpackpro[1] <> 0 THEN
  90. ll_itmx_parent = ll_itmx
  91. //如果是包件产品,则把下级包件一同推送
  92. ls_pfcode = f_get_dft_pf(arg_s_mtrldef.mtrlid[1])
  93. ds_prdpf.Retrieve(arg_s_mtrldef.mtrlid[1],ls_pfcode)
  94. ls_pf_str = ''
  95. FOR ll_j = 1 To ds_prdpf.RowCount()
  96. ls_mtrlcode_pf = ds_prdpf.Object.u_mtrldef_mtrlcode[ll_j]
  97. arg_s_mtrldef = s_empty
  98. IF f_find_mtrl_ljfieb(ls_mtrlcode_pf,arg_s_mtrldef) = 0 THEN
  99. rslt = 0
  100. arg_msg = '查询包件编码:'+ls_mtrlcode_pf+'信息失败'
  101. goto ext
  102. END IF
  103. FOR ll_k = 1 To ll_itmx
  104. IF arg_s_mtrldef.mtrlid[1] = s_post_mtrl.mtrlid[ll_k] And arg_s_mtrldef.mtrlcode[1] = s_post_mtrl.mtrlcode[ll_k] THEN
  105. GOTO ext
  106. END IF
  107. NEXT
  108. IF arg_s_mtrldef.ifpack[1] = 0 THEN CONTINUE
  109. ll_itmx++
  110. s_post_mtrl.mtrlid[ll_itmx] = arg_s_mtrldef.mtrlid[1]
  111. s_post_mtrl.mtrlcode[ll_itmx] = arg_s_mtrldef.mtrlcode[1]
  112. s_post_mtrl.mtrlname[ll_itmx] = arg_s_mtrldef.mtrlname[1]
  113. s_post_mtrl.mtrltype[ll_itmx] = arg_s_mtrldef.mtrltype[1]
  114. s_post_mtrl.mtrlsectype[ll_itmx] = arg_s_mtrldef.mtrlsectype[1]
  115. s_post_mtrl.mtrlmode[ll_itmx] = arg_s_mtrldef.mtrlmode[1]
  116. s_post_mtrl.Mtrlorigin[ll_itmx] = arg_s_mtrldef.Mtrlorigin[1]
  117. s_post_mtrl.unit[ll_itmx] = arg_s_mtrldef.unit[1]
  118. s_post_mtrl.dscrp[ll_itmx] = arg_s_mtrldef.dscrp[1]
  119. s_post_mtrl.isuse[ll_itmx] = 1
  120. s_post_mtrl.packqty[ll_itmx] = arg_s_mtrldef.packqty[1]
  121. s_post_mtrl.prdpackcode[ll_itmx] = arg_s_mtrldef.prdpackcode[1]
  122. s_post_mtrl.net_weight[ll_itmx] = arg_s_mtrldef.net_weight[1]
  123. s_post_mtrl.gross_weight[ll_itmx] = arg_s_mtrldef.gross_weight[1]
  124. s_post_mtrl.cubage[ll_itmx] = arg_s_mtrldef.cubage[1]
  125. s_post_mtrl.mtrlengname[ll_itmx] = arg_s_mtrldef.mtrlengname[1]
  126. s_post_mtrl.zxmtrlmode[ll_itmx] = arg_s_mtrldef.zxmtrlmode[1]
  127. s_post_mtrl.unit_scll[ll_itmx] = arg_s_mtrldef.unit_scll[1]
  128. s_post_mtrl.unit_buy[ll_itmx] = arg_s_mtrldef.unit_buy[1]
  129. s_post_mtrl.rate_buy[ll_itmx] = arg_s_mtrldef.rate_buy[1]
  130. s_post_mtrl.rate_scll[ll_itmx] = arg_s_mtrldef.rate_scll[1]
  131. s_post_mtrl.rate_sale[ll_itmx] = arg_s_mtrldef.rate_sale[1]
  132. s_post_mtrl.unit_sale[ll_itmx] = arg_s_mtrldef.unit_sale[1]
  133. s_post_mtrl.statusflag[ll_itmx] = arg_s_mtrldef.statusflag[1]
  134. s_post_mtrl.statustype[ll_itmx] = arg_s_mtrldef.statustype[1]
  135. s_post_mtrl.woodcodeflag[ll_itmx] = arg_s_mtrldef.woodcodeflag[1]
  136. s_post_mtrl.woodcodetype[ll_itmx] = arg_s_mtrldef.woodcodetype[1]
  137. s_post_mtrl.pcodeflag[ll_itmx] = arg_s_mtrldef.pcodeflag[1]
  138. s_post_mtrl.pcodetype[ll_itmx] = arg_s_mtrldef.pcodetype[1]
  139. s_post_mtrl.usermtrlmode[ll_itmx] = arg_s_mtrldef.usermtrlmode[1]
  140. s_post_mtrl.ifcustom[ll_itmx] = arg_s_mtrldef.ifcustom[1]
  141. s_post_mtrl.buyunit[ll_itmx] = arg_s_mtrldef.buyunit[1]
  142. s_post_mtrl.wfjgunit[ll_itmx] = arg_s_mtrldef.wfjgunit[1]
  143. s_post_mtrl.scllunit[ll_itmx] = arg_s_mtrldef.scllunit[1]
  144. s_post_mtrl.saleunit[ll_itmx] = arg_s_mtrldef.saleunit[1]
  145. s_post_mtrl.buydec[ll_itmx] = arg_s_mtrldef.buydec[1]
  146. s_post_mtrl.wfjgdec[ll_itmx] = arg_s_mtrldef.wfjgdec[1]
  147. s_post_mtrl.sclldec[ll_itmx] = arg_s_mtrldef.sclldec[1]
  148. s_post_mtrl.saledec[ll_itmx] = arg_s_mtrldef.saledec[1]
  149. s_post_mtrl.status_check[ll_itmx] = arg_s_mtrldef.status_check[1]
  150. s_post_mtrl.woodcode_check[ll_itmx] = arg_s_mtrldef.woodcode_check[1]
  151. s_post_mtrl.pcode_check[ll_itmx] = arg_s_mtrldef.pcode_check[1]
  152. s_post_mtrl.status_config[ll_itmx] = arg_s_mtrldef.status_config[1]
  153. s_post_mtrl.woodcode_config[ll_itmx] = arg_s_mtrldef.woodcode_config[1]
  154. s_post_mtrl.pcode_config[ll_itmx] = arg_s_mtrldef.pcode_config[1]
  155. s_post_mtrl.configcodetype[ll_itmx] = arg_s_mtrldef.configcodetype[1]
  156. s_post_mtrl.configcode[ll_itmx] = arg_s_mtrldef.configcode[1]
  157. s_post_mtrl.configname[ll_itmx] = arg_s_mtrldef.configname[1]
  158. s_post_mtrl.mtrlcolor[ll_itmx] = arg_s_mtrldef.mtrlcolor[1]
  159. s_post_mtrl.handtype[ll_itmx] = arg_s_mtrldef.handtype[1]
  160. s_post_mtrl.ifpack[ll_itmx] = arg_s_mtrldef.ifpack[1]
  161. s_post_mtrl.ifpackpro[ll_itmx] = arg_s_mtrldef.ifpackpro [1]
  162. s_post_mtrl.ifpackpz[ll_itmx] = arg_s_mtrldef.ifpackpz [1]
  163. s_post_mtrl.ifpackpro2[ll_itmx] = arg_s_mtrldef.ifpackpro2[1]
  164. s_post_mtrl.ifpacktype[ll_itmx] = arg_s_mtrldef.ifpacktype[1]
  165. s_post_mtrl.mtrlprp[ll_itmx] = arg_s_mtrldef.mtrlprp[1]
  166. // s_post_mtrl.pfstr[ll_itmx] = ''
  167. // s_post_mtrl.scid[ll_itmx] = arg_s_mtrldef.scid[1]
  168. s_post_mtrl.mtrltypeid[ll_itmx] = arg_s_mtrldef.mtrltypeid[1]
  169. ls_pf_str = ls_pf_str + arg_s_mtrldef.mtrlcode[1]+','+String(ds_prdpf.Object.u_prdpf_sonscale[ll_j],'###0.##########')+';'
  170. NEXT
  171. // s_post_mtrl.pfstr[ll_itmx_parent] = ls_pf_str
  172. END IF
  173. ext:
  174. destroy ds_prdpf
  175. RETURN rslt
  176. end function