f_billevent_excute.srf 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. $PBExportHeader$f_billevent_excute.srf
  2. global type f_billevent_excute from function_object
  3. end type
  4. forward prototypes
  5. global function string f_billevent_excute (string arg_command, long arg_billtype, long arg_eventtype, long arg_scid, long arg_taskid, string arg_taskcode, long arg_sptid)
  6. global function string f_billevent_excute (string arg_command, long arg_billtype, long arg_eventtype, string arg_taskcode)
  7. end prototypes
  8. global function string f_billevent_excute (string arg_command, long arg_billtype, long arg_eventtype, long arg_scid, long arg_taskid, string arg_taskcode, long arg_sptid);DataStore ds_cmp
  9. String ls_rslt = ''
  10. String ls_rs
  11. Long ll_row
  12. String arg_sptname
  13. String arg_sptrep
  14. String arg_phone
  15. DateTime arg_taskdate
  16. String ls_mtrlcode
  17. String ls_mtrlname
  18. String ls_mtrlmode
  19. Decimal ls_qty
  20. String ls_unit
  21. String ls_woodcode
  22. String ls_pcode
  23. String ls_status
  24. String arg_mx = ''
  25. ds_cmp = Create DataStore
  26. ds_cmp.DataObject = "ds_buytask_event"
  27. //ds_cmp.SetTransObject(sqlca)
  28. //ds_cmp.Retrieve()
  29. ll_row = ds_cmp.InsertRow(0)
  30. ds_cmp.Object.arg_scid[ll_row] = arg_scid
  31. ds_cmp.Object.arg_taskid[ll_row] = arg_taskid
  32. ds_cmp.Object.arg_taskcode[ll_row] = arg_taskcode
  33. ds_cmp.Object.arg_sptid[ll_row] = arg_sptid
  34. IF arg_billtype = 401 THEN // 采购订单
  35. SELECT u_buyTask.requiredate, u_spt.name, u_spt.rep, u_spt.tele
  36. INTO :arg_taskdate, :arg_sptname, :arg_sptrep, :arg_phone
  37. FROM u_buyTask INNER JOIN
  38. u_spt ON u_buyTask.sptID = u_spt.sptid
  39. Where (u_buyTask.scid = :arg_scid) And (u_buyTask.TaskID = :arg_taskid);
  40. IF sqlca.SQLCode <> 0 THEN
  41. ls_rslt = '查询采购订单信息失败,' + sqlca.SQLErrText
  42. GOTO ext
  43. END IF
  44. ds_cmp.Object.arg_sptname[ll_row] = arg_sptname
  45. ds_cmp.Object.arg_sptrep[ll_row] = arg_sptrep
  46. ds_cmp.Object.arg_phone[ll_row] = arg_phone
  47. ds_cmp.Object.arg_taskdate[ll_row] = arg_taskdate
  48. DECLARE cur1 CURSOR FOR
  49. SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_buyTaskMx.Qty, u_mtrldef.unit, u_buyTaskMx.woodcode, u_buyTaskMx.pcode,
  50. u_buyTaskMx.status
  51. FROM u_buyTaskMx INNER JOIN
  52. u_mtrldef ON u_buyTaskMx.MtrlID = u_mtrldef.mtrlid
  53. Where (u_buyTaskMx.scid = :arg_scid) And (u_buyTaskMx.TaskID = :arg_taskid);
  54. OPEN cur1;
  55. FETCH cur1 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  56. DO WHILE sqlca.SQLCode = 0
  57. arg_mx += ls_mtrlcode + ',' + ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##') + ls_unit + '|' + ls_woodcode + '|' + ls_pcode + '|' + ls_status + ';'
  58. FETCH cur1 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  59. LOOP
  60. CLOSE cur1;
  61. ds_cmp.Object.arg_mx[ll_row] = arg_mx
  62. END IF
  63. ls_rs = ds_cmp.Modify("cmp.Expression='"+ arg_command + "'")
  64. IF ls_rs <> '' THEN
  65. ls_rslt = '表达式错误,' + ls_rs
  66. GOTO ext
  67. END IF
  68. ds_cmp.AcceptText()
  69. ls_rslt = String(ds_cmp.Object.cmp[ll_row])
  70. ext:
  71. Destroy ds_cmp
  72. RETURN ls_rslt
  73. end function
  74. global function string f_billevent_excute (string arg_command, long arg_billtype, long arg_eventtype, string arg_taskcode);DataStore ds_cmp
  75. String ls_rslt = ''
  76. String ls_rs
  77. Long ll_row
  78. String arg_sptname
  79. String arg_sptrep
  80. String arg_phone
  81. DateTime arg_taskdate
  82. Decimal arg_billamt
  83. String arg_freight, arg_rel_rep
  84. String ls_mtrlcode
  85. String ls_mtrlname
  86. String ls_mtrlmode
  87. Decimal ls_qty
  88. String ls_unit
  89. String ls_woodcode
  90. String ls_pcode
  91. String ls_status, ls_mxdscrp
  92. Decimal ld_cusamt
  93. Long arg_sptid,arg_scid,arg_taskid
  94. String outwaresale_业务员
  95. String outwaresale_业务员备注
  96. String outwaresale_产品名称_规格_配置_配置1_备注
  97. string custamt_相关号
  98. string custamt_客户名称
  99. string custamt_客户联系人
  100. string custamt_摘要
  101. string sptamt_相关号
  102. string sptamt_供应商名称
  103. string sptamt_摘要
  104. string saletask_相关号
  105. string saletask_单据编号
  106. string saletask_货运部
  107. string saletask_货运单号
  108. string saletask_包装总件数
  109. string outwaresale_相关号
  110. string outwaresale_单据编号
  111. string outwaresale_货运部
  112. string outwaresale_货运单号
  113. string outwaresale_包装总件数
  114. string custamt_客户编号
  115. string custamt_到账日期
  116. string custamt_账号名称
  117. string sptamt_供应商编号
  118. string sptamt_付账日期
  119. string sptamt_账号名称
  120. String arg_mx = ''
  121. ds_cmp = Create DataStore
  122. ds_cmp.DataObject = "ds_buytask_event"
  123. //ds_cmp.SetTransObject(sqlca)
  124. //ds_cmp.Retrieve()
  125. IF arg_billtype = 401 THEN // 采购订单
  126. SELECT u_buyTask.requiredate,
  127. u_spt.name,
  128. u_spt.rep,
  129. u_spt.tele,
  130. u_buyTask.sptID,
  131. u_buyTask.scid,
  132. u_buyTask.taskid
  133. INTO :arg_taskdate,
  134. :arg_sptname,
  135. :arg_sptrep,
  136. :arg_phone,
  137. :arg_sptid,
  138. :arg_scid,
  139. :arg_taskid
  140. FROM u_buyTask INNER JOIN
  141. u_spt ON u_buyTask.sptID = u_spt.sptid
  142. Where (u_buyTask.taskcode = :arg_taskcode);
  143. IF sqlca.SQLCode <> 0 THEN
  144. ls_rslt = '查询采购订单信息失败,' + sqlca.SQLErrText
  145. GOTO ext
  146. END IF
  147. DECLARE cur1 CURSOR FOR
  148. SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_buyTaskMx.Qty, u_mtrldef.unit, u_buyTaskMx.woodcode, u_buyTaskMx.pcode,
  149. u_buyTaskMx.status
  150. FROM u_buyTaskMx INNER JOIN
  151. u_mtrldef ON u_buyTaskMx.MtrlID = u_mtrldef.mtrlid
  152. Where (u_buyTaskMx.scid = :arg_scid) And (u_buyTaskMx.taskid = :arg_taskid);
  153. OPEN cur1;
  154. FETCH cur1 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  155. DO WHILE sqlca.SQLCode = 0
  156. arg_mx += ls_mtrlcode + ',' + ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + '|' + ls_woodcode + '|' + ls_pcode + '|' + ls_status + ';'
  157. FETCH cur1 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  158. LOOP
  159. CLOSE cur1;
  160. ELSEIF arg_billtype = 102 THEN
  161. SELECT u_SaleTask.scid,
  162. u_SaleTask.TaskID,
  163. u_SaleTask.CusID,
  164. u_cust.name,
  165. u_cust.custype,
  166. u_cust.tele_sms,
  167. u_SaleTask.requiredate,
  168. u_saletask.msttakeamt,
  169. u_saletask.freight,
  170. u_saletask.rel_rep,
  171. u_saletask.taskcode,
  172. u_saletask.relcode,
  173. u_saletask.freight,
  174. u_saletask.transcode
  175. INTO :arg_scid,
  176. :arg_taskid,
  177. :arg_sptid,
  178. :arg_sptname,
  179. :arg_sptrep,
  180. :arg_phone,
  181. :arg_taskdate,
  182. :arg_billamt,
  183. :arg_freight,
  184. :arg_rel_rep,
  185. :saletask_单据编号,
  186. :saletask_相关号,
  187. :saletask_货运部,
  188. :saletask_货运单号
  189. FROM u_SaleTask INNER JOIN
  190. u_cust ON u_SaleTask.CusID = u_cust.cusid
  191. Where u_SaleTask.taskcode = :arg_taskcode;
  192. IF sqlca.SQLCode <> 0 THEN
  193. ls_rslt = '查询销售订单信息失败,' + sqlca.SQLErrText
  194. GOTO ext
  195. END IF
  196. DECLARE cur2 CURSOR FOR
  197. SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_saleTaskMx.saleQty, u_mtrldef.unit, u_saleTaskMx.woodcode, u_saleTaskMx.pcode,
  198. u_saleTaskMx.status, u_saleTaskMx.mxdscrp
  199. FROM u_saleTaskMx INNER JOIN
  200. u_mtrldef ON u_saleTaskMx.MtrlID = u_mtrldef.mtrlid
  201. Where (u_saleTaskMx.scid = :arg_scid) And (u_saleTaskMx.taskid = :arg_taskid);
  202. OPEN cur2;
  203. FETCH cur2 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status, :ls_mxdscrp;
  204. DO WHILE sqlca.SQLCode = 0
  205. //arg_mx += ls_mtrlcode + ',' + ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + '|' + ls_woodcode + '|' + ls_pcode + '|' + ls_status + ';'
  206. arg_mx += ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit
  207. IF Len(ls_status) > 0 THEN arg_mx += ',' + ls_status
  208. IF Len(ls_woodcode) > 0 THEN arg_mx += ',' + ls_woodcode
  209. IF Len(ls_pcode) > 0 THEN arg_mx += ',' + ls_pcode
  210. IF Len(ls_mxdscrp) > 0 THEN arg_mx += ',' + ls_mxdscrp
  211. arg_mx += ';'
  212. FETCH cur2 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status, :ls_mxdscrp;
  213. LOOP
  214. CLOSE cur2;
  215. select cast(sum(u_saletaskmx.packqty) as varchar(10) ) into :saletask_包装总件数
  216. from u_saletask inner join u_saletaskmx on u_saletaskmx.scid=u_saletask.scid
  217. and u_saletaskmx.taskid=u_saletask.taskid
  218. Where (u_saleTaskMx.scid = :arg_scid) And (u_saleTaskMx.taskid = :arg_taskid);
  219. ELSEIF arg_billtype = 403 THEN
  220. SELECT u_inware.scid,
  221. u_inware.inwareid,
  222. u_inware.sptid,
  223. u_spt.name,
  224. u_spt.rep,
  225. u_spt.tele,
  226. u_inware.indate
  227. INTO :arg_scid,
  228. :arg_taskid,
  229. :arg_sptid,
  230. :arg_sptname,
  231. :arg_sptrep,
  232. :arg_phone,
  233. :arg_taskdate
  234. FROM u_inware INNER JOIN
  235. u_spt ON u_inware.sptid = u_spt.sptid
  236. Where u_inware.inwarecode = :arg_taskcode;
  237. IF sqlca.SQLCode <> 0 THEN
  238. ls_rslt = '查询采购收货单信息失败,' + sqlca.SQLErrText
  239. GOTO ext
  240. END IF
  241. DECLARE cur3 CURSOR FOR
  242. SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_inwaremx.uqty, u_inwaremx.unit, u_inwaremx.woodcode, u_inwaremx.pcode,
  243. u_inwaremx.status
  244. FROM u_inwaremx INNER JOIN
  245. u_mtrldef ON u_inwaremx.MtrlID = u_mtrldef.mtrlid
  246. Where (u_inwaremx.scid = :arg_scid) And (u_inwaremx.inwareid = :arg_taskid);
  247. OPEN cur3;
  248. FETCH cur3 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  249. DO WHILE sqlca.SQLCode = 0
  250. arg_mx += ls_mtrlcode + ',' + ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + '|' + ls_woodcode + '|' + ls_pcode + '|' + ls_status + ';'
  251. FETCH cur3 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status;
  252. LOOP
  253. CLOSE cur3;
  254. ELSEIF arg_billtype = 540 THEN
  255. SELECT u_cusamt.scid,
  256. u_cusamt.cusmonid,
  257. u_cusamt.cusid,
  258. u_spt.name,
  259. u_spt.rep,
  260. u_spt.tele,
  261. u_cusamt.cusdate,
  262. u_cusamt.relcode,
  263. u_spt.name,
  264. u_cusamt.dscrp,
  265. u_spt.name,
  266. CONVERT(varchar(6) , u_cusamt.viewdate, 112 ),
  267. u_accounts.accountsname
  268. INTO :arg_scid,
  269. :arg_taskid,
  270. :arg_sptid,
  271. :arg_sptname,
  272. :arg_sptrep,
  273. :arg_phone,
  274. :arg_taskdate,
  275. :sptamt_相关号,
  276. :sptamt_供应商名称,
  277. :sptamt_摘要,
  278. :sptamt_供应商编号,
  279. :sptamt_付账日期,
  280. :sptamt_账号名称
  281. FROM u_cusamt INNER JOIN
  282. u_spt ON u_cusamt.cusid = u_spt.sptid
  283. left join u_accounts ON u_cusamt.accountid = u_accounts.accountsid
  284. Where u_cusamt.cusmoncode = :arg_taskcode;
  285. IF sqlca.SQLCode <> 0 THEN
  286. ls_rslt = '查询供应商付款单信息失败,' + sqlca.SQLErrText
  287. GOTO ext
  288. END IF
  289. SELECT u_cusamt.cusamt
  290. INTO :ld_cusamt
  291. FROM u_cusamt
  292. Where u_cusamt.cusmoncode = :arg_taskcode;
  293. IF sqlca.SQLCode <> 0 THEN
  294. ls_rslt = '查询供应商付款单金额信息失败,' + sqlca.SQLErrText
  295. GOTO ext
  296. END IF
  297. arg_mx = '金额:' + String(ld_cusamt, '#,##0.##')
  298. ELSEIF arg_billtype = 104 THEN
  299. SELECT u_outware.scid,
  300. u_outware.outwareid,
  301. u_outware.cusid,
  302. u_cust.name,
  303. u_cust.custype,
  304. u_cust.tele_sms,
  305. u_outware.outdate,
  306. isnull(uv_rp_outware_sale.amt - uv_rp_outware_sale.otheramt_en, 0) as amt,
  307. u_outware.relstr_1,
  308. u_outware.rel_rep,
  309. u_outware.outrep,
  310. u_outware.part,
  311. u_outware.outwarecode,
  312. u_outware.relstr_1,
  313. u_outware.transcode
  314. INTO :arg_scid,
  315. :arg_taskid,
  316. :arg_sptid,
  317. :arg_sptname,
  318. :arg_sptrep,
  319. :arg_phone,
  320. :arg_taskdate,
  321. :arg_billamt,
  322. :arg_freight,
  323. :arg_rel_rep,
  324. :outwaresale_业务员,
  325. :outwaresale_相关号,
  326. :outwaresale_单据编号,
  327. :outwaresale_货运部,
  328. :outwaresale_货运单号
  329. FROM u_outware INNER JOIN
  330. u_cust ON u_outware.cusid = u_cust.cusid left OUTER join
  331. uv_rp_outware_sale on u_outware.scid = uv_rp_outware_sale.scid
  332. AND u_outware.outwareid = uv_rp_outware_sale.outwareid
  333. Where u_outware.outwarecode = :arg_taskcode;
  334. IF sqlca.SQLCode <> 0 THEN
  335. ls_rslt = '查询销售发货单信息失败,' + sqlca.SQLErrText
  336. GOTO ext
  337. END IF
  338. SELECT top 1
  339. outrepdscrp INTO :outwaresale_业务员备注
  340. FROM u_outrepdef
  341. Where outrepname = :outwaresale_业务员;
  342. IF IsNull(outwaresale_业务员备注) THEN outwaresale_业务员备注 = ''
  343. DECLARE cur4 CURSOR FOR
  344. SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_outwaremx.qty, u_mtrldef.unit, u_outwaremx.woodcode, u_outwaremx.pcode,
  345. u_outwaremx.status, u_outwaremx.mxdscrp
  346. FROM u_outwaremx INNER JOIN
  347. u_mtrldef ON u_outwaremx.MtrlID = u_mtrldef.mtrlid
  348. Where (u_outwaremx.scid = :arg_scid) And (u_outwaremx.outwareid = :arg_taskid);
  349. OPEN cur4;
  350. FETCH cur4 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status, :ls_mxdscrp;
  351. DO WHILE sqlca.SQLCode = 0
  352. //arg_mx += ls_mtrlcode + ',' + ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + '|' + ls_woodcode + '|' + ls_pcode + '|' + ls_status + ';'
  353. arg_mx += ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + ';'
  354. IF Len(ls_status) > 0 THEN arg_mx += ',' + ls_status
  355. IF Len(ls_woodcode) > 0 THEN arg_mx += ',' + ls_woodcode
  356. IF Len(ls_pcode) > 0 THEN arg_mx += ',' + ls_pcode
  357. IF Len(ls_mxdscrp) > 0 THEN arg_mx += ',' + ls_mxdscrp
  358. arg_mx += ';'
  359. //outwaresale_产品名称_规格_配置_配置1_备注
  360. outwaresale_产品名称_规格_配置_配置1_备注 += ls_mtrlname + ',' + ls_mtrlmode + ',' + String(ls_qty, '#,##0.##########') + ls_unit + ';'
  361. IF Len(ls_status) > 0 THEN outwaresale_产品名称_规格_配置_配置1_备注 += ',' + ls_status
  362. IF Len(ls_woodcode) > 0 THEN outwaresale_产品名称_规格_配置_配置1_备注 += ',' + ls_woodcode
  363. IF Len(ls_mxdscrp) > 0 THEN outwaresale_产品名称_规格_配置_配置1_备注 += ',' + ls_mxdscrp
  364. outwaresale_产品名称_规格_配置_配置1_备注 += ';'
  365. FETCH cur4 Into :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_qty, :ls_unit, :ls_woodcode, :ls_pcode, :ls_status, :ls_mxdscrp;
  366. LOOP
  367. CLOSE cur4;
  368. select cast(sum( u_outwaremx.packqty) as varchar(10) ) into :outwaresale_包装总件数
  369. from u_outware inner join u_outwaremx on u_outwaremx.scid=u_outware.scid
  370. and u_outwaremx.outwareid=u_outware.outwareid
  371. Where (u_outwaremx.scid = :arg_scid) And (u_outwaremx.outwareid = :arg_taskid);
  372. ELSEIF arg_billtype = 532 THEN
  373. SELECT u_cusamt.scid,
  374. u_cusamt.cusmonid,
  375. u_cusamt.cusid,
  376. u_cust.name,
  377. u_cust.custype,
  378. u_cust.tele_sms,
  379. u_cusamt.cusdate,
  380. u_cusamt.relcode,
  381. u_cust.name,
  382. u_cust.rep,
  383. u_cusamt.dscrp,
  384. u_cust.name,
  385. CONVERT(varchar(6) , u_cusamt.viewdate, 112 ),
  386. u_accounts.accountsname
  387. INTO :arg_scid,
  388. :arg_taskid,
  389. :arg_sptid,
  390. :arg_sptname,
  391. :arg_sptrep,
  392. :arg_phone,
  393. :arg_taskdate,
  394. :custamt_相关号,
  395. :custamt_客户名称,
  396. :custamt_客户联系人,
  397. :custamt_摘要,
  398. :custamt_客户编号,
  399. :custamt_到账日期,
  400. :custamt_账号名称
  401. FROM u_cusamt INNER JOIN
  402. u_cust ON u_cusamt.cusid = u_cust.cusid
  403. left join u_accounts ON u_cusamt.accountid = u_accounts.accountsid
  404. Where u_cusamt.cusmoncode = :arg_taskcode;
  405. IF sqlca.SQLCode <> 0 THEN
  406. ls_rslt = '查询客户收款单信息失败,' + sqlca.SQLErrText
  407. GOTO ext
  408. END IF
  409. SELECT u_cusamt.cusamt
  410. INTO :ld_cusamt
  411. FROM u_cusamt
  412. Where u_cusamt.cusmoncode = :arg_taskcode;
  413. IF sqlca.SQLCode <> 0 THEN
  414. ls_rslt = '查询客户收款单金额信息失败,' + sqlca.SQLErrText
  415. GOTO ext
  416. END IF
  417. arg_mx = '金额:' + String(ld_cusamt, '#,##0.##')
  418. END IF
  419. ll_row = ds_cmp.InsertRow(0)
  420. ds_cmp.Object.arg_scid[ll_row] = arg_scid
  421. ds_cmp.Object.arg_taskid[ll_row] = arg_taskid
  422. ds_cmp.Object.arg_taskcode[ll_row] = arg_taskcode
  423. ds_cmp.Object.arg_sptid[ll_row] = arg_sptid
  424. ds_cmp.Object.arg_sptname[ll_row] = arg_sptname
  425. ds_cmp.Object.arg_sptrep[ll_row] = arg_sptrep
  426. ds_cmp.Object.arg_phone[ll_row] = arg_phone
  427. ds_cmp.Object.arg_taskdate[ll_row] = arg_taskdate
  428. ds_cmp.Object.arg_mx[ll_row] = arg_mx
  429. ds_cmp.Object.arg_billamt[ll_row] = String(arg_billamt,'#,##0.00')
  430. ds_cmp.Object.arg_freight[ll_row] = arg_freight
  431. ds_cmp.Object.arg_rel_rep[ll_row] = arg_rel_rep
  432. //单据专用
  433. ds_cmp.Object.outwaresale_业务员[ll_row] = outwaresale_业务员
  434. ds_cmp.Object.outwaresale_业务员备注[ll_row] = outwaresale_业务员备注
  435. ds_cmp.Object.outwaresale_产品名称_规格_配置_配置1_备注[ll_row] = outwaresale_产品名称_规格_配置_配置1_备注
  436. ds_cmp.Object.custamt_相关号[ll_row] = custamt_相关号
  437. ds_cmp.Object.custamt_客户名称[ll_row] = custamt_客户名称
  438. ds_cmp.Object.custamt_客户联系人[ll_row] = custamt_客户联系人
  439. ds_cmp.Object.custamt_摘要[ll_row] = custamt_摘要
  440. ds_cmp.Object.sptamt_相关号[ll_row] = sptamt_相关号
  441. ds_cmp.Object.sptamt_供应商名称[ll_row] = sptamt_供应商名称
  442. ds_cmp.Object.sptamt_摘要[ll_row] = sptamt_摘要
  443. ds_cmp.Object.saletask_相关号[ll_row] = saletask_相关号
  444. ds_cmp.Object.saletask_单据编号[ll_row] = saletask_单据编号
  445. ds_cmp.Object.saletask_货运部[ll_row] = saletask_货运部
  446. ds_cmp.Object.saletask_货运单号[ll_row] = saletask_货运单号
  447. ds_cmp.Object.saletask_包装总件数[ll_row] =saletask_包装总件数
  448. ds_cmp.Object.outwaresale_相关号[ll_row] = outwaresale_相关号
  449. ds_cmp.Object.outwaresale_单据编号[ll_row] = outwaresale_单据编号
  450. ds_cmp.Object.outwaresale_货运部[ll_row] = outwaresale_货运部
  451. ds_cmp.Object.outwaresale_货运单号[ll_row] = outwaresale_货运单号
  452. ds_cmp.Object.outwaresale_包装总件数[ll_row] = outwaresale_包装总件数
  453. ds_cmp.Object.custamt_客户编号[ll_row] = custamt_客户编号
  454. ds_cmp.Object.custamt_到账日期[ll_row] = custamt_到账日期
  455. ds_cmp.Object.custamt_账号名称[ll_row] = custamt_账号名称
  456. ds_cmp.Object.sptamt_供应商编号[ll_row] = sptamt_供应商编号
  457. ds_cmp.Object.sptamt_付账日期[ll_row] = sptamt_付账日期
  458. ds_cmp.Object.sptamt_账号名称[ll_row] = sptamt_账号名称
  459. ls_rs = ds_cmp.Modify("cmp.Expression='"+ arg_command + "'")
  460. IF ls_rs <> '' THEN
  461. ls_rslt = '表达式错误,' + ls_rs
  462. GOTO ext
  463. END IF
  464. ds_cmp.AcceptText()
  465. ls_rslt = String(ds_cmp.Object.cmp[ll_row])
  466. ext:
  467. Destroy ds_cmp
  468. RETURN ls_rslt
  469. end function