w_gz_wage_mx0_edit.srw 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221
  1. $PBExportHeader$w_gz_wage_mx0_edit.srw
  2. forward
  3. global type w_gz_wage_mx0_edit from w_publ_base
  4. end type
  5. type em_mth from editmask within w_gz_wage_mx0_edit
  6. end type
  7. type st_421 from statictext within w_gz_wage_mx0_edit
  8. end type
  9. type cb_retrieve from uo_imflatbutton within w_gz_wage_mx0_edit
  10. end type
  11. type cb_wage_edit from uo_imflatbutton within w_gz_wage_mx0_edit
  12. end type
  13. type cb_cancel from uo_imflatbutton within w_gz_wage_mx0_edit
  14. end type
  15. type ddlb_scid from uo_ddlb_scid within w_gz_wage_mx0_edit
  16. end type
  17. type cb_2 from uo_imflatbutton within w_gz_wage_mx0_edit
  18. end type
  19. type tv_1 from uo_tv_deptype within w_gz_wage_mx0_edit
  20. end type
  21. type dw_wage from u_dw_rbtnfilter within w_gz_wage_mx0_edit
  22. end type
  23. type ddlb_wageitem from dropdownlistbox within w_gz_wage_mx0_edit
  24. end type
  25. type rb_1 from radiobutton within w_gz_wage_mx0_edit
  26. end type
  27. type rb_2 from radiobutton within w_gz_wage_mx0_edit
  28. end type
  29. type cb_copybasepay from uo_imflatbutton within w_gz_wage_mx0_edit
  30. end type
  31. type cb_1 from uo_imflatbutton within w_gz_wage_mx0_edit
  32. end type
  33. type gb_1 from groupbox within w_gz_wage_mx0_edit
  34. end type
  35. type ln_bar from line within w_gz_wage_mx0_edit
  36. end type
  37. type ln_bar2 from line within w_gz_wage_mx0_edit
  38. end type
  39. type r_bar from rectangle within w_gz_wage_mx0_edit
  40. end type
  41. end forward
  42. global type w_gz_wage_mx0_edit from w_publ_base
  43. integer x = 59
  44. integer y = 32
  45. integer width = 3611
  46. integer height = 2380
  47. string title = "[每月直接录入]工资项目数据录入"
  48. boolean maxbox = true
  49. windowstate windowstate = maximized!
  50. em_mth em_mth
  51. st_421 st_421
  52. cb_retrieve cb_retrieve
  53. cb_wage_edit cb_wage_edit
  54. cb_cancel cb_cancel
  55. ddlb_scid ddlb_scid
  56. cb_2 cb_2
  57. tv_1 tv_1
  58. dw_wage dw_wage
  59. ddlb_wageitem ddlb_wageitem
  60. rb_1 rb_1
  61. rb_2 rb_2
  62. cb_copybasepay cb_copybasepay
  63. cb_1 cb_1
  64. gb_1 gb_1
  65. ln_bar ln_bar
  66. ln_bar2 ln_bar2
  67. r_bar r_bar
  68. end type
  69. global w_gz_wage_mx0_edit w_gz_wage_mx0_edit
  70. type variables
  71. Long cur_0_wageid
  72. String ls_handtype = ''
  73. Long cur_scid
  74. Long cur_scid_arr[]
  75. Long cur_wageid[]
  76. Int cur_temp_wagecount
  77. String cur_column_string[]
  78. Int cur_column_style = 0 //0 纵向列表 1 横向列表
  79. end variables
  80. forward prototypes
  81. public function integer wf_retreve ()
  82. public function integer wf_refresh_face ()
  83. public subroutine wf_find_tvchild (long arg_handl, long arg_deptid)
  84. public subroutine wf_find_tvnext (long arg_handl, long arg_deptid)
  85. public subroutine wf_setopen (long arg_deptid, long arg_scid)
  86. public function integer wf_save (ref string arg_msg, boolean ifcommit)
  87. public function integer wf_retrieve_wagemx ()
  88. public function long wf_getwageid (string arg_wagename)
  89. public function integer wf_columnstyle ()
  90. public function integer wf_copybasepay (ref string arg_msg)
  91. public function integer wf_retrieve_wagemx_1 ()
  92. end prototypes
  93. public function integer wf_retreve ();//wf_retreve
  94. Long ll_wagemth
  95. ll_wagemth = Long(em_mth.Text)
  96. IF cur_column_style = 0 THEN
  97. dw_wage.SetTransObject(sqlca)
  98. dw_wage.Retrieve(Long(em_mth.Text),wf_getwageid(ddlb_wageitem.Text),cur_scid_arr,ls_handtype)
  99. dw_wage.Object.u_gz_wagemx_wageamt_t.Text = ddlb_wageitem.Text
  100. ELSE
  101. dw_wage.setredraw(false)
  102. dw_wage.SetTransObject(sqlca)
  103. dw_wage.Retrieve(ll_wagemth,cur_scid_arr,ls_handtype)
  104. String ls_wageitem = ''
  105. Long ls_wageid
  106. Int ls_j = 1
  107. DO WHILE ls_j <= 20
  108. dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.visible=true")
  109. dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+".visible=true")
  110. ls_j++
  111. LOOP
  112. DECLARE wageitem_cur CURSOR FOR
  113. SELECT DISTINCT u_gz_wageitem.Wagename, u_gz_wageitem.wageid
  114. FROM u_gz_wagemx INNER JOIN
  115. u_gz_wageitem ON u_gz_wagemx.wageid = u_gz_wageitem.wageid
  116. WHERE (u_gz_wageitem.useflag = 1) AND (u_gz_wageitem.wagemode = 0) &
  117. AND (u_gz_wagemx.wagemth = :ll_wagemth)
  118. Order By u_gz_wageitem.wageid;
  119. OPEN wageitem_cur;
  120. ls_j = 1
  121. FETCH wageitem_cur INTO :ls_wageitem,:ls_wageid;
  122. DO WHILE sqlca.SQLCode = 0
  123. cur_wageid[ls_j] = ls_wageid
  124. cur_column_string[ls_j] = "u_gz_wage_wage"+String(ls_j)
  125. dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.Text='"+ls_wageitem+"'")
  126. FETCH wageitem_cur INTO :ls_wageitem,:ls_wageid;
  127. ls_j++
  128. LOOP
  129. CLOSE wageitem_cur;
  130. cur_temp_wagecount = ls_j - 1
  131. DO WHILE ls_j <= 20
  132. dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.visible=false")
  133. dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+".visible=false")
  134. ls_j++
  135. LOOP
  136. String arg_msg = ''
  137. IF wf_retrieve_wagemx() = 0 THEN
  138. MessageBox('提示',arg_msg, Information!, OK! )
  139. RETURN 0
  140. END IF
  141. dw_wage.setredraw(true)
  142. END IF
  143. RETURN 0
  144. end function
  145. public function integer wf_refresh_face ();//wf_refresh_face
  146. Int ls_i
  147. cb_func.Enabled = NOT dw_edit_mode
  148. ddlb_scid.Enabled = NOT dw_edit_mode
  149. rb_1.Enabled = NOT dw_edit_mode
  150. rb_2.Enabled = NOT dw_edit_mode
  151. ddlb_wageitem.Enabled = NOT dw_edit_mode
  152. cb_copybasepay.Enabled = dw_edit_mode
  153. IF dw_edit_mode THEN
  154. cb_cancel.Enabled = TRUE
  155. cb_wage_edit.Text = '保存'
  156. cb_wage_edit.normalpicname = 'Save.bmp'
  157. em_mth.Enabled = FALSE
  158. cb_retrieve.Enabled = FALSE
  159. IF cur_column_style = 0 THEN
  160. dw_wage.SetTabOrder(1,10)
  161. ELSE
  162. ls_i = 1
  163. DO WHILE ls_i <= 20
  164. dw_wage.SetTabOrder("u_gz_wage_wage"+String(ls_i),10*ls_i)
  165. ls_i++
  166. LOOP
  167. END IF
  168. ELSE
  169. cb_cancel.Enabled = FALSE
  170. cb_wage_edit.Text = '修改'
  171. cb_wage_edit.normalpicname = 'open.bmp'
  172. em_mth.Enabled = TRUE
  173. cb_retrieve.Enabled = TRUE
  174. IF dw_wage.RowCount() > 0 THEN
  175. IF dw_wage.Object.u_gz_wage_auditingflag[1] = 0 THEN
  176. cb_wage_edit.Enabled = TRUE
  177. ELSE
  178. cb_wage_edit.Enabled = FALSE
  179. END IF
  180. ELSE
  181. cb_wage_edit.Enabled = TRUE
  182. END IF
  183. IF cur_column_style = 0 THEN
  184. dw_wage.SetTabOrder(1,0)
  185. ELSE
  186. ls_i = 1
  187. DO WHILE ls_i <= 20
  188. dw_wage.SetTabOrder("u_gz_wage_wage"+String(ls_i),0)
  189. ls_i++
  190. LOOP
  191. END IF
  192. END IF
  193. cb_wage_edit.of_init_draw()
  194. cb_wage_edit.of_paint()
  195. cb_wage_edit.TriggerEvent('ue_textchange')
  196. RETURN 0
  197. end function
  198. public subroutine wf_find_tvchild (long arg_handl, long arg_deptid);Long ll_handl
  199. Long ll_deptid
  200. treeviewitem tvi
  201. ll_handl = arg_handl
  202. ll_handl = tv_1.FindItem(ChildTreeItem!,ll_handl)
  203. DO WHILE ll_handl > 0
  204. tv_1.GetItem(ll_handl,tvi)
  205. ll_deptid = tvi.Data
  206. IF ll_deptid = arg_deptid THEN
  207. tv_1.SelectItem (ll_handl)
  208. RETURN
  209. END IF
  210. wf_find_tvnext(ll_handl,arg_deptid)
  211. ll_handl = tv_1.FindItem(ChildTreeItem!,ll_handl)
  212. LOOP
  213. end subroutine
  214. public subroutine wf_find_tvnext (long arg_handl, long arg_deptid);Long ll_handl
  215. Long ll_deptid
  216. treeviewitem tvi
  217. ll_handl = arg_handl
  218. ll_handl = tv_1.FindItem(NextTreeItem!,ll_handl)
  219. DO WHILE ll_handl > 0
  220. tv_1.GetItem(ll_handl,tvi)
  221. ll_deptid = tvi.Data
  222. IF ll_deptid = arg_deptid THEN
  223. tv_1.SelectItem ( ll_handl )
  224. RETURN
  225. END IF
  226. wf_find_tvchild(ll_handl,arg_deptid)
  227. ll_handl = tv_1.FindItem(NextTreeItem!,ll_handl)
  228. LOOP
  229. end subroutine
  230. public subroutine wf_setopen (long arg_deptid, long arg_scid);//tv
  231. Long ll_handl
  232. ll_handl = tv_1.FindItem(RootTreeItem!,0)
  233. IF ll_handl > 0 THEN wf_find_tvchild(ll_handl,arg_deptid)
  234. //ddlb
  235. String ls_scname
  236. Int li_spacenum
  237. String ls_space
  238. String ls_name
  239. Long ll_finditem
  240. IF arg_scid = -1 THEN
  241. ls_name = '[全部]'
  242. ELSE
  243. SELECT scname
  244. INTO :ls_scname
  245. FROM u_scdef
  246. Where scid = :arg_scid;
  247. IF sqlca.SQLCode <> 0 OR IsNull(ls_scname) THEN ls_scname = ''
  248. li_spacenum = 50 - Len(Trim(ls_scname)) - 2 - Len(String(arg_scid))
  249. ls_space = Fill(' ',li_spacenum)
  250. ls_name = ls_scname+ls_space+'['+String(arg_scid)+']'
  251. END IF
  252. ll_finditem = ddlb_scid.FindItem(ls_name,0)
  253. IF ll_finditem > 0 THEN
  254. ddlb_scid.SelectItem ( ls_name, ll_finditem )
  255. END IF
  256. end subroutine
  257. public function integer wf_save (ref string arg_msg, boolean ifcommit);int ls_rowcount,ls_j,ls_k,rslt=1
  258. long ll_empid,ll_wagemth,ll_wageid
  259. decimal ld_temp_amt
  260. long ll_flag
  261. dw_wage.accepttext()
  262. ls_rowcount=dw_wage.rowcount()
  263. for ls_j=1 to ls_rowcount
  264. ll_flag=dw_wage.object.u_gz_wage_auditingflag[ls_j]
  265. if ll_flag=1 then
  266. rslt=0
  267. arg_msg='工资项已经审核,在第'+string(ls_j)+'行'
  268. goto ext
  269. end if
  270. ll_wagemth=dw_wage.object.u_gz_wage_wagemth[ls_j]
  271. ll_empid=dw_wage.object.u_gz_wage_empid[ls_j]
  272. for ls_k=1 to cur_temp_wagecount
  273. ll_wageid= cur_wageid[ls_k]
  274. choose case ls_k
  275. case 1
  276. ld_temp_amt=dw_wage.object.u_gz_wage_wage1[ls_j]
  277. case 2
  278. ld_temp_amt=dw_wage.object.u_gz_wage_wage2[ls_j]
  279. case 3
  280. ld_temp_amt=dw_wage.object.u_gz_wage_wage3[ls_j]
  281. case 4
  282. ld_temp_amt=dw_wage.object.u_gz_wage_wage4[ls_j]
  283. case 5
  284. ld_temp_amt=dw_wage.object.u_gz_wage_wage5[ls_j]
  285. case 6
  286. ld_temp_amt=dw_wage.object.u_gz_wage_wage6[ls_j]
  287. case 7
  288. ld_temp_amt=dw_wage.object.u_gz_wage_wage7[ls_j]
  289. case 8
  290. ld_temp_amt=dw_wage.object.u_gz_wage_wage8[ls_j]
  291. case 9
  292. ld_temp_amt=dw_wage.object.u_gz_wage_wage9[ls_j]
  293. case 10
  294. ld_temp_amt=dw_wage.object.u_gz_wage_wage10[ls_j]
  295. case 11
  296. ld_temp_amt=dw_wage.object.u_gz_wage_wage11[ls_j]
  297. case 12
  298. ld_temp_amt=dw_wage.object.u_gz_wage_wage12[ls_j]
  299. case 13
  300. ld_temp_amt=dw_wage.object.u_gz_wage_wage13[ls_j]
  301. case 14
  302. ld_temp_amt=dw_wage.object.u_gz_wage_wage14[ls_j]
  303. case 15
  304. ld_temp_amt=dw_wage.object.u_gz_wage_wage15[ls_j]
  305. case 16
  306. ld_temp_amt=dw_wage.object.u_gz_wage_wage16[ls_j]
  307. case 17
  308. ld_temp_amt=dw_wage.object.u_gz_wage_wage17[ls_j]
  309. case 18
  310. ld_temp_amt=dw_wage.object.u_gz_wage_wage18[ls_j]
  311. case 19
  312. ld_temp_amt=dw_wage.object.u_gz_wage_wage19[ls_j]
  313. case 20
  314. ld_temp_amt=dw_wage.object.u_gz_wage_wage20[ls_j]
  315. end choose
  316. update u_gz_wagemx
  317. set u_gz_wagemx.wageamt=:ld_temp_amt
  318. where u_gz_wagemx.empid=:ll_empid and u_gz_wagemx.wageid=:ll_wageid &
  319. and u_gz_wagemx.wagemth=:ll_wagemth;
  320. if sqlca.sqlcode<>0 then
  321. rslt=0
  322. arg_msg='更新工资失败,在第'+string(ls_j)+'行,第'+string(ls_k)+'列工资项目'
  323. goto ext
  324. end if
  325. next
  326. next
  327. dw_wage.accepttext()
  328. ext:
  329. if rslt=1 and ifcommit then
  330. commit;
  331. else
  332. rollback;
  333. end if
  334. return rslt
  335. end function
  336. public function integer wf_retrieve_wagemx ();Int ls_rowcount,ls_j,ls_k,rslt = 1
  337. Long ll_empid,ll_wagemth,ll_wageid
  338. Decimal ld_temp_amt
  339. ls_rowcount = dw_wage.RowCount()
  340. FOR ls_j = 1 TO ls_rowcount
  341. ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j]
  342. ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j]
  343. FOR ls_k = 1 TO cur_temp_wagecount
  344. ll_wageid = cur_wageid[ls_k]
  345. SELECT wageamt
  346. INTO :ld_temp_amt
  347. FROM u_gz_wagemx
  348. WHERE u_gz_wagemx.wageid = :ll_wageid AND &
  349. u_gz_wagemx.empid = :ll_empid AND &
  350. u_gz_wagemx.wagemth = :ll_wagemth ;
  351. IF sqlca.SQLCode <> 0 THEN
  352. ld_temp_amt = 0
  353. END IF
  354. CHOOSE CASE ls_k
  355. CASE 1
  356. dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt
  357. CASE 2
  358. dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt
  359. CASE 3
  360. dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt
  361. CASE 4
  362. dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt
  363. CASE 5
  364. dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt
  365. CASE 6
  366. dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt
  367. CASE 7
  368. dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt
  369. CASE 8
  370. dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt
  371. CASE 9
  372. dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt
  373. CASE 10
  374. dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt
  375. CASE 11
  376. dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt
  377. CASE 12
  378. dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt
  379. CASE 13
  380. dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt
  381. CASE 14
  382. dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt
  383. CASE 15
  384. dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt
  385. CASE 16
  386. dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt
  387. CASE 17
  388. dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt
  389. CASE 18
  390. dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt
  391. CASE 19
  392. dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt
  393. CASE 20
  394. dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt
  395. END CHOOSE
  396. NEXT
  397. NEXT
  398. dw_wage.AcceptText()
  399. RETURN rslt
  400. end function
  401. public function long wf_getwageid (string arg_wagename);//wf_getwageid(arg_wagename)
  402. string ls_name
  403. long ls_wageid=0
  404. ls_name=ddlb_wageitem.text
  405. SELECT u_gz_wageitem.wageid
  406. INTO :ls_wageid
  407. FROM u_gz_wageitem
  408. WHERE u_gz_wageitem.Wagename = :ls_name ;
  409. return ls_wageid
  410. end function
  411. public function integer wf_columnstyle ();
  412. if cur_column_style = 0 then
  413. ddlb_wageitem.enabled=true
  414. dw_wage.dataobject='dw_mthwage_mx0_edit'
  415. else
  416. ddlb_wageitem.enabled=false
  417. dw_wage.dataobject='dw_mthwage_mx0_edit_1'
  418. end if
  419. return 0
  420. end function
  421. public function integer wf_copybasepay (ref string arg_msg);Int ls_rowcount,ls_j,ls_k,rslt = 1
  422. Long ll_empid,ll_wagemth,ll_wageid
  423. Decimal ld_temp_amt
  424. ls_rowcount = dw_wage.RowCount()
  425. dw_wage.SetRedraw(FALSE)
  426. IF cur_column_style = 0 THEN
  427. IF ddlb_wageitem.Text <> "基本工资" THEN
  428. arg_msg = '工资项目名称不是"基本工资",不能导入基本工资'
  429. rslt = 0
  430. GOTO ext
  431. END IF
  432. // ll_wageid = wf_getwageid(ddlb_wageitem.Text)
  433. FOR ls_j = 1 TO ls_rowcount
  434. // ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] -1
  435. ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j]
  436. SELECT BasePay
  437. INTO :ld_temp_amt
  438. FROM U_BasePay
  439. Where U_BasePay.EmpId = :ll_empid ;
  440. IF sqlca.SQLCode <> 0 THEN
  441. ld_temp_amt = 0
  442. END IF
  443. dw_wage.Object.u_gz_wagemx_wageamt[ls_j] = ld_temp_amt
  444. NEXT
  445. ELSE
  446. FOR ls_j = 1 TO ls_rowcount
  447. ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] -1
  448. ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j]
  449. FOR ls_k = 1 TO cur_temp_wagecount
  450. ll_wageid = cur_wageid[ls_k]
  451. IF ll_wageid <> wf_getwageid("基本工资") THEN CONTINUE
  452. ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j]
  453. SELECT BasePay
  454. INTO :ld_temp_amt
  455. FROM U_BasePay
  456. Where U_BasePay.EmpId = :ll_empid ;
  457. IF sqlca.SQLCode <> 0 THEN
  458. ld_temp_amt = 0
  459. END IF
  460. CHOOSE CASE ls_k
  461. CASE 1
  462. dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt
  463. CASE 2
  464. dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt
  465. CASE 3
  466. dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt
  467. CASE 4
  468. dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt
  469. CASE 5
  470. dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt
  471. CASE 6
  472. dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt
  473. CASE 7
  474. dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt
  475. CASE 8
  476. dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt
  477. CASE 9
  478. dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt
  479. CASE 10
  480. dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt
  481. CASE 11
  482. dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt
  483. CASE 12
  484. dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt
  485. CASE 13
  486. dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt
  487. CASE 14
  488. dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt
  489. CASE 15
  490. dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt
  491. CASE 16
  492. dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt
  493. CASE 17
  494. dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt
  495. CASE 18
  496. dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt
  497. CASE 19
  498. dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt
  499. CASE 20
  500. dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt
  501. END CHOOSE
  502. NEXT
  503. NEXT
  504. END IF
  505. ext:
  506. dw_wage.AcceptText()
  507. dw_wage.SetRedraw(TRUE)
  508. RETURN rslt
  509. end function
  510. public function integer wf_retrieve_wagemx_1 ();Int ls_rowcount,ls_j,ls_k,rslt = 1
  511. Long ll_empid,ll_wagemth,ll_wagemth1,ll_wageid
  512. Decimal ld_temp_amt
  513. ls_rowcount = dw_wage.RowCount()
  514. FOR ls_j = 1 TO ls_rowcount
  515. ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j]
  516. ll_wagemth1 = f_mth(ll_wagemth)
  517. ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j]
  518. FOR ls_k = 1 TO cur_temp_wagecount
  519. ll_wageid = cur_wageid[ls_k]
  520. SELECT wageamt
  521. INTO :ld_temp_amt
  522. FROM u_gz_wagemx
  523. WHERE u_gz_wagemx.wageid = :ll_wageid AND &
  524. u_gz_wagemx.empid = :ll_empid AND &
  525. u_gz_wagemx.wagemth = :ll_wagemth1 ;
  526. IF sqlca.SQLCode <> 0 THEN
  527. ld_temp_amt = 0
  528. END IF
  529. CHOOSE CASE ls_k
  530. CASE 1
  531. dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt
  532. CASE 2
  533. dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt
  534. CASE 3
  535. dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt
  536. CASE 4
  537. dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt
  538. CASE 5
  539. dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt
  540. CASE 6
  541. dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt
  542. CASE 7
  543. dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt
  544. CASE 8
  545. dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt
  546. CASE 9
  547. dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt
  548. CASE 10
  549. dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt
  550. CASE 11
  551. dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt
  552. CASE 12
  553. dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt
  554. CASE 13
  555. dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt
  556. CASE 14
  557. dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt
  558. CASE 15
  559. dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt
  560. CASE 16
  561. dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt
  562. CASE 17
  563. dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt
  564. CASE 18
  565. dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt
  566. CASE 19
  567. dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt
  568. CASE 20
  569. dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt
  570. END CHOOSE
  571. NEXT
  572. NEXT
  573. dw_wage.AcceptText()
  574. RETURN rslt
  575. end function
  576. on w_gz_wage_mx0_edit.create
  577. int iCurrent
  578. call super::create
  579. this.em_mth=create em_mth
  580. this.st_421=create st_421
  581. this.cb_retrieve=create cb_retrieve
  582. this.cb_wage_edit=create cb_wage_edit
  583. this.cb_cancel=create cb_cancel
  584. this.ddlb_scid=create ddlb_scid
  585. this.cb_2=create cb_2
  586. this.tv_1=create tv_1
  587. this.dw_wage=create dw_wage
  588. this.ddlb_wageitem=create ddlb_wageitem
  589. this.rb_1=create rb_1
  590. this.rb_2=create rb_2
  591. this.cb_copybasepay=create cb_copybasepay
  592. this.cb_1=create cb_1
  593. this.gb_1=create gb_1
  594. this.ln_bar=create ln_bar
  595. this.ln_bar2=create ln_bar2
  596. this.r_bar=create r_bar
  597. iCurrent=UpperBound(this.Control)
  598. this.Control[iCurrent+1]=this.em_mth
  599. this.Control[iCurrent+2]=this.st_421
  600. this.Control[iCurrent+3]=this.cb_retrieve
  601. this.Control[iCurrent+4]=this.cb_wage_edit
  602. this.Control[iCurrent+5]=this.cb_cancel
  603. this.Control[iCurrent+6]=this.ddlb_scid
  604. this.Control[iCurrent+7]=this.cb_2
  605. this.Control[iCurrent+8]=this.tv_1
  606. this.Control[iCurrent+9]=this.dw_wage
  607. this.Control[iCurrent+10]=this.ddlb_wageitem
  608. this.Control[iCurrent+11]=this.rb_1
  609. this.Control[iCurrent+12]=this.rb_2
  610. this.Control[iCurrent+13]=this.cb_copybasepay
  611. this.Control[iCurrent+14]=this.cb_1
  612. this.Control[iCurrent+15]=this.gb_1
  613. this.Control[iCurrent+16]=this.ln_bar
  614. this.Control[iCurrent+17]=this.ln_bar2
  615. this.Control[iCurrent+18]=this.r_bar
  616. end on
  617. on w_gz_wage_mx0_edit.destroy
  618. call super::destroy
  619. destroy(this.em_mth)
  620. destroy(this.st_421)
  621. destroy(this.cb_retrieve)
  622. destroy(this.cb_wage_edit)
  623. destroy(this.cb_cancel)
  624. destroy(this.ddlb_scid)
  625. destroy(this.cb_2)
  626. destroy(this.tv_1)
  627. destroy(this.dw_wage)
  628. destroy(this.ddlb_wageitem)
  629. destroy(this.rb_1)
  630. destroy(this.rb_2)
  631. destroy(this.cb_copybasepay)
  632. destroy(this.cb_1)
  633. destroy(this.gb_1)
  634. destroy(this.ln_bar)
  635. destroy(this.ln_bar2)
  636. destroy(this.r_bar)
  637. end on
  638. event open;call super::open;dw_wage.SetTransObject(sqlca)
  639. s_wageeditw_open s_wageedit_tran
  640. s_wageedit_tran = Message.PowerObjectParm
  641. cur_0_wageid = s_wageedit_tran.wageid
  642. ddlb_wageitem.text=s_wageedit_tran.wagename
  643. em_mth.Text = String(s_wageedit_tran.wagemth)
  644. ls_handtype = s_wageedit_tran.handtype
  645. cur_scid_arr = s_wageedit_tran.scid_arr
  646. cur_scid = s_wageedit_tran.scid
  647. wf_setopen(s_wageedit_tran.deptid,s_wageedit_tran.scid)
  648. wf_columnstyle()
  649. wf_retreve()
  650. wf_refresh_face()
  651. end event
  652. event ue_filter;call super::ue_filter;OPENWITHPARM(w_filter_query,dw_wage)
  653. STRING LS_EXPR
  654. LS_EXPR=Message.StringParm
  655. if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return
  656. dw_wage.setfilter(LS_EXPR)
  657. dw_wage.SetRedraw (false)
  658. dw_wage.filter()
  659. dw_wage.SetRedraw (TRUE)
  660. end event
  661. event ue_sort;call super::ue_sort;OPENwithparm(w_sortrow,dw_wage)
  662. STRING LS_EXPR
  663. LS_EXPR=Message.StringParm
  664. IF ISNULL(LS_EXPR) THEN LS_EXPR=' '
  665. if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return
  666. dw_wage.setsort(LS_EXPR)
  667. dw_wage.SetRedraw (false)
  668. dw_wage.sort()
  669. dw_wage.SetRedraw (true)
  670. end event
  671. event close;call super::close;Int ls_j
  672. FOR ls_j = 1 TO 20
  673. SetNull(cur_wageid[ls_j])
  674. SetNull(cur_column_string[ls_j])
  675. NEXT
  676. cur_temp_wagecount = 0
  677. end event
  678. event resize;call super::resize;ln_bar.endx = this.width
  679. ln_bar2.endx = this.width
  680. //ln_1.endx = this.width
  681. //ln_2.endx = this.width
  682. r_bar.width = this.width
  683. long w_width,w_height
  684. w_width = 3600
  685. w_height = 2300
  686. if newwidth < w_width then this.width = w_width
  687. if newheight < w_height then this.height = w_height
  688. tv_1.height=this.height - tv_1.y - 140
  689. dw_wage.width=this.width - dw_wage.x - 40
  690. dw_wage.height=this.height - dw_wage.y - 140
  691. end event
  692. type cb_func from w_publ_base`cb_func within w_gz_wage_mx0_edit
  693. boolean visible = false
  694. integer x = 2363
  695. integer y = 112
  696. integer width = 274
  697. boolean enabled = false
  698. end type
  699. type cb_exit from w_publ_base`cb_exit within w_gz_wage_mx0_edit
  700. integer x = 1687
  701. integer width = 165
  702. integer height = 172
  703. integer taborder = 100
  704. integer picsize = 16
  705. toolbaralignment pic_align = alignattop!
  706. boolean border = false
  707. end type
  708. type em_mth from editmask within w_gz_wage_mx0_edit
  709. integer x = 1582
  710. integer y = 212
  711. integer width = 320
  712. integer height = 84
  713. integer taborder = 30
  714. boolean bringtotop = true
  715. integer textsize = -10
  716. integer weight = 400
  717. fontcharset fontcharset = gb2312charset!
  718. fontpitch fontpitch = variable!
  719. string facename = "宋体"
  720. long textcolor = 33554432
  721. borderstyle borderstyle = stylelowered!
  722. maskdatatype maskdatatype = datemask!
  723. string mask = "yyyymm"
  724. boolean spin = true
  725. end type
  726. type st_421 from statictext within w_gz_wage_mx0_edit
  727. integer x = 1417
  728. integer y = 232
  729. integer width = 160
  730. integer height = 60
  731. boolean bringtotop = true
  732. integer textsize = -9
  733. integer weight = 400
  734. fontcharset fontcharset = gb2312charset!
  735. fontpitch fontpitch = variable!
  736. string facename = "宋体"
  737. long textcolor = 33554432
  738. long backcolor = 134217739
  739. boolean enabled = false
  740. string text = "月份:"
  741. alignment alignment = right!
  742. boolean focusrectangle = false
  743. end type
  744. type cb_retrieve from uo_imflatbutton within w_gz_wage_mx0_edit
  745. integer x = 261
  746. integer width = 329
  747. integer height = 172
  748. integer taborder = 90
  749. boolean bringtotop = true
  750. string text = "刷新工资表"
  751. string normalpicname = "refresh.bmp"
  752. integer picsize = 16
  753. toolbaralignment pic_align = alignattop!
  754. boolean border = false
  755. end type
  756. event clicked;call super::clicked;wf_retreve()
  757. end event
  758. type cb_wage_edit from uo_imflatbutton within w_gz_wage_mx0_edit
  759. integer x = 590
  760. integer width = 165
  761. integer height = 172
  762. integer taborder = 40
  763. boolean bringtotop = true
  764. string text = "修改"
  765. string normalpicname = "open.bmp"
  766. integer picsize = 16
  767. toolbaralignment pic_align = alignattop!
  768. boolean border = false
  769. end type
  770. event clicked;call super::clicked;string ls_msg=''
  771. if dw_edit_mode then
  772. dw_wage.setfilter('')
  773. dw_wage.filter()
  774. dw_wage.accepttext()
  775. if cur_column_style=0 then
  776. if dw_wage.update()=1 then
  777. commit;
  778. messagebox('提示','保存成功!', Information!, OK! )
  779. else
  780. rollback;
  781. messagebox('提示','保存失败!', Information!, OK! )
  782. end if
  783. else
  784. if wf_save(ls_msg,true)=1 then
  785. messagebox('提示','保存成功!', Information!, OK! )
  786. else
  787. messagebox('提示','保存失败!原因:'+ls_msg, Information!, OK! )
  788. end if
  789. end if
  790. end if
  791. dw_edit_mode=not dw_edit_mode
  792. wf_refresh_face()
  793. end event
  794. type cb_cancel from uo_imflatbutton within w_gz_wage_mx0_edit
  795. integer x = 754
  796. integer width = 165
  797. integer height = 172
  798. integer taborder = 60
  799. boolean bringtotop = true
  800. string text = "放弃"
  801. string normalpicname = "undo.bmp"
  802. integer picsize = 16
  803. toolbaralignment pic_align = alignattop!
  804. boolean border = false
  805. end type
  806. event clicked;call super::clicked;dw_edit_mode=false
  807. wf_retreve()
  808. wf_refresh_face()
  809. end event
  810. type ddlb_scid from uo_ddlb_scid within w_gz_wage_mx0_edit
  811. integer x = 1915
  812. integer y = 212
  813. integer width = 517
  814. integer height = 676
  815. integer taborder = 50
  816. boolean bringtotop = true
  817. end type
  818. event constructor;call super::constructor;cur_scid_arr = THIS.uo_scid_arr
  819. end event
  820. event selectionchanged;call super::selectionchanged;cur_scid_arr = THIS.uo_scid_arr
  821. cb_retrieve.TriggerEvent(Clicked!)
  822. end event
  823. type cb_2 from uo_imflatbutton within w_gz_wage_mx0_edit
  824. integer width = 261
  825. integer height = 172
  826. integer taborder = 70
  827. boolean bringtotop = true
  828. string text = "刷新部门"
  829. string normalpicname = "refresh.bmp"
  830. integer picsize = 16
  831. toolbaralignment pic_align = alignattop!
  832. boolean border = false
  833. end type
  834. type tv_1 from uo_tv_deptype within w_gz_wage_mx0_edit
  835. integer y = 320
  836. integer width = 814
  837. integer height = 1740
  838. integer taborder = 10
  839. boolean bringtotop = true
  840. integer textsize = -9
  841. fontcharset fontcharset = gb2312charset!
  842. fontfamily fontfamily = anyfont!
  843. string facename = "宋体"
  844. end type
  845. event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype
  846. ls_handtype = ls_handtype + '%'
  847. cb_retrieve.TriggerEvent(Clicked!)
  848. end event
  849. type dw_wage from u_dw_rbtnfilter within w_gz_wage_mx0_edit
  850. integer x = 818
  851. integer y = 320
  852. integer width = 2720
  853. integer height = 1740
  854. integer taborder = 20
  855. boolean bringtotop = true
  856. string dataobject = "dw_mthwage_mx0_edit"
  857. boolean hscrollbar = true
  858. boolean vscrollbar = true
  859. end type
  860. event constructor;call super::constructor; titleclick_sort_use=true //单击标题排序功能开关
  861. RBUTTON_FILTER_USE=true //右键查询功能开关
  862. end event
  863. event rowfocuschanged;call super::rowfocuschanged;IF currentrow >0 THEN
  864. this.selectrow(0,false)
  865. this.selectrow(currentrow,true)
  866. end if
  867. end event
  868. event dwnkey;call super::dwnkey;IF Key = KeyEnter! THEN //
  869. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  870. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  871. RETURN 1
  872. END IF
  873. end event
  874. type ddlb_wageitem from dropdownlistbox within w_gz_wage_mx0_edit
  875. integer x = 704
  876. integer y = 224
  877. integer width = 667
  878. integer height = 676
  879. integer taborder = 110
  880. boolean bringtotop = true
  881. integer textsize = -9
  882. integer weight = 400
  883. fontcharset fontcharset = gb2312charset!
  884. fontpitch fontpitch = variable!
  885. string facename = "宋体"
  886. long textcolor = 33554432
  887. long backcolor = 16777215
  888. borderstyle borderstyle = stylelowered!
  889. end type
  890. event constructor;
  891. string ls_wageitem=''
  892. long ls_wageid
  893. DECLARE wageitem_cur CURSOR FOR
  894. SELECT u_gz_wageitem.Wagename ,
  895. u_gz_wageitem.wageid
  896. FROM u_gz_wageitem
  897. WHERE ( u_gz_wageitem.useflag = 1 ) AND
  898. ( u_gz_wageitem.wagemode = 0 )
  899. order by u_gz_wageitem.Wagename;
  900. open wageitem_cur;
  901. fetch wageitem_cur into :ls_wageitem,:ls_wageid;
  902. do while sqlca.sqlcode=0
  903. ddlb_wageitem.ADDItem(ls_wageitem)
  904. fetch wageitem_cur into :ls_wageitem,:ls_wageid;
  905. loop
  906. close wageitem_cur;
  907. end event
  908. event selectionchanged;wf_retreve()
  909. end event
  910. type rb_1 from radiobutton within w_gz_wage_mx0_edit
  911. integer x = 46
  912. integer y = 232
  913. integer width = 320
  914. integer height = 60
  915. boolean bringtotop = true
  916. integer textsize = -9
  917. integer weight = 400
  918. fontcharset fontcharset = gb2312charset!
  919. fontpitch fontpitch = variable!
  920. string facename = "宋体"
  921. long textcolor = 33554432
  922. long backcolor = 134217739
  923. string text = "整体列表"
  924. end type
  925. event clicked;cur_column_style = 1
  926. wf_columnstyle()
  927. wf_retreve()
  928. end event
  929. type rb_2 from radiobutton within w_gz_wage_mx0_edit
  930. integer x = 366
  931. integer y = 236
  932. integer width = 320
  933. integer height = 60
  934. boolean bringtotop = true
  935. integer textsize = -9
  936. integer weight = 400
  937. fontcharset fontcharset = gb2312charset!
  938. fontpitch fontpitch = variable!
  939. string facename = "宋体"
  940. long textcolor = 33554432
  941. long backcolor = 134217739
  942. string text = "单一列表"
  943. boolean checked = true
  944. end type
  945. event clicked;cur_column_style=0
  946. wf_columnstyle()
  947. wf_retreve()
  948. end event
  949. type cb_copybasepay from uo_imflatbutton within w_gz_wage_mx0_edit
  950. integer x = 919
  951. integer width = 384
  952. integer height = 172
  953. integer taborder = 50
  954. boolean bringtotop = true
  955. boolean enabled = false
  956. string text = "导入基本工资"
  957. string normalpicname = "other.bmp"
  958. integer picsize = 16
  959. toolbaralignment pic_align = alignattop!
  960. boolean border = false
  961. end type
  962. event clicked;call super::clicked;IF MessageBox ("IF","是否确定要导入基本工资吗?一旦导入,你所做的所有修改将会丢失。",Question!,YesNo! ) = 2 THEN RETURN
  963. String arg_msg
  964. IF wf_copybasepay(arg_msg) = 0 THEN
  965. MessageBox('系统提示',arg_msg)
  966. RETURN
  967. END IF
  968. end event
  969. type cb_1 from uo_imflatbutton within w_gz_wage_mx0_edit
  970. integer x = 1303
  971. integer width = 384
  972. integer height = 172
  973. integer taborder = 60
  974. boolean bringtotop = true
  975. string text = "复制上月工资"
  976. string normalpicname = "other.bmp"
  977. integer picsize = 16
  978. toolbaralignment pic_align = alignattop!
  979. boolean border = false
  980. end type
  981. event clicked;call super::clicked;// u_gz_wagemx.wagemth,
  982. // u_gz_wagemx.empid,
  983. // u_gz_wagemx.wageid,
  984. //u_gz_wagemx_wageamt
  985. //em_mth
  986. Long i,ll_mth,ll_s_mth,ll_wageid,ll_empid
  987. Decimal de_wageamt
  988. string arg_msg
  989. IF cur_column_style = 0 THEN
  990. FOR i = 1 To dw_wage.RowCount()
  991. ll_mth = Long(dw_wage.Object.u_gz_wage_wagemth[i])
  992. ll_s_mth = f_mth(ll_mth)
  993. ll_wageid = Long(dw_wage.Object.u_gz_wagemx_wageid[i])
  994. ll_empid = Long(dw_wage.Object.u_gz_wagemx_empid[i])
  995. SELECT top 1 wageamt INTO :de_wageamt FROM u_gz_wagemx WHERE wagemth = :ll_s_mth AND
  996. wageid = :ll_wageid And empid = :ll_empid;
  997. IF IsNull(de_wageamt) THEN de_wageamt = 0
  998. dw_wage.Object.u_gz_wagemx_wageamt[i] = de_wageamt
  999. NEXT
  1000. ELSE
  1001. IF wf_retrieve_wagemx_1() = 0 THEN
  1002. MessageBox('提示',arg_msg, Information!, OK! )
  1003. RETURN 0
  1004. END IF
  1005. END IF
  1006. end event
  1007. type gb_1 from groupbox within w_gz_wage_mx0_edit
  1008. integer y = 188
  1009. integer width = 1408
  1010. integer height = 128
  1011. integer taborder = 30
  1012. integer textsize = -9
  1013. integer weight = 400
  1014. fontcharset fontcharset = gb2312charset!
  1015. fontpitch fontpitch = variable!
  1016. string facename = "宋体"
  1017. long textcolor = 33554432
  1018. long backcolor = 134217739
  1019. end type
  1020. type ln_bar from line within w_gz_wage_mx0_edit
  1021. long linecolor = 268435456
  1022. integer linethickness = 4
  1023. integer beginy = 176
  1024. integer endx = 3429
  1025. integer endy = 176
  1026. end type
  1027. type ln_bar2 from line within w_gz_wage_mx0_edit
  1028. long linecolor = 16777215
  1029. integer linethickness = 4
  1030. integer beginy = 180
  1031. integer endx = 3429
  1032. integer endy = 180
  1033. end type
  1034. type r_bar from rectangle within w_gz_wage_mx0_edit
  1035. long linecolor = 16777215
  1036. long fillcolor = 1073741824
  1037. integer x = 3200
  1038. integer width = 73
  1039. integer height = 172
  1040. end type
  1041. event constructor;this.fillcolor = 14215660
  1042. this.linecolor = 14215660
  1043. this.x = -1
  1044. this.y = -1
  1045. this.height = ln_bar2.beginy - 5
  1046. end event