碰到这种问题,我都要傻了!急急。明早就要交了

peple 2003-08-04 11:45:02
打印窗口做好后,paper size属性设成210*297,窗口中也没有其它的不可视对象,但是每次打印结束,打印机自动出纸都是两张A4纸的大小,我都要晕死了。明天早上就要给客户。
另外出库表有出库单号是以系统当前日期后加四个数字组成数据库中用的是SREING类型的,怎么提取当天的最大单号,过了半夜12点又怎么判断。
现在脑子都不是自己的了,
...全文
34 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
godden6350 2003-08-07
  • 打赏
  • 举报
回复
回错了
godden6350 2003-08-07
  • 打赏
  • 举报
回复
http://expert.csdn.net/expert/FAQ/FAQ_Index.asp?id=109210

真实,我感动!努力,努力-菜蔡
xh308 2003-08-07
  • 打赏
  • 举报
回复
继续调试,继续学习!
xirumin 2003-08-07
  • 打赏
  • 举报
回复
那一定可以用的,pb可以内嵌SQL语句, 只是每个语句后都要加分号,
另外,你的SQLCA连接了吗,连上了数据库才可用。
peple 2003-08-06
  • 打赏
  • 举报
回复
不是文本,只有12个字符
wzm1022 2003-08-06
  • 打赏
  • 举报
回复
o_fode字段是大文本就不允许这么用。
wzm1022 2003-08-06
  • 打赏
  • 举报
回复
o_fode字段是大文本就不允许这么用。
peple 2003-08-06
  • 打赏
  • 举报
回复
我知道用select max().但是我的意思是说,PB8.0中不允许我这么用。
select max(o_fode)
from out
上面的语句有问题吗?
xirumin 2003-08-06
  • 打赏
  • 举报
回复
select max( 字段名 )....
xirumin 2003-08-06
  • 打赏
  • 举报
回复
我的函数就是在SQL2000上写的。看来你对PB或数据库还不怎么熟悉
successfulmaster 2003-08-05
  • 打赏
  • 举报
回复
第一个问题:既然你肯定没有不可视对象,那么你应该考虑一下,数据窗口有一个问题,就是在创建好数据窗口后,再动态调窗口内对象的大小后,如果是往大调还好,如果是向小高速的话,虽然数据显示区域变小了,但实际的页面大小还是保持原来不变的,这就造成打印的时候可能会跟有空白页的情况,你可以在调整窗口大小后再用调整后的语法重新创建一下就好了.
至于第二个问题,你可以通过读系统当前的日期,然后将它进行转换成字符串型的,再与数据库中存储的单号进行比较娶最大值,你可以用LIKE,也可以用SUBSTRING,因不知你用的是何数据库,故不能给出具体的语句.
qiyousyc 2003-08-05
  • 打赏
  • 举报
回复
肯定有不可见对象。
将所有的不可见对象的x,y更改为0。
xirumin 2003-08-05
  • 打赏
  • 举报
回复
1. 肯定是有看不见的东西超过了打印范围之外,建议将全部对象的border设为有框的,一打印就知道了。
2. 写一个全局函数吧,比如gf_get_maxdatecode( string as_str,string as_code,date ad_date );string

string ls_code
string ls_str

ls_str = upper(as_code) + string(ad_date,'yyyymmdd')

declare my_cursor dynamic cursor for sqlsa;
string sqlstatement

sqlstatement = "select max(f_code) from " + as_str + " where left( f_code,10 ) = '" + ls_str + "'"
prepare sqlsa from :sqlstatement;
open dynamic my_cursor;
fetch my_cursor into :ls_code;
close my_cursor;
if isnull( ls_code ) and sqlca.sqlcode = 0 then //还是空表
ls_code = ls_str + '001'
return ls_code
end if
if sqlca.sqlcode <> 0 then //读取出错
ls_code = ''
return ls_code
end if
//得到正常代码
ls_str = mid(ls_code,1,10) + string(long( right(ls_code,3) ) + 1 , '000' )
return ls_str

3. 将脑袋摘下来,将里面的东西倒空,再装上
peple 2003-08-05
  • 打赏
  • 举报
回复
up
peple 2003-08-05
  • 打赏
  • 举报
回复
1)我今天又查过了,数据窗口没有不可视的对象,打印机完全设置好了。但是当我把paper size属性设成默认时,打印完成之后,自动走纸一张A4大小。我想要每页只打6行数据应该怎么办?
2) xirumin(吃好喝好)的方法不错,但是我在PB8.0中提取当前最大单号不让我用select max(),
我用的数据库是SQL2000

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧