f_sys_dl.srf 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. $PBExportHeader$f_sys_dl.srf
  2. global type f_sys_dl from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_sys_dl (string arg_userid, string arg_usepsw)
  6. end prototypes
  7. global function integer f_sys_dl (string arg_userid, string arg_usepsw);Long ls_empid = 0
  8. String ls_userid
  9. String ls_find_pass
  10. String ls_find_user
  11. String ls_powerstring
  12. String ls_storagestr
  13. String ls_scstr
  14. String ls_areastr
  15. String ls_shortcutstr
  16. String ls_cardno
  17. String arg_msg = ""
  18. String ls_classeditstr,ls_classviewstr
  19. String ls_xls_printstr,ls_xls_sendstr
  20. String ls_spttypestr
  21. String ls_pluginsstr
  22. String ls_reportstr
  23. String ls_accountstr
  24. String ls_outrepstr
  25. Int li_ifnotin
  26. ls_userid = Trim(arg_userid)
  27. f_set_right()
  28. int li_dlflag
  29. //////////////////////// //
  30. SELECT u_user.empid,
  31. u_user.username,
  32. u_user.storagestr,
  33. u_user.rightstring,
  34. u_user.psw,
  35. u_user.scstr,
  36. u_user.shortcutstr,
  37. u_user.areastr,
  38. u_user.cardno,
  39. u_user.classeditstr,
  40. u_user.classviewstr,
  41. u_user.xls_printstr,
  42. u_user.xls_sendstr,
  43. u_user.spttypestr,
  44. u_user.pluginsstr,
  45. u_user.reportstr,
  46. u_user.ifnotin ,
  47. u_user.accountstr,
  48. u_user.outrepstr,
  49. u_user.dlflag
  50. INTO :ls_empid,
  51. :ls_find_user,
  52. :ls_storagestr,
  53. :ls_powerstring,
  54. :ls_find_pass,
  55. :ls_scstr,
  56. :ls_shortcutstr,
  57. :ls_areastr,
  58. :ls_cardno,
  59. :ls_classeditstr,
  60. :ls_classviewstr,
  61. :ls_xls_printstr,
  62. :ls_xls_sendstr,
  63. :ls_spttypestr,
  64. :ls_pluginsstr,
  65. :ls_reportstr,
  66. :li_ifnotin,
  67. :ls_accountstr,
  68. :ls_outrepstr,
  69. :li_dlflag
  70. FROM u_user
  71. WHERE u_user.scid = :sys_scid
  72. And u_user.UserID = :arg_userid;
  73. IF sqlca.SQLCode <> 0 THEN
  74. IF sqlca.SQLCode = 100 THEN
  75. MessageBox('提示','没有此用户名,请重新输入!', Information!, OK! )
  76. RETURN 0
  77. ELSE
  78. MessageBox('提示','查询操作失败!', Information!, OK! )
  79. RETURN 0
  80. END IF
  81. END IF
  82. //SELECT dlflag
  83. // INTO :dlflag
  84. // FROM u_user
  85. // WHERE u_user.scid = :sys_scid
  86. // And u_user.UserID = :arg_userid;
  87. //IF sqlca.SQLCode <> 0 THEN dlflag = 0
  88. IF li_ifnotin = 1 THEN
  89. MessageBox('提示','该用户已被禁止登陆,请与管理员联系', Information!, OK! )
  90. RETURN 0
  91. END IF
  92. IF if_switchdb THEN
  93. IF Trim(arg_usepsw) = sys_switchpsw And Trim(sys_switchpsw) <> '' THEN
  94. f_setdbswitch()
  95. MessageBox('提示1','等待2秒后,主程序将自动重新运行!', Information!, OK! )
  96. // Run('atudexe9.exe -autoupdateexe')
  97. f_switch()
  98. RETURN 0
  99. END IF
  100. END IF
  101. //messagebox('',sys_superpsw)
  102. IF Trim(arg_usepsw) = sys_superpsw &
  103. Or (Trim(f_psw_bczh(ls_find_pass,1,sys_power_key)) = Trim(arg_usepsw) And li_dlflag <> 1 ) &
  104. Or li_dlflag = 1 THEN
  105. IF Trim(arg_usepsw) = sys_superpsw THEN //
  106. Open(w_super_id)
  107. String ls_userpsw = ''
  108. ls_userpsw = Message.StringParm
  109. IF sys_superpsw = ls_userpsw THEN
  110. Int ls_d
  111. ls_d = f_cleardata(False,arg_msg)
  112. IF ls_d <> 0 THEN
  113. MessageBox(String(ls_d),'清除数据操作完毕!'+arg_msg)
  114. END IF
  115. //------日志
  116. f_setsysoplog('数据删除','系统登录删除,用户:'+ls_find_user+',客户机:' + sys_computer_key,arg_msg,True)
  117. //------
  118. ELSE
  119. MessageBox("错误!", "用户口令不正确,请重新输入!", StopSign!, OK! )
  120. HALT
  121. END IF
  122. END IF
  123. //检查是否相同用户,如果不是则关闭前用户打开的窗口
  124. IF publ_operator <> '' THEN
  125. IF publ_operator <> ls_find_user THEN
  126. uo_sys_main uo_main
  127. uo_main.uof_closeall()
  128. END IF
  129. END IF
  130. sys_cardno = f_psw_bczh(ls_cardno,1,sys_power_key)
  131. publ_operator = ls_find_user
  132. sys_power_issuper = ( Lower(arg_userid) = sys_super_id )
  133. IF sys_power_issuper THEN
  134. sys_right = Fill('1',5000)
  135. ELSE
  136. sys_right = ls_powerstring
  137. END IF
  138. publ_userid = ls_userid
  139. sys_empid = ls_empid
  140. sys_user_storagestr = ls_storagestr
  141. sys_user_scstr = ls_scstr
  142. sys_shortcut = f_psw_zh(ls_shortcutstr,1,sys_power_key)
  143. sys_user_pluginsstr = ls_pluginsstr
  144. sys_user_reportstr = ls_reportstr
  145. sys_user_accountstr = ls_accountstr
  146. sys_user_outrepstr = ls_outrepstr
  147. IF sys_power_issuper THEN
  148. sys_user_class_edit_str = '0'
  149. sys_user_class_view_str = '0'
  150. sys_user_xls_print_str = '0'
  151. sys_user_xls_send_str = '0'
  152. sys_user_pluginsstr = '0'
  153. sys_user_reportstr = '0'
  154. sys_user_accountstr = '0'
  155. sys_user_outrepstr = '0'
  156. ELSE
  157. sys_user_class_edit_str = ls_classeditstr
  158. sys_user_class_view_str = ls_classviewstr
  159. sys_user_xls_print_str = ls_xls_printstr
  160. sys_user_xls_send_str = ls_xls_sendstr
  161. END IF
  162. IF sys_option_cusarea = 0 THEN ls_areastr = '0'
  163. IF sys_option_outrep = 0 THEN ls_outrepstr = '0'
  164. sys_areastr = ls_areastr
  165. f_area_array(ls_areastr)
  166. f_outrep_array(ls_outrepstr)
  167. f_sc_array(ls_scstr)
  168. f_storage_array(ls_storagestr)
  169. f_storage_array_all()
  170. sys_user_spttypestr = ls_spttypestr
  171. f_spttype_array(ls_spttypestr)
  172. f_plugins_array(sys_user_pluginsstr)
  173. f_reportlist_array(sys_user_reportstr)
  174. f_account_array(sys_user_accountstr)
  175. ELSE
  176. MessageBox("错误!", "用户口令不正确,请重新输入!", StopSign!, OK! )
  177. arg_usepsw = ''
  178. RETURN 0
  179. END IF
  180. RETURN 1
  181. end function