dbauo_taskmx.sru 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. $PBExportHeader$dbauo_taskmx.sru
  2. forward
  3. global type dbauo_taskmx from nonvisualobject
  4. end type
  5. end forward
  6. global type dbauo_taskmx from nonvisualobject
  7. end type
  8. global dbauo_taskmx dbauo_taskmx
  9. type variables
  10. //====================================================================
  11. // 事件: .Declare Instance Variables()
  12. //--------------------------------------------------------------------
  13. // 描述:
  14. //--------------------------------------------------------------------
  15. // 参数:
  16. //--------------------------------------------------------------------
  17. // 返回: (none)
  18. //--------------------------------------------------------------------
  19. // 作者: lwl 日期: 2011年05月20日
  20. //--------------------------------------------------------------------
  21. // LONGJOE
  22. //--------------------------------------------------------------------
  23. // 修改历史:
  24. //
  25. //====================================================================
  26. long ins_printid
  27. long ins_mtrlid
  28. string ins_mtrlcuscode
  29. string ins_status
  30. string ins_pcode
  31. string ins_woodcode
  32. long ins_stopflag
  33. decimal ins_saleqty // 未发货数
  34. decimal ins_allocqty // 已分配数
  35. dbauo_task ins_task
  36. dbauo_mtrlware ins_mtrlware
  37. dbauo_adapter ins_adapter
  38. dbauo_taskmx_assign ins_assigns[]
  39. end variables
  40. forward prototypes
  41. public subroutine f_init (dbauo_task arg_task, long arg_printid, long arg_mtrlid, string arg_mtrlcuscode, string arg_status, string arg_pcode, string arg_woodcode, decimal arg_saleqty)
  42. public subroutine f_clear ()
  43. end prototypes
  44. public subroutine f_init (dbauo_task arg_task, long arg_printid, long arg_mtrlid, string arg_mtrlcuscode, string arg_status, string arg_pcode, string arg_woodcode, decimal arg_saleqty);ins_task = arg_task
  45. ins_printid = arg_printid
  46. ins_mtrlid = arg_mtrlid
  47. ins_mtrlcuscode = arg_mtrlcuscode
  48. ins_status = arg_status
  49. ins_pcode = arg_pcode
  50. ins_woodcode = arg_woodcode
  51. ins_saleqty = arg_saleqty
  52. ins_adapter = ins_task.ins_adapter
  53. ins_mtrlware = ins_adapter.f_getware(ins_mtrlid, ins_mtrlcuscode, ins_status, ins_pcode, ins_woodcode)
  54. ins_allocqty = 0
  55. ins_stopflag = 0
  56. SELECT stopflag INTO :ins_stopflag FROM u_SaleTaskMx WHERE scid = :ins_task.ins_scid AND TaskID = :ins_task.ins_taskid AND printid = :ins_printid;
  57. if sqlca.sqlcode <> 0 then
  58. end if
  59. Long ll_assignid, arr_assignid[], ll_mtrlwareid, arr_mtrlwareid[]
  60. Decimal ld_qty, arr_qty[]
  61. Long ll_cnt = 0
  62. DECLARE cur1 CURSOR FOR
  63. SELECT Assignid,
  64. u_mtrlware_assign.assignqty - u_mtrlware_assign.outqty,
  65. mtrlwareid
  66. FROM u_mtrlware_assign
  67. WHERE assigntype = 1
  68. AND scid = :ins_task.ins_scid
  69. AND relbillid = :ins_task.ins_taskid
  70. And relprintid = :ins_printid;
  71. OPEN cur1;
  72. FETCH cur1 Into :ll_assignid, :ld_qty, :ll_mtrlwareid;
  73. DO WHILE sqlca.SQLCode = 0
  74. ll_cnt++
  75. arr_assignid[ll_cnt] = ll_assignid
  76. arr_qty[ll_cnt] = ld_qty
  77. arr_mtrlwareid[ll_cnt] = ll_mtrlwareid
  78. ins_allocqty += ld_qty
  79. FETCH cur1 Into :ll_assignid, :ld_qty, :ll_mtrlwareid;
  80. LOOP
  81. CLOSE cur1;
  82. Long ll_i
  83. f_clear()
  84. FOR ll_i = 1 To ll_cnt
  85. ins_assigns[ll_i] = Create dbauo_taskmx_assign
  86. ins_assigns[ll_i].f_init(This, arr_assignid[ll_i], arr_qty[ll_i], arr_mtrlwareid[ll_i])
  87. NEXT
  88. end subroutine
  89. public subroutine f_clear ();long ll_i
  90. for ll_i = 1 to upperbound(ins_assigns)
  91. destroy ins_assigns[ll_i]
  92. next
  93. dbauo_taskmx_assign mx_empty[]
  94. ins_assigns = mx_empty
  95. end subroutine
  96. on dbauo_taskmx.create
  97. call super::create
  98. TriggerEvent( this, "constructor" )
  99. end on
  100. on dbauo_taskmx.destroy
  101. TriggerEvent( this, "destructor" )
  102. call super::destroy
  103. end on
  104. event destructor;f_clear()
  105. end event