热情软件屋

 

怎样将报表的数据窗,保存为Word可以打开的文件


编号:QA002271
建立日期: 1999年12月17日 最后修改日期:1999年12月17日
所属类别:

方凯:
    操作系统:pwin98
    编程工具:PB
    问题:请问怎样将报表的数据窗,保存为Word可以打开的文件(含有报表头)。感谢!感谢

回答:

     可以对数据窗口逐行读出并写到WORD文本中.
     例如:
     DataWindow的列为: Containerno,Mastercode,Truckno,Worktype,Worktime
    
     定义变量名:
     Integer li_FileNum,li_next,li_row (li_row 为数据窗的行数)
     string ls_next[],ls_filename (ls_filename是你要保存的WORD文本名)
     ls_filename = "D:\Fjq.doc"
     li_FileNum = FileOpen(ls_filename,.....)
     IF li_FileNum = 1 THEN....
     报头:
     FileWrite(li_FileNum,"XXX报表")
     FileWrite(li_FileNum,' '+ String(Today(),'yyyy/mm/dd'))
     数据:
     li_row = dw_1.Rowcount()
     For li_next = 1 To li_row (从DW_1的第一行到最后一行,将列值逐行附给ls_next[])
     ls_next[1] = dw_1.object.Containerno[li_next]
     ls_next[2] = dw_1.object.Mastercode[li_next]
     ls_next[3] = dw_1.object.Truckno[li_next]
     ls_next[4] = dw_1.object.Worktype[li_next]
     ls_next[5] = dw_1.object.Worktime[li_next]
     (注意:列值不能为空,若为空则先判断,后给ls_next[]附空串或其他字符。)
     FileWrite(li_FileNum,ls_next[1]+ls_next[2]+...+...)
     NEXT
    
     另外:如果数据窗经过分组,则:
     integer li_headposition,li_grouptotal (其中li_headposition为每组的开始行号,即该行在整个数据窗中的行号,li_grouptotal为该组的记录条数)
     li_headposition = 1
     li_grouptotal = 0
    lab:
    
     用SQL语句计算出符合条件的记录数 li_grouptotal
    
     上面的FOR语句的条件该为:
     FOR li_next = li_headposition to li_headposition + li_grouptotal - 1
     ....
    
     FileWrite(li_FileNum,ls_next[1]+.....)
     NEXT
    
     IF li_headposition + li_grouptotal -1 < dw_1.rowcount() THEN
     li_headposition = li_headposition + li_grouptotal
     goto lab
     END IF

此问题由nt container回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio