w_ljsmc_services.srw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  1. $PBExportHeader$w_ljsmc_services.srw
  2. forward
  3. global type w_ljsmc_services from window
  4. end type
  5. type cb_exit from commandbutton within w_ljsmc_services
  6. end type
  7. type cb_update from commandbutton within w_ljsmc_services
  8. end type
  9. type cb_reflash from commandbutton within w_ljsmc_services
  10. end type
  11. type cbx_1 from checkbox within w_ljsmc_services
  12. end type
  13. type dw_2 from u_dw_rbtnfilter within w_ljsmc_services
  14. end type
  15. type dw_1 from u_dw_rbtnfilter within w_ljsmc_services
  16. end type
  17. type ln_bar from line within w_ljsmc_services
  18. end type
  19. type ln_bar2 from line within w_ljsmc_services
  20. end type
  21. type r_bar from rectangle within w_ljsmc_services
  22. end type
  23. type ln_1 from line within w_ljsmc_services
  24. end type
  25. type ln_2 from line within w_ljsmc_services
  26. end type
  27. type ln_3 from line within w_ljsmc_services
  28. end type
  29. type ln_4 from line within w_ljsmc_services
  30. end type
  31. end forward
  32. global type w_ljsmc_services from window
  33. integer width = 2039
  34. integer height = 960
  35. boolean titlebar = true
  36. string title = "智能升级"
  37. boolean controlmenu = true
  38. boolean minbox = true
  39. boolean maxbox = true
  40. boolean resizable = true
  41. windowtype windowtype = popup!
  42. long backcolor = 67108864
  43. string icon = "AppIcon!"
  44. boolean center = true
  45. event ue_retrieve_child ( )
  46. cb_exit cb_exit
  47. cb_update cb_update
  48. cb_reflash cb_reflash
  49. cbx_1 cbx_1
  50. dw_2 dw_2
  51. dw_1 dw_1
  52. ln_bar ln_bar
  53. ln_bar2 ln_bar2
  54. r_bar r_bar
  55. ln_1 ln_1
  56. ln_2 ln_2
  57. ln_3 ln_3
  58. ln_4 ln_4
  59. end type
  60. global w_ljsmc_services w_ljsmc_services
  61. type prototypes
  62. function integer of_connect(string as_host,string as_user,string as_password) library "gyFTPdll.dll" alias for "of_connect;Ansi"
  63. function integer of_ChangeDir(string as_DirName) library "gyFTPdll.dll" alias for "of_ChangeDir;Ansi"
  64. function integer of_downLoadfile(string as_fileName,string as_localFile,boolean ab_resum) library "gyFTPdll.dll" alias for "of_downLoadfile;Ansi"
  65. function integer of_Upfile(string as_fileName,string as_localFile,boolean ab_resum) library "gyFTPdll.dll" alias for "of_Upfile;Ansi"
  66. function integer of_init() library "gyFTPdll.dll"
  67. function integer of_close() library "gyFTPdll.dll"
  68. end prototypes
  69. type variables
  70. uo_ljsmc ljsmc
  71. String is_servername,is_username,is_password
  72. boolean if_connect=false
  73. string app_parth_q
  74. s_update s_L1_zx,s_L1_wd,s_QJL_zx,s_QJL_wd //L1,企精灵 最新和稳定
  75. string udateversion="稳定版"
  76. end variables
  77. forward prototypes
  78. public subroutine wf_insert_clientupdate ()
  79. public subroutine wf_read_updatelog ()
  80. public function integer read_xml (string arg_filepath, ref string arg_msg)
  81. end prototypes
  82. event ue_retrieve_child();Long ll_row
  83. String arg_msg
  84. ll_row = dw_1.GetRow()
  85. IF ll_row > 0 THEN
  86. IF dw_1.Object.ServerName[ll_row] <> '' and dw_1.Object.ServerName[ll_row] <>'客户端更新' THEN
  87. IF ljsmc.uf_getinstancestatus(dw_1.Object.ServerName[ll_row], Ref dw_2, Ref arg_msg) <> 1 THEN
  88. MessageBox('ERROR', arg_msg)
  89. END IF
  90. ELSE
  91. dw_2.Reset()
  92. END IF
  93. ELSE
  94. dw_2.Reset()
  95. END IF
  96. end event
  97. public subroutine wf_insert_clientupdate ();//long ll_row
  98. //ll_row=dw_1.insertrow(0)
  99. //dw_1.object.servername[ll_row]="客户端更新"
  100. end subroutine
  101. public subroutine wf_read_updatelog ();String arg_msg
  102. String Filename,Filepath,Filepath1,version
  103. long ll_row
  104. ll_row=dw_1.insertrow(0)
  105. dw_1.object.servername[ll_row]="客户端更新"
  106. //ftp 服务 ,用户名,密码
  107. is_servername = f_psw_bczh(ProfileString (sys_inifilename, "update", "servername", ""),1,sys_power_key)
  108. is_username = f_psw_bczh(ProfileString (sys_inifilename, "update", "username", ""),1,sys_power_key)
  109. is_password = f_psw_bczh(ProfileString (sys_inifilename, "update", "password", ""),1,sys_power_key)
  110. IF is_servername = "" THEN
  111. is_servername = "ftp.longjoe.com"
  112. SetProfileString (sys_inifilename, "update", "servername", f_psw_bczh("ftp.longjoe.com",0,sys_power_key))
  113. END IF
  114. IF is_username = "" THEN
  115. is_username = "longjoewhzg010"
  116. SetProfileString (sys_inifilename, "update", "username", f_psw_bczh("longjoewhzg010",0,sys_power_key))
  117. END IF
  118. IF is_password = "" THEN
  119. is_password = "long010659"
  120. SetProfileString (sys_inifilename, "update", "password", f_psw_bczh("long010659",0,sys_power_key))
  121. END IF
  122. if_connect = True
  123. app_parth_q=sys_cur_path
  124. CreateDirectory ( app_parth_q + "\updatexetmp" )
  125. CreateDirectory ( app_parth_q + "\updatexetmp\autoupdate" )
  126. CreateDirectory ( app_parth_q + "\updatexetmp\autoupdate\temp" )
  127. Yield()
  128. of_init()
  129. IF of_connect(is_servername,is_username,is_password) < 0 THEN
  130. MessageBox("Error","连接远程服务器失败")
  131. HALT
  132. END IF
  133. Int li_Rc
  134. li_Rc = of_downLoadfile("qjl_updatelong.xml","updatexetmp/autoupdate/qjl_updatelong.xml",True)
  135. of_close()
  136. read_xml(app_parth_q+"updatexetmp\autoupdate\qjl_updatelong.xml",arg_msg)
  137. Filename = ""
  138. IF udateversion = "最新版" THEN
  139. Filename = s_QJL_zx.rar
  140. version = s_QJL_zx.version
  141. ELSE
  142. Filename = s_QJL_wd.rar
  143. version = s_QJL_wd.version
  144. END IF
  145. IF version = "" THEN
  146. MessageBox("Error","获取升级文件失败,请重新打开智能升级")
  147. HALT
  148. END IF
  149. Integer ls_stable
  150. String ls_update_version,ss_stable
  151. SELECT stable,update_version Into :ls_stable,:ls_update_version From sys_DB_version Using sqlca;
  152. IF ls_stable = 0 THEN
  153. ss_stable = "稳定版"
  154. ELSE
  155. ss_stable = "最新版"
  156. END IF
  157. dw_1.object.version[ll_row]=ls_update_version
  158. dw_1.object.newversion[ll_row]=version
  159. end subroutine
  160. public function integer read_xml (string arg_filepath, ref string arg_msg);Int rslt = 1
  161. IF Not FileExists(arg_filepath) THEN
  162. rslt = 0
  163. arg_msg = '文件' + arg_filepath + '不存在'
  164. GOTO ext
  165. END IF
  166. //功能:读取文本节点 到数组里
  167. //参数 as_xml 需要解析的xml ,as_xmlreturn[] 返回的数组
  168. String st,st1
  169. PBDOM_BUILDER pbdom_builder_new
  170. PBDOM_DOCUMENT pbdom_doc
  171. Int i,j
  172. pbdom_builder_new = Create PBDOM_BUILDER
  173. //解析xml,生成Document
  174. pbdom_doc = pbdom_builder_new.buildfromfile(arg_filepath)
  175. //PBDOM元素
  176. PBDOM_ELEMENT pbdom_elem,pbdom_elem_product
  177. pbdom_elem_product = Create PBDOM_ELEMENT
  178. pbdom_elem = Create PBDOM_ELEMENT
  179. pbdom_elem = pbdom_doc.GetRootElement()
  180. //messagebox("ii",pbdom_elem.getName()) //取得最外层节点名称
  181. //messagebox("i11i",pbdom_elem.hasChildElements())//element的所有子元素个数
  182. //得到跟节点下的所有row子节点
  183. PBDOM_ELEMENT pbdom_elems_product[]
  184. PBDOM_ELEMENT pbdom_elems_L1_Release[]
  185. PBDOM_ELEMENT pbdom_elems_QJL_Release[]
  186. PBDOM_ELEMENT pbdom_elems_L1_updatetime[]
  187. PBDOM_ELEMENT pbdom_elems_QJL_updatetime[]
  188. PBDOM_ELEMENT pbdom_elems_L1_dscrp[]
  189. PBDOM_ELEMENT pbdom_elems_QJL_dscrp[]
  190. PBDOM_ELEMENT pbdom_elems_L1_rar[]
  191. PBDOM_ELEMENT pbdom_elems_QJL_rar[]
  192. pbdom_elem.GetChildElements("Product",pbdom_elems_product[])
  193. FOR i = 1 To UpperBound(pbdom_elems_product)
  194. st = pbdom_elems_product[i].GetAttributeValue("Name")
  195. // MessageBox("",st)
  196. IF st = "L1-ERP" THEN
  197. pbdom_elems_product[i].GetChildElements("Release",pbdom_elems_L1_Release[])
  198. FOR j = 1 To UpperBound(pbdom_elems_L1_Release)
  199. st1 = pbdom_elems_L1_Release[j].GetAttributeValue("stable")
  200. IF st1 = "true" THEN //L1-ERP最新版
  201. s_L1_zx.Name = "L1-ERP最新版"
  202. s_L1_zx.version = pbdom_elems_L1_Release[j].GetAttributeValue("Version")
  203. pbdom_elems_L1_Release[j].GetChildElements("updatetime",pbdom_elems_L1_updatetime[])
  204. s_L1_zx.updatetime = pbdom_elems_L1_updatetime[1].GetText()
  205. pbdom_elems_L1_Release[j].GetChildElements("dscrp",pbdom_elems_L1_dscrp[])
  206. s_L1_zx.dscrp = pbdom_elems_L1_dscrp[1].GetText()
  207. pbdom_elems_L1_Release[j].GetChildElements("rar",pbdom_elems_L1_rar[])
  208. s_L1_zx.rar = pbdom_elems_L1_rar[1].GetText()
  209. END IF
  210. IF st1 = "false" THEN //L1-ERP稳定版
  211. s_L1_wd.Name = "L1-ERP稳定版"
  212. s_L1_wd.version = pbdom_elems_L1_Release[j].GetAttributeValue("Version")
  213. pbdom_elems_L1_Release[j].GetChildElements("updatetime",pbdom_elems_L1_updatetime[])
  214. s_L1_wd.updatetime = pbdom_elems_L1_updatetime[1].GetText()
  215. pbdom_elems_L1_Release[j].GetChildElements("dscrp",pbdom_elems_L1_dscrp[])
  216. s_L1_wd.dscrp = pbdom_elems_L1_dscrp[1].GetText()
  217. pbdom_elems_L1_Release[j].GetChildElements("rar",pbdom_elems_L1_rar[])
  218. s_L1_wd.rar = pbdom_elems_L1_rar[1].GetText()
  219. END IF
  220. NEXT
  221. END IF
  222. IF st = "企精灵" THEN
  223. pbdom_elems_product[i].GetChildElements("Release",pbdom_elems_QJL_Release[])
  224. FOR j = 1 To UpperBound(pbdom_elems_QJL_Release)
  225. st1 = pbdom_elems_QJL_Release[j].GetAttributeValue("stable")
  226. IF st1 = "true" THEN //企精灵最新版
  227. s_QJL_zx.Name = "企精灵最新版"
  228. s_QJL_zx.version = pbdom_elems_QJL_Release[j].GetAttributeValue("Version")
  229. pbdom_elems_QJL_Release[j].GetChildElements("updatetime",pbdom_elems_QJL_updatetime[])
  230. s_QJL_zx.updatetime = pbdom_elems_QJL_updatetime[1].GetText()
  231. pbdom_elems_QJL_Release[j].GetChildElements("dscrp",pbdom_elems_QJL_dscrp[])
  232. s_QJL_zx.dscrp = pbdom_elems_QJL_dscrp[1].GetText()
  233. pbdom_elems_QJL_Release[j].GetChildElements("rar",pbdom_elems_QJL_rar[])
  234. s_QJL_zx.rar = pbdom_elems_QJL_rar[1].GetText()
  235. END IF
  236. IF st1 = "false" THEN //企精灵稳定版
  237. s_QJL_wd.Name = "企精灵稳定版"
  238. s_QJL_wd.version = pbdom_elems_QJL_Release[j].GetAttributeValue("Version")
  239. pbdom_elems_QJL_Release[j].GetChildElements("updatetime",pbdom_elems_QJL_updatetime[])
  240. s_QJL_wd.updatetime = pbdom_elems_QJL_updatetime[1].GetText()
  241. pbdom_elems_QJL_Release[j].GetChildElements("dscrp",pbdom_elems_QJL_dscrp[])
  242. s_QJL_wd.dscrp = pbdom_elems_QJL_dscrp[1].GetText()
  243. pbdom_elems_QJL_Release[j].GetChildElements("rar",pbdom_elems_QJL_rar[])
  244. s_QJL_wd.rar = pbdom_elems_QJL_rar[1].GetText()
  245. END IF
  246. NEXT
  247. END IF
  248. NEXT
  249. //
  250. //MessageBox("1",s_L1_zx.Name )
  251. //MessageBox("2",s_L1_zx.version )
  252. //MessageBox("3",s_L1_zx.updatetime )
  253. //MessageBox("4",s_L1_zx.dscrp )
  254. //MessageBox("5",s_L1_zx.rar )
  255. //
  256. //
  257. //MessageBox("1",s_L1_wd.Name )
  258. //MessageBox("2",s_L1_wd.version )
  259. //MessageBox("3",s_L1_wd.updatetime )
  260. //MessageBox("4",s_L1_wd.dscrp )
  261. //MessageBox("5",s_L1_wd.rar )
  262. //
  263. //
  264. //MessageBox("1",s_QJL_zx.Name )
  265. //MessageBox("2",s_QJL_zx.version )
  266. //MessageBox("3",s_QJL_zx.updatetime )
  267. //MessageBox("4",s_QJL_zx.dscrp )
  268. //MessageBox("5",s_QJL_zx.rar )
  269. //
  270. //
  271. //MessageBox("1",s_QJL_wd.Name )
  272. //MessageBox("2",s_QJL_wd.version )
  273. //MessageBox("3",s_QJL_wd.updatetime )
  274. //MessageBox("4",s_QJL_wd.dscrp )
  275. //MessageBox("5",s_QJL_wd.rar )
  276. ext:
  277. RETURN rslt
  278. end function
  279. on w_ljsmc_services.create
  280. this.cb_exit=create cb_exit
  281. this.cb_update=create cb_update
  282. this.cb_reflash=create cb_reflash
  283. this.cbx_1=create cbx_1
  284. this.dw_2=create dw_2
  285. this.dw_1=create dw_1
  286. this.ln_bar=create ln_bar
  287. this.ln_bar2=create ln_bar2
  288. this.r_bar=create r_bar
  289. this.ln_1=create ln_1
  290. this.ln_2=create ln_2
  291. this.ln_3=create ln_3
  292. this.ln_4=create ln_4
  293. this.Control[]={this.cb_exit,&
  294. this.cb_update,&
  295. this.cb_reflash,&
  296. this.cbx_1,&
  297. this.dw_2,&
  298. this.dw_1,&
  299. this.ln_bar,&
  300. this.ln_bar2,&
  301. this.r_bar,&
  302. this.ln_1,&
  303. this.ln_2,&
  304. this.ln_3,&
  305. this.ln_4}
  306. end on
  307. on w_ljsmc_services.destroy
  308. destroy(this.cb_exit)
  309. destroy(this.cb_update)
  310. destroy(this.cb_reflash)
  311. destroy(this.cbx_1)
  312. destroy(this.dw_2)
  313. destroy(this.dw_1)
  314. destroy(this.ln_bar)
  315. destroy(this.ln_bar2)
  316. destroy(this.r_bar)
  317. destroy(this.ln_1)
  318. destroy(this.ln_2)
  319. destroy(this.ln_3)
  320. destroy(this.ln_4)
  321. end on
  322. event resize;ln_bar.EndX = This.Width
  323. ln_bar2.EndX = This.Width
  324. ln_1.EndX = This.Width
  325. ln_2.EndX = This.Width
  326. ln_3.EndX = This.Width
  327. ln_4.EndX = This.Width
  328. r_bar.Width = This.Width
  329. //dw_1.Width = This.WorkSpaceWidth() - dw_1.X - dw_2.Width
  330. //dw_1.Height = This.WorkSpaceHeight() - dw_1.Y
  331. //
  332. //dw_2.X = dw_1.X + dw_1.Width
  333. //dw_2.Height = dw_1.Height
  334. end event
  335. event open;ljsmc = create uo_ljsmc
  336. cb_reflash.TriggerEvent(clicked!)
  337. end event
  338. event close;destroy ljsmc
  339. end event
  340. type cb_exit from commandbutton within w_ljsmc_services
  341. integer x = 1207
  342. integer y = 728
  343. integer width = 402
  344. integer height = 104
  345. integer taborder = 50
  346. integer textsize = -9
  347. integer weight = 400
  348. fontcharset fontcharset = gb2312charset!
  349. fontpitch fontpitch = variable!
  350. string facename = "宋体"
  351. string text = "退出"
  352. end type
  353. event clicked;Close(PARENT)
  354. end event
  355. type cb_update from commandbutton within w_ljsmc_services
  356. integer x = 325
  357. integer y = 728
  358. integer width = 402
  359. integer height = 104
  360. integer taborder = 40
  361. integer textsize = -9
  362. integer weight = 400
  363. fontcharset fontcharset = gb2312charset!
  364. fontpitch fontpitch = variable!
  365. string facename = "宋体"
  366. string text = "更新"
  367. end type
  368. event clicked;Long ll_row,i
  369. ll_row = dw_1.GetRow()
  370. //IF ll_row <= 0 THEN
  371. // MessageBox('提示', '请选择目标对象')
  372. // RETURN
  373. //END IF
  374. String arg_msg
  375. //dw_1.object.servername[i]="客户端更新"
  376. IF ljsmc.uf_update('LJUpdateSvr', Ref arg_msg) <> 1 THEN
  377. MessageBox('ERROR', arg_msg)
  378. END IF
  379. FOR i = 1 To dw_1.RowCount()
  380. IF dw_1.Object.ch[i] = 1 THEN
  381. IF ljsmc.uf_update(dw_1.Object.ServerName[i], Ref arg_msg) <> 1 And dw_1.Object.ServerName[i] <> "客户端更新" THEN
  382. MessageBox('ERROR', arg_msg)
  383. ELSEIF dw_1.Object.ServerName[i] = "客户端更新" THEN
  384. f_run_download_auto()
  385. END IF
  386. END IF
  387. NEXT
  388. end event
  389. type cb_reflash from commandbutton within w_ljsmc_services
  390. integer x = 82
  391. integer y = 944
  392. integer width = 402
  393. integer height = 104
  394. integer taborder = 30
  395. integer textsize = -9
  396. integer weight = 400
  397. fontcharset fontcharset = gb2312charset!
  398. fontpitch fontpitch = variable!
  399. string facename = "宋体"
  400. string text = "刷新"
  401. end type
  402. event clicked;
  403. String arg_msg
  404. Long i
  405. IF ljsmc.uf_GetServiceStatus(Ref dw_1, Ref arg_msg) <> 1 THEN
  406. MessageBox('ERROR', arg_msg)
  407. END IF
  408. Parent.TriggerEvent('ue_retrieve_child')
  409. wf_read_updatelog()
  410. FOR i = 1 To dw_1.RowCount()
  411. IF dw_1.Object.version[i] <> dw_1.Object.newversion[i] THEN
  412. dw_1.Object.if_update[i] = "是"
  413. ELSE
  414. dw_1.Object.if_update[i] = "否"
  415. dw_1.Object.ch[i] = 0
  416. END IF
  417. NEXT
  418. FOR i = 1 To dw_1.RowCount()
  419. IF dw_1.Object.ServerName[i] = 'LJUpdateSvr' THEN
  420. dw_1.DeleteRow(i)
  421. END IF
  422. NEXT
  423. end event
  424. type cbx_1 from checkbox within w_ljsmc_services
  425. boolean visible = false
  426. integer x = 2011
  427. integer y = 744
  428. integer width = 219
  429. integer height = 60
  430. integer textsize = -9
  431. integer weight = 400
  432. fontcharset fontcharset = gb2312charset!
  433. fontpitch fontpitch = variable!
  434. string facename = "宋体"
  435. long textcolor = 33554432
  436. long backcolor = 67108864
  437. string text = "详细"
  438. end type
  439. event clicked;IF This.Checked = False THEN
  440. dw_2.Visible = True
  441. parent.width=dw_1.width
  442. // dw_1.Modify( 'displayname.Visible = 0')
  443. ELSE
  444. dw_2.Visible = true
  445. parent.width= dw_1.width + dw_2.width
  446. // dw_1.Modify( 'displayname.Visible = 1')
  447. END IF
  448. end event
  449. type dw_2 from u_dw_rbtnfilter within w_ljsmc_services
  450. boolean visible = false
  451. integer x = 2789
  452. integer y = 184
  453. integer width = 832
  454. integer height = 1328
  455. integer taborder = 30
  456. string dataobject = "dw_ljsmc_instances"
  457. end type
  458. event clicked;call super::clicked;IF row > 0 THEN
  459. This.SetRow(row)
  460. END IF
  461. end event
  462. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0, False)
  463. IF currentrow > 0 THEN
  464. This.SelectRow(currentrow, True)
  465. END IF
  466. end event
  467. type dw_1 from u_dw_rbtnfilter within w_ljsmc_services
  468. integer width = 1984
  469. integer height = 696
  470. integer taborder = 20
  471. string dataobject = "dw_ljsmc_services"
  472. boolean hscrollbar = true
  473. boolean vscrollbar = true
  474. end type
  475. event clicked;call super::clicked; IF row <= 0 THEN RETURN
  476. THIS.SelectRow(0,FALSE)
  477. THIS.SelectRow(row,TRUE)
  478. IF row > 0 THEN
  479. This.SetRow(row)
  480. END IF
  481. end event
  482. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0, False)
  483. IF currentrow > 0 THEN
  484. This.SelectRow(currentrow, True)
  485. END IF
  486. Parent.TriggerEvent('ue_retrieve_child')
  487. end event
  488. type ln_bar from line within w_ljsmc_services
  489. long linecolor = 268435456
  490. integer linethickness = 4
  491. integer beginy = -48
  492. integer endx = 2007
  493. integer endy = -48
  494. end type
  495. type ln_bar2 from line within w_ljsmc_services
  496. long linecolor = 16777215
  497. integer linethickness = 4
  498. integer beginy = -44
  499. integer endx = 2039
  500. integer endy = -44
  501. end type
  502. type r_bar from rectangle within w_ljsmc_services
  503. long linecolor = 16777215
  504. integer linethickness = 4
  505. long fillcolor = 1073741824
  506. integer x = 2139
  507. integer width = 146
  508. integer height = 68
  509. end type
  510. event constructor;this.fillcolor = 14215660
  511. this.linecolor = 14215660
  512. this.x = -1
  513. this.y = -1
  514. this.height = ln_bar.beginy - 5
  515. end event
  516. type ln_1 from line within w_ljsmc_services
  517. boolean visible = false
  518. long linecolor = 268435456
  519. integer linethickness = 4
  520. integer beginy = 292
  521. integer endx = 2016
  522. integer endy = 292
  523. end type
  524. type ln_2 from line within w_ljsmc_services
  525. boolean visible = false
  526. long linecolor = 16777215
  527. integer linethickness = 4
  528. integer beginy = 296
  529. integer endx = 2048
  530. integer endy = 296
  531. end type
  532. type ln_3 from line within w_ljsmc_services
  533. boolean visible = false
  534. long linecolor = 268435456
  535. integer linethickness = 4
  536. integer beginy = 412
  537. integer endx = 2016
  538. integer endy = 412
  539. end type
  540. type ln_4 from line within w_ljsmc_services
  541. boolean visible = false
  542. long linecolor = 16777215
  543. integer linethickness = 4
  544. integer beginy = 416
  545. integer endx = 2048
  546. integer endy = 416
  547. end type