f_rpt_export.srf 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. $PBExportHeader$f_rpt_export.srf
  2. $PBExportComments$引出所有报表-- 函数
  3. global type f_rpt_export from function_object
  4. end type
  5. forward prototypes
  6. global function long f_rpt_export (transaction f_t)
  7. end prototypes
  8. global function long f_rpt_export (transaction f_t);datastore lds
  9. long ll,lls,llc,lll
  10. string ls_id,ls_dw,ls_dws
  11. BLOB lblob
  12. openwithparm(w_rpt_message,'正在进行,请等候......')
  13. lds=create datastore
  14. lds.dataobject='dw_rpts'
  15. lds.settransobject(f_t)
  16. lds.retrieve()
  17. lls=lds.rowcount()
  18. lds.saveas('reports.txt',text!,false)
  19. for ll=1 to lls
  20. w_rpt_message.event ue_percent(ll*100/lls)
  21. ls_id=lds.getitemstring(ll,'rid')
  22. selectblob rsyntax into :lblob from reports where rid=:ls_id using f_t;
  23. if f_t.sqlcode=0 THEN
  24. ls_dw=string(lblob)
  25. if isnull(ls_dw) then ls_dw=''
  26. ls_dws=ls_dws+'$$&'+ls_id+'$'+ls_dw+'&&$'+ls_id+'&'
  27. end if
  28. next
  29. lll=len(ls_dws)
  30. llc=Ceiling(lll/32765)
  31. lll=FileOpen('reports.txt',StreamMode!,Write!,Shared!,Append!)
  32. for ll=1 to llc
  33. ls_dw=left(ls_dws,32765)
  34. ls_dws=mid(ls_dws,32766)
  35. FileWrite(lll,ls_dw)
  36. next
  37. FileClose(lll)
  38. close(w_rpt_message)
  39. messagebox('提示','共引出'+string(lls)+'个报表!~n~n引出的文件名:reports.txt')
  40. destroy lds
  41. return lls
  42. //datastore lds
  43. //long ll,lls,llc,lll
  44. //string ls_id,ls_dw,ls_dws
  45. //BLOB lblob
  46. //lds=create datastore
  47. //lds.dataobject='dw_rpts'
  48. //lds.settransobject(f_t)
  49. //lds.retrieve()
  50. //lls=lds.rowcount()
  51. //lds.saveas('report1.txt',text!,false)
  52. //for ll=1 to lls
  53. // ls_id=lds.getitemstring(ll,'rid')
  54. // selectblob rsyntax into :lblob from reports where rid=:ls_id using f_t;
  55. // if f_t.sqlcode=0 THEN
  56. // ls_dw=string(lblob)
  57. // ls_dws=ls_dws+'$$'+ls_id+'$$'+ls_dw+'&&'+ls_id+'&&'
  58. // end if
  59. //next
  60. //lll=len(ls_dws)
  61. //llc=Ceiling(lll/32765)
  62. //for ll=1 to llc
  63. // ls_dw=left(ls_dws,32765)
  64. // ls_dws=mid(ls_dws,32766)
  65. // if ll=1 then
  66. // lll=FileOpen('report2.txt',StreamMode!,Write!,LockWrite!,Replace!)
  67. // FileWrite(lll,ls_dw)
  68. // FileClose(lll)
  69. // lll=FileOpen('report2.txt',StreamMode!,Write!,Shared!,Append!)
  70. // else
  71. // FileWrite(lll,ls_dw)
  72. // end if
  73. //next
  74. //FileClose(lll)
  75. //
  76. //messagebox('提示','共引出'+string(lls)+'个报表!~n~n引出的文件名:report1.txt,report2.txt')
  77. //destroy lds
  78. //return lls
  79. end function