在客户采购订单中,客户,客户采购订单号,客户型号,交货期确定唯一,在客户采购订单功能生成销售订单时,如果用sql语句写,当客户采购订单号或客户型号没有中文时,可根据这四个字段可找到销售订单号,但如果有中文sql语句就不能查到该生成的销售订单号
错误写法:
REQUEST(0)="select SR.SOHNUM_0 from SORDER sr left join SORDERQ sq on sq.sohnum_0=sr.sohnum_0 where sr.cusordref_0='"+[YSD0]YSOHNUM+"' "
REQUEST(1)=" and sr.bpcord_0='"+[M:YSD0]YBPCNUM+"' AND SQ.YBPCPOH_0='"+[M:YSD1]YBPCPOH(Y)+"' "
REQUEST(2)=" and SQ.YBPCIT_0='"+[M:YSD1]YBPCIT(Y)+"' and SQ.DEMDLVDAT_0=to_date('"+[M:YSD1]YJIAODATE(Y)+"','YYYYMMDD') "
解决办法,把客户采购订单的流水号和行号传递到销售订单行中,就可找到该销售订单号
If !clalev([DSOQ]) : Local File SORDERQ[DSOQ] : Endif #打开SORDERQ
Read [DSOQ]SOQ9=[YSD0]YSOHNUM;[M:YSD1]YBDLIN(Y);[M:YSD1]ITMREF(Y) #读取该流水号,行号,产品的记录
If !fstat
If !clalev([YABP]) : Local File YBPCTEMD[YABP] : Endif
Trbegin [YABP]
Readlock [YABP]YBD4=[M:YSD1]YSOHNUM(Y);[M:YSD1]YBPCPOH(Y);[M:YSD1]YBPCIT(Y);[M:YSD1]YJIAODATE(Y)
If fstat > 1
Rollback
Elsif fstat = 1
Rollback
Else
[YABP]YYSOHS=[F:DSOQ]SOHNUM #把读取到的销售订单号保存到客户采购订单明细表里
[M:YSD1]YYSOHS(Y)=[F:DSOQ]SOHNUM #把读取到的销售订单号显示在客户采购订单明细行里
Rewrite [YABP]
Commit
Endif