hur.cn - 华软网

 热门搜索

PB GetRemote()函数返回值的问题

  作者:未知    来源:网络    更新时间:2019/1/5
以下是一段代码,为什么li_rtn(用//----//----标注的那段) 的前往值为-2,犯错

li_start = Integer(sle_start.Text)
li_end   = Integer(sle_end.Text)
IF il_dde_handle < 0 THEN

il_dde_handle = OpenChannel('Excel',is_pathname,il_win_handle)
END IF
IF il_dde_handle < 0 OR isnull(il_dde_handle) THEN
MessageBox("毛病提醒:","打开通道进程中犯错!",StopSign!)  
ExecRemote("[quit]", il_dde_handle)
Return 0
END IF

lp_old = SetPointer(HourGlass!)
FOR li_row = li_start TO li_end
li_new = dw_1.InsertRow(0)
dw_1.Object.DataWindow.ReadOnly = FALSE
FOR li_cell = 1 TO 14

//------------------------------------------------------------------
li_rtn = GetRemote("R"+string(li_row )+"C"+string(li_cell),ls_getdata,il_dde_handle,il_win_handle)
//就这里的li_trn 前往值一直为 -2
//--------------------------------------------------------------------

CHOOSE CASE li_rtn
CASE -1
ls_mess = '没有成功联接!'
MessageBox("毛病提醒:",ls_mess)
   Return 0
CASE -2 
ls_mess = '请求被拒绝!'
MessageBox("毛病提醒:",ls_mess)
   Return 0
CASE -9
ls_mess = '空通道!'
MessageBox("毛病提醒:",ls_mess)
   Return 0
CASE 1
ls_mess = 'Ok!'
END CHOOSE
li_pos = Pos(ls_getdata,char(13))
IF li_pos > 0 THEN
ls_getdata = Trim(Mid(ls_getdata,1,li_pos - 1))
END IF
IF li_cell = 13 THEN CONTINUE
IF li_cell = 1 THEN 
ls_getdata = Trim(Mid(ls_getdata,1,16))
dw_1.SetItem(li_new,li_cell,ls_getdata)
li_retrieve = dw_2.of_retrieve(ls_getdata)
IF li_retrieve = 1 THEN // 一个东西对应一条有效工艺路线。
ls_check_flag = dw_2.GetItemString(dw_2.GetRow(),"check_flag")
IF ls_check_flag = '0' THEN
dw_1.SetItem(li_new,"routing_makeflag",'1')
ELSEIF ls_check_flag = '1' THEN
dw_1.SetItem(li_new,"routing_makeflag",'2')
END IF
ELSEIF li_retrieve > 1 THEN
li_findrow = dw_2.Find("isvalid = '1'",1,li_retrieve)
IF li_findrow > 0 THEN
ls_check_flag = dw_2.GetItemString(li_findrow,"check_flag")
IF ls_check_flag = '0' THEN
dw_1.SetItem(li_new,"routing_makeflag",'1')
ELSEIF ls_check_flag = '1' THEN
dw_1.SetItem(li_new,"routing_makeflag",'2')
END IF
END IF
END IF
ELSEIF li_cell = 6 OR li_cell = 8 THEN
dw_1.Object.data[li_new,li_cell] = Dec(ls_getdata)
ELSEIF li_cell = 12  OR  li_cell = 13 THEN
li_len = Len(ls_getdata)
IF li_len > 6 THEN
dw_1.Object.data[li_new,li_cell] = Date(ls_getdata)
END IF
ELSE
dw_1.SetItem(li_new,li_cell,ls_getdata)
END IF
NEXT
li_rtn = GetRemote("R"+string(li_row )+"C"+string(12),ls_getdata,il_dde_handle,il_win_handle)
IF li_rtn = 1 THEN
li_pos = Pos(ls_getdata,char(13))
IF li_pos > 0 THEN
ls_getdata = Trim(Mid(ls_getdata,1,li_pos - 1))
END IF
END IF
li_count = dw_1.RowCount()
IF li_count > 1 THEN
ls_code = dw_1.GetItemString(li_count - 1,"ordercode")
ls_index = String(Integer(Right(ls_code,2)) + 1,'00')
ELSE
ls_index = '01'
END IF
dw_1.SetItem(li_new,"ordercode",is_ordercode + "-" + ls_index)
dw_1.SetItem(li_new,"reciever",is_username)
dw_1.SetItem(li_new,"recievetime",of_getservertime())
dw_1.SetItem(li_new,"oranizer",is_username)
ls_type = dw_1.GetItemString(li_new,"type")
ls_voltage = dw_1.GetItemString(li_new,"voltage")
IF pos(is_ordercode,'出')>0 OR  pos(is_ordercode,'散') >0 THEN
dw_1.SetItem(li_new,"dltype",'其余')
ELSE
SELECT "QUALITY_GETYPE"."GETYPE"   
  INTO :ls_dltype       
  FROM "QUALITY_GETYPE"   
 WHERE "QUALITY_GETYPE"."MODEL" = :ls_type;
 dw_1.SetItem(li_new,"dltype",ls_dltype)
END IF
li_find = ids_prod_xx.Find("xh = '" + ls_type + "' and cbdy = '" + ls_voltage + "'",1,ids_prod_xx.RowCount())
IF li_find > 0 THEN
ls_xx = ids_prod_xx.GetItemString(li_find,"xxgn")
dw_1.SetItem(li_new,"xx",ls_xx)
ELSEIF li_find = 0 THEN
li_find = ids_prod_xx.Find("xh = '" + ls_type + "' and cbdy = '3×" + ls_voltage + "'",1,ids_prod_xx.RowCount())
IF li_find > 0 THEN
ls_xx = ids_prod_xx.GetItemString(li_find,"xxgn")
dw_1.SetItem(li_new,"xx",ls_xx)
END IF
END IF
// 写入频次。
ls_matcode = dw_1.GetItemString(li_new,"productcode")
// 以下几种东西的频次位60Hz
IF ls_matcode = '3120964000066901' OR ls_matcode = '3011568000066901' OR ls_matcode = '3120754000148800' OR ls_matcode = '3011568000148800' THEN
dw_1.SetItem(li_new,"frequency",'60Hz')
ELSE
dw_1.SetItem(li_new,"frequency",'50Hz')
END IF
// 写入车间和东西线。
dw_1.SetItem(li_new,"shop_code",is_shopcode)
IF is_shopname = '三相车间' THEN
ls_line = '三相东西线'
ELSEIF is_shopname = 'DD862车间' THEN
ls_line = 'DD862东西线'
ELSEIF is_shopname = '单相长寿命车间' THEN
ls_line = ''
   END IF
dw_1.SetItem(li_new,"product_line",ls_line)
dw_1.SetItem(li_new,"shop_name",is_shopname)
// 正常定单照旧返修定单。
dw_1.SetItem(li_new,"order_type",is_order_type)
NEXT
------华软网友回答------
居然没看懂...

------华软网友回复------
可能我代码贴的 太多了,又有点乱。整理下
------华软网友回复------
以下是一段代码,为什么li_rtn(用//----//----标注的那段) 的前往值为-2,犯错

li_start = Integer(sle_start.Text)
li_end   = Integer(sle_end.Text)
IF il_dde_handle < 0 THEN
   il_dde_handle = OpenChannel('Excel',is_pathname,il_win_handle)
END IF
IF il_dde_handle < 0 OR isnull(il_dde_handle) THEN
   MessageBox("毛病提醒:","打开通道进程中犯错!",StopSign!)  
   ExecRemote("[quit]", il_dde_handle)
   Return 0
END IF

lp_old = SetPointer(HourGlass!)
FOR li_row = li_start TO li_end
    li_new = dw_1.InsertRow(0)
    dw_1.Object.DataWindow.ReadOnly = FALSE
    FOR li_cell = 1 TO 14

//------------------------------------------------------------------
    li_rtn = GetRemote("R"+string(li_row )+"C"+string(li_cell),ls_getdata,il_dde_handle,il_win_handle)
//就这里的li_trn 前往值一直为 -2
//--------------------------------------------------------------------      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。