首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

dw2xls中n_cst_dw2excel_grid小小改动grid导出速增陪,该怎么处理

2012-03-05 
dw2xls中n_cst_dw2excel_grid小小改动grid导出速增陪把of_outdata_detail改成我下面的代码,就OK了(对grid

dw2xls中n_cst_dw2excel_grid小小改动grid导出速增陪
把of_outdata_detail改成我下面的代码,就OK了(对grid才有效,其它我还没有注意看。)。
public function long of_outdata_detail (long ai_currow);///*-------------------------------------------------
String ls_ColType,ls_ret,ls_format,ls_editstyle
Long li_outlines
String ls_Value, ls_Name,ls_Type
Int li,lj,li_Count
Int li_StartRow,li_StartCol,li_EndRow,li_EndCol
Int li_CurRow
Int li_Row
Int li_FontSize
int rows
ids_Objects.SetFilter("band='detail'")
is_OldBand="detail"
ids_Objects.Filter()
ids_Objects.Sort()
li_Count=ids_Objects.RowCount()
li_outlines=Long(ids_Objects.Describe("Evaluate('Max(EndRow)',1)"))
IF ii_DetailRow<=0 Then
ii_DetailRow=ai_CurRow
END IF
rows = idw_Requestor.RowCount()  
FOR li=1 To li_Count //{a}
ls_Name=ids_Objects.Object.Name[li]
ls_Type=ids_Objects.Object.Stype[li]
  li_StartRow=ids_Objects.Object.StartRow[li]
li_StartCol=ids_Objects.Object.StartCol[li]
IF li_StartRow<=0 OR li_StartCol<=0 OR li_StartCol>256 Then Continue //行列没定义不输出 ,如果列大于256,也不输出,因为F1最多只支持256列
ls_format=idw_Requestor.describe(ls_Name + ".editmask.mask")
IF ls_format="[general]" OR ls_format="?" OR ls_format="!" Then
ls_format=""
END IF
ls_editstyle=lower(idw_Requestor.Describe(ls_Name+".edit.style"))
For li_Row=1 To rows
li_CurRow=li_StartRow+ai_CurRow+(li_Row -1 )*li_OutLines
IF ls_Type="compute" OR ls_Type="column" Then //{b}
IF ls_editstyle="ddlb" OR ls_editstyle="dddw" OR idw_Requestor.Describe(ls_Name+".edit.codetable")="yes" Then  
ls_value= idw_Requestor.Describe("Evaluate('LookUpDisplay("+ls_Name+") ', "+string(li_row)+ ")")
ELSE
ls_value=String(idw_Requestor.object.data[li_Row,li_StartCol],ls_format)
END IF
xlApp.TextRC[li_CurRow,li_StartCol]=ls_value
ELSE
xlApp.TextRC[li_CurRow,li_StartCol]=idw_Requestor.Describe(ls_Name+".text")
END IF  
Next
Next  
Return li_outlines*rows
end function

[解决办法]
谢谢,学习了!
[解决办法]
看看.
[解决办法]
感谢分享经验
[解决办法]
学习 顶贴
[解决办法]

[解决办法]
学习 顶贴
[解决办法]
谢谢分享,有时间测一下
[解决办法]
不知道楼主用的谁家的,偶用的这个里没这个啊
[解决办法]
学习下!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
学习下!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
不错。这样的改进才是拥有源码的实际意义。

比如一般的grid形式,我就不需要设置背景颜色和字体颜色。速度就会更快一些。
实际上dw2xls如果能根据你的需要进行改进和优化,是件很好的事情。

我也改进了网上那个可以导出header的函数,使用在grid的导出中,因为针对grid,dw2xls显得太慢。
比如对于dddw,有如下行:
1001 中国 北京
1002 中国 上海
1003 美国 华盛顿
第二列是dddw,我会把第二列使用Describe+LookUpDisplay取得的显示字符串缓存起来,如果下一列是一样的data值,我直接赋予“中国“这个字符串,这样加快了速度。




--------------------
PB混淆器(5-12) http://chengg0769.download.csdn.net/
[解决办法]
牛人!
[解决办法]
不错,学习!
[解决办法]
mark```

热点排行