SPZSN00200_개인공지대상조회.xfdl 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZSN00200" position="absolute 0 0 405 408" titletext="개인공지대상조회" class="frm_POP" oninit="SPZSN00200_oninit" onload="SPZSN00200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Edit position="absolute 223 47 353 66" id="input1"/>
  8. <Edit position="absolute 213 47 338 66" id="input2"/>
  9. <Shape position="absolute 8 40 392 75" id="roundrect1" type="roundrectangle"/>
  10. <Combo position="absolute 108 47 183 66" id="cmb_cond" class="combo_search" enable="true" innerdataset="ds_init_cmb_cond" datacolumn="label" codecolumn="value" onitemchanged="cmb_cond_onitemchanged"/>
  11. <Edit position="absolute 188 47 303 66" id="ipt_cond_targetname" onkeyup="ipt_cond_targetname_onkeyup"/>
  12. <Button position="absolute 326 47 382 69" id="btn_req" class="btn1" text="조회" onclick="btn_req_onclick"/>
  13. <Static text="검색자료" position="absolute 8 90 142 103" id="caption24" class="tit_2"/>
  14. <Grid position="absolute 8 107 198 375" id="grd_userlist" binddataset="ds_grd_userlist" oncelldblclick="grd_userlist_oncelldblclick" onmousemove="grd_userlist_onmousemove">
  15. <Formats>
  16. <Format id="default">
  17. <Columns>
  18. <Column size="70"/>
  19. <Column size="111"/>
  20. </Columns>
  21. <Rows>
  22. <Row size="24" band="head"/>
  23. <Row size="24"/>
  24. </Rows>
  25. <Band id="head">
  26. <Cell text="사용자ID"/>
  27. <Cell col="1" text="사용자명"/>
  28. </Band>
  29. <Band id="body">
  30. <Cell style="align:left;" text="bind:userid"/>
  31. <Cell col="1" style="align:left;" text="bind:usernm" tooltiptype="mouse" tooltiptext="bind:usernm"/>
  32. </Band>
  33. </Format>
  34. </Formats>
  35. </Grid>
  36. <Static text="선택자료" position="absolute 203 90 337 103" id="caption1" class="tit_2"/>
  37. <Grid position="absolute 203 107 392 375" id="grd_choiuserlist" binddataset="ds_grd_choiuserlist" onmousedown="grd_choiuserlist_onmousedown" onrbuttondown="grd_choiuserlist_onrbuttondown" selecttype="multirow">
  38. <Formats>
  39. <Format id="default">
  40. <Columns>
  41. <Column size="0"/>
  42. <Column size="180"/>
  43. </Columns>
  44. <Rows>
  45. <Row size="24" band="head"/>
  46. <Row size="24"/>
  47. </Rows>
  48. <Band id="head">
  49. <Cell text="사용자ID"/>
  50. <Cell col="1" text="사용자명"/>
  51. </Band>
  52. <Band id="body">
  53. <Cell text="bind:ntctrgtcd"/>
  54. <Cell col="1" style="align:left;" text="bind:ntctrgtnm"/>
  55. </Band>
  56. </Format>
  57. </Formats>
  58. </Grid>
  59. <Static text="검색조건 :" position="absolute 15 49 108 66" id="caption3" class="search_name"/>
  60. <Button position="absolute 277 378 333 400" id="btn_cnfm" class="btn4" text="확인" onclick="btn_cnfm_onclick"/>
  61. <Button position="absolute 336 378 392 400" id="btn_cncl" class="btn4" text="취소" onclick="btn_cncl_onclick"/>
  62. <Button position="absolute 156 86 198 105" id="btn_copy" class="btn2_letter2" text="복사" onclick="btn_copy_onclick" visible="false"/>
  63. <Shape position="absolute 315 40 321 70" linetype="vertical" id="line3"/>
  64. <Combo position="absolute 196 47 311 66" id="cmb_jobkind" class="combo_search" enable="true" visible="false" innerdataset="ds_init_cmb_jobkind" datacolumn="cdnm" codecolumn="cdid"/>
  65. <Static id="stt_titleText" text="개인공지대상조회" class="sta_POP_title" transparenthittest="true" position="absolute 12 8 161 28"/>
  66. <Button id="btn_close" taborder="1" onclick="btn_close_onclick" class="btn_POP_cls" position="absolute 378 12 392 25"/>
  67. </Layout>
  68. </Layouts>
  69. <Objects>
  70. <Dataset id="ds_init_cmb_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  71. <ColumnInfo>
  72. <Column id="label" type="STRING" size="256"/>
  73. <Column id="value" type="STRING" size="256"/>
  74. </ColumnInfo>
  75. </Dataset>
  76. <Dataset id="ds_grd_userlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  77. <ColumnInfo>
  78. <Column id="userid" type="STRING" size="256"/>
  79. <Column id="usernm" type="STRING" size="256"/>
  80. </ColumnInfo>
  81. </Dataset>
  82. <Dataset id="ds_grd_choiuserlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  83. <ColumnInfo>
  84. <Column id="ntctrgtcd" type="STRING" size="256"/>
  85. <Column id="ntctrgtnm" type="STRING" size="256"/>
  86. </ColumnInfo>
  87. </Dataset>
  88. <Dataset id="ds_init_cmb_jobkind" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  89. <ColumnInfo>
  90. <Column id="cdnm" type="STRING"/>
  91. <Column id="cdid" type="STRING"/>
  92. </ColumnInfo>
  93. </Dataset>
  94. <Dataset id="ds_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  95. <ColumnInfo>
  96. <Column id="targetflag" type="STRING" size="256"/>
  97. <Column id="srchcond" type="STRING" size="256"/>
  98. <Column id="condname" type="STRING" size="256"/>
  99. </ColumnInfo>
  100. </Dataset>
  101. <Dataset id="ds_cond_P" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  102. <ColumnInfo>
  103. <Column id="label" type="STRING" size="256"/>
  104. <Column id="value" type="STRING" size="256"/>
  105. </ColumnInfo>
  106. <Rows>
  107. <Row>
  108. <Col id="label">부서</Col>
  109. <Col id="value">D</Col>
  110. </Row>
  111. <Row>
  112. <Col id="label">사용자명</Col>
  113. <Col id="value">K</Col>
  114. </Row>
  115. <Row>
  116. <Col id="label">직종</Col>
  117. <Col id="value">N</Col>
  118. </Row>
  119. </Rows>
  120. </Dataset>
  121. <Dataset id="ds_cond_D" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  122. <ColumnInfo>
  123. <Column id="label" type="STRING" size="256"/>
  124. <Column id="value" type="STRING" size="256"/>
  125. </ColumnInfo>
  126. <Rows>
  127. <Row>
  128. <Col id="label">부서명</Col>
  129. <Col id="value">N</Col>
  130. </Row>
  131. <Row>
  132. <Col id="label">부서코드</Col>
  133. <Col id="value">C</Col>
  134. </Row>
  135. </Rows>
  136. </Dataset>
  137. <Dataset id="ds_cond_I" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  138. <ColumnInfo>
  139. <Column id="label" type="STRING" size="256"/>
  140. <Column id="value" type="STRING" size="256"/>
  141. </ColumnInfo>
  142. <Rows>
  143. <Row>
  144. <Col id="label">기관명</Col>
  145. <Col id="value">N</Col>
  146. </Row>
  147. <Row>
  148. <Col id="label">기관코드</Col>
  149. <Col id="value">C</Col>
  150. </Row>
  151. </Rows>
  152. </Dataset>
  153. <Dataset id="ds_cond_K" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  154. <ColumnInfo>
  155. <Column id="label" type="STRING" size="256"/>
  156. <Column id="value" type="STRING" size="256"/>
  157. </ColumnInfo>
  158. <Rows>
  159. <Row>
  160. <Col id="label">직종명</Col>
  161. <Col id="value">N</Col>
  162. </Row>
  163. <Row>
  164. <Col id="label">직종코드</Col>
  165. <Col id="value">C</Col>
  166. </Row>
  167. </Rows>
  168. </Dataset>
  169. </Objects>
  170. <Bind>
  171. <BindItem id="item0" compid="cmb_cond" propid="value" datasetid="ds_cond" columnid="srchcond"/>
  172. <BindItem id="item1" compid="cmb_jobkind" propid="value" datasetid="ds_cond" columnid="condname"/>
  173. <BindItem id="item2" compid="ipt_cond_targetname" propid="value" datasetid="ds_cond" columnid="condname"/>
  174. </Bind>
  175. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  176. * System Name :
  177. * Job Name :
  178. * Creator :
  179. * Make Date : 2014-11-05
  180. * Description :
  181. *---------------------------------------------------------------------------------------
  182. * Modify Date Modifier Modify Description
  183. *---------------------------------------------------------------------------------------
  184. * 2014-11-05 Live Converter TF->XP
  185. *
  186. *---------------------------------------------------------------------------------------
  187. ****************************************************************************************/
  188. //=======================================================================================
  189. // Lib Include
  190. //---------------------------------------------------------------------------------------
  191. include "com_commonxp::comm_main.xjs"; // 전체공통 스크립트
  192. //=======================================================================================
  193. // Global Form Variable
  194. //---------------------------------------------------------------------------------------
  195. //=======================================================================================
  196. // Function
  197. //---------------------------------------------------------------------------------------
  198. function SPZSN00200_oninit(obj:Form, e:InitEventInfo)
  199. {
  200. var targetflag = "";
  201. if(frmf_checkOpener())
  202. {
  203. targetflag = opener.ds_iteminfo.getColumn(0, "targetflag");
  204. }
  205. if (targetflag =="")
  206. {
  207. sysf_messageBox("공지대상 타입이 설정되지 않았습니다.","I999");
  208. close();
  209. }
  210. // 공지대상 타입에 따라 컨트롤 속성을 정한다.
  211. else if (targetflag =="D") // 부서의 경우
  212. {
  213. // 타이틀 조정
  214. stt_titleText.text = "부서공지대상조회";
  215. // 그리드 조정
  216. grd_userlist.setCellProperty("Head", 0, "text", "부서코드");
  217. grd_userlist.setCellProperty("Head", 1, "text", "부서명");
  218. grd_userlist.setRealColSize(0, 0);
  219. grd_userlist.setRealColSize(1, 220);
  220. ///grd_userlist.extendLastCol = false;
  221. grd_choiuserlist.setCellProperty("Head", 0, "text", "사용자ID");
  222. grd_choiuserlist.setCellProperty("Head", 1, "text", "근무지부서명");
  223. ///grd_choiuserlist.extendLastCol = false;
  224. grd_choiuserlist.setRealColSize(1,220);
  225. dsf_copyDs(ds_init_cmb_cond, ds_cond_D);
  226. }
  227. else if (targetflag =="I") // 기관의 경우
  228. {
  229. // 타이틀 조정
  230. stt_titleText.title = "기관공지대상조회"
  231. grd_userlist.setRealColSize(1, 0);
  232. grd_userlist.setRealColSize(2, 180);
  233. // 그리드 조정
  234. grd_userlist.setCellProperty("Head", 0, "text", "기관코드");
  235. grd_userlist.setCellProperty("Head", 1, "text", "기관명");
  236. grd_choiuserlist.setCellProperty("Head", 0, "text", "기관코드");
  237. grd_choiuserlist.setCellProperty("Head", 1, "text", "근무지기관명");
  238. dsf_copyDs(ds_init_cmb_cond, ds_cond_I);
  239. }
  240. else if (targetflag =="K") // 기관의 경우
  241. {
  242. // 타이틀 조정
  243. stt_titleText.title = "직종공지대상조회"
  244. grd_userlist.setRealColSize(1, 0);
  245. grd_userlist.setRealColSize(2, 180);
  246. // 그리드 조정
  247. grd_userlist.setCellProperty("Head", 0, "text", "직종코드");
  248. grd_userlist.setCellProperty("Head", 1, "text", "직종명");
  249. grd_choiuserlist.setCellProperty("Head", 0, "text", "직종코드");
  250. grd_choiuserlist.setCellProperty("Head", 1, "text", "직종명");
  251. dsf_copyDs(ds_init_cmb_cond, ds_cond_K);
  252. }
  253. else if(targetflag =="P")
  254. {
  255. dsf_copyDs(ds_init_cmb_cond, ds_cond_P);
  256. }
  257. // 공지대상 타입을 조회조건에 넣는다.
  258. ds_cond.addRow();
  259. ds_cond.setColumn(0, "targetflag", targetflag);
  260. //공지사항등록리스트를 초기화
  261. ds_grd_userlist.clearData();
  262. //input박스 data 값이 삭제 되게 초기화
  263. ipt_cond_targetname.value = "";
  264. //부서 input박스에 커서를 옮겨놓는다.
  265. ipt_cond_targetname.setFocus();
  266. // 공통코드 가져옴
  267. // zbcfGetCodeList( new Array("R0061","Z0007"),
  268. // new Array("/root/init/comcd","/root/init/comcd"),
  269. // true,
  270. // new Array("cdnm","cdnm"),
  271. // new Array("asc","asc")
  272. // );
  273. var arrParam = new Array();
  274. arrParam = [{dsNm: "ds_init_cmb_jobkind", cdGrpId: "R0061", sortField: "cdnm", sortMehotd: "asc", showValue:true}
  275. , {dsNm: "ds_code_2", cdGrpId: "Z0007", sortField: "cdnm", sortMehotd: "asc", showValue:true}];
  276. appf_getCodeList(arrParam, true);
  277. frmf_createPopupMenu("pmn_item_popupMenu"
  278. , "pmn_item_popupMenu_onmenuclick"
  279. , [{id: "fDeleteRow", level: "1", title: "삭제"}]);
  280. //콤보박스를 첫번째로 초기화
  281. //cmb_cond.index = 0;
  282. }
  283. function SPZSN00200_onload(obj:Form, e:LoadEventInfo)
  284. {
  285. frmf_initForm(obj);
  286. cmb_cond.index = 0;
  287. dsf_copyDs(ds_grd_choiuserlist, opener.ds_temp_targetlist);
  288. }
  289. /****************************************************************************************
  290. * Components : Button
  291. * Components ID : btn_close
  292. * Event : onclick
  293. * Argument : 01.obj : Button
  294. * : 02.e : ClickEventInfo
  295. * Description : 팝업 닫기
  296. ****************************************************************************************/
  297. function btn_close_onclick(obj:Button, e:ClickEventInfo){
  298. var objReturn = new Object();
  299. objReturn.islogout = true;
  300. this.close(objReturn);
  301. }
  302. function ipt_cond_targetname_onkeyup(obj:Edit, e:KeyEventInfo)
  303. {
  304. if (e.keycode=='13') {
  305. ds_cond.setColumn(0, "condname", obj.text);
  306. btn_req.click();
  307. }
  308. }
  309. function btn_req_onclick(obj:Button, e:ClickEventInfo)
  310. {
  311. var condtype = ds_cond.getColumn(0, "srchcond");
  312. var condname = ds_cond.getColumn(0, "condname");
  313. if (condtype == "D" || condtype == "U" || condtype == "N") // 부서명, 사용자명, 명칭일 경우에만
  314. {
  315. if(condname == undefined){
  316. sysf_messageBox("검색조건을 2글자 이상 입력해 주십시오. ", "I999");
  317. return;
  318. } else if ( utlf_getStringLength(condname) < 4)
  319. {
  320. sysf_messageBox("검색조건을 2글자 이상 입력해 주십시오. ", "I999");
  321. return;
  322. }
  323. }
  324. var oParam = {};
  325. oParam.id = "TRZSN00201";
  326. oParam.service = "noticeinfoapp.noticeinfo";
  327. oParam.method = "reqGetTargetListToAdd";
  328. oParam.inds = "req=ds_cond";
  329. oParam.outds = "ds_grd_userlist=userlist";
  330. oParam.async = false;
  331. oParam.callback = "cf_TRZSN00201";
  332. tranf_submit(oParam);
  333. }
  334. function cf_TRZSN00201(sSvcId, nErrorCode, sErrorMsg) {
  335. if(nErrorCode < 0) return;
  336. }
  337. function cmb_cond_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  338. {
  339. // 콤보박스에서 선택한 값에 따라 조건 옆에 박스가 뜨게 선택하고 각 input박스나 콤보박스에 포커스가 가있게 한다.
  340. //부서인 경우
  341. var srchcond = ds_cond.getColumn(0, "srchcond");
  342. if(srchcond == 'D'){
  343. // 직종선택 컴보박스를 숨기게 한다.
  344. cmb_jobkind.visible = false;
  345. //input박스에 data가 있었다고 해도 지워준다.
  346. ds_cond.setColumn(0, "condname", "");
  347. //사용자 input박스에 포커스가 가있게 한다.
  348. ipt_cond_targetname.setFocus();
  349. //사용자명을 선택한 경우
  350. }else if(srchcond == 'U'){
  351. // 직종선택 컴보박스를 숨기게 한다.
  352. cmb_jobkind.visible = false;
  353. //input박스에 data가 있었다고 해도 지워준다.
  354. ds_cond.setColumn(0, "condname", "");
  355. //사용자 input박스에 포커스가 가있게 한다.
  356. ipt_cond_targetname.setFocus();
  357. }else if(srchcond == 'K'){ // 직종인경우
  358. // 직종선택 컴보박스가 나타나게 한다.
  359. cmb_jobkind.visible = true;
  360. // 첫번째를 선택한다.
  361. cmb_jobkind.index = 0;
  362. //컴보박스에 포커스가 가있게 한다.
  363. cmb_jobkind.setFocus();
  364. }
  365. //콤보의 검색조건 값이 바뀌면 조회되는 그리드의 data도 삭제되게 한다.
  366. ds_grd_userlist.clearData();
  367. }
  368. function grd_userlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  369. {
  370. //그리드의 row가 아닌 다른 꼿을 선택시 error메시지 보냄
  371. if( grd_userlist.isAboveSelected && grd_userlist.currentrow <= grd_userlist.rowcount ) {
  372. //***************중복된 data가 존재하는지 확인
  373. //사용자조회의 선택된 row값을 받아옴
  374. var userrow = grd_userlist.currentrow;
  375. //선택사용자조회에 선택되어 있는 row개수를 받아옴
  376. var cuserrows = grd_choiuserlist.rowcount;
  377. //선택된 row의 사용자id 값을 받아옴
  378. var getuserid = ds_grd_userlist.getColumn(userrow, "userid");
  379. //종복되어있는 경우를 위해 상태값을 가지게 한다.
  380. var dupl = 'false';
  381. // 사용자 명을 컬럼수대로 합쳐놓음
  382. //선택된 사용자의 row개수 만큼 for문을 돌려서 확인
  383. for(var i = 1 ; i <= cuserrows ; i++){
  384. //선택된 사용자의 row의 사용자id를 하나씩 받아와서 조회
  385. var suserid = ds_grd_choiuserlist.getColumn(i, "ntctrgtcd");
  386. //사용자조회 그리드의 사용자id와 선택되어 있는 그리드의 사용자id가 같은지 비교
  387. if(suserid == getuserid){
  388. //중복인 경우 경고 메세지
  389. var usernm = ds_grd_choiuserlist.getColumn(i, "ntctrgtnm");
  390. sysf_messageBox(usernm + " 사용자가","E006");
  391. //사용자가 중복되어 있는 경우 data를 선택하면 안되므로 상태값을 ture로 하여 선택하지 않는다.
  392. dupl = 'true';
  393. }
  394. }
  395. //********** 중복되어 있지 않는 경우
  396. //중복되어있지 않는 상태값을 가지는 경우 선택그리드에 나타낸다.
  397. if(dupl == 'false'){
  398. //선택그리드의 row를 추가
  399. ds_grd_choiuserlist.addRow();
  400. //부서조회 그리드의 값을 선택그리드에 넘긴다.
  401. ds_grd_choiuserlist.setColumn(cuserrows, "ntctrgtcd", ds_grd_userlist.getColumn(userrow, "userid"));
  402. ds_grd_choiuserlist.setColumn(cuserrows, "ntctrgtnm", ds_grd_userlist.getColumn(userrow, "usernm"));
  403. }
  404. }
  405. }
  406. function grd_choiuserlist_onmousedown(obj:Grid, e:GridMouseEventInfo)
  407. {
  408. // 마우스 우클릭 개발되면 차후 개발
  409. // //마우스 오른쪽을 누르면 삭제 팝업이 뜨고 선택시 선택한 row를 삭제
  410. // if( grd_choiuserlist.isAboveSelected && grd_choiuserlist.currentrow <= grd_choiuserlist.rowcount ) {
  411. // //오른쪽 팝업을 보이게 true로 한다.
  412. // app.showPopupMenu(true);
  413. //
  414. // //오른쪽 마우스 선택시 삭제창이 나타나면 선택한 row삭제
  415. // window.setPopupMenu(true, "/root/init/msrght/mouserght", "label", "func", false);
  416. //
  417. // } else {
  418. // window.setPopupMenu(false);
  419. // }
  420. }
  421. function btn_cnfm_onclick(obj:Button, e:ClickEventInfo)
  422. {
  423. //부모창의 속성값에 정해준다..
  424. var getrows = grd_choiuserlist.rowcount;
  425. //if(getrows == '0') return;
  426. dsf_copyDs(opener.ds_temp_targetlist, ds_grd_choiuserlist)
  427. this.close();
  428. }
  429. function btn_cncl_onclick(obj:Button, e:ClickEventInfo)
  430. {
  431. this.close();
  432. }
  433. function btn_copy_onclick(obj:Button, e:ClickEventInfo)
  434. {
  435. // //***************중복된 data가 존재하는지 확인
  436. // //사용자조회의 선택된 row값을 받아옴
  437. // var rows = grd_userlist.selectedRows;
  438. //
  439. // //선택사용자조회에 선택되어 있는 row개수를 받아옴
  440. // var Crows = grd_choiuserlist.rows;
  441. // var row = new Array();
  442. // var dupl = new Array();
  443. //
  444. // for (var i= rows-1; i >= 0; i--){
  445. // row[i] = grd_userlist.selectedrow(i);
  446. // }
  447. //
  448. // //선택된 사용자의 row개수 만큼 for문을 돌려서 확인
  449. // if(rows == 0){
  450. // messageBox("사용자명을 ", "C002");
  451. // }else{
  452. // for(var i = rows-1 ; i >= 0 ; i--){
  453. // var temp = 'false';
  454. // //선택된 사용자의 row의 사용자id를 하나씩 받아와서 조회
  455. // var userid = model.getValue("/root/main/userinfo/userlist[" + row[i] + "]/userid");
  456. // var usernm = model.getValue("/root/main/userinfo/userlist[" + row[i] + "]/usernm");
  457. // for(var j = 1 ; j <= Crows ; j++){
  458. // //선택된 row의 사용자id 값을 받아옴
  459. // var id = model.getValue("/root/main/selecteduser/targetlist[" + j + "]/ntctrgtcd");
  460. // //사용자조회 그리드의 사용자id와 선택되어 있는 그리드의 사용자id가 같은지 비교
  461. // if(userid == id){
  462. // //사용자가 중복되어 있는 경우 data를 선택하면 안되므로 상태값을 ture로 하여 선택하지 않는다.
  463. // temp = 'true';
  464. // }
  465. // }
  466. // if(temp == 'true'){
  467. // dupl[i] = 'true';
  468. // //중복인 경우 경고 메세지
  469. // messageBox(usernm + " 사용자가","E006");
  470. // }else{
  471. // dupl[i] = 'false';
  472. // }
  473. // }
  474. // var rowcount = Crows;
  475. // //********** 중복되어 있지 않는 경우
  476. // for(var i = rows-1 ; i >= 0 ; i--){
  477. // var userid = model.getValue("/root/main/userinfo/userlist[" + row[i] + "]/userid");
  478. // var usernm = model.getValue("/root/main/userinfo/userlist[" + row[i] + "]/usernm");
  479. // //중복되어있지 않는 상태값을 가지는 경우 선택그리드에 나타낸다.
  480. // if(dupl[i] == 'false'){
  481. // //선택그리드의 row를 추가
  482. // grd_choiuserlist.addRow(true);
  483. //
  484. // //부서조회 그리드의 값을 선택그리드에 넘긴다.
  485. // // model.setValue("/root/main/choiuserinfo/choiuserlist[" + rowcount + "]/userid",userid);
  486. // // model.setValue("/root/main/choiuserinfo/choiuserlist[" + rowcount + "]/usernm",usernm);
  487. //
  488. // model.setValue("/root/main/selecteduser/targetlist[" + rowcount + "]/ntctrgtcd",userid);
  489. // model.setValue("/root/main/selecteduser/targetlist[" + rowcount + "]/ntctrgtnm",usernm);
  490. // rowcount = rowcount + 1;
  491. // }
  492. // }
  493. // }
  494. }
  495. function grd_userlist_onmousemove(obj:Grid, e:GridMouseEventInfo)
  496. {
  497. if(e.row >= 0 && e.col >=0)
  498. obj.tooltiptext = obj.getCellText(e.row, e.cell);
  499. }
  500. function grd_choiuserlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  501. {
  502. pmn_item_popupMenu.trackPopup(e.screenX,e.screenY);
  503. }
  504. function pmn_item_popupMenu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  505. {
  506. if(e.id == "fDeleteRow"){ // 행삭제
  507. fDeleteRow();
  508. }
  509. }
  510. function fDeleteRow(){
  511. //멀티로 데이타 선택
  512. var index = grdf_getSelectedRows(grd_choiuserlist);
  513. //선택사용자의 그리드에 선택된 로우가 없을경우 메세지
  514. if (index[0] < 0){
  515. sysf_messageBox("사용자명을","C002" );
  516. }else {
  517. //저장된 로우값을 가지고 그행을 삭제
  518. for (i= index.length-1; i >= 0; i--){
  519. ds_grd_choiuserlist.deleteRow(index[i]);
  520. }
  521. }
  522. }]]></Script>
  523. </Form>
  524. </FDL>