| 发表于:2007-07-16 16:17:23 楼主 |
今天下午做一个需求,要打印出运行出来的报表数据,但是程序运行时,总提示overflow.可能越界的地方我都改了,还是不行,相关代码如下: 以下为赋值部分,将表格中的值赋给g.其中igridwidth 是long型数据,原来是integer. with grddata g.clear: g.rows = iendrow - ibeginrow + 1 + 1 k = 0: itmp = 110: igridwidth = 0 for i = 0 to grddata.cols - 1 if mid(mstrprintcol, i + 1, 1) = "1 " or _ instr(left(mstrprintcol, len(mstrprintcol) - 1), "1 ") = 0 then k = k + 1 g.cols = k if .colwidth(i) > 100 then g.colwidth(k - 1) = .colwidth(i) * itmp / 100 else g.colwidth(k - 1) = 0 end if g.textmatrix(0, k - 1) = .textmatrix(0, i) for j = 1 to g.rows - 1 g.textmatrix(j, k - 1) = .textmatrix(ibeginrow + j, i) next j igridwidth = igridwidth + g.colwidth(k - 1) end if next i end with ~~~~~~~~~~~~~~~~~~~~ 以下为打印, with prt1 set .grddata = g .linesperpage = 0 .title = strtitle if gstrformid <> "4415 " then .titlesize = 14 .asssize = 6 ' .asssize = 10 .zoom = 100 else .titlesize = 12 .asssize = 9 .zoom = 140 end if if gstrformid <> "4415 " then .hd = iif(right(mstrprintcol, 1) = "0 ", true, false) else .hd = false end if i = 10 .pagehead = strpagehead & "@r " .pagefoot = "@r打印日期: " & format(gdatlogindate, "yyyy年mm月dd日 ") & space(i) & _ iif(gstrformid = "450 ", " ", "@p ") .printbegin .printtask '运行到这里时就报错了 .printend end with |
|
|
|
|