cp_selComboPop.xfdl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.4">
  3. <TypeDefinition url="..\default_typedef.xml"/>
  4. <Form id="cp_selComboPop" classname="Uobj_selCombo_Popup" inheritanceid="" position="absolute 0 0 354 163" titletext="콤보 팝업(UserObject_Pop)" onload="cp_selComboPop_onload" style="background:#dcdcdcff;" onkillfocus="cp_selComboPop_onkillfocus" scrollbars="none">
  5. <Layouts>
  6. <Layout>
  7. <Grid id="Grid00" taborder="1" binddataset="ds_combo" scrollbars="autohorz" useinputpanel="false" oncellclick="Grid00_oncellclick" position="absolute 0 0 178 163" onmouseenter="Grid00_onmouseenter" onmouseleave="Grid00_onmouseleave" onmousemove="Grid_onmousemove" autosizebandtype="allband" onkeydown="Grid_onkeydown" onkeyup="Grid_onkeyup" style="border:1 solid #808080ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff;">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="175"/>
  12. </Columns>
  13. <Rows>
  14. <Row size="24"/>
  15. </Rows>
  16. <Band id="body">
  17. <Cell style="align:left;line:0 none #808080ff ;background:white;background2:white;selectbackground:#bbe0f9ff;"/>
  18. </Band>
  19. </Format>
  20. </Formats>
  21. </Grid>
  22. <Grid id="Grid01" taborder="2" binddataset="ds_combo2" scrollbars="autohorz" useinputpanel="false" oncellclick="Grid00_oncellclick" position="absolute 176 0 354 163" onmouseenter="Grid01_onmouseenter" onmouseleave="Grid01_onmouseleave" onmousemove="Grid_onmousemove" autosizebandtype="allband" onkeydown="Grid_onkeydown" onkeyup="Grid_onkeyup" style="border:1 solid #808080ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff;">
  23. <Formats>
  24. <Format id="default">
  25. <Columns>
  26. <Column size="175"/>
  27. </Columns>
  28. <Rows>
  29. <Row size="24"/>
  30. </Rows>
  31. <Band id="body">
  32. <Cell style="align:left;line:0 none #808080ff ;background:white;background2:white;selectbackground:#bbe0f9ff;"/>
  33. </Band>
  34. </Format>
  35. </Formats>
  36. </Grid>
  37. </Layout>
  38. </Layouts>
  39. <Objects>
  40. <Dataset id="ds_gridMulti" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" cancolumnchange="ds_gridMulti_cancolumnchange">
  41. <ColumnInfo>
  42. <Column id="GROUP_CD" type="STRING" size="20"/>
  43. <Column id="DETAIL_CODE" type="STRING" size="20"/>
  44. <Column id="DETAIL_NAME" type="STRING" size="50"/>
  45. <Column id="DETAIL_CODE_NAME" type="STRING" size="73"/>
  46. <Column id="DETAIL_ETC1" type="STRING" size="50"/>
  47. <Column id="DETAIL_ETC2" type="STRING" size="50"/>
  48. <Column id="DETAIL_ETC3" type="STRING" size="50"/>
  49. <Column id="DETAIL_ETC4" type="STRING" size="50"/>
  50. <Column id="DETAIL_ETC5" type="STRING" size="50"/>
  51. <Column id="DETAIL_ETC6" type="STRING" size="50"/>
  52. <Column id="DETAIL_ETC7" type="STRING" size="50"/>
  53. <Column id="DETAIL_ETC8" type="STRING" size="50"/>
  54. <Column id="DETAIL_ETC9" type="STRING" size="50"/>
  55. <Column id="DETAIL_ETC10" type="STRING" size="50"/>
  56. <Column id="_chk" type="INT" size="10"/>
  57. <Column id="xRowStatusType" type="STRING" size="1"/>
  58. </ColumnInfo>
  59. </Dataset>
  60. <Dataset id="ds_combo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  61. <Dataset id="ds_combo2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  62. </Objects>
  63. <Bind/>
  64. <Script type="xscript4.0"><![CDATA[var lv_codeCol;
  65. var lv_dataCol;
  66. /****************************************************************************************
  67. * Description : 팝업에서 init 값 설정
  68. * Argument : sDataSetXml - String combo inner dataset
  69. sCodeCol - codecolumn
  70. sDataCol - datacolumn
  71. sCode - codevalue
  72. sData - datavalue
  73. * return : none
  74. ****************************************************************************************/
  75. function lf_setDataSet(sDataSetXml, sCodeCol, sDataCol, sCode, sData, bSearch, sFilter)
  76. {
  77. Grid00.useselcolor = false;
  78. Grid01.useselcolor = false;
  79. ds_gridMulti.loadXML(sDataSetXml);
  80. Grid00.setCellProperty("body",0,"text","bind:"+sDataCol);
  81. Grid01.setCellProperty("body",0,"text","bind:"+sDataCol);
  82. ds_gridMulti.filter("");
  83. //trace("bSearch::"+bSearch + "::" +sFilter);
  84. if(bSearch){
  85. //trace("String("+sDataCol+").substr(0,String("+sFilter+").length).indexOf("+sFilter+")>=0");
  86. //if(!utlf_isNull(sFilter)) ds_gridMulti.filter("String("+sDataCol+").indexOf('"+sFilter+"')>=0");
  87. if(!utlf_isNull(sFilter)) ds_gridMulti.filter("String("+sDataCol+").substr(0,String('"+sFilter+"').length).indexOf('"+sFilter+"')>=0");
  88. }
  89. var nFrow = -1;
  90. if(!utlf_isNull(sCode) && !utlf_isNull(sData)){
  91. nFrow = ds_gridMulti.findRow(sCodeCol,sCode);
  92. }
  93. lv_codeCol = sCodeCol;
  94. lv_dataCol = sDataCol;
  95. var cnt = ds_gridMulti.rowcount;
  96. var mod = cnt%2;
  97. var cal = Math.floor(cnt/2);
  98. if(cnt <=2) {
  99. var nHeight = 24;
  100. }else{
  101. var nHeight = 24*(cal+mod);
  102. }
  103. Grid00.position.height = nHeight+2;
  104. this.position.height = nHeight+12;
  105. Grid01.position.height = nHeight+2;
  106. var bas = cal-1;
  107. if(mod != 0){
  108. bas = cal;
  109. }
  110. ds_combo.copyData(ds_gridMulti);
  111. ds_combo.clearData();
  112. ds_combo2.copyData(ds_combo);
  113. for(var i=0; i<ds_gridMulti.rowcount; i++){
  114. if( i <= bas){
  115. var nAddRow = ds_combo.addRow();
  116. ds_combo.copyRow(nAddRow,ds_gridMulti,i);
  117. }else{
  118. var nAddRow2 = ds_combo2.addRow();
  119. ds_combo2.copyRow(nAddRow2,ds_gridMulti,i);
  120. }
  121. }
  122. var addHeight = 0;
  123. Grid00.autosizingtype = "col";
  124. Grid01.autosizingtype = "col";
  125. if(Grid00.hscrollbar.visible) addHeight = 10;
  126. if(Grid01.hscrollbar.visible) addHeight = 10;
  127. Grid00.position.height = Grid00.position.height + addHeight;
  128. Grid01.position.height = Grid01.position.height + addHeight;
  129. var Grid0Size = Grid00.getRealColFullSize("body");
  130. var Grid1Size = Grid01.getRealColFullSize("body");
  131. //기본크기보다 작거나 같으면 크기 고정
  132. if(Grid0Size>173)
  133. Grid00.autosizingtype = "col";
  134. else
  135. Grid00.autosizingtype = "none";
  136. if(Grid1Size>173)
  137. Grid01.autosizingtype = "col";
  138. else
  139. Grid01.autosizingtype = "none";
  140. if(nFrow == -1){
  141. Grid00.useselcolor = true;
  142. Grid00.setFocus();
  143. return;
  144. }
  145. if( nFrow <= bas){
  146. Grid00.useselcolor = true;
  147. if(nFrow == -1)
  148. ds_combo.rowposition = 0;
  149. else
  150. ds_combo.rowposition = nFrow;
  151. Grid00.setFocus();
  152. }else{
  153. Grid01.useselcolor = true;
  154. ds_combo2.rowposition = nFrow - (ds_combo.rowcount);
  155. Grid01.setFocus();
  156. }
  157. }
  158. /****************************************************************************************
  159. * Description : popup div killfocus event
  160. ****************************************************************************************/
  161. function cp_selComboPop_onkillfocus(obj:Form, e:KillFocusEventInfo)
  162. {
  163. closePopup();
  164. }
  165. /****************************************************************************************
  166. * Description : grid select click event
  167. ****************************************************************************************/
  168. function Grid00_oncellclick(obj:Grid, e:GridClickEventInfo)
  169. {
  170. var objDs = eval(obj.binddataset);
  171. var strCodeVal = objDs.getColumn(e.row,lv_codeCol);
  172. var strDataVal = objDs.getColumn(e.row,lv_dataCol);
  173. closePopup(strCodeVal+"^"+strDataVal);
  174. }
  175. /****************************************************************************************
  176. * Description : grid mouseenter event
  177. ****************************************************************************************/
  178. function Grid00_onmouseenter(obj:Grid, e:MouseEventInfo)
  179. {
  180. Grid00.useselcolor = true;
  181. Grid01.useselcolor = false;
  182. obj.setFocus();
  183. }
  184. /****************************************************************************************
  185. * Description : grid mouseenter event
  186. ****************************************************************************************/
  187. function Grid01_onmouseenter(obj:Grid, e:MouseEventInfo)
  188. {
  189. Grid00.useselcolor = false;
  190. Grid01.useselcolor = true;
  191. obj.setFocus();
  192. }
  193. /****************************************************************************************
  194. * Description : grid mousemove event
  195. ****************************************************************************************/
  196. function Grid_onmousemove(obj:Grid, e:GridMouseEventInfo)
  197. {
  198. var obj2;
  199. if(obj.name == "Grid01")
  200. obj2 = Grid00;
  201. else
  202. obj2 = Grid01;
  203. obj.useselcolor = true;
  204. obj2.useselcolor = false;
  205. obj.setFocus();
  206. var objDs = eval(obj.binddataset);
  207. if(e.row > -1) objDs.rowposition = e.row;
  208. }
  209. /****************************************************************************************
  210. * Description : Grid keyDown event
  211. ****************************************************************************************/
  212. function Grid_onkeydown(obj:Grid, e:KeyEventInfo)
  213. {
  214. var objDs = eval(obj.binddataset);
  215. if(e.keycode == 39 && obj.name == "Grid00"){
  216. var objDs2 = ds_combo2;
  217. if(objDs2.rowcount != 0){
  218. objDs.rowposition = objDs.rowposition-1;
  219. if(objDs2.rowcount-1 >= objDs.rowposition+1){
  220. objDs2.rowposition = objDs.rowposition+1;
  221. Grid01.useselcolor = true;
  222. Grid00.useselcolor = false;
  223. }else{
  224. objDs2.rowposition = objDs2.rowcount-1;
  225. Grid01.useselcolor = true;
  226. Grid00.useselcolor = false;
  227. }
  228. Grid01.setFocus();
  229. }else{
  230. Grid00.setFocus();
  231. }
  232. }else if(e.keycode == 37 && obj.name == "Grid01"){
  233. objDs.rowposition = objDs.rowposition-1;
  234. var objDs2 = ds_combo;
  235. if(objDs2.rowcount-1 >= objDs.rowposition+1){
  236. objDs2.rowposition = objDs.rowposition+1;
  237. Grid01.useselcolor = false;
  238. Grid00.useselcolor = true;
  239. }else{
  240. objDs2.rowposition = objDs2.rowcount-1;
  241. Grid01.useselcolor = false;
  242. Grid00.useselcolor = true;
  243. }
  244. Grid00.setFocus();
  245. }
  246. }
  247. function Grid_onkeyup(obj:Grid, e:KeyEventInfo)
  248. {
  249. if(e.keycode == 13){
  250. var objDs = eval(obj.binddataset);
  251. var strCodeVal = objDs.getColumn(objDs.rowposition,lv_codeCol);
  252. var strDataVal = objDs.getColumn(objDs.rowposition,lv_dataCol);
  253. closePopup(strCodeVal+"^"+strDataVal);
  254. }
  255. }
  256. ]]></Script>
  257. </Form>
  258. </FDL>