forward
global type nvo_ybjk from nonvisualobject
end type
end forwardglobal type nvo_ybjk from nonvisualobject
end type
global nvo_ybjk nvo_ybjktype 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_fymxstring 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_textstring is_inifile = 'yb.ini'string is_brbs = '0'
boolean ib_debug = falsestring is_knxx
string is_knxx2, is_grjbxx, is_ylfylj, is_zz, is_lxdh,is_xm,is_sex
dec{2} is_smkzhye
string   is_smkztint is_readicreturn
string is_ic,is_id,is_no
string is_smkjslshend variablesforward 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 prototypespublic function integer uf_data_reset ();ids_data.reset()return 0
end functionpublic function integer uf_data_object (string as_dataobject);ids_data.DataObject = as_dataobjectRETURN 0
end functionpublic function string uf_parm (string as_type, string as_text);string ls_returnls_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 functionpublic function integer uf_sendrcv (string as_send);
String ls_return
String ls_fetchls_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_returnis_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 ifChoose Case is_error_code
Case "P001" //成功
Return 0
Case "T100","T002","T004","T099" //超时
Return 2
Case Else
Return -1 //失败,错误
End ChooseReturn 0
end functionpublic 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 -1li_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
Nextreturn 0end function