w_rs_emp_incheck.srw 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. $PBExportHeader$w_rs_emp_incheck.srw
  2. forward
  3. global type w_rs_emp_incheck from w_publ_base
  4. end type
  5. type dw_baseinfo from datawindow within w_rs_emp_incheck
  6. end type
  7. type st_1 from statictext within w_rs_emp_incheck
  8. end type
  9. type sle_idcarcode from singlelineedit within w_rs_emp_incheck
  10. end type
  11. type cb_query from uo_imflatbutton within w_rs_emp_incheck
  12. end type
  13. type cb_save from uo_imflatbutton within w_rs_emp_incheck
  14. end type
  15. type cb_cancel from uo_imflatbutton within w_rs_emp_incheck
  16. end type
  17. type st_2 from statictext within w_rs_emp_incheck
  18. end type
  19. type ln_bar from line within w_rs_emp_incheck
  20. end type
  21. type ln_bar2 from line within w_rs_emp_incheck
  22. end type
  23. type r_bar from rectangle within w_rs_emp_incheck
  24. end type
  25. end forward
  26. global type w_rs_emp_incheck from w_publ_base
  27. integer width = 2505
  28. integer height = 2340
  29. string title = "新员工入职"
  30. boolean minbox = false
  31. windowtype windowtype = response!
  32. event user_key ( )
  33. dw_baseinfo dw_baseinfo
  34. st_1 st_1
  35. sle_idcarcode sle_idcarcode
  36. cb_query cb_query
  37. cb_save cb_save
  38. cb_cancel cb_cancel
  39. st_2 st_2
  40. ln_bar ln_bar
  41. ln_bar2 ln_bar2
  42. r_bar r_bar
  43. end type
  44. global w_rs_emp_incheck w_rs_emp_incheck
  45. type variables
  46. Boolean newflag = FALSE
  47. s_edit_index_tran s_tran
  48. Long updatecount = 0
  49. s_empinfo_array s_emp_array
  50. uo_empinfo u_empinfo
  51. end variables
  52. forward prototypes
  53. public subroutine wf_emp_add (integer i)
  54. public subroutine wf_facechange ()
  55. public subroutine wf_faceprocess ()
  56. public subroutine wf_setmod (integer mode)
  57. public function integer wf_idcardcheck (string cardcode, ref string arg_msg)
  58. end prototypes
  59. public subroutine wf_emp_add (integer i); s_emp_array.empid[i]=dw_baseinfo.object.empid[dw_baseinfo.getrow()]
  60. s_emp_array.empcode[i]=dw_baseinfo.object.empcode[dw_baseinfo.getrow()]
  61. s_emp_array.empname[i]=dw_baseinfo.object.empname[dw_baseinfo.getrow()]
  62. s_emp_array.sex[i]=dw_baseinfo.object.sex[dw_baseinfo.getrow()]
  63. s_emp_array.birthday[i]=dw_baseinfo.object.birthday[dw_baseinfo.getrow()]
  64. s_emp_array.idcard[i]=dw_baseinfo.object.idcard[dw_baseinfo.getrow()]
  65. s_emp_array.homeplace[i]=dw_baseinfo.object.homeplace[dw_baseinfo.getrow()]
  66. s_emp_array.stature[i]=dw_baseinfo.object.stature[dw_baseinfo.getrow()]
  67. s_emp_array.diploma[i]=dw_baseinfo.object.diploma[dw_baseinfo.getrow()]
  68. s_emp_array.hometel[i]=dw_baseinfo.object.hometel[dw_baseinfo.getrow()]
  69. s_emp_array.postcode[i]=dw_baseinfo.object.postcode[dw_baseinfo.getrow()]
  70. s_emp_array.handtel[i]=dw_baseinfo.object.handtel[dw_baseinfo.getrow()]
  71. s_emp_array.address[i]=dw_baseinfo.object.address[dw_baseinfo.getrow()]
  72. s_emp_array.joindate[i]=dw_baseinfo.object.joindate[dw_baseinfo.getrow()]
  73. s_emp_array.duty[i]=dw_baseinfo.object.duty[dw_baseinfo.getrow()]
  74. s_emp_array.wrktpye[i]=dw_baseinfo.object.wrktpye[dw_baseinfo.getrow()]
  75. s_emp_array.deptid[i]=dw_baseinfo.object.deptid[dw_baseinfo.getrow()]
  76. s_emp_array.wrkgrpid[i]=dw_baseinfo.object.wrkgrpid[dw_baseinfo.getrow()]
  77. s_emp_array.officetel[i]=dw_baseinfo.object.officetel[dw_baseinfo.getrow()]
  78. s_emp_array.cardcode[i]=dw_baseinfo.object.cardcode[dw_baseinfo.getrow()]
  79. s_emp_array.bedcode[i]=dw_baseinfo.object.bedcode[dw_baseinfo.getrow()]
  80. s_emp_array.wage[i]=dw_baseinfo.object.wage[dw_baseinfo.getrow()]
  81. s_emp_array.bankcode[i]=dw_baseinfo.object.bankcode[dw_baseinfo.getrow()]
  82. s_emp_array.language[i]=dw_baseinfo.object.language[dw_baseinfo.getrow()]
  83. s_emp_array.introducer[i]=dw_baseinfo.object.introducer[dw_baseinfo.getrow()]
  84. s_emp_array.dscrp[i]=dw_baseinfo.object.dscrp[dw_baseinfo.getrow()]
  85. s_emp_array.opdate[i]=dw_baseinfo.object.opdate[dw_baseinfo.getrow()]
  86. s_emp_array.opemp[i]=dw_baseinfo.object.opemp[dw_baseinfo.getrow()]
  87. s_emp_array.status[i]=dw_baseinfo.object.status[dw_baseinfo.getrow()]
  88. end subroutine
  89. public subroutine wf_facechange ();cb_save.enabled= dw_edit_mode
  90. cb_cancel.enabled= dw_edit_mode
  91. sle_idcarcode.enabled= not dw_edit_mode
  92. cb_query.enabled= not dw_edit_mode
  93. cb_exit.enabled= not dw_edit_mode
  94. end subroutine
  95. public subroutine wf_faceprocess ();dw_baseinfo.reset()
  96. dw_baseinfo.insertrow(0)
  97. sle_idcarcode.text=''
  98. sle_idcarcode.setfocus()
  99. end subroutine
  100. public subroutine wf_setmod (integer mode);int baseinfo_ccount,i
  101. baseinfo_ccount=32
  102. dw_baseinfo.setredraw(false)
  103. for i=1 to baseinfo_ccount
  104. dw_baseinfo.settaborder(dw_baseinfo.Describe("#"+string(i)+ ".name"),i*10*mode)
  105. next
  106. dw_baseinfo.setredraw(true)
  107. end subroutine
  108. public function integer wf_idcardcheck (string cardcode, ref string arg_msg);Int codelen,rslt = 1
  109. String ls_year,idcardcode,ls_date
  110. IF Trim(sle_idcarcode.Text) = '' THEN
  111. rslt = 1
  112. GOTO ext
  113. END IF
  114. codelen = Len(cardcode)
  115. IF codelen <> 15 AND codelen <> 18 THEN
  116. rslt = 0
  117. arg_msg = '身份证号长度不正确!'
  118. GOTO ext
  119. END IF
  120. CHOOSE CASE codelen
  121. CASE 15
  122. ls_year = Mid(cardcode,7,2)
  123. IF Mid(ls_year,1,1) = '0' THEN
  124. ls_year = '20'+ls_year
  125. ELSE
  126. ls_year = '19'+ls_year
  127. END IF
  128. ls_date = ls_year+'/'+Mid(cardcode,9,2)+'/'+Mid(cardcode,11,2)
  129. IF NOT IsDate(ls_date) THEN
  130. arg_msg = '身分证号中出现非法出生年月。'
  131. rslt = 0
  132. GOTO ext
  133. END IF
  134. CASE 18
  135. ls_year = Mid(cardcode,7,4)
  136. ls_date = ls_year+'/'+Mid(cardcode,11,2)+'/'+Mid(cardcode,13,2)
  137. IF NOT IsDate(ls_date) THEN
  138. arg_msg = '身分证号中出现非法出生年月。'
  139. rslt = 0
  140. GOTO ext
  141. END IF
  142. END CHOOSE
  143. ext:
  144. RETURN(rslt)
  145. end function
  146. on w_rs_emp_incheck.create
  147. int iCurrent
  148. call super::create
  149. this.dw_baseinfo=create dw_baseinfo
  150. this.st_1=create st_1
  151. this.sle_idcarcode=create sle_idcarcode
  152. this.cb_query=create cb_query
  153. this.cb_save=create cb_save
  154. this.cb_cancel=create cb_cancel
  155. this.st_2=create st_2
  156. this.ln_bar=create ln_bar
  157. this.ln_bar2=create ln_bar2
  158. this.r_bar=create r_bar
  159. iCurrent=UpperBound(this.Control)
  160. this.Control[iCurrent+1]=this.dw_baseinfo
  161. this.Control[iCurrent+2]=this.st_1
  162. this.Control[iCurrent+3]=this.sle_idcarcode
  163. this.Control[iCurrent+4]=this.cb_query
  164. this.Control[iCurrent+5]=this.cb_save
  165. this.Control[iCurrent+6]=this.cb_cancel
  166. this.Control[iCurrent+7]=this.st_2
  167. this.Control[iCurrent+8]=this.ln_bar
  168. this.Control[iCurrent+9]=this.ln_bar2
  169. this.Control[iCurrent+10]=this.r_bar
  170. end on
  171. on w_rs_emp_incheck.destroy
  172. call super::destroy
  173. destroy(this.dw_baseinfo)
  174. destroy(this.st_1)
  175. destroy(this.sle_idcarcode)
  176. destroy(this.cb_query)
  177. destroy(this.cb_save)
  178. destroy(this.cb_cancel)
  179. destroy(this.st_2)
  180. destroy(this.ln_bar)
  181. destroy(this.ln_bar2)
  182. destroy(this.r_bar)
  183. end on
  184. event close;call super::close;DESTROY u_empinfo
  185. closewithreturn(this,s_emp_array)
  186. end event
  187. event key;call super::key;this.triggerevent('userkey')
  188. end event
  189. event open;call super::open;dw_baseinfo.settransobject(sqlca)
  190. datawindowchild childdw
  191. dw_baseinfo.SetTransObject (sqlca)
  192. dw_baseinfo.getchild("scid",childdw)
  193. childdw.SetTransObject (sqlca)
  194. childdw.retrieve(sys_user_scid)
  195. dw_baseinfo.insertrow(0)
  196. u_empinfo=create uo_empinfo
  197. wf_facechange()
  198. end event
  199. event resize;call super::resize;ln_bar.endx = this.width
  200. ln_bar2.endx = this.width
  201. r_bar.width = this.width
  202. end event
  203. type cb_func from w_publ_base`cb_func within w_rs_emp_incheck
  204. boolean visible = false
  205. integer x = 2181
  206. integer width = 315
  207. integer taborder = 50
  208. boolean enabled = false
  209. end type
  210. type cb_exit from w_publ_base`cb_exit within w_rs_emp_incheck
  211. integer x = 1742
  212. integer y = 4
  213. integer width = 151
  214. integer height = 172
  215. integer taborder = 20
  216. integer picsize = 16
  217. toolbaralignment pic_align = alignattop!
  218. boolean border = false
  219. end type
  220. type dw_baseinfo from datawindow within w_rs_emp_incheck
  221. event dwnkey pbm_dwnkey
  222. integer y = 184
  223. integer width = 2469
  224. integer height = 2064
  225. integer taborder = 70
  226. boolean bringtotop = true
  227. string title = "none"
  228. string dataobject = "dw_rs_empinfo_incheck"
  229. boolean livescroll = true
  230. borderstyle borderstyle = stylelowered!
  231. end type
  232. event dwnkey;parent.triggerevent('userkey')
  233. If key = KeyEnter! Then //
  234. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  235. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  236. Return 1
  237. End If
  238. end event
  239. type st_1 from statictext within w_rs_emp_incheck
  240. integer x = 27
  241. integer y = 64
  242. integer width = 480
  243. integer height = 48
  244. boolean bringtotop = true
  245. integer textsize = -9
  246. integer weight = 400
  247. fontcharset fontcharset = gb2312charset!
  248. fontpitch fontpitch = variable!
  249. string facename = "宋体"
  250. long textcolor = 33554432
  251. long backcolor = 134217739
  252. string text = "身份证或离职编号:"
  253. boolean focusrectangle = false
  254. end type
  255. event constructor;this.backcolor = 14215660
  256. end event
  257. type sle_idcarcode from singlelineedit within w_rs_emp_incheck
  258. event keydown pbm_keydown
  259. integer x = 475
  260. integer y = 40
  261. integer width = 681
  262. integer height = 96
  263. integer taborder = 10
  264. boolean bringtotop = true
  265. integer textsize = -9
  266. integer weight = 400
  267. fontcharset fontcharset = gb2312charset!
  268. fontpitch fontpitch = variable!
  269. string facename = "宋体"
  270. long textcolor = 33554432
  271. integer limit = 18
  272. borderstyle borderstyle = stylelowered!
  273. end type
  274. event keydown;If key = KeyEnter! Then cb_query.TriggerEvent(clicked!)
  275. end event
  276. type cb_query from uo_imflatbutton within w_rs_emp_incheck
  277. integer x = 1166
  278. integer y = 4
  279. integer width = 192
  280. integer height = 172
  281. integer taborder = 60
  282. boolean bringtotop = true
  283. string text = "查询&Q"
  284. string normalpicname = "find.bmp"
  285. integer picsize = 16
  286. toolbaralignment pic_align = alignattop!
  287. boolean border = false
  288. end type
  289. event clicked;call super::clicked;Int Findcount = 0,ls_newrow
  290. String errmsg
  291. String ls_idcarcode, ls_empcode
  292. s_idcard_change s_idcard
  293. //if wf_idcardcheck(trim(sle_idcarcode.text),errmsg)=0 then
  294. // Messagebox('提示',errmsg,information!,OK!)
  295. // return
  296. //end if
  297. ls_idcarcode = Trim(sle_idcarcode.Text)
  298. IF ls_idcarcode <> '' THEN
  299. Findcount = dw_baseinfo.Retrieve(ls_idcarcode)
  300. END IF
  301. //IF Trim(sle_idcarcode.Text) <> '' THEN Findcount = dw_baseinfo.Retrieve(Trim(sle_idcarcode.Text))
  302. dw_baseinfo.Object.sex.Protect = ('' <> Trim(sle_idcarcode.Text))
  303. dw_baseinfo.Object.birthday.Protect = ('' <> Trim(sle_idcarcode.Text))
  304. dw_baseinfo.Object.idcard.Protect = ('' <> Trim(sle_idcarcode.Text))
  305. IF Findcount = 0 THEN
  306. IF MessageBox("询问", '不存在该人员资料,是否添加?', Exclamation!, YESNO!, 1) = 1 THEN
  307. dw_baseinfo.SetRedraw(False)
  308. WF_setmod(1)
  309. newflag = True
  310. dw_baseinfo.Reset()
  311. ls_newrow = dw_baseinfo.InsertRow(0)
  312. dw_baseinfo.SetFocus()
  313. dw_baseinfo.SetColumn('scid')
  314. dw_baseinfo.Object.idcard[dw_baseinfo.GetRow()] = Trim(sle_idcarcode.Text)
  315. f_idcard(Trim(sle_idcarcode.Text),s_idcard)
  316. dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  317. dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  318. dw_baseinfo.Object.homeplace[dw_baseinfo.GetRow()] = s_idcard.homeplace
  319. // IF Len(Trim(sle_idcarcode.Text)) = 15 THEN
  320. // f_idcard_process(Trim(sle_idcarcode.Text),s_idcard,1)
  321. // dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  322. // dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  323. // END IF
  324. // IF Len(Trim(sle_idcarcode.Text)) = 18 THEN
  325. // f_idcard_process(Trim(sle_idcarcode.Text),s_idcard,0)
  326. // dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  327. // dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  328. // END IF
  329. dw_baseinfo.SetRedraw(True)
  330. dw_edit_mode = Not dw_edit_mode
  331. wf_facechange()
  332. END IF
  333. ELSE
  334. IF Findcount = 1 THEN
  335. IF dw_baseinfo.Object.status[dw_baseinfo.GetRow()] = 1 THEN
  336. MessageBox('提示','该人员的状态为在职,不须进行入职!',information!,OK!)
  337. RETURN
  338. END IF
  339. IF MessageBox("询问", '该人员已存在资料,是否进行恢职及资料修改?', Exclamation!, YESNO!, 2) = 1 THEN
  340. ls_empcode = dw_baseinfo.Object.empcode[dw_baseinfo.GetRow()]
  341. WF_setmod(1)
  342. IF ls_idcarcode = ls_empcode THEN
  343. ELSE
  344. f_idcard(ls_idcarcode,s_idcard)
  345. dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  346. dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  347. dw_baseinfo.Object.homeplace[dw_baseinfo.GetRow()] = s_idcard.homeplace
  348. // IF Len(Trim(sle_idcarcode.Text)) = 15 THEN
  349. // f_idcard_process(Trim(sle_idcarcode.Text),s_idcard,1)
  350. // dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  351. // dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  352. // END IF
  353. // IF Len(Trim(sle_idcarcode.Text)) = 18 THEN
  354. // f_idcard_process(Trim(sle_idcarcode.Text),s_idcard,0)
  355. // dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] = s_idcard.birthday
  356. // dw_baseinfo.Object.sex[dw_baseinfo.GetRow()] = s_idcard.sex
  357. // END IF
  358. END IF
  359. dw_baseinfo.SetFocus()
  360. dw_baseinfo.SetColumn('Empcode')
  361. newflag = False
  362. dw_edit_mode = Not dw_edit_mode
  363. wf_facechange()
  364. END IF
  365. ELSE
  366. MessageBox("提示", '找到'+String(Findcount)+'条相同的记录,请进行核对。',information!,OK!)
  367. END IF
  368. END IF
  369. end event
  370. type cb_save from uo_imflatbutton within w_rs_emp_incheck
  371. integer x = 1358
  372. integer y = 4
  373. integer width = 192
  374. integer height = 172
  375. integer taborder = 30
  376. boolean bringtotop = true
  377. boolean enabled = false
  378. string text = "入职&S"
  379. string normalpicname = "save.bmp"
  380. integer picsize = 16
  381. toolbaralignment pic_align = alignattop!
  382. boolean border = false
  383. end type
  384. event clicked;call super::clicked;Long ls_newid,rslt = 1,cnt = 0,ls_empid
  385. String errmsg,ls_empcode
  386. dw_baseinfo.AcceptText()
  387. ls_empcode = dw_baseinfo.Object.empcode[dw_baseinfo.GetRow()]
  388. IF Trim(ls_empcode) = '' OR IsNull(ls_empcode) THEN
  389. MessageBox('提示','不能进行入职,请输入人员编号',information!,OK!)
  390. RETURN
  391. END IF
  392. SELECT count(*) INTO :cnt FROM u_rs_empinfo Where empcode = :ls_empcode;
  393. IF sqlca.SQLCode <> 0 AND sqlca.SQLCode <> 100 THEN
  394. MessageBox('错误','查询人员编号出错,原因:'+sqlca.SQLErrText,stopsign!,OK!)
  395. RETURN
  396. END IF
  397. IF cnt > 0 THEN
  398. MessageBox('提示','该人员编号已存在,请输入其他编号。',information!,OK!)
  399. dw_baseinfo.SetFocus()
  400. dw_baseinfo.SetColumn('Empcode')
  401. RETURN
  402. END IF
  403. IF Trim(dw_baseinfo.Object.empname[dw_baseinfo.GetRow()]) = '' OR IsNull(dw_baseinfo.Object.empname[dw_baseinfo.GetRow()]) THEN
  404. MessageBox('提示','不能进行入职,请输入人员姓名',information!,OK!)
  405. RETURN
  406. END IF
  407. IF Trim(dw_baseinfo.Object.sex[dw_baseinfo.GetRow()]) = '' OR IsNull(dw_baseinfo.Object.sex[dw_baseinfo.GetRow()]) THEN
  408. MessageBox('提示','不能进行入职,请输入性别',information!,OK!)
  409. RETURN
  410. END IF
  411. IF dw_baseinfo.Object.deptid[dw_baseinfo.GetRow()] = 0 OR IsNull(dw_baseinfo.Object.deptid[dw_baseinfo.GetRow()]) THEN
  412. MessageBox('提示','不能进行入职,请选择部门',information!,OK!)
  413. RETURN
  414. END IF
  415. //if sys_option_idcardcheck=1 then
  416. CHOOSE CASE Len(String(dw_baseinfo.Object.idcard[dw_baseinfo.GetRow()]))
  417. CASE 0
  418. //通过
  419. CASE 15
  420. IF dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] <> f_idcard_to_date(Trim(dw_baseinfo.Object.idcard[dw_baseinfo.GetRow()]),1) THEN
  421. MessageBox('提示','身份证号的出生日期与出生日期不对应,请核对。',information!,OK!)
  422. RETURN
  423. END IF
  424. CASE 18
  425. IF dw_baseinfo.Object.birthday[dw_baseinfo.GetRow()] <> f_idcard_to_date(Trim(dw_baseinfo.Object.idcard[dw_baseinfo.GetRow()]),2) THEN
  426. MessageBox('提示','身份证号的出生日期与出生日期不对应,请核对。',information!,OK!)
  427. RETURN
  428. END IF
  429. CASE ELSE
  430. MessageBox('提示','身份证长度不合法。',information!,OK!)
  431. RETURN
  432. END CHOOSE
  433. //if trim(dw_baseinfo.object.idcard[dw_baseinfo.getrow()])='' or isnull(dw_baseinfo.object.idcard[dw_baseinfo.getrow()]) then
  434. // Messagebox('系统提示','不能进行入职,请输入身份证号码')
  435. // return
  436. //end if
  437. //end if
  438. //yyx0129
  439. //if trim(dw_baseinfo.object.duty[dw_baseinfo.getrow()])='' then
  440. // Messagebox('系统提示','请选择人员职务')
  441. // return
  442. //end if
  443. /////
  444. IF newflag THEN
  445. ls_newid = f_sys_scidentity(0,"u_rs_empinfo","empid",errmsg,FALSE,sqlca)
  446. IF ls_newid <= 0 THEN
  447. MessageBox("错误",errmsg,stopsign!,OK!)
  448. RETURN
  449. ELSE
  450. dw_baseinfo.Object.empid[dw_baseinfo.GetRow()] = ls_newid
  451. ls_empid = ls_newid
  452. END IF
  453. ELSE
  454. ls_empid = dw_baseinfo.Object.empid[dw_baseinfo.GetRow()]
  455. END IF
  456. dw_baseinfo.Object.status[dw_baseinfo.GetRow()] = 1
  457. dw_baseinfo.AcceptText()
  458. Long ll_departmentid
  459. String ls_deptype,lls_handtype
  460. if dw_baseinfo.getrow()>0 then
  461. ll_departmentid = dw_baseinfo.Object.deptid[dw_baseinfo.GetRow()]
  462. end if
  463. IF ll_departmentid > 0 THEN
  464. SELECT departmentname,handtype
  465. INTO :ls_deptype,:lls_handtype
  466. FROM cw_department
  467. Where departmentid = :ll_departmentid;
  468. IF sqlca.SQLCode <> 0 THEN
  469. ls_deptype = ''
  470. lls_handtype = ''
  471. END IF
  472. END IF
  473. dw_baseinfo.Object.deptype[dw_baseinfo.GetRow()] = ls_deptype
  474. dw_baseinfo.Object.handtype[dw_baseinfo.GetRow()] = lls_handtype
  475. IF dw_baseinfo.Update(TRUE,FALSE) = -1 THEN
  476. errmsg = sqlca.SQLErrText
  477. rslt = 0
  478. ROLLBACK;
  479. MessageBox('错误','更新人员基本资料出错!'+errmsg,stopsign!,OK!)
  480. RETURN
  481. END IF
  482. Long ls_mvoeid
  483. String arg_job
  484. arg_job = dw_baseinfo.Object.duty[dw_baseinfo.GetRow()]
  485. ls_mvoeid = f_sys_scidentity(0,"u_rs_moverecord","moveid",errmsg,FALSE,sqlca)
  486. IF ls_mvoeid < 0 THEN
  487. MessageBox("错误",errmsg,stopsign!,OK!)
  488. rslt = 0
  489. ROLLBACK;
  490. RETURN
  491. ELSE
  492. INSERT INTO u_rs_moverecord
  493. (moveid,
  494. empid,
  495. Movedate,
  496. Movetype,
  497. cause,
  498. Sjob,
  499. Djob,
  500. sdept,
  501. Ddept,
  502. Filecode,
  503. opdate,
  504. Opemp)
  505. VALUES (:ls_mvoeid,
  506. :ls_empid,
  507. getdate(),
  508. 0,
  509. '',
  510. :arg_job,
  511. :arg_job,
  512. :ls_deptype,
  513. :ll_departmentid,
  514. '',
  515. getdate(),
  516. :publ_operator);
  517. IF sqlca.SQLCode <> 0 THEN
  518. rslt = 0
  519. MessageBox('错误','插入调动资料失败'+sqlca.SQLErrText,stopsign!,OK!)
  520. ROLLBACK;
  521. RETURN
  522. END IF
  523. END IF
  524. IF rslt = 1 THEN
  525. COMMIT;
  526. MessageBox('提示','入职成功。',information!,OK!)
  527. dw_baseinfo.ResetUpdate()
  528. UPDATECOUNT++
  529. wf_emp_add(UPDATECOUNT)
  530. END IF
  531. dw_edit_mode = NOT dw_edit_mode
  532. wf_facechange()
  533. wf_setmod(0)
  534. ////入职登记及其他信息
  535. //if cbx_otherinfo.checked then
  536. // s_tran.if_retrieve_all=true //是否一次RETRIEVE所有行
  537. // s_tran.work_mode=0 //0-单纯编辑模式, 1-选择模式
  538. // s_tran.arg_pkid=0 //目标定位PKID (备用)
  539. // s_tran.arg_string_code='' //查询列部分内容,用于初步筛选
  540. // s_tran.if_select_all=false
  541. // s_tran.if_select_any=false
  542. // s_tran.b_long=1 //入职登记及其他信息
  543. // s_tran.b_string=trim(sle_idcarcode.text)
  544. // if IsValid(w_rs_empinfo) then
  545. // wf_faceprocess()
  546. // cb_exit.TriggerEvent(clicked!)
  547. //// else
  548. //// Openwithparm(w_rs_empinfo,s_tran)
  549. // end if
  550. //else
  551. wf_faceprocess()
  552. //end if
  553. end event
  554. type cb_cancel from uo_imflatbutton within w_rs_emp_incheck
  555. integer x = 1550
  556. integer y = 4
  557. integer width = 192
  558. integer height = 172
  559. integer taborder = 40
  560. boolean bringtotop = true
  561. boolean enabled = false
  562. string text = "放弃&E"
  563. string normalpicname = "undo.bmp"
  564. integer picsize = 16
  565. toolbaralignment pic_align = alignattop!
  566. boolean border = false
  567. end type
  568. event clicked;call super::clicked;dw_edit_mode= not dw_edit_mode
  569. wf_facechange()
  570. wf_setmod(0)
  571. wf_faceprocess()
  572. end event
  573. type st_2 from statictext within w_rs_emp_incheck
  574. integer x = 2066
  575. integer y = 36
  576. integer width = 398
  577. integer height = 100
  578. boolean bringtotop = true
  579. integer textsize = -9
  580. integer weight = 400
  581. fontcharset fontcharset = gb2312charset!
  582. fontpitch fontpitch = variable!
  583. string facename = "宋体"
  584. long textcolor = 255
  585. long backcolor = 67108864
  586. string text = "提示:不输入身份证的直接回车"
  587. boolean focusrectangle = false
  588. end type
  589. event constructor;this.backcolor = 14215660
  590. end event
  591. type ln_bar from line within w_rs_emp_incheck
  592. long linecolor = 268435456
  593. integer linethickness = 4
  594. integer beginy = 176
  595. integer endx = 2478
  596. integer endy = 176
  597. end type
  598. type ln_bar2 from line within w_rs_emp_incheck
  599. long linecolor = 16777215
  600. integer linethickness = 4
  601. integer beginy = 180
  602. integer endx = 2478
  603. integer endy = 180
  604. end type
  605. type r_bar from rectangle within w_rs_emp_incheck
  606. long linecolor = 16777215
  607. long fillcolor = 1073741824
  608. integer x = 2048
  609. integer width = 73
  610. integer height = 172
  611. end type
  612. event constructor;this.fillcolor = 14215660
  613. this.linecolor = 14215660
  614. this.x = -1
  615. this.y = -1
  616. this.height = ln_bar2.beginy - 5
  617. end event