牛人来帮我转下,谢谢! PB代码转DELPHI代码

luobo180180 2017-08-26 04:24:55

forward
global type nvo_ybjk from nonvisualobject
end type
end forward

global type nvo_ybjk from nonvisualobject
end type
global nvo_ybjk nvo_ybjk

type prototypes
function string SendRcv(string pSend,string pRcv) library "sendrcv.dll"
function string YBTS(string pRcv) library "ybpost.dll" library "ybpost.dll" ALIAS FOR "YBTS;ansi" //接口

function string SendRcvA(ref string pSend, ref string pRcv) library "SendRcvA.dll" ALIAS FOR "SendRcv;ansi"
function string SendRcvB(ref string pSend, ref string pRcv) library "SendRcvB.dll" ALIAS FOR "SendRcv;ansi"
function int SIReadCardIDAIO( ref string sCardNo, ref string sCardId,ref string sInitOrgNo) library "SI_ICCReader.DLL" ALIAS FOR "SIReadCardIDAIO;ansi"
end prototypes
type variables
datastore ids_data, ids_data_fymx

string is_data_array[] //将数据存储中的数据写入到数组中

//返回信息,返回信息体
string is_return, is_return_text
string is_inparm, is_outparm

//代码,名称
//string is_yybm = '330399'
string is_yybm = '330399'
string is_zddm
string is_jgdm ='00000009300'

//简码(3位)
string is_yyjm

//返回信息编码, 返回信息文字
string is_error_code, is_error_text

string is_inifile = 'yb.ini'

string is_brbs = '0'
boolean ib_debug = false

string is_knxx
string is_knxx2, is_grjbxx, is_ylfylj, is_zz, is_lxdh,is_xm,is_sex
dec{2} is_smkzhye
string is_smkzt

int is_readicreturn
string is_ic,is_id,is_no
string is_smkjslsh

end variables

forward prototypes
public function integer uf_data_reset ()
public function integer uf_data_object (string as_dataobject)
public function string uf_parm (string as_type, string as_text)
public function integer uf_sendrcv (string as_send)
public function integer uf_convert_texttodw ()
public function string uf_convert_numberbtostring (double ad_number)
public function string uf_fymx ()
public function integer uf_data_export ()
public function integer uf_readcard (string as_data)
public function integer uf_data_toarray ()
public function integer uf_data_toarray (integer ai_row)
public function integer uf_fymx_item (integer ai_col, decimal ad_value)
public function integer uf_person_info (string as_knxx, datawindow adw)
public function datetime uf_get_sysdate ()
public function integer uf_init ()
public function integer uf_convert_dept (string as_dept, ref string as_ybbm, ref string as_ybmc)
public function integer uf_fymx_reset ()
public function integer uf_data_item (integer ai_col, string as_value)
public function integer uf_convert_dwtotext (ref string as_text)
public function integer uf_convert_billitem (string as_sfxm, ref string as_ybbm, ref string as_ybmc)
public function integer uf_data_export (datawindow adw)
public function integer wf_log (string as_send, string as_fetch)
public function integer uf_log (string as_send, string as_fetch)
public function string uf_convert_numberatostring (decimal ad_number)
public function integer uf_data_itemnumbera (integer ai_col, decimal ad_value)
public function integer uf_data_itemnumberb (integer ai_col, decimal ad_value)
public function string uf_get_filename (string as_type, date ad_day)
public function integer uf_convert_texttoarray (string as_text, string as_array[])
public function integer uf_import_file (datawindow adw, integer ai_startrow)
public function integer uf_isdate (string as_date)
public function integer uf_convert_social (string as_socialno, ref datetime adt_birth, ref integer ai_age, ref string as_sex)
public function integer uf_fymx_item (string as_bill, decimal ad_value)
public function string uf_string_fromlen (string as_text, integer ai_len)
public function integer uf_convert_arraytods (string as_text[], datastore ads, string as_messcode)
public function integer uf_convert_texttods (string as_text, string as_messcode, ref datastore ads)
public function integer uf_convert_texttoarray (string as_text, string as_messcode, ref string as_array[])
public function integer uf_pub_get_personinfo (string as_knxx, datawindow adw)
public function integer uf_jk_g002 (string as_knxx)
public function integer uf_sendrcva (string as_messagecode, string as_message, string as_knxx)
public function string uf_convert_dstotext (ref datastore ads)
public function integer uf_jk_y003 (string as_serialno)
public function integer uf_jk_y004 (string as_serialno)
public function integer uf_jk_y005 (string as_serialno)
public function integer uf_save_log ()
public function integer uf_save_patinfo ()
public function integer uf_jk_y001 (long al_ghid)
public function integer uf_jk_y002 (long al_ghid)
public function integer uf_jk_y011 (long al_gkbh)
public function integer uf_jk_y011 (string as_parm, string as_knxx)
public function integer uf_return_array (ref string as_array[], string as_messcode)
public function integer uf_return_datastore (ref datastore ads, string as_messagecode)
public function integer uf_jk_y012 (string as_parm, string as_knxx)
public function integer uf_jk_g001 (string as_knxx, string as_lsh, decimal ad_total)
public function integer uf_jk_y021 (string as_parm, string as_knxx)
public function integer uf_jk_y025 (string as_serialno)
public function integer uf_jk_y022 (string as_serialno, ref string as_string, ref real ar_selfcharge)
public function integer uf_jk_y023 (string as_parm, string as_knxx, ref string as_jslsh)
public function integer uf_sendrcvb (string as_messagecode, string as_message)
public function integer uf_save_settle_data ()
public function integer uf_jk_s006 (string as_code, string as_type)
public function integer uf_jk_readic ()
public function integer uf_jk_g003 (string as_parm, ref string as_result, string as_knxx)
public function integer uf_jk_ (string as_parm, string as_knxx)
public function integer uf_convert_texttodw (string as_text, string as_messcode, ref datawindow ads)
public function integer uf_jk_k001 (string as_knxx)
public function integer uf_jk_k021 (string as_parm, string as_knxx, decimal as_total)
public function integer uf_jk_k002 (string as_parm, string as_knxx, decimal as_total, string as_jslsh, string as_yblsh)
public function integer uf_jk_k003 (string as_parm, string as_knxx, decimal as_total, string as_jslsh, string as_yblsh)
public function integer uf_jk_k011 (string as_parm, ref string as_result, string as_knxx)
public function integer uf_jk_k004 (string as_parm, string as_knxx, string as_jslsh, string as_yblsh, string as_jylx)
public function integer uf_jk_k012 (string as_qsrq)
public function integer uf_jk_k013 (string as_qsrq, ref string as_return)
public function integer uf_ybstart (string as_input)
public function integer of_ygyb_mzxx (string as_input, ref string as_output, string as_grbh, string as_yblsh)
end prototypes

public function integer uf_data_reset ();ids_data.reset()

return 0
end function

public function integer uf_data_object (string as_dataobject);

ids_data.DataObject = as_dataobject

RETURN 0


end function

public function string uf_parm (string as_type, string as_text);string ls_return

ls_return = "SSSS" //开始码

ls_return = ls_return + as_type //消息类型码*
ls_return = ls_return + space(4) //消息返回码

ls_return = ls_return + left(is_yybm + space( 16), 16) //代码space(16)
ls_return = ls_return + left(is_zddm + space( 4), 4) //由编配的收费终端代码
ls_return = ls_return + left(as_text + space(416), 416) //消息体

ls_return = ls_return + space(60) //系统保留
ls_return = ls_return + "ZZZZ" //结束码

return ls_return
end function

public function integer uf_sendrcv (string as_send);


String ls_return
String ls_fetch

ls_fetch = Space(512)

if ib_debug then

// openwithparm(w_yb_sendparm, as_send)

ls_return = message.stringparm
if ls_return = '' then return -1
else

ls_return = sendrcv(as_send, ls_fetch)
end if

//ls_return = "RRRRRF01P001 20081016/172021/1003800578潘大平 33030219310902281 00855895923020000000000000000000000000000000000.000000000.000000000.000000000.000098400.000248400.000000000.0000000000000000000000000000000000.0000000000.00 ZZZZ"
is_return = ls_return

is_error_code = Mid(ls_return,9,4) //错误代码
is_error_text = Mid(ls_return,389,60) //错误提示
is_return_text = Mid(ls_return,49,340)

//与数据传递日志
if ib_debug then
uf_log(as_send, ls_return)
end if

Choose Case is_error_code
Case "P001" //成功
Return 0
Case "T100","T002","T004","T099" //超时
Return 2
Case Else
Return -1 //失败,错误
End Choose

Return 0


end function

public function integer uf_convert_texttodw ();
uf_data_reset()
ids_data.insertrow(0)

int li_col, li_count, li_len, li_pos
string ls_coltype

//取数据窗口列数量
li_count = integer(ids_data.Object.DataWindow.Column.Count)
if li_count <= 0 then return -1

li_pos = 1
For li_col = 1 To li_count

//按每列字符数将返回信息写到数据窗口的对应列中
ls_coltype = ids_data.describe("#" + string(li_col) + ".coltype")
li_len = integer( mid(ls_coltype, 6, len(ls_coltype) - 6) )

ids_data.setitem(1, li_col, mid(is_return_text, li_pos, li_len))

li_pos += li_len
Next

return 0

end function
...全文
500 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
luobo180180 2017-08-29
  • 打赏
  • 举报
回复
或者你告诉我下,调用DLL和取返回值也行

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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