SMMMB08300_임상시험프로토콜관리.xfdl 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMMB08300" position="absolute 0 0 1187 790" titletext="임상시험 프로토콜 관리" oninit="SMMMB08300_oninit" onload="SMMMB08300_onload" onclose="SMMMB08300_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 234 28 1187 761" id="iviewer1" style="border:1 solid #bac5ccff ;" url="emr_prcpmngtxp::SMMMB00200_약속처방SET관리.xfdl"/>
  8. <Grid position="absolute 0 380 227 761" autofit="col" id="trv_prmsprcpsetlist" binddataset="ds_main_subjprtllist" selecttype="treecell" treeusecheckbox="false" style="border:1 solid #33bbbbff,0 solid #bac5ccff,1 solid #bac5ccff,0 solid #bac5ccff;" autosizingtype="col" userdata="0" onrbuttondown="trv_prmsprcpsetlist_onrbuttondown" cantreestatuschange="trv_prmsprcpsetlist_cantreestatuschange" oncellclick="trv_prmsprcpsetlist_oncellclick" treeinitstatus="expand,null" autofittype="col" ondrag="trv_prmsprcpsetlist_ondrag" ondragleave="trv_prmsprcpsetlist_ondragleave" ondragmove="trv_prmsprcpsetlist_ondragmove" ondrop="trv_prmsprcpsetlist_ondrop">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="225"/>
  13. </Columns>
  14. <Rows>
  15. <Row size="24"/>
  16. </Rows>
  17. <Band id="body">
  18. <Cell displaytype="tree" edittype="tree" style="line:0 none #808080ff ;background:EXPR(fDragOverColorChng(currow));background2:EXPR(fDragOverColorChng(currow));" text="bind:stepnm" treestartlevel="1" treelevel="bind:lev" autosizecol="limitmin"/>
  19. </Band>
  20. </Format>
  21. </Formats>
  22. </Grid>
  23. <Static text="임상시험 프로토콜 관리" position="absolute 0 0 171 25" id="caption6" class="tit_1"/>
  24. <Grid position="absolute 0 28 227 201" id="grd_subjlist" binddataset="ds_main_subjlist" oncellclick="grd_subjlist_oncellclick" scrollpixel="all" onmousewheel="grd_subjlist_onmousewheel">
  25. <Formats>
  26. <Format id="default">
  27. <Columns>
  28. <Column size="120"/>
  29. <Column size="95"/>
  30. <Column size="83"/>
  31. </Columns>
  32. <Rows>
  33. <Row size="24" band="head"/>
  34. <Row size="24"/>
  35. </Rows>
  36. <Band id="head">
  37. <Cell text="과제번호"/>
  38. <Cell col="1" text="연구코드"/>
  39. <Cell col="2" text="종료일"/>
  40. </Band>
  41. <Band id="body">
  42. <Cell style="align:left middle;" text="bind:subjno"/>
  43. <Cell col="1" style="align:left middle;" text="bind:stdyno"/>
  44. <Cell col="2" style="align:left middle;" text="bind:subjenddd" mask="expr:(subjenddd == &quot;-&quot; || subjenddd == &quot;&quot;) ? &quot;&quot; : &quot;####-##-##&quot;"/>
  45. </Band>
  46. </Format>
  47. </Formats>
  48. </Grid>
  49. <Static text="BSA 계산 =" position="absolute 230 770 324 790" id="caption3" class="search_name"/>
  50. <Static text="((신장 cm x 체중 kg) / 3600)^(1/2) =" position="absolute 330 770 653 790" align="align:center middle;" id="caption11"/>
  51. <Button position="absolute 770 770 812 790" id="button1" class="btn5" text="계산"/>
  52. <Edit position="absolute 367 770 427 790" id="ipt_height"/>
  53. <Edit position="absolute 484 770 539 790" id="ipt_weight"/>
  54. <Edit readonly="true" position="absolute 663 770 763 790" id="opt_BSA"/>
  55. <PopupDiv id="pdiv_iptbox1" oncloseup="pdiv_iptbox_oncloseup" style="background:#99ccffff;border:1 solid #3366ffff ;" onkeydown="pdiv_iptbox_onkeydown" visible="false" position="absolute 8 485 222 540">
  56. <Layouts>
  57. <Layout>
  58. <Static id="caption4" text="폴더명" position="absolute 5 5 46 25" anchor="default"/>
  59. <Edit id="ipt_setnm" taborder="9" imemode="hangul" autoselect="true" onkeydown="pdiv_iptbox_ipt_setnm_onkeydown" position="absolute 55 5 207 25" anchor="left right"/>
  60. <Button id="btn_cnfm" taborder="10" text="확인" onclick="pdiv_iptbox_btn_cnfm_onclick" class="btn2" position="absolute 121 29 163 48" anchor="right"/>
  61. <Button id="button3" taborder="11" text="취소" onclick="pdiv_iptbox_button3_onclick" class="btn2" position="absolute 165 29 207 48" anchor="right"/>
  62. </Layout>
  63. </Layouts>
  64. </PopupDiv>
  65. <Div id="Div00" taborder="1" position="absolute 0 205 227 376" class="div_SA2">
  66. <Layouts>
  67. <Layout>
  68. <Static id="caption5" text="과제번호" class="search_name" position="absolute 10 9 81 29" anchor="default"/>
  69. <Edit id="opt_subjno" taborder="1" readonly="true" position="absolute 21 28 210 48" anchor="default" class="output"/>
  70. <Static id="caption2" text="과제명" class="search_name" position="absolute 10 52 96 72" anchor="default"/>
  71. <TextArea id="txt_subjnm" taborder="2" position="absolute 21 71 210 136" anchor="default" wordwrap="char"/>
  72. <Static id="caption1" text="총회차 :" class="search_name" position="absolute 10 146 75 163" anchor="default"/>
  73. <MaskEdit id="ipt_totstep" taborder="3" mask="##" position="absolute 92 145 138 164" anchor="default"/>
  74. <Button id="btn_savestep" taborder="4" text="최초생성" class="btn2" enable="false" position="absolute 143 145 210 165" anchor="default" onclick="Div00_btn_savestep_onclick"/>
  75. </Layout>
  76. </Layouts>
  77. </Div>
  78. <PopupMenu id="pmn_menu" innerdataset="@ds_menu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 1188 377 1288 440"/>
  79. </Layout>
  80. </Layouts>
  81. <Objects>
  82. <Dataset id="ds_main_subjlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  83. <ColumnInfo>
  84. <Column id="subjid" type="STRING" size="256" sumtext="과제ID(실제subjno)"/>
  85. <Column id="subjno" type="STRING" size="256" sumtext="과제ID"/>
  86. <Column id="stdyno" type="STRING" size="256" sumtext="연구번호"/>
  87. <Column id="subjenddd" type="STRING" size="256" sumtext="과제 종료일자"/>
  88. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  89. <Column id="stdysubjnm" type="STRING" size="256" sumtext="과제명"/>
  90. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  91. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  92. <Column id="cpgnm" type="STRING" size="256" sumtext="cp명"/>
  93. <Column id="ioflag" type="STRING" size="256" sumtext="입원/외래구분"/>
  94. </ColumnInfo>
  95. </Dataset>
  96. <Dataset id="ds_hidden_subjlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  97. <ColumnInfo>
  98. <Column id="subjid" type="STRING" size="256" sumtext="과제ID(실제subjno)"/>
  99. <Column id="subjno" type="STRING" size="256" sumtext="과제ID"/>
  100. <Column id="stdyno" type="STRING" size="256" sumtext="연구번호"/>
  101. <Column id="subjenddd" type="STRING" size="256" sumtext="과제 종료일자"/>
  102. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  103. <Column id="stdysubjnm" type="STRING" size="256" sumtext="과제명"/>
  104. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  105. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  106. <Column id="cpgnm" type="STRING" size="256" sumtext="cp명"/>
  107. <Column id="ioflag" type="STRING" size="256" sumtext="입원/외래구분"/>
  108. </ColumnInfo>
  109. <Rows>
  110. <Row/>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="subjid" type="STRING" size="256" sumtext="과제ID(실제subjno)"/>
  116. <Column id="subjno" type="STRING" size="256" sumtext="과제ID"/>
  117. <Column id="stdyno" type="STRING" size="256" sumtext="연구번호"/>
  118. <Column id="subjenddd" type="STRING" size="256" sumtext="과제 종료일자"/>
  119. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  120. <Column id="stdysubjnm" type="STRING" size="256" sumtext="과제명"/>
  121. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  122. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  123. <Column id="cpgnm" type="STRING" size="256" sumtext="cp명"/>
  124. <Column id="ioflag" type="STRING" size="256" sumtext="입원/외래구분"/>
  125. </ColumnInfo>
  126. </Dataset>
  127. <Dataset id="ds_main_subjprtllist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  128. <ColumnInfo>
  129. <Column id="lev" type="STRING" size="256" sumtext="level번호"/>
  130. <Column id="cpgno" type="INT" size="256" sumtext="CP/CPG번호"/>
  131. <Column id="cpghistseq" type="INT" size="256" sumtext="CP/CPG이력순번"/>
  132. <Column id="stepno" type="INT" size="256" sumtext="회차번호"/>
  133. <Column id="stepnm" type="STRING" size="256" sumtext="회차명"/>
  134. <Column id="setno" type="INT" size="256" sumtext="약속set번호"/>
  135. <Column id="ioflag" type="STRING" size="256" sumtext="외래입원"/>
  136. <Column id="refseq" type="INT" size="256" sumtext="실제회차"/>
  137. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  138. </ColumnInfo>
  139. </Dataset>
  140. <Dataset id="ds_menu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  141. <ColumnInfo>
  142. <Column id="label" type="STRING" size="256"/>
  143. <Column id="func" type="STRING" size="256"/>
  144. <Column id="level" type="STRING" size="256"/>
  145. </ColumnInfo>
  146. <Rows>
  147. <Row>
  148. <Col id="label">새폴더</Col>
  149. <Col id="func">fAddSubjPrtlSet</Col>
  150. <Col id="level">0</Col>
  151. </Row>
  152. <Row>
  153. <Col id="label">폴더이름 바꾸기</Col>
  154. <Col id="func">fUpdtPrtlSet</Col>
  155. <Col id="level">0</Col>
  156. </Row>
  157. <Row>
  158. <Col id="label">폴더삭제</Col>
  159. <Col id="func">fDelSubjPrtlSet</Col>
  160. <Col id="level">0</Col>
  161. </Row>
  162. </Rows>
  163. </Dataset>
  164. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  165. <ColumnInfo>
  166. <Column id="totstep" type="INT" size="256"/>
  167. <Column id="height" type="STRING" size="256"/>
  168. <Column id="weight" type="STRING" size="256"/>
  169. <Column id="BSA" type="STRING" size="256"/>
  170. </ColumnInfo>
  171. <Rows>
  172. <Row/>
  173. </Rows>
  174. </Dataset>
  175. <Dataset id="ds_TXMMB08303" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  176. <ColumnInfo>
  177. <Column id="totstep" type="INT" size="256"/>
  178. </ColumnInfo>
  179. <Rows>
  180. <Row/>
  181. </Rows>
  182. </Dataset>
  183. <Dataset id="ds_iptbox" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  184. <ColumnInfo>
  185. <Column id="setnm" type="STRING" size="256"/>
  186. </ColumnInfo>
  187. <Rows>
  188. <Row>
  189. <Col id="setnm"/>
  190. </Row>
  191. </Rows>
  192. </Dataset>
  193. <Dataset id="ds_send_savedata_subj" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  194. <ColumnInfo>
  195. <Column id="subjno" type="STRING" size="256" sumtext="과제번호"/>
  196. <Column id="stdyno" type="STRING" size="256" sumtext="연구코드"/>
  197. <Column id="subjenddd" type="STRING" size="256" sumtext="과제종료일자"/>
  198. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  199. <Column id="stdysubjnm" type="STRING" size="256" sumtext="과제명"/>
  200. <Column id="cpgno" type="INT" size="256" sumtext="cp/cpg번호"/>
  201. <Column id="cpghistseq" type="INT" size="256" sumtext="cp/cpg이력번호"/>
  202. <Column id="cpgnm" type="STRING" size="256" sumtext="cp명"/>
  203. <Column id="ioflag" type="STRING" size="256" sumtext="입원/외래구분"/>
  204. </ColumnInfo>
  205. </Dataset>
  206. <Dataset id="ds_send_savedata_subjprtl" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  207. <ColumnInfo>
  208. <Column id="lev" type="STRING" size="256" sumtext="level번호"/>
  209. <Column id="cpgno" type="INT" size="256" sumtext="CP/CPG번호"/>
  210. <Column id="cpghistseq" type="INT" size="256" sumtext="CP/CPG이력순번"/>
  211. <Column id="stepno" type="INT" size="256" sumtext="회차번호"/>
  212. <Column id="stepnm" type="STRING" size="256" sumtext="회차명"/>
  213. <Column id="setno" type="INT" size="256" sumtext="약속set번호"/>
  214. <Column id="ioflag" type="STRING" size="256" sumtext="외래입원"/>
  215. <Column id="refseq" type="INT" size="256" sumtext="실제회차"/>
  216. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  217. </ColumnInfo>
  218. </Dataset>
  219. <Dataset id="ds_TXMMB08304" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  220. <ColumnInfo>
  221. <Column id="lev" type="STRING" size="256" sumtext="level번호"/>
  222. <Column id="cpgno" type="INT" size="256" sumtext="CP/CPG번호"/>
  223. <Column id="cpghistseq" type="INT" size="256" sumtext="CP/CPG이력순번"/>
  224. <Column id="stepno" type="INT" size="256" sumtext="회차번호"/>
  225. <Column id="stepnm" type="STRING" size="256" sumtext="회차명"/>
  226. <Column id="setno" type="INT" size="256" sumtext="약속set번호"/>
  227. <Column id="ioflag" type="STRING" size="256" sumtext="외래입원"/>
  228. <Column id="refseq" type="INT" size="256" sumtext="실제회차"/>
  229. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  230. <Column id="srcindx" type="INT" size="256" sumtext="원래회차"/>
  231. <Column id="trgtindx" type="INT" size="256" sumtext="변경회차"/>
  232. <Column id="indxkind" type="INT" size="256" sumtext="변경종류"/>
  233. </ColumnInfo>
  234. </Dataset>
  235. </Objects>
  236. <Bind>
  237. <BindItem id="item0" compid="Div00.opt_subjno" propid="value" datasetid="ds_hidden_subjlist" columnid="subjno"/>
  238. <BindItem id="item1" compid="Div00.txt_subjnm" propid="value" datasetid="ds_hidden_subjlist" columnid="stdysubjnm"/>
  239. <BindItem id="item2" compid="Div00.ipt_totstep" propid="value" datasetid="ds_init" columnid="totstep"/>
  240. <BindItem id="item3" compid="ipt_height" propid="value" datasetid="ds_init" columnid="height"/>
  241. <BindItem id="item4" compid="ipt_weight" propid="value" datasetid="ds_init" columnid="weight"/>
  242. <BindItem id="item5" compid="opt_BSA" propid="value" datasetid="ds_init" columnid="BSA"/>
  243. <BindItem id="item6" compid="pdiv_iptbox1.ipt_setnm" propid="value" datasetid="ds_iptbox" columnid="setnm"/>
  244. </Bind>
  245. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  246. * System Name :
  247. * Job Name :
  248. * Creator :
  249. * Make Date : 2014-12-10
  250. * Description :
  251. *---------------------------------------------------------------------------------------
  252. * Modify Date Modifier Modify Description
  253. *---------------------------------------------------------------------------------------
  254. * 2014-12-10 Live Converter TF->XP
  255. *
  256. *---------------------------------------------------------------------------------------
  257. ****************************************************************************************/
  258. include "com_commonxp::comm_main.xjs";
  259. var g_prevmouserow = -1;
  260. function SMMMB08300_oninit(obj:Form, e:InitEventInfo)
  261. {
  262. frmf_initForm(obj);
  263. }
  264. function SMMMB08300_onload(obj:Form, e:LoadEventInfo)
  265. {
  266. var oParam = {};
  267. oParam.id = "TRMMB08301";
  268. oParam.service = "prcpbaseapp.PrcpClsMngt";
  269. oParam.method = "reqGetUserSubjectList";
  270. oParam.outds = "ds_main_subjlist=subjlist";
  271. oParam.async = true;
  272. oParam.callback = "cf_TXMMB08301";
  273. tranf_submit(oParam);
  274. }
  275. function cf_TXMMB08301(sSvcId, nErrorCode, sErrorMsg) {
  276. if(nErrorCode < 0) return;
  277. ds_main_subjlist.rowposition = -1;
  278. }
  279. function SMMMB08300_onclose(obj:Form, e:CloseEventInfo)
  280. {
  281. frmf_closeChildPop();
  282. }
  283. function grd_subjlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  284. {
  285. ds_send_reqdata.clearData();
  286. ds_send_reqdata.addRow();
  287. ds_send_reqdata.copyRow(0, ds_main_subjlist, e.row);
  288. var oParam = {};
  289. oParam.id = "TXMMB08301";
  290. oParam.service = "prcpbaseapp.PrcpClsMngt";
  291. oParam.method = "reqGetSubjectProtocolList";
  292. oParam.inds = "req=ds_send_reqdata";
  293. oParam.outds = "ds_main_subjprtllist=subjprtllist";
  294. oParam.async = false;
  295. tranf_submit(oParam);
  296. // 프로토콜정보(mmphcinf)에대해 조회된 정보를 그리드에 다시 세팅. (lev='1')
  297. ds_main_subjlist.setColumn(e.row, "cpgno", ds_main_subjprtllist.lookup("lev", '1', "cpgno"));
  298. ds_main_subjlist.setColumn(e.row, "cpghistseq", ds_main_subjprtllist.lookup("lev", '1', "cpghistseq"));
  299. ds_main_subjlist.setColumn(e.row, "cpgnm", ds_main_subjprtllist.lookup("lev", '1', "stepnm"));
  300. ds_main_subjlist.setColumn(e.row, "ioflag", ds_main_subjprtllist.lookup("lev", '1', "ioflag"));
  301. ds_hidden_subjlist.clearData();
  302. ds_hidden_subjlist.addRow();
  303. ds_hidden_subjlist.copyRow(0, ds_main_subjlist, e.row);
  304. var findRow = ds_main_subjprtllist.findRow("lev", '1');
  305. if (findRow > -1)
  306. ds_main_subjprtllist.setColumn(findRow, "stepnm", ds_hidden_subjlist.getColumn(0, "subjno") + " " + ds_main_subjprtllist.lookup("lev", '1', "stepnm"));
  307. if ( ds_main_subjprtllist.rowcount > 0 ) {
  308. Div00.btn_savestep.enable = false;
  309. Div00.ipt_totstep.enable = false;
  310. } else {
  311. Div00.btn_savestep.enable = true;
  312. Div00.ipt_totstep.enable = true;
  313. }
  314. }
  315. function grd_subjlist_onmousewheel(obj:Grid, e:MouseWheelEventInfo)
  316. {
  317. obj.vscrollbar.pos = obj.vscrollbar.pos - e.amount;
  318. }
  319. function trv_prmsprcpsetlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  320. {
  321. if(e.row < 0 || e.col < 0) return;
  322. obj.setFocus();
  323. grdf_setSelectedCell(obj, e);
  324. obj.oncellclick.fireEvent(obj, new GridClickEventInfo());
  325. pmn_menu.trackPopup(e.screenX,e.screenY);
  326. }
  327. function trv_prmsprcpsetlist_cantreestatuschange(obj:Grid, e:GridTreeStatusEventInfo)
  328. {
  329. obj.userdata = 1;
  330. }
  331. function trv_prmsprcpsetlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  332. {
  333. // icon으로 tree를 컨트롤 하는 경우는 여기를 태우지 않는다.
  334. if(obj.userdata == 1) {
  335. obj.userdata = 0;
  336. return;
  337. }
  338. fReqSubjPrtlStepSet();
  339. var row = obj.getTreeRow(ds_main_subjprtllist.rowposition);
  340. if(obj.getTreeStatus(row) == 0)
  341. obj.setTreeStatus(row, true);
  342. obj.userdata = 0;
  343. }
  344. function Div00_btn_savestep_onclick(obj:Button, e:ClickEventInfo)
  345. {
  346. if ( utlf_isNull(ds_init.getColumn(0, "totstep")) || parseInt(ds_init.getColumn(0, "totstep")) == 0 ) {
  347. sysf_messageBox("총 회차를", "C001");
  348. return -1;
  349. } else if ( parseInt(ds_init.getColumn(0, "totstep")) >= 20 ) {
  350. sysf_messageBox("총 회차가 20 이 넘습니다.", "Q003");
  351. return -1;
  352. }
  353. ds_TXMMB08303.copyData(ds_hidden_subjlist);
  354. ds_TXMMB08303.addColumn("totstep", "INT");
  355. ds_TXMMB08303.setColumn(0, "totstep", ds_init.getColumn(0, "totstep"));
  356. var oParam = {};
  357. oParam.id = "TXMMB08303";
  358. oParam.service = "prcpbaseapp.PrcpClsMngt";
  359. oParam.method = "reqExeSavePrtlStep";
  360. oParam.inds = "req=ds_TXMMB08303";
  361. oParam.outds = "ds_main_subjprtllist=subjprtllist";
  362. oParam.async = false;
  363. tranf_submit(oParam); // 회차 자동생성.
  364. var findRow = ds_main_subjprtllist.findRow("lev", '1');
  365. if (findRow > -1)
  366. ds_main_subjprtllist.setColumn(findRow, "stepnm", ds_hidden_subjlist.getColumn(0, "subjno") + " " + ds_main_subjprtllist.lookup("lev", '1', "stepnm"));
  367. if ( ds_main_subjprtllist.rowcount > 0 )
  368. obj.enable = false;
  369. else
  370. obj.enable = true;
  371. }
  372. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  373. {
  374. eval(e.id + "()");
  375. }
  376. function pdiv_iptbox_ipt_setnm_onkeydown(obj:Edit, e:KeyEventInfo)
  377. {
  378. if(e.keycode == 13) {
  379. obj.updateToDataset();
  380. frmf_inputEnterKey(obj.parent.name + ".btn_cnfm", "onclick", new ClickEventInfo);
  381. }
  382. }
  383. function pdiv_iptbox_btn_cnfm_onclick(obj:Button, e:ClickEventInfo)
  384. {
  385. fClkBtnCnfm(obj);
  386. }
  387. function pdiv_iptbox_button3_onclick(obj:Button, e:ClickEventInfo)
  388. {
  389. obj.parent.ipt_setnm.setFocus();
  390. obj.parent.closePopup();
  391. }
  392. function pdiv_iptbox_oncloseup(obj:PopupDiv, e:EventInfo)
  393. {
  394. trv_prmsprcpsetlist.setFocus();
  395. }
  396. function pdiv_iptbox_onkeydown(obj:PopupDiv, e:KeyEventInfo)
  397. {
  398. if(e.keycode == 27) {
  399. obj.ipt_setnm.setFocus();
  400. obj.closePopup();
  401. }
  402. }
  403. /**
  404. * @desc : 임상시험프로토콜 스텝별 상세조회
  405. * @
  406. * @param :
  407. * @return :
  408. * @---------------------------------------------------
  409. */
  410. function fReqSubjPrtlStepSet(){
  411. var rowpos = ds_main_subjprtllist.rowposition;
  412. var levl = ds_main_subjprtllist.getColumn(rowpos, "lev");
  413. var setno = ds_main_subjprtllist.getColumn(rowpos, "setno");
  414. var settypecd = "T" // 임상시험프로토콜
  415. var setnm = ds_main_subjprtllist.getColumn(rowpos, "stepnm");
  416. iviewer1.ds_prmsprcpsetdetlset.setColumn(0, "setno" , setno);
  417. iviewer1.ds_prmsprcpsetdetlset.setColumn(0, "settypecd", settypecd);
  418. iviewer1.ds_prmsprcpsetdetlset.setColumn(0, "setnm" , setnm);
  419. iviewer1.fReqGetPrmsSet();
  420. }
  421. /**
  422. * @desc : 약속진단관리 폴더명을 입력할 InputBox를 보여줌.
  423. * @
  424. * @param :
  425. * @return :
  426. * @---------------------------------------------------
  427. */
  428. function fShowWndIptBox() {
  429. var arrCellRect = trv_prmsprcpsetlist.getCellRect(trv_prmsprcpsetlist.getTreeRow(ds_main_subjprtllist.rowposition), trv_prmsprcpsetlist.getCellPos());
  430. var XPOS = 6;
  431. var YPOS = 0;
  432. var clientY = arrCellRect.bottom + 12; // 시스템 좌표 구할 것이기 때문에 현재 위치 좌표만 구한다.
  433. if(clientY + trv_prmsprcpsetlist.position.top >= 720){ // 그리드 위치와 더해서 비교
  434. YPOS = arrCellRect.bottom - (pdiv_iptbox1.position.height + 36);
  435. }else{
  436. YPOS = clientY;
  437. }
  438. var nDivX = system.clientToScreenX(trv_prmsprcpsetlist, XPOS);
  439. var nDivY = system.clientToScreenY(trv_prmsprcpsetlist, YPOS);
  440. pdiv_iptbox1.trackPopup(nDivX, nDivY);
  441. }
  442. /**
  443. * @desc : 새폴더 추가
  444. * @
  445. * @param :
  446. * @return :
  447. * @---------------------------------------------------
  448. */
  449. function fAddSubjPrtlSet(){
  450. ds_iptbox.setColumn(0, "setnm", "");
  451. if(fSetPrtlFolder(ds_main_subjprtllist.rowposition, "i") != -1){
  452. fShowWndIptBox();
  453. }
  454. }
  455. /**
  456. * @desc : 폴더 삭제
  457. * @
  458. * @param :
  459. * @return :
  460. * @---------------------------------------------------
  461. */
  462. function fDelSubjPrtlSet(){
  463. if(fSetPrtlFolder(ds_main_subjprtllist.rowposition, "d") != -1){
  464. fSaveFolderSet();
  465. }
  466. iviewer1.fClrGridData();
  467. }
  468. /**
  469. * @desc : 폴더 이름 바꾸기
  470. * @
  471. * @param :
  472. * @return :
  473. * @---------------------------------------------------
  474. */
  475. function fUpdtPrtlSet(){
  476. var currow = ds_main_subjprtllist.rowposition;
  477. var foldernm = ds_main_subjprtllist.getColumn(currow, "stepnm");
  478. var refseq = ds_main_subjprtllist.getColumn(currow, "refseq");
  479. var subjno = ds_hidden_subjlist.getColumn(0, "subjno");
  480. if (refseq == 0 )
  481. foldernm = foldernm.replace(subjno, "").getTrim();
  482. else
  483. foldernm = foldernm.replace(refseq+"회", "").getTrim();
  484. ds_iptbox.setColumn(0, "setnm", foldernm);
  485. if(fSetPrtlFolder(currow, "u") != -1){
  486. fShowWndIptBox();
  487. }
  488. }
  489. /**
  490. * @desc : 폴더상태 변경 관련 세팅
  491. * @
  492. * @param :
  493. * @return :
  494. * @---------------------------------------------------
  495. */
  496. function fSetPrtlFolder(rowpos, status){
  497. var refseq = ds_main_subjprtllist.getColumn(rowpos, "refseq");
  498. var stepnm = ds_main_subjprtllist.getColumn(rowpos, "stepnm");
  499. if (status == "d") { //삭제일 경우.
  500. if (refseq == 0) {
  501. sysf_messageBox("선택한 폴더는 삭제", "E001");
  502. return -1;
  503. }
  504. var rtnval = sysf_messageBox("[" + stepnm + "]내의 모든 처방이 지워집니다. " + "[" + stepnm + "]폴더를", "Q001");
  505. if(rtnval == 7){
  506. return -1;
  507. }
  508. }
  509. ds_main_subjprtllist.setColumn(rowpos, "status", status);
  510. }
  511. /**
  512. * @desc : 폴더 저장 후, 저장된 폴더의 depth까지 펼친다
  513. * @
  514. * @param :
  515. * @return :
  516. * @authur : 오지훈 2007. 10. 21
  517. * @---------------------------------------------------
  518. */
  519. function fClkBtnCnfm(obj:Button){
  520. obj.parent.ipt_setnm.setFocus();
  521. obj.parent.closePopup();
  522. fSaveFolderSet();
  523. }
  524. /**
  525. * @desc : 폴더정보 변경된 것에 대한 세팅.
  526. * @
  527. * @param :
  528. * @return :
  529. * @---------------------------------------------------
  530. */
  531. function fSaveFolderSet(){
  532. var currow = ds_main_subjprtllist.rowposition;
  533. var stepnm = ds_iptbox.getColumn(0, "setnm");
  534. var cpgno = ds_main_subjprtllist.getColumn(currow, "cpgno");
  535. var refseq = ds_main_subjprtllist.getColumn(currow, "refseq");
  536. var status = ds_main_subjprtllist.getColumn(currow, "status");
  537. var rowposition;
  538. if ( status == "u" ) {
  539. if (refseq == 0 ){
  540. ds_hidden_subjlist.setColumn(0, "cpgnm", stepnm);
  541. ds_send_savedata_subj.copyData(ds_hidden_subjlist);
  542. } else {
  543. ds_main_subjprtllist.setColumn(currow, "stepnm", stepnm);
  544. ds_send_savedata_subjprtl.clearData();
  545. ds_send_savedata_subjprtl.addRow();
  546. ds_send_savedata_subjprtl.copyRow(0, ds_main_subjprtllist, currow);
  547. }
  548. rowposition = currow;
  549. } else if ( status == "i" ) {
  550. ds_main_subjprtllist.setColumn(currow, "stepno", ds_main_subjprtllist.getMax("stepno"));
  551. ds_main_subjprtllist.setColumn(currow, "refseq", ds_main_subjprtllist.getMax("refseq"));
  552. ds_main_subjprtllist.setColumn(currow, "stepnm", stepnm);
  553. ds_send_savedata_subjprtl.clearData();
  554. ds_send_savedata_subjprtl.addRow();
  555. ds_send_savedata_subjprtl.copyRow(0, ds_main_subjprtllist, currow);
  556. rowposition = ds_main_subjprtllist.rowcount;
  557. } else if ( status == "d" ) {
  558. ds_send_savedata_subjprtl.clearData();
  559. ds_send_savedata_subjprtl.addRow();
  560. ds_send_savedata_subjprtl.copyRow(0, ds_main_subjprtllist, currow);
  561. rowposition = -1;
  562. }
  563. var oParam = {};
  564. oParam.id = "TXMMB08302";
  565. oParam.service = "prcpbaseapp.PrcpClsMngt";
  566. oParam.method = "reqExeSaveStepNm";
  567. oParam.inds = "subj=ds_send_savedata_subj subjprtl=ds_send_savedata_subjprtl";
  568. oParam.outds = "ds_main_subjprtllist=subjprtllist";
  569. oParam.async = false;
  570. oParam.callback = "cf_TXMMB08302";
  571. tranf_submit(oParam);
  572. ds_main_subjprtllist.rowposition = rowposition;
  573. }
  574. function cf_TXMMB08302(sSvcId, nErrorCode, sErrorMsg) {
  575. if(nErrorCode < 0) return;
  576. var findRow = ds_main_subjprtllist.findRow("lev", '1');
  577. if (findRow > -1)
  578. ds_main_subjprtllist.setColumn(findRow, "stepnm", ds_hidden_subjlist.getColumn(0, "subjno") + " " + ds_main_subjprtllist.lookup("lev", '1', "stepnm"));
  579. }
  580. function trv_prmsprcpsetlist_ondrag(obj:Grid, e:GridDragEventInfo)
  581. {
  582. if(e.row < 0 || e.col < 0) return false;
  583. return true;
  584. }
  585. function trv_prmsprcpsetlist_ondragleave(obj:Grid, e:DragEventInfo)
  586. {
  587. g_prevmouserow = -1;
  588. }
  589. function trv_prmsprcpsetlist_ondragmove(obj:Grid, e:GridDragEventInfo)
  590. {
  591. if(e.row != g_prevmouserow)
  592. g_prevmouserow = e.row;
  593. }
  594. function trv_prmsprcpsetlist_ondrop(obj:Grid, e:GridDragEventInfo)
  595. {
  596. if(g_prevmouserow == -1) return false;
  597. fDropTrvItem(obj, e.row);
  598. g_prevmouserow = -1;
  599. }
  600. /**
  601. * @desc : Mouse Drag Over중 선택한 treeview item의 색깔 변경
  602. * @
  603. * @param :
  604. * @return :
  605. * @author : 오지훈 2007. 10. 30
  606. * @---------------------------------------------------
  607. */
  608. function fDragOverColorChng(currow){
  609. return (currow == g_prevmouserow) ? "#ccffff" : "#ffffff";
  610. }
  611. /**
  612. * @desc : Mouse Drop시 treeview item의 순서 변경
  613. * @
  614. * @param :
  615. * @return :
  616. * @author : 오지훈 2007. 10. 30
  617. * @---------------------------------------------------
  618. */
  619. function fDropTrvItem(obj:Grid, trgtindx){
  620. //선택된 아이템
  621. var srcindx = ds_main_subjprtllist.rowposition;
  622. var srcval = ds_main_subjprtllist.getColumn(srcindx, "setno");
  623. //드롭 위치의 아이템
  624. var trgtval = ds_main_subjprtllist.getColumn(trgtindx, "setno");
  625. if (trgtval == 0){
  626. sysf_messageBox("선택된 폴더로 이동", "E001");
  627. return;
  628. }
  629. ds_TXMMB08304.clearData();
  630. ds_TXMMB08304.addRow();
  631. ds_TXMMB08304.copyRow(0, ds_main_subjprtllist, srcindx);
  632. ds_TXMMB08304.setColumn(0, "srcindx", srcindx);
  633. ds_TXMMB08304.setColumn(0, "trgtindx", trgtindx);
  634. if (srcindx > trgtindx) {
  635. ds_TXMMB08304.setColumn(0, "indxkind", 2);
  636. } else if (srcindx < trgtindx) {
  637. ds_TXMMB08304.setColumn(0, "indxkind", 1);
  638. } else {
  639. return;
  640. }
  641. var oParam = {};
  642. oParam.id = "TXMMB08304";
  643. oParam.service = "prcpbaseapp.PrcpClsMngt";
  644. oParam.method = "reqExeSaveStepChange";
  645. oParam.inds = "req=ds_TXMMB08304";
  646. oParam.outds = "ds_main_subjprtllist=subjprtllist";
  647. oParam.async = false;
  648. tranf_submit(oParam);
  649. var findRow = ds_main_subjprtllist.findRow("lev", '1');
  650. if (findRow > -1)
  651. ds_main_subjprtllist.setColumn(findRow, "stepnm", ds_hidden_subjlist.getColumn(0, "subjno") + " " + ds_main_subjprtllist.lookup("lev", '1', "stepnm"));
  652. ds_main_subjprtllist.rowposition = trgtindx;
  653. }
  654. ]]></Script>
  655. </Form>
  656. </FDL>