f_sys_main.srf 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. $PBExportHeader$f_sys_main.srf
  2. global type f_sys_main from function_object
  3. end type
  4. forward prototypes
  5. global subroutine f_sys_main (long arg_mainid)
  6. end prototypes
  7. global subroutine f_sys_main (long arg_mainid);window lw_win
  8. Long ll_funcid
  9. Boolean if_power_ind = False
  10. Boolean if_power_sendout = False ,if_power_print = False
  11. Long ll_funcid_sendout,ll_funcid_print
  12. String ls_funcid_str
  13. string arg_msg
  14. s_edit_index_tran s_tran //翻页功能窗口 传递参数使用
  15. s_tran.if_retrieve_all = True //是否一次RETRIEVE所有行
  16. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  17. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  18. s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选
  19. s_tran.mainid = arg_mainid
  20. IF s_sys_win_open[arg_mainid].Name = 'w_credence_edit_popup' THEN
  21. s_tran.e_long = sys_curyearmon
  22. END IF
  23. //检查数组窗口是否存在
  24. IF s_sys_win_open[arg_mainid].Name = '' THEN
  25. MessageBox('提示','系统窗口不存在', Information!, OK! )
  26. RETURN
  27. END IF
  28. //检查权限
  29. IF Pos(s_sys_win_open[arg_mainid].funcid,',') > 0 THEN
  30. ls_funcid_str = s_sys_win_open[arg_mainid].funcid
  31. IF Left(ls_funcid_str, 1) <> ',' THEN ls_funcid_str = ','+ls_funcid_str
  32. IF right(ls_funcid_str, 1) <> ',' THEN ls_funcid_str = ls_funcid_str+','
  33. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  34. DO WHILE ls_funcid_str <> ''
  35. ll_funcid = Long(Left(ls_funcid_str,Pos(ls_funcid_str,',') - 1))
  36. IF f_power_ind(ll_funcid) THEN
  37. if_power_ind = True
  38. EXIT
  39. END IF
  40. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  41. LOOP
  42. IF Not if_power_ind THEN
  43. MessageBox('提示','窗口:'+s_sys_win_open[arg_mainid].Title+',你没有使用权限', Information!, OK! )
  44. RETURN
  45. END IF
  46. ELSE
  47. ll_funcid = Long(s_sys_win_open[arg_mainid].funcid)
  48. CHOOSE CASE ll_funcid
  49. CASE 0
  50. MessageBox('提示','系统窗口权限未定义,请与系统开发商联系', Information!, OK! )
  51. RETURN
  52. CASE -1
  53. CASE 8888
  54. IF Not sys_power_issuper THEN
  55. MessageBox('提示','窗口:'+s_sys_win_open[arg_mainid].Title+',你没有使用权限', Information!, OK! )
  56. RETURN
  57. END IF
  58. CASE ELSE
  59. IF Not f_power_ind(ll_funcid) THEN
  60. MessageBox('提示','窗口:'+s_sys_win_open[arg_mainid].Title+',你没有使用权限', Information!, OK! )
  61. RETURN
  62. END IF
  63. END CHOOSE
  64. END IF
  65. //检查报表发送数据权限
  66. IF Pos(s_sys_win_open[arg_mainid].funcid_sendout,',') > 0 THEN
  67. ls_funcid_str = s_sys_win_open[arg_mainid].funcid_sendout
  68. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  69. DO WHILE ls_funcid_str <> ''
  70. ll_funcid = Long(Left(ls_funcid_str,Pos(ls_funcid_str,',') - 1))
  71. IF f_power_ind(ll_funcid) THEN
  72. if_power_sendout = True
  73. END IF
  74. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  75. LOOP
  76. s_tran.if_sendout = if_power_sendout
  77. ELSE
  78. ll_funcid = Long(s_sys_win_open[arg_mainid].funcid_sendout)
  79. IF f_power_ind(ll_funcid) THEN
  80. if_power_sendout = True
  81. END IF
  82. s_tran.if_sendout = if_power_sendout
  83. END IF
  84. //检查报表打印权限
  85. IF Pos(s_sys_win_open[arg_mainid].funcid_print,',') > 0 THEN
  86. ls_funcid_str = s_sys_win_open[arg_mainid].funcid_print
  87. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  88. DO WHILE ls_funcid_str <> ''
  89. ll_funcid = Long(Left(ls_funcid_str,Pos(ls_funcid_str,',') - 1))
  90. IF f_power_ind(ll_funcid) THEN
  91. if_power_print = True
  92. END IF
  93. ls_funcid_str = Mid(ls_funcid_str,Pos(ls_funcid_str,',') + 1)
  94. LOOP
  95. s_tran.if_print = if_power_print
  96. ELSE
  97. ll_funcid = Long(s_sys_win_open[arg_mainid].funcid_print)
  98. IF f_power_ind(ll_funcid) THEN
  99. if_power_print = True
  100. END IF
  101. s_tran.if_print = if_power_print
  102. END IF
  103. //物料资料打开时置全部属性
  104. IF arg_mainid = 201 THEN
  105. s_tran.b_long = -1
  106. s_tran.c_long = -1
  107. //s_tran.f_long = -1
  108. END IF
  109. //
  110. CHOOSE CASE s_sys_win_open[arg_mainid].Name
  111. CASE 'w_rp_subid_mx'
  112. Open(w_rp_subid_mx)
  113. CASE 'w_rp_multibaracc'
  114. Open(w_rp_multibaracc)
  115. CASE 'w_rp_subid_hz'
  116. Open(w_rp_subid_hz)
  117. CASE 'f_cmp_deprediate_1'
  118. f_cmp_deprediate(1,sys_curyearmon,True)
  119. f_setsysoplog('计提折旧','计提折旧,用户:'+publ_operator+',帐套:'+s_sys_accset.accsetname,arg_msg,True)
  120. CASE 'f_cmp_deprediate_0'
  121. f_cmp_deprediate(0,sys_curyearmon,True)
  122. f_setsysoplog('反计提折旧','反计提折旧,用户:'+publ_operator+',帐套:'+s_sys_accset.accsetname,arg_msg,True)
  123. CASE 'f_start_asset_1'
  124. f_start_asset(1)
  125. f_setsysoplog('启用帐套','启用帐套,用户:'+publ_operator+',帐套:'+s_sys_accset.accsetname,arg_msg,True)
  126. CASE 'f_start_asset_0'
  127. f_start_asset(0)
  128. f_setsysoplog('反启用帐套','反启用帐套,用户:'+publ_operator+',帐套:'+s_sys_accset.accsetname,arg_msg,True)
  129. CASE ELSE
  130. IF IsValid(s_sys_win_open[arg_mainid].win) THEN
  131. s_sys_win_open[arg_mainid].win.WindowState = Normal!
  132. s_sys_win_open[arg_mainid].win.BringToTop = True
  133. ELSE
  134. IF s_sys_win_open[arg_mainid].ifarg THEN
  135. s_tran.if_retrieve_all = s_sys_win_open[arg_mainid].if_retrieve_all
  136. OpenWithParm(lw_win,s_tran,s_sys_win_open[arg_mainid].Name)
  137. ELSE
  138. Open(lw_win,s_sys_win_open[arg_mainid].Name)
  139. END IF
  140. if arg_mainid <> 1408 then
  141. s_sys_win_open[arg_mainid].win = lw_win
  142. s_sys_win_open[arg_mainid].mainid = arg_mainid
  143. s_sys_win_open[arg_mainid].Title = lw_win.Title
  144. s_sys_win_open[arg_mainid].Handle = Handle(lw_win)
  145. end if
  146. ins_win_itmx++
  147. ins_open_win[ins_win_itmx] = lw_win
  148. END IF
  149. END CHOOSE
  150. end subroutine