存档

2009年10月 的存档

另类方法 获得Report的运行结果

2009年10月24日 没有评论

         Report.SaveASHTML(5000,false,false,rec,flName);

IF ISCLEAR(WSC) THEN

  CREATE(WSC);

//This is created by Yeats.

WSC.Language:=’VBScript’;

b[1]:=13;

b[2]:=10;

g_txtScript:=g_txtScript+’Fl=’+’"’+flName+’"’+b;

g_txtScript:=g_txtScript+’set stm=CreateObject("Adodb.Stream")’+b;

g_txtScript:=g_txtScript+’stm.Type=2’+b;

g_txtScript:=g_txtScript+’stm.Mode=3’+b;

g_txtScript:=g_txtScript+’stm.CharSet="gb2312"’+b;

g_txtScript:=g_txtScript+’stm.Open’+b;

g_txtScript:=g_txtScript+’stm.LoadFromFile Fl’+b;

g_txtScript:=g_txtScript+’Set oHTML=CreateObject("HtmlFile")’+b;

g_txtScript:=g_txtScript+’oHTML.Open’+b;

g_txtScript:=g_txtScript+’oHTML.write stm.ReadText’+b;

g_txtScript:=g_txtScript+’set m=oHTML.all.tags("Table").Item(oHTML.all.tags("Table").Length-1)’+b;

g_txtScript:=g_txtScript+’stm.Close’+b;

g_txtScript:=g_txtScript+’Function GetJ(i)’+b;

g_txtScript:=g_txtScript+’GetJ=m.ParentNode.ParentNode.ParentNode.all.tags("TR").Item(6).all.tags("TD").Item(i).outerText’+b;

g_txtScript:=g_txtScript+’GetJ=csng(getJ)’+b;

g_txtScript:=g_txtScript+’End Function’;

WSC.ExecuteStatement(g_txtScript);

rt:=WSC.Eval(‘GetJ(7)’);

m:=rt;

ERROR(FORMAT(rt));

IF NOT ISCLEAR(WSC) THEN

  CLEAR(WSC);

 

上面的读取方法采用的是HTML Library库实现,采用DOM方式解析每一个格子的内容。需要对DOM结构很熟悉的才能实现。

 

如下面显示的是上面报表读取的值的位置。

 

最后一个Table

的最后一个Table

的最后一行

的第4列                第8列                第12列

分类: C/AL 标签: ,