今天客户突然提出要在系统里面实现数据窗口定时转档成excle文件并保存至指定地方,方便使用。花了一个小时时间终于给实现了。下面讲讲实现步骤吧,能力有限,互相交流。
1.首先在系统主窗口中,找到timer事件,写下如下代码:(因系统而异)
string ls_time
long ll_return,ll_row
string ls_file
dec ll_yes
string ls_path
string ls_sql,ls_q
string ls_artic,ls_group,ls_item_order,ls_season,ls_type_no,ls_item_ss,ls_denote_user,ls_pdtype_no,ls_zhiban_type,ls_shoud_time,ls_pdt_order
ls_time =string(now(),’HH:MM:SS’)
if ls_time=’09:01:00’ or ls_time=’17:01:00’ then //指定时间点
// ls_sql = ‘truncate table1’
// execute immediate :ls_sql;//每到时间点清空该表数据
if gs_user_name=’系统管理’ then
select max(quarter)
into :ls_season
from b_colorm;
Datastore ls_dstastore1 //声明Datastore变量
ls_dstastore1 = CREATE datastore //将Datastore实例化
ls_dstastore1.dataobject = "d_sampleroom_biao_finish_all" //为已经存在的数据窗口对象
ls_dstastore1.settransobject(sqlca) //指定连接实例
ll_row= ls_dstastore1.retrieve('%','%','%',ls_season,'%','%','%','%','Z','%','%')
// messagebox('ll_row',ll_row)
select data
into :ls_path //转档路径
from b_variable
where item_no = '01';
ls_file =ls_path+"样品进度查询1.XLS"
IF ll_row > 0 THEN
ls_dstastore1.SAVEASFORMATTEDTEXT (LS_FILE)
END IF
destroy ls_dstastore1 //释放datastore
end if
end if
2.打开主窗口open事件,写下如下代码:
timer(10) //每十秒执行一次timer事件
3.ok!