| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 975 人关注过本帖
标题:[求助]关于连续打印
只看楼主 加入收藏
santu2006
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:6 
[求助]关于连续打印
我希望实现的是我在text2中输入编号1,在text3中输入编号2,实现编号1-编号2的打印
__________________________________________
close tables all
sele 1
use da
if thisform.check1.value=1
m_text=alltrim(thisform.text1.value)
locate for bh==m_text
if found()=.T.

b_bh=m_text
b_xm=da.xm
b_xh=da.xh
b_xb=da.xb
b_csny=dtoc(da.csny)
b_zzmm=da.zzmm
b_bj=da.bj
b_zy=da.zy
b_fdy=da.fdy
b_bm=da.bm
b_zw=da.zw
b_ah=da.ah
b_tc=da.tc
b_qt=da.qt
b_ssh=da.ssh
b_sst=da.sst
b_mpn=da.mpn
b_xlt=da.xlt
b_mail=da.mail
b_q=da.qq
b_jg=da.jg
sele 1
save screen to tempwin
if thisform.check3.value=1
report form djb1.frx to print
else
report form djb2.frx to print
endif
restore screen from tempwin
else
messagebox("无此人员!")
endif
else
m_text2=thisform.text2.value
m_text3=thisform.text3.value
locate for bh>=alltrim(m_text2) and bh<=alltrim(m_text3)
save screen to temp1
Do while found()
b_bh=da.bh
b_xm=da.xm
b_xh=da.xh
b_xb=da.xb
b_csny=dtoc(da.csny)
b_zzmm=da.zzmm
b_bj=da.bj
b_zy=da.zy
b_fdy=da.fdy
b_bm=da.bm
b_zw=da.zw
b_ah=da.ah
b_tc=da.tc
b_qt=da.qt
b_ssh=da.ssh
b_sst=da.sst
b_mpn=da.mpn
b_xlt=da.xlt
b_mail=da.mail
b_q=da.qq
b_jg=da.jg
sele 1
save screen to tempwin
if thisform.check3.value=1
report form djb1.frx to print
else
report form djb2.frx to print
endif
sele 1
continue
enddo
restore screen from temp1
endif
use
______________________________
不知道哪出了错,系统没报错,就是无法实现

[此贴子已经被作者于2006-8-13 8:51:56编辑过]

搜索更多相关主题的帖子: 打印 
2006-08-13 08:28
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
生成一个临时表SELECT--SQL试试或者如果想用本表的话,用SET FILT TO 试试

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-13 09:02
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
再或者在REPORE FROM后面加上条件试试

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-13 09:03
santu2006
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-8-6
收藏
得分:0 

不懂哈~
谁来教教我哈~

2006-08-13 11:48
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
两个REPORT语句都加上FOR语句试试看?

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-13 20:51
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

关于REPORT FORM命令,参看帮助文件。以下内容从帮助文件中复制而来。

report 命令
根据 MODIFY REPORT 或 CREATE REPORT 创建的报表定义文件显示或打印报表。

语法
REPORT FORM FileName1 | ?
[ENVIRONMENT]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[HEADING cHeadingText]
[NOCONSOLE]
[NOOPTIMIZE]
[PLAIN]
[RANGE nStartPage [, nEndPage]]
[PREVIEW [[IN] WINDOW WindowName | IN SCREEN]
[NOWAIT]]
[TO PRINTER [PROMPT] | TO FILE FileName2 [ASCII]]
[NAME ObjectName]
[SUMMARY]

参数描述

FileName1
指定报表定义文件的名称。

?
显示“打开”对话框,从中可选择报表文件。

ENVIRONMENT
包括此子句是为了提供与 2.x 版本报表的向后兼容性。要恢复与 VisualFoxPro 报表相关的数据环境,应把数据环境 AutoOpenTables 属性设置为默认值“真”(.T.)。若要确保在报表打印完后关闭报表环境,应把数据环境AutoCloseTables 属性设置为默认值“真”(.T.)。
对于从早期 FoxPro 版本转换过来的报表,即便 AutoOpenTables 属性设置为“假”(.F.),包含 ENVIRONMENT 也会打开并恢复数据环境中的所有表和关系。
当创建或修改报表时,可以用报表定义文件保存当前 Visual FoxPro 数据环境。保存Visual FoxPro 数据环境,实际上是在报表定义表中添加了一些附加的记录,保存下列信息:所有打开的表和索引文件、索引顺序以及表之间关系。

Scope
指定要包含在报表中的记录范围。只有在指定范围内的记录才包括在报表中。
Scope 子句有:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关 scope 子句的详细内容,请参阅帮助中的Scope 子句和语言概述。

REPORT 的默认范围是所有记录(ALL)。

FOR lExpression1
只有使表达式 lExpression1 的计算值为“真”(.T.) 的记录,才打印其中的数据。包括 FOR 可以筛选出不想打印的记录。
如果 lExpression1 是一个可优化表达式,Rushmore 将优化 REPORT FOR 命令。为获得最佳运行性能,应在 FOR 表达式中使用可优化表达式。
详细内容,请参阅稍后的 SET OPTIMIZE 命令与《Microsoft Visual FoxPro 6.0 中文版程序员指南》第十五章“优化应用程序”中的“掌握 Rushmore 技术”。

WHILE lExpression2
指定一个逻辑表达式 lExpression2 作为打印数据的条件。只要 lExpression2条件计算为“真” (.T.) ,就打印记录中的数据,直至遇到使表达式不为“真”(.T.) 的记录为止。

HEADING cHeadingText
指定放在报表每页上的附加标题文本。如果既包括 HEADING 又包括了PLAIN,应把 PLAIN 子句放在前面。

NOCONSOLE
当打印报表或将报表传输到一个文件时,不在 Visual FoxPro 主窗口或用户自定义窗口中显示有关信息。

NOOPTIMIZE
若要关闭对 report 命令的 Rushmore 优化,应包括 NOOPTIMIZE 子句。
详细内容,请参阅稍后的 SET OPTIMIZE 命令与《Microsoft Visual FoxPro 6.0 中文版程序员指南》第十五章“优化应用程序”中的“掌握 Rushmore 技术”。

PLAIN
指定只在报表开始位置出现的页标题。

RANGE nStartPage [, nEndPage]
指定要打印的页码范围。nStartPage 指定了要打印的第一页;nEndPage 指定了要打印的最后一页。如果省略 nEndPage,则要打印的最后一页默认为9,999。

PREVIEW [[IN] WINDOW WindowName | IN SCREEN]
以页面预览模式显示报表,而不把报表送到打印机中打印。要打印报表,必须发出带 TO PRINTER 子句的 report 命令。
请注意:当命令中包括 PREVIEW 子句时,忽略系统变量。
使用可选的 WINDOW 或 IN WINDOW 子句中,您可以指定一个窗口 WindowName,报表输出到这个窗口中。该窗口可由 DEFINE WINDOW 命令定义。如果包含WINDOW 子句,则使用 WindowName 指定的窗口的特性(例如标题、大小等等)进行预览。如果包含了 IN WINDOW 子句,则在 WindowName 指定的窗口中预览报表。
包含可选的 IN SCREEN 子句,表明报表预览窗口位于 Visual FoxPro 主窗口中,并且不能移动到外面去。
可以在命令中包括可选的 NOWAIT 子句。这时,Visual FoxPro 能够在运行程序时不等待关闭页面预览窗口就继续执行程序。也就是说,当页面窗口打开时,Visual FoxPro 继续运行程序。
在已发布的应用程序中,应确保可以得到“查看”菜单。关掉打印预览工具栏时,如果没有“查看”菜单,将无法恢复“打印预览”工具栏。

TO PRINTER [PROMPT]
把报表输送到打印机打印。
在 Visual FoxPro 中,命令中可以包括可选的 PROMPT 子句,在打印开始前显示设置打印机的对话框。可调整的打印设置项取决于当前安装的打印机驱动程序。PROMPT 子句应紧跟在 TO PRINTER 子句之后。

TO FILE FileName2 [ASCII]
在 Visual FoxPro 中,指定报表要送往的文本文件。将报表送往文本文件时,使用当前打印机驱动程序。包含 TO FILE 子句创建的文件具有默认扩展名 .TXT。
在 Visual FoxPro 中,可以在命令中包括可选 ASCII 子句,用报表定义文件创建一个ASCII 文本文件。没有 ASCII 子句时,则按 PostScript或其他打印机代码格式将报表写到文本文件中。报表定义中任何图像、线条、矩形以及圆角矩形都不出现在 ASCII文件中。
在 ASCII 文本文件的每一页中,列和行的数目由系统变量 _ASCIICOLS 和_ASCIIROWS 的内容确定。_ASCIICOLS 和 _ASCIIROWS 的默认值分别为 80 列和63 行。这些值对应于标准的纵向页。

NAME ObjectName
给报表的数据环境指定一个对象变量名。数据环境和数据环境中的对象都有一些属性和方法,例如 AddObject ,这些属性和方法可在运行时设置或调用。对象变量则提供了存取这些属性和方法的途径。如果不指定 NAME 子句,Visual FoxPro 则使用报表文件的名称作为默认对象变量名,此默认名也可以在事件代码中引用。

SUMMARY
不打印细节行,只打印总计和分类总计信息。

说明
报表定义文件的默认扩展名是 .FRX。如果报表定义文件不在默认目录中,文件名中必须包括文件的路径。


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-14 10:08
santu2006
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-8-6
收藏
得分:0 

谢谢 ~

2006-08-14 20:40
快速回复:[求助]关于连续打印
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048994 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved