标题:关于VFP打印的问题
只看楼主
kouxinzhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-12-30
 问题点数:0 回复次数:5 
关于VFP打印的问题
版主:
我在程序中做了一个报表打印程序,但是该报表在另一电脑上再运行时打印时,出现错位的情况,是何原因?
搜索更多相关主题的帖子: VFP 打印 
2007-01-04 11:17
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
得分:0 
是不是两台机器的屏幕分辨率设置不同?

2007-01-04 15:54
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 

两台电脑的操作系统是一样吗?打印机的驱动程序一致吗?


活到老,学到老! http://www. E-mail:hu-jj@
2007-01-04 20:30
kouxinzhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-12-30
得分:0 
两台电脑,分辨率是相同的,但是两台电脑所用打印机驱动不一样,一台采用联想,一台采用HP,两台打印机最大打印页面为A4纸张,其中在页面设置中,页边距设置均相同,在系统运行打印报表时仍出现错位现象,
请教高手,另外可否在VFP系统中直接将WORD文档或,电子表格文通过命令方式直接输出到打印机上?
如 : 命令 文件名(*.doc或*.xls) 输出至打印机?
2007-01-05 09:09
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 

用copy to命令可以将表转换为文本文件或电子表格文件。下面是从帮助文件中粘贴来的内容:

copy to 命令

用当前选定表的内容创建新文件。

语法

COPY TO FileName
[DATABASE DatabaseName [NAME LongTableName]]
[FIELDS FieldList
| FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[[WITH] CDX] | [[WITH] PRODUCTION]
[NOOPTIMIZE]
[[TYPE] [FOXPLUS | FOX2X | DIF | MOD
| SDF | SYLK | WK1 | WKS | WR1 | WRK | CVS | | XLS | XL5
| DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter]]]
[AS nCodePage]

参数

FileName

指定 COPY TO 要创建的新文件名。若文件名中不包含扩展名,则指定扩展名为文件类型的默认扩展名。若不指定文件类型,则 COPY TO 创建一个新的 Visual FoxPro 表,并且用默认扩展名 .DBF 指定表文件名。

DATABASE DatabaseName

指定要添加新表的数据库。

NAME LongTableName

指定新表的长名称。长名称最多可以包含到128 个字符并且可以在数据库中使用短文件名的地方使用它。

FIELDS FieldList

指定要复制到新文件的字段。若省略 FIELDS FieldLsit,则将所有字段复制到新文件。若要创建的文件不是表,则即使备注字段名包含在字段列表中,也不把备注字段复制到新文件。

FIELDS LIKE Skeleton

指定与所给字段梗概相匹配的原始表中的字段。使用 COPY TO 创建的新文件中包含 Skeleton。

FIELDS EXCEPT Skeleton

指定在 COPY TO 创建的新文件中包含除了与字段梗概 Skeleton 匹配的所有字段。

字段梗概 Skeleton 支持通配符。例如,要想在新文件中包含以字母A 和 P 开头的所有字段,可以使用下列代码:

COPY TO mytable FIELDS LIKE A*,P*

LIKE 子句可以和 EXCEPT 子句组合使用:

COPY TO mytable FIELDS LIKE A*,P* EXCEPT PARTNO*

Scope

指定要复制到新文件的记录范围。只有在范围内的记录才被复制。Scope 子句为:ALL、NEXT nRecord、RECORD nRecordNumber 和 REST。有关信息,请参阅帮助中的 Scope 子句。

FOR lExpression1

指定只复制逻辑条件 lExpression1 为“真”(.T.) 的记录到文件中。包含 FORlExpression1 可按条件复制记录,筛选出不想要的记录。

若 lExpression1 是可优化表达式,则 Rushmore 优化有 FOR lExpression1 子句的 copy to 命令。为获得最佳效果,可在 FOR lExpression1 子句中使用可优化表达式。

有关优化表达式的内容,请参阅稍后部分的 SET OPTIMIZE 命令和《Microsoft Visual FoxPro 6.0 中文版程序员指南》第十五章“优化应用程序”的“掌握 Rushmore 技术”。

WHILE lExpression2

指定一个条件,只有当逻辑表达式 lExpression2 为“真”(.T.) 时才复制记录。

[WITH] CDX | [WITH] PRODUCTION

创建一个与已有表的结构索引文件相同的新表结构索引文件。原始结构索引文件的标识和索引表达式被复制到新结构索引文件。CDX 等同于 PRODUCTION子句。

若不是复制到 Visual FoxPro 新表,则不要包含 CDX 或 PRODUCTION。

NOOPTIMIZE

使 COPY TO 的 Rushmore 优化无效。

有关详细内容,请参阅稍后部分的SET OPTIMIZE命令。

TYPE

若要创建的文件不是 Visual FoxPro 表,则指定该文件类型。指定文件类型时不必包含 TYPE 关键字。

FOXPLUS

Visual FoxPro 备注文件与 FoxBASE+ 备注文件有不同的结构。若 VisualFoxPro 源表包含备注字段,则包含 FOXPLUS 子句可创建一个能在FoxBASE+ 中使用的表。Visual FoxPro 备注字段不能包含二进制数据,因为FoxBASE+ 不支持备注字段中出现二进制数据。

FOX2X

创建能在 FoxPro for Windows、FoxPro for Macintosh 和 FoxPro for MS-DOS 的早期版本(2.0,2.5 和 2.6 版)中打开的新表。

对于数值型、浮点型、整型、双精度型和货币型字段,源表中的 null 值被转换为新表中的 0。对于其他字段类型,源表中的 null 值被转换为新表中的空值 (blank value)。有关空值 (blank value) 的详细内容,请参阅 ISBLANK( )。

下表列出了当包含 FOX2X 参数时,被转换为新表中不同字段类型的 Visual FoxPro 字段类型。

Visual FoxPro 字段类型 FoxPro 2.x 字段类型
货币型 浮点型
日期时间型 日期型
双精度型 浮点型
整型 数值型
 
DIF

创建一个 VisiCalc .DIF (数据交换格式)文件。Visual FoxPro 表的字段变为矢量(列),记录变为元组(行)。若在 FileName 中不包含扩展名,则指定新文件的扩展名为 .DIF。

MOD

创建 Microsoft Multiplan 4.01 版文件。若不包含扩展名,则指定新的Microsoft Multiplan 文件的扩展名为 .MOD。

SDF

创建 SDF(系统数据格式)文件。SDF 文件是 ASCII 文本文件,其中记录都有固定长度,并以回车和换行符结尾。字段不分隔。若不包含扩展名,则指定SDF 文件的扩展名为 .TXT。注意,当使用 copy to 命令创建 SDF 文件时,会忽略 SET CENTURY 的设置。

SYLK

创建 SYLK (符号连接)交换文件。SYLK 文件用于 Microsoft Multiplan。每个当前选定表中的字段变为电子表格中的一列,每个记录变为一行。SYLK 文件没有扩展名。

WK1

创建 Lotus 1-2-3 2.x 版的电子表格文件。每个当前选定表中的字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WK1。

WKS

创建 Lotus 1-2-3 1a 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WKS。创建 Lotus Symphony 1.1 或 1.2 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WR1。

WR1

创建 Lotus Symphony 1.1 或 1.2 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WR1。

WRK

创建 Lotus Symphony 1.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。新建电子表格的文件扩展名指定为 .WRK。

XLS

创建 Microsoft Excel 2.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。若不包含文件扩展名,则新建电子表格的文件扩展名指定为 .XLS。

XL5

创建 Microsoft Excel 5.0 版的电子表格文件。当前选定表中的每个字段变为电子表格中的一列,每条记录变为一行。若不包含文件扩展名,则新建电子表格的扩展名指定为 .XLS。

DELIMITED

创建分隔文件。分隔文件是 ASCII 文本文件,其中每条记录以一个回车和换行符结尾。默认的字段分隔符是逗号。因为字符型数据可能包含逗号,所以另外用双引号分隔字符型字段。
除非另外指定,否则所有新建 DELIMITED 文件的扩展名都指定为 .TXT。

DELIMITED WITH Delimiter

创建用字符代替引号分隔字符型字段的分隔文件。分隔字符型字段的字符用 Delimiter 指定。

DELIMITED WITH BLANK

创建用空格代替逗号分隔字符型字段的分隔文件。

DELIMITED WITH TAB

创建用制表符代替逗号分隔字符型字段的分隔文件。

DELIMITED WITH CHARACTER Delimiter

创建的文本文件中,各个字段由指定的 Delimite 分隔。若指定 Delimite 为分号,注意分号应用引号括起来,因为分号在 Visual Foxpro 中有特殊的意义:同一命令被分写在不同行中时,用分号作为行的结束。Delimite 还可以是BLANK 或 TAB。

注意 WITH Delimiter 可与 WITH CHARACTER Delimiter 配合使用。比如,在下面的例子中,创建了一个文本文件,其中各个字段由分号 ; 分隔,字符字段用下划线 _ 标识:

COPY TO mytxt.txt DELIMITED WITH _ WITH CHARACTER ';'
AS nCodePage

指定 COPY TO 创建的表或文件的代码页。Visual FoxPro 复制当前选定表的内容,并且在复制数据的同时,自动将数据转换到为新表或文件指定的代码页。如可能,Visual FoxPro 用指定的代码页标记新建的表或文件。
若为 nCodePage 指定了不被支持的值,Visual FoxPro 产生一条错误信息。可使用 GETCP( ) 显示“代码页”对话框,并允许为 Visual FoxPro 创建的表或文件指定代码页。
若省略 AS nCodePage,则将新建的表或文件转换到 Visual FoxPro 当前代码页。
若 nCodePage 是 0,则不发生代码页转换,并且不用代码页标记新建的表或文件。

说明
若已设置了索引排序方式,则按主索引顺序复制记录。


活到老,学到老! http://www. E-mail:hu-jj@
2007-01-05 20:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114101-1-1.html




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

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