注册 登录
编程论坛 PowerBuilder

pb菜鸟 求助

li671207 发布于 2012-12-02 20:37, 2320 次点击
/*------------------------------------------------
*函数名称:string gf_getbh(string as_bh)
*函数作用:生成一个编号
*返回值:string类型的编号
*调用举例:ls_new=gf_getbh(ls_old)
*                其中,ls_old为数据窗口中已经存在的当天的最大编号
*编写日期:2012.12.2
*编写人:xxx
*-------------------------------------------------*/

string ls_part1        //用来保存编码的前6位
string ls_part2        //用来保存编码的后4位
string ls_dbsn            //数据库中当天最大流水号
string ls_agrsn        //参数中的流水号
string ls_sn            //新生成的编号

ls_part1=right(string(today(),'yyyymmdd'),6)
ls_agrsn=right(as_bh,4)

//从数据库中选择当天最大的编号
select max(bh) into:ls_dbsn
        from mpgl
        where substring(bh,1,6)=:ls_part1;
        
if sqlca.sqlcode=0 then            //如果正确取出了数据
    if isnull(ls_dbsn) or ls_dbsn='' then
        ls_dbsn='0000'
    else
        ls_dbsn=right(ls_dbsn,4)
    end if
    if isnull(ls_agrsn) or ls_agrsn='' then
        ls_agrsn='0000'
    if integer(ls_dbsn)<integer(ls_agrsn) then
        ls_part2=string(integer(ls_agrsn)+1)
    else
        ls_part2=string(integer(ls_dbsn)+1)
    end if
   
    ls_sn=ls_part1+right('0000'+ls_part2,4)
else
    ls_sn=''
end if

return ls_sn

为啥要报error  coo31:syntax error
         error  coo31:syntax error        这个错

        
        
        
        
5 回复
#2
ldl20122012-12-06 11:31
123
#3
qq6023334252012-12-07 15:37
冷门的PB
#4
看花飘落2012-12-08 11:43
我想问下你的第31行是哪一句呀

#5
看花飘落2012-12-08 11:55
if sqlca.sqlcode=0 then            //如果正确取出了数据
    if isnull(ls_dbsn) or ls_dbsn='' then
        ls_dbsn='0000'
    else
        ls_dbsn=right(ls_dbsn,4)
    end if
    if isnull(ls_agrsn) or ls_agrsn='' then
        ls_agrsn='0000'
   end if
    if integer(ls_dbsn)<integer(ls_agrsn) then
        ls_part2=string(integer(ls_agrsn)+1)
    else
        ls_part2=string(integer(ls_dbsn)+1)
    end if
   
    ls_sn=ls_part1+right('0000'+ls_part2,4)
else
    ls_sn=''
end if

你这段程序中的if ...else....end 使用格式不正确,你仔细检查一下,是不是少了end if,
#6
看花飘落2012-12-08 11:57
我试了下,写上end if就正确了
1