$PBExportHeader$f_rpt_saveas.srf
global type f_rpt_saveas from function_object
end type
forward prototypes
global subroutine f_rpt_saveas (datastore adw, integer i_cc)
end prototypes
global subroutine f_rpt_saveas (datastore adw, integer i_cc);string ls1,ls2,ls3,ls4
ls3="XLS"
ls4="Excel Files(*.XLS),*.XLS"
if GetFileSaveName("Select File",ls1,ls2,ls3,ls4)=1 then
if pos(lower(ls1),'.xls')>0 then
adw.saveas(ls1,htmltable!,true)
long ll,lls,llc,lll
string ls_id,ls_dw,ls_dws
lll=FileLength(ls1)
llc=Ceiling(lll/32765)
lll=FileOpen(ls1,StreamMode!,Read!,Shared!)
for ll=1 to llc
FileRead(lll,ls_dw)
ls_dws=ls_dws+ls_dw
next
FileClose(lll)
////////////////////以下代码是为了避免Excel2000有时会出现乱码的问题/////
lll=FileOpen(ls1,StreamMode!,Write!,LockWrite!,Replace!)
if i_cc=1 then//gb
FileWrite(lll,'')
else
FileWrite(lll,'')
end if
FileClose(lll)
lll=len(ls_dws)
llc=Ceiling(lll/32765)
lll=FileOpen(ls1,StreamMode!,Write!,Shared!,Append!)
for ll=1 to llc
ls_dw=left(ls_dws,32765)
ls_dws=mid(ls_dws,32766)
FileWrite(lll,ls_dw)
next
FileClose(lll)
/////////////////////////////////////////////////////
messagebox("提示","报表另存成功.")
end if
else
messagebox("出错","报表另存不成功!")
end if
return
end subroutine