123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- $PBExportHeader$f_open.srf
- global type f_open from function_object
- end type
- forward prototypes
- global function integer f_open (integer arg_openmode)
- end prototypes
- global function integer f_open (integer arg_openmode);Long rslt = 1
- Long ls_rslt
- String lls_str
- String arg_msg
- Int li_loginflag = 0
- ULong l_handle, lu_class
- String ls_name
- sys_ifoem = Long(ProfileString (sys_inioem, "oem", "ifoem",'0'))//是否OEM
- // 创建电话盒UO_CC301实例
- uo_cc301_ins = create uo_cc301
- IF Not IsValid(uo_email_power) THEN
- uo_email_power = Create uo_email_power_ew
- END IF
- IF Not IsValid(uo_ljjob_creator_spi) THEN
- uo_ljjob_creator_spi = Create uo_ljjob_creator_ew
- END IF
- sys_login = False
- String ls_network
- ls_network = f_psw_bczh(ProfileString(sys_inifilename_other,'sys_message', 'network' , '613444366637208268088'),1,sys_power_key)
- IF ls_network = 'network' THEN
- sys_if_network = 1
- ELSE
- sys_if_network = 0
- END IF
- //取消单机版注册 20121116 lhd
- //String ls_msg
- //IF f_reg_dll(ls_msg) = 0 THEN
- // MessageBox('提示',ls_msg, Information!, OK! )
- // HALT;
- //END IF
- IF sys_if_network = 0 THEN //单机版
- Long hwnd
- hwnd = Handle(This)
-
- IF hwnd > 0 THEN
- //检查是否有副本运行
- IF f_ifexerun() > 1 THEN
- MessageBox('提示',sys_message_title + '已运行!', Information!, OK! )
- HALT;
- END IF
- END IF
- String ls_version
- ls_version = f_psw_bczh(ProfileString(sys_inifilename_other,'sys_message', 'version' , '268578966903644066457208358988'),1,sys_power_key)
-
- //单机版取消工业+
- //免注册
- IF ls_version = 'business' THEN
- sys_version_type = 1
- sys_version_id = '801001ewiserpv5.0'
- sys_version = 802001
- sys_versionName = "商业版"
- sys_version_int = 1
- ELSE //IF ls_version = 'enterprise' THEN
- sys_version_type = 0
- sys_version_id = '801002ewiserpv5.0'
- sys_version = 802002
- sys_versionName = "工业版"
- sys_version_int = 2
- // ELSEIF ls_version = 'enterprise+' THEN
- // sys_version_type = 2
- // sys_version_id = '801003ewiserpv4.0'
- // sys_version = 802003
- // sys_versionName = "工业版+"
- // sys_version_int = 3
- END IF
-
- String ls_bookname
- ls_bookname = ProfileString (sys_inifilename, "database", "bookname","")
- IF ls_bookname = '' THEN
- f_ini_book()
- END IF
-
- Long firstrun
- firstrun = Long(ProfileString (sys_inifilename, "database", "firstrun","0"))
-
- Long ll_return
- s_set_book_parm s_parm
-
- IF firstrun = 1 THEN
- s_parm.bookid = 1
- s_parm.ifguid = 1
- OpenWithParm(w_set_init, s_parm)
- ll_return = Message.DoubleParm
- IF ll_return <> 1 THEN HALT;
- MessageBox('提示','设置保存完成!系统必须重启!')
- Restart()
- // OpenWithParm(w_set_sqlca_ecl,'01')
- ELSE
- Open(w_sys_login_s)
- END IF
-
- ELSE //网络版
-
- IF Not IsValid(w_ws) THEN
- Open(w_ws)
- END IF
-
- Open(w_sys_login)
- END IF
- li_loginflag = Message.DoubleParm
- f_init_version()
- IF arg_openmode = 0 Or li_loginflag = 2 THEN
-
- //初始化连接数量
- uo_remote_sqlca uo_rsqlca
- uo_rsqlca.init_remote_sqlca()
- //////// //
-
- uo_yfimex uo_ins_imex
- uo_ins_imex = Create uo_yfimex
- ls_rslt = uo_ins_imex.f_init_syscurpath(lls_str)
-
- Open(w_sys_begin) //打开闪烁窗口(连接数据库)
- sys_db_spid = f_get_db_spid() //获取spid
-
- source_sqlca = Create Transaction
- IF f_switchdb_check() = 1 THEN //检查当前是否要切换数据库
- //f_switch()
- f_sys_option()
- f_cntdb(source_sqlca)
- f_cnt_newdb(sys_option_switch_Sername,sys_option_switch_dbname,sys_option_switch_loginID,sys_option_switch_loginpsw)
- END IF
-
- //autoupdateexe begin in application's begin
- uo_atudexe uo_ins_atudexe
- uo_ins_atudexe = Create uo_atudexe
- ls_rslt = uo_ins_atudexe.f_init_syscurpath(lls_str)
- //////// //
- ls_rslt = uo_ins_atudexe.f_autoupdateexe(sqlca,lls_str)
- Destroy uo_ins_atudexe
- ////////// //autoupdateexe end
-
- // ls_rslt = f_synchronize(sqlca,lls_str) //同步服务器时间
- // IF ls_rslt = 0 THEN
- // MessageBox('提示','同步服务器时间操作失败,请手动调节!', Information!, OK! )
- // END IF
-
- //单机版 免注册
- // IF sys_if_network = 0 THEN //单机版
- // f_regcheck()
- // END IF
- IF sys_if_network = 0 THEN
- sys_if_register = 1
- ELSE
- sys_message_timeoutdate = "2015.01.01"
- // IF Today() > RelativeDate(Date(sys_message_timeoutdate),-20) THEN
- // MessageBox(sys_message_timeoutdate,'系统即将超使用期限,请与软件供应商联系!', Information!, OK! )
- // END IF
- //
- // IF Today() > Date(sys_message_timeoutdate) THEN
- // MessageBox(sys_message_timeoutdate,'超使用期限,请与软件供应商联系!', Information!, OK! )
- // HALT;
- // END IF
- END IF
-
-
- Int rst
- //检查版本
- uo_version uo_ver
- // uo_ver.uof_createtable_auto()
-
- rst = f_get_curdb(arg_msg)
-
- IF rst = 0 THEN //数据库错误
- MessageBox("提示",arg_msg,Information!, OK! )
- HALT;
- ELSEIF rst = -1 THEN //设定历史数据库
- Open(w_set_scdb)
-
- //再读一次版本
- rst = f_get_curdb(arg_msg)
- ELSEIF rst = -2 THEN //升级数据库
- // f_createtable()
- uo_ver.uof_createtable(True)
-
- // //多币种本位币更新
- // f_set_moneyid()
-
- //初始化单据抬头
- IF f_init_billstyle(arg_msg) = 0 THEN
- MessageBox('错误',arg_msg,StopSign!, OK! )
- END IF
-
- //初始化数据字典
- IF f_init_table_field(arg_msg) = 0 THEN
- MessageBox('错误',arg_msg,StopSign!, OK! )
- END IF
-
- //默认打印格式
- IF f_init_dft_dwprint_dynamic(arg_msg) = 0 THEN
- MessageBox('错误',arg_msg,StopSign!, OK! )
- END IF
-
- //升级初始化 打印格式pbl
- IF f_init_dftpbl(sys_pblname,'',arg_msg) = 0 THEN
- MessageBox('错误',arg_msg,StopSign!, OK! )
- END IF
-
- //再读一次版本
- rst = f_get_curdb(arg_msg)
- END IF
-
- if rst <> 1 then
- MessageBox('错误',arg_msg,StopSign!, OK! )
- HALT;
- end if
-
- IF hwnd > 0 THEN
- //检查是否有副本运行
- IF Not f_chk_login(arg_msg) THEN
- MessageBox('提示',arg_msg, Information!, OK! )
- HALT;
- END IF
- END IF
-
- //初始化打印格式单据列表
- f_init_billname()
-
- //设置打印格式库
- f_setliblist()
-
- IF sys_if_network = 0 THEN
- //删数,截数初始化, 单机版用到
- f_init_tntblinfo()
- END IF
-
- //解决方案初始化, 权限, 系统选项
- f_init_sys_plan()
-
- //权限初始化
- uo_sys_funcpwr uo_sfpwr
- uo_sfpwr.init_ds_funcinfo( )
-
- //系统选项初始化 获取全局变量
- uo_sys_option uo_opt
- uo_opt = Create uo_sys_option
- uo_opt.uof_init_sys_option()
- uo_opt.uof_sys_option()
- Destroy uo_opt
-
- //系统窗口,系统菜单, 对应权限
- uo_sys_main uo_main
- uo_main.uof_init()
-
- // f_init_uccol()
- uo_sys_uccol uo_uccol
- uo_uccol.uf_init_uccol()
-
- Open(w_sys_wait)
- w_sys_wait.Hide()
-
- ///////////// //---附件数据库连接
- Long ll_ConnectionID
-
- sys_fileDB_sqlca = Create Transaction
- IF Trim(sys_DataBaseFJ) = '' THEN
- IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 1 THEN
- w_sys_wait.Show()
-
- w_sys_wait.wf_set_msg('正在连接附件数据库...')
- IF f_connect_db(ll_ConnectionID,sys_fileDB_sqlca,arg_msg) = 0 THEN
- arg_msg = '附件数据库连接失败,请检查设置.'+ arg_msg
- MessageBox("提示",arg_msg, Information!, OK! )
- //return
- END IF
- w_sys_wait.Hide()
- END IF
- ELSE
-
- w_sys_wait.Show()
-
- w_sys_wait.wf_set_msg('正在连接附件数据库...')
- IF f_connect_db_new(sys_ServerNameFJ,sys_DataBaseFJ,sys_LoginIDFJ,sys_LoginPwdFJ,sys_fileDB_sqlca,arg_msg) = 0 THEN
- arg_msg = '附件数据库连接失败,请检查设置.'+ arg_msg
- MessageBox("提示",arg_msg, Information!, OK! )
- //return
- END IF
- w_sys_wait.Hide()
- END IF
- ////////// //----
-
- sys_email_sqlca = Create Transaction
- IF Trim(sys_DataBaseMsg) = '' THEN
- IF f_get_outerconnection_email(ll_ConnectionID,arg_msg) = 1 THEN
- w_sys_wait.Show()
-
- w_sys_wait.wf_set_msg('正在连接邮件数据库...')
- IF f_connect_db(ll_ConnectionID,sys_email_sqlca,arg_msg) = 0 THEN
- arg_msg = '邮件数据库连接失败,请检查设置.'+ arg_msg
- MessageBox("提示",arg_msg, Information!, OK! )
- //return
- END IF
- w_sys_wait.Hide()
- END IF
- ELSE
- w_sys_wait.Show()
-
- w_sys_wait.wf_set_msg('正在连接邮件数据库...')
- IF f_connect_db_new(sys_ServerNameMsg,sys_DataBaseMsg,sys_LoginIDMsg,sys_LoginPwdMsg,sys_email_sqlca,arg_msg) = 0 THEN
- arg_msg = '邮件数据库连接失败,请检查设置.'+ arg_msg
- MessageBox("提示",arg_msg, Information!, OK! )
- //return
- END IF
- w_sys_wait.Hide()
-
- END IF
-
- IF sys_email_sqlca.DBHandle() <> 0 THEN
- uo_version_email uo_ver_email
- uo_ver_email = Create uo_version_email
- uo_ver_email.uof_createtable(True)
- END IF
-
-
- IF f_connectdb_id(arg_msg) = 0 THEN
- MessageBox('系统提示',arg_msg)
- RETURN rslt
- END IF
- END IF
- rslt = f_sys_dl(publ_userid,sys_psw)
- IF rslt <> 1 THEN //不成功, 退出系统
- HALT
- END IF
- f_set_sysmessage()
- f_set_accsetmessage()
- f_init_ds_subjecttree()
- sys_login = True
- Idle(sys_option_timeout) //设定注销时间
- if_idle = False
- IF IsValid(w_main_scware) THEN
- w_main_scware.wf_init()
- ELSE
- Open (w_main_scware)
- END IF
- f_update_login(1) //0-注销; 1-登录;2-更新
- //------日志
- f_setsysoplog('系统登录','系统登录,用户:'+publ_operator,arg_msg,True)
- //自定义提醒
- TRY
- IF f_oa_workremind() = 1 THEN
- Open(w_oa_workremind)
- END IF
- CATCH (runtimeerror e)
- messagebox('系统提示','自定义提醒初始化失败,'+e.text)
- END TRY
- IF sys_if_network = 0 THEN
- SetProfileString (sys_inifilename,'database', 'bookname', sys_bookname)
- SetProfileString (sys_inifilename,'database', 'Database', sys_DataBase)
- ELSEIF sys_if_network = 1 THEN
- Int I_DBSPID = 9
- s_msgframe s_msg
- s_msg.FrameHead = I_DBSPID
- s_msg.frame_str[1] = String(sys_db_spid)
- s_msg.frame_str[2] = String(sys_Status)
- IF sys_wsc.getstate() = 7 THEN
- sys_wsc.setsendmsg( s_msg, 2)
- sys_wsc.TriggerEvent('ue_send') //发送命令
- END IF
- END IF
- RETURN rslt
- end function
|