f_update_printnum2.srf 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. $PBExportHeader$f_update_printnum2.srf
  2. global type f_update_printnum2 from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_update_printnum2 (long arg_scid, string arg_code, boolean arg_ifscid, long arg_printnum, ref string arg_msg, boolean arg_ifcommit)
  6. end prototypes
  7. global function integer f_update_printnum2 (long arg_scid, string arg_code, boolean arg_ifscid, long arg_printnum, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  8. Long cnt
  9. String ls_sccode
  10. String ls_billcode,ls_tablename,ls_codename
  11. Boolean if_f
  12. IF arg_printnum = 0 THEN
  13. rslt = 1
  14. GOTO ext
  15. END IF
  16. IF arg_ifscid THEN
  17. SELECT sccode
  18. INTO :ls_sccode
  19. FROM u_scdef
  20. Where scid = :arg_scid;
  21. IF sqlca.SQLCode <> 0 Or IsNull(ls_sccode) THEN ls_sccode = ''
  22. ELSE
  23. ls_sccode = ''
  24. END IF
  25. ls_billcode = Mid(Trim(arg_code),Len(ls_sccode) + 1,2)
  26. //IF sys_option_saletask_ifuse_typebillcode = 1 THEN
  27. // SELECT count(*) INTO :cnt
  28. // From u_saletype Where billcode = :ls_billcode;
  29. // IF sqlca.SQLCode <> 0 THEN
  30. // cnt = 0
  31. // END IF
  32. //
  33. // IF cnt > 0 THEN
  34. // ls_billcode = 'SG'
  35. // END IF
  36. //END IF
  37. //IF sys_option_saletask_ifuse_typebillcode = 1 And cnt > 0 THEN
  38. // if_f = False
  39. //ELSE
  40. SELECT tablename,codename
  41. INTO :ls_tablename,:ls_codename
  42. FROM u_billcode
  43. Where firststr = :ls_billcode;
  44. IF sqlca.SQLCode <> 0 THEN
  45. if_f = False
  46. ELSE
  47. if_f = True
  48. END IF
  49. //END IF
  50. IF Not if_f THEN
  51. SELECT tablename,codename
  52. INTO :ls_tablename,:ls_codename
  53. FROM u_billcode
  54. Where oldfirststr = :ls_billcode;
  55. IF sqlca.SQLCode <> 0 THEN
  56. if_f = False
  57. ELSE
  58. if_f = True
  59. END IF
  60. END IF
  61. IF Trim(ls_tablename) = '' THEN
  62. rslt = 0
  63. arg_msg = '没有表名'
  64. GOTO ext
  65. END IF
  66. IF Trim(ls_codename) = '' THEN
  67. rslt = 0
  68. arg_msg = '没有单号列名'
  69. GOTO ext
  70. END IF
  71. IF if_f THEN
  72. String update_sql
  73. update_sql = ''
  74. update_sql += " update " + ls_tablename
  75. update_sql += " set printnum = printnum + " + String(arg_printnum)
  76. update_sql += " where " + ls_codename + " = '" + arg_code + "'"
  77. // MessageBox('',update_sql)
  78. EXECUTE Immediate :update_sql;
  79. IF sqlca.SQLCode <> 0 THEN
  80. arg_msg = '更新表:'+ls_tablename+'打印次数失败'
  81. rslt = 0
  82. GOTO ext
  83. END IF
  84. END IF
  85. ext:
  86. IF rslt = 0 THEN
  87. ROLLBACK;
  88. ELSEIF rslt = 1 And arg_ifcommit THEN
  89. COMMIT;
  90. END IF
  91. RETURN rslt
  92. end function