datawindow导成excel能做到所见机所得吗?

swordmanli 2003-06-15 06:30:53
datawindow导成excel能做到所见机所得吗?
...全文
62 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_Love_IT! 2003-06-20
  • 打赏
  • 举报
回复
奋斗的好。
关键一句:ole.Visible=True
devil_heart 2003-06-20
  • 打赏
  • 举报
回复
学习
swordmanli 2003-06-20
  • 打赏
  • 举报
回复
swordmanli@163.net
laoya521 2003-06-19
  • 打赏
  • 举报
回复
to bondhu(小胡)


能也给我一份吗》???万分感谢!!!
my email:disney@vip.sina.com
dotnba 2003-06-18
  • 打赏
  • 举报
回复
难啊
dgyujingjun 2003-06-18
  • 打赏
  • 举报
回复
学习
希望的梦想 2003-06-18
  • 打赏
  • 举报
回复
学习
guanhua8 2003-06-18
  • 打赏
  • 举报
回复
PBToExcel函数f_outputtoexcel_new.srf

$PBExportHeader$f_outputtoexcel_new.srf
global type f_outputtoexcel_new from function_object
end type

forward prototypes
global function integer f_outputtoexcel_new (datawindow adw)
end prototypes

global function integer f_outputtoexcel_new (datawindow adw);
//函数名:f_outputtoexcel_new
//输入: adw - datawindow,指定的数据窗口
//返回值: Integer
constant integer ppLayoutBlank = 12
OLEObject ole_object
ole_object = CREATE OLEObject

integer li_ret

li_ret = ole_object.ConnectToObject("","Excel.Application")
IF li_ret <> 0 THEN
//如果Excel还没有打开,则新建。
li_ret = ole_object.ConnectToNewObject("Excel.Application")
if li_ret <> 0 then
MessageBox('OLE错误','OLE无法连接!错误号:' + string(li_ret))
return 0
end if
ole_object.Visible = True
END IF

pointer oldpointer

oldpointer = SetPointer(HourGlass!)

ole_object.Workbooks.Add

long ll_colnum,ll_rownum
string ls_value

string ls_objects,ls_obj,ls_objs[],ls_objtag[]
long ll_pos,ll_len,ll_num = 0

ls_objects = trim(adw.Describe('datawindow.Objects'))

do while (pos(ls_objects,"~t") > 0)
ll_pos = pos(ls_objects,"~t")
ll_len = ll_pos - 1
ls_obj = left(ls_objects,ll_len)
if (adw.Describe(ls_obj + '.type') = 'column' or &
adw.Describe(ls_obj + '.type') = 'compute') and &
(adw.Describe(ls_obj + '.band') = 'detail') and (ls_obj <> "asd") then
ll_num += 1
ls_objs[ll_num] = ls_obj
ls_objtag[ll_num] = adw.Describe(ls_obj + '.tag')
end if
ls_objects = right(ls_objects,len(ls_objects) - ll_pos)
loop

//得到数据窗口数据的列数与行数(行数应该是数据行数 + 1)
ll_colnum = ll_num
ll_rownum = adw.rowcount() + 1

string ls_colname
integer i,j,k
for i = 1 to ll_colnum
//得到标题头的名字
ls_value = ls_objtag[i]
ole_object.cells(1,i).value = ls_value
next

string column_name
for i = 2 to ll_rownum
for j = 1 to ll_colnum
column_name = ls_objs[j]
if adw.Describe(column_name + '.type') = 'column' then
ls_value = adw.Describe("Evaluate('LookupDisplay("+column_name+")',"+string(i - 1)+")")
end if
if adw.Describe(column_name + '.type') = 'compute' then
ls_value = adw.Describe("Evaluate('" + adw.Describe(column_name + '.expression') + "',"+string(i - 1)+")")
end if
ole_object.cells(i,j).value = ls_value
next
next

SetPointer(oldpointer)

ole_object.disconnectobject()
DESTROY ole_object

return 1
end function
bondhu 2003-06-18
  • 打赏
  • 举报
回复
我在网上down了一个pbl,里面有两个datawindow,一个函数,不方便贴出来,告诉我你的e_mail,我发给你。
jinqiang520 2003-06-16
  • 打赏
  • 举报
回复
能发表一下原代码吗?
bondhu 2003-06-16
  • 打赏
  • 举报
回复
我可以给你一个datawindow另存为excel的程序,相当好用,接近所见即所得。
icedot 2003-06-15
  • 打赏
  • 举报
回复
如果是简单的报表是可以的。
joss 2003-06-15
  • 打赏
  • 举报
回复
难!

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧