标题:求助,程序连编后出现报表不能预览
只看楼主
FK1219
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2017-9-8
结帖率:87.5%
已结贴  问题点数:18 回复次数:15 
求助,程序连编后出现报表不能预览
程序在项目管理器中运行均正常,但连编后当查询时出现两种情况,1、有一个表在查询时,只能出现四条空白无数据的记录,2、其他表查询时都是一闪就没了。
搜索更多相关主题的帖子: 连编 出现 报表 预览 查询 
2017-10-06 09:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
不好说,给代码看看。
2017-10-06 10:03
FK1219
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2017-9-8
得分:0 


[此贴子已经被作者于2017-10-6 16:49编辑过]

2017-10-06 16:45
FK1219
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2017-9-8
得分:0 
那位大侠帮个忙呀,
set safety off

public mz
public lb

mz=
lb=
DATE1=CTOD(Thisform.TexT1.Value)
DATE2=CTOD(Thisform.TexT2.Value)

if empty(mz) and empty(lb)
select * from spm where between(日期,date1,date2) order by 日期 asc into table lsspm
endif
if empty(mz) and '直达'
select * from spm where between(日期,date1,date2) and 类别=='直达'  order by 日期 asc into table lsspm
endif
if empty(mz) and '下水'
select * from spm where between(日期,date1,date2) and 类别=='下水'  order by 日期 asc into table lsspm
endif
if empty(mz)==.F.
select * from spm where between(日期,date1,date2) and 用户名称==mz  order by 日期 asc into table lsspm
endif

report form spm.frx preview
 
&& 另外问一下combo1怎么赋值到变量


[此贴子已经被作者于2017-10-9 08:45编辑过]

2017-10-06 16:52
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:4 
不愿提供代码,大家如何帮你!
这种现象应该与是否连编无关,估计还是工作区或查询语句的问题,没有看到代码,只能瞎猜。

活到老,学到老! http://www. E-mail:hu-jj@
2017-10-07 09:24
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
如果报表文件使用的数据表无数据记录,报表输出无效。
执行报表预览 REPORT FORM ... PREVIEW 之前看看:
MESSAGEBOX(RECCOUNT())
REPORT FORM ... PREVIEW
2017-10-07 16:19
FK1219
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2017-9-8
得分:0 
代码谁帮看看,问题出在那了
2017-10-09 16:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
if reccount()>0
    report form spm.frx preview
else
    messagebox("无数据记录")
endif
2017-10-09 16:49
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
得分:4 
以下是引用FK1219在2017-10-6 16:52:01的发言:

那位大侠帮个忙呀,
set safety off

public mz
public lb

mz=
lb=
DATE1=CTOD(Thisform.TexT1.Value)
DATE2=CTOD(Thisform.TexT2.Value)

if empty(mz) and empty(lb)
select * from spm where between(日期,date1,date2) order by 日期 asc into table lsspm
endif
if empty(mz) and '直达'
select * from spm where between(日期,date1,date2) and 类别=='直达'  order by 日期 asc into table lsspm
endif
if empty(mz) and '下水'
select * from spm where between(日期,date1,date2) and 类别=='下水'  order by 日期 asc into table lsspm
endif
if empty(mz)==.F.
select * from spm where between(日期,date1,date2) and 用户名称==mz  order by 日期 asc into table lsspm
endif

report form spm.frx preview
 
&& 另外问一下combo1怎么赋值到变量

既然你使用==精确比较,那么变量(字段或内存)就要使用alltrim()函数压缩左右空格,除非你能保证你的变量的长度正好与常量的长度完全相同,否则即使有符合条件的记录,SELECT语句也查询不到符合条件的记录。比如说
select * from spm where between(日期,date1,date2) and 类别=='直达'  order by 日期 asc into table lsspm
就要改为:
select * from spm where between(日期,date1,date2) and alltrim(类别)=='直达'  order by 日期 asc into table lsspm


[此贴子已经被作者于2017-10-9 17:15编辑过]

2017-10-09 17:12
FK1219
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2017-9-8
得分:0 
代码在VFP项目管理器中可以正常查询及预览运行,但是连编后,单独运行EXE文件时报表不能预览在屏幕下面提示没有记录,
2017-10-10 08:45



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




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

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