comm_ds.xjs 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : HIT
  4. * Job Name :
  5. * File Name : comm_ds.xjs
  6. * Creator : 임준호
  7. * Make Date : 2014-02-05
  8. *
  9. * Description : dataset 관련 공통 스트립트
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-02-18 HIT
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. /********************************************************************************************************************/
  18. /************************* Dataset 관련 함수 ***********************************************************************/
  19. /********************************************************************************************************************/
  20. // dsf_createDs : 데이터셋을 동적으로 생성한다.
  21. // dsf_createDsRow : key:value 형태의 데이터들을 Single Row를 가지는 데이터셋으로 생성해준다.
  22. // dsf_copyDs : dataset을 복사한다.
  23. // dsf_copyColInfo : dataset의 column을 복사한다.
  24. // (삭제)dsf_copyNodeListType : 목적 데이터에 소스 데이터을을 mdoe방식에 따라 copy 함
  25. // (삭제)dsf_copyNodesetType : 목적 데이터셋에 소스 데데이터셋을 mdoe방식에 따라 copy 함.
  26. // dsf_copyDsWithPostfix : 목적 노드의 자식 노드를 삭제후 소스 노드의 자식 노드에 postfix의 노드네임을 추가 하여 copy
  27. // dsf_copyDsWithPrefix : 목적 노드의 자식 노드를 삭제후 소스 노드의 자식 노드에 Prefix의 노드네임을 앞에 추가 하여 copy
  28. // dsf_deleteSelectedRows : 선택된 행들을 모두 지우거나 deleted 상태로 마크
  29. // dsf_datasetUpdateChk : 데이터셋이 변경 됬는지 체크
  30. // dsf_getObjFrmDsRow : 데이터셋의 특정 Row를 Object Literal로 값으로 반환 (신규 2014-05-27)
  31. // dsf_setDsRowFrmObj : Object Literal의 값을 데이터셋의 특정 Row의 각Column명과 메칭하여 값 설정 (신규 2014-05-27)
  32. // dsf_setDefaultVal : dataset의 특정컬럼에 Default 값을 넣어준다. (신규 2014-08-12)
  33. // dsf_setFixVal : dataset의 특정컬럼에 고정값을 넣어준다. (신규 2016-03-10)
  34. // dsf_deleteDs : dataset윽 삭제한다. (신규 2014-08.19)
  35. // dsf_getDsCSV : Dataset을 CSV로 반환한다. (신규 2014.09.24)
  36. // dsf_setCSVToDs : CSV 데이터를 Dataset 으로 생성한다. (신규 2014.09.24)
  37. // dsf_addDsItem : 데이타셋 아이템 추가 함수 (신규 2014.12.19)
  38. // dsf_setTypeFormat : 데이타셋의 컬럼별 타입과 포맷을 설정하는 함수 (신규 2015.01.19)
  39. // dsf_changeBind : 컴포넌트에 Bind 되어 있는 값을 변경 한다. (신규 2015.01.28)
  40. // dsf_deleteColumn : Dataset의 특정컬럼을 제거한다. (신규 2016.03.10)
  41. // dsf_getColumnNullToEmpty : dataset의 특정컬럼 조회시 컬럼이 없거나 값일 없을 경우 ""값을 리턴해준다. (신규 2016.11.25)
  42. /********************************************************************************************************************/
  43. /************************* 파일첨부 관련 함수 *********************************************************************/
  44. /********************************************************************************************************************/
  45. // dsf_writeFileToDs : dataset의 특정컬럼에 주어진 VirtualFile 객체의 내용을 BLOB 형식으로 write 한다.
  46. // dsf_readFileFromDs : dataset의 특정컬럼으로부터 BLOCB 형식의 데이터를 읽어와서 로컬파일시스템에 하나의 파일로 저장한다.
  47. /**********************************************************************************
  48. * 함수명 : dsf_createDs
  49. * 설 명 : 데이터셋을 동적으로 생성한다.
  50. * argument : sDsName (dataset ID)
  51. * : arrColInfo (dataset 컬럼 정보
  52. * : [{col:"userid", type:"string", size:256}, {col:"usernm", type:"string", size:256}]
  53. * : type과 size는 생략가능하다.
  54. * return Type : String - sDsName
  55. * 작성자 : 임준호
  56. **********************************************************************************/
  57. function dsf_createDs(sDsName, arrColInfo, bUseClientLayout){
  58. //arrColInfo = [{col: "userid", type:"string", size:256}, {col: "usernm", type:"string", size:256}]
  59. if(this.objects[sDsName] != null){
  60. this.objects[sDsName].clear();
  61. }else{
  62. var objDs = new Dataset(sDsName);
  63. this.addChild(sDsName, objDs);
  64. objDs.name = sDsName;
  65. }
  66. //var objDs = new Dataset;
  67. //this.addChild(sDsName, objDs);
  68. //useClientLayout 설정
  69. if(!utlf_isNull(bUseClientLayout)){
  70. this.objects[sDsName].useclientlayout = bUseClientLayout;
  71. }
  72. //컴럼 구성
  73. if(!utlf_isNull(arrColInfo)){
  74. for(var i in arrColInfo){
  75. if(arrColInfo[i].type == null) arrColInfo[i].type = "String";
  76. if(arrColInfo[i].size == null) arrColInfo[i].size = 256;
  77. this.objects[sDsName].addColumn(arrColInfo[i].col, arrColInfo[i].type, arrColInfo[i].size);
  78. }
  79. }
  80. return sDsName;
  81. }
  82. /**********************************************************************************
  83. * 함수명 : dsf_createDsRow
  84. * 설 명 : key:value 형태의 데이터들을 Single Row를 가지는 데이터셋으로 생성해준다.
  85. * argument : sDsName (dataset ID)
  86. * : objParam (dataset 컬럼 & Value)
  87. * : 작성예)
  88. * : <1 column>
  89. * : {col:"userid", type:"string", size:256, val:"test"}
  90. * : <2 column 이상 (대괄호 주의)>
  91. * : [{col:"userid", type:"string", size:256, val:"test"}, {col:"usernm", type:"string", size:256, val:"테스트"}]
  92. * : type(default:String)과 size(default:256)는 생략가능하다.
  93. * return Type : String - sDsName
  94. * 작성자 : 임준호
  95. **********************************************************************************/
  96. function dsf_createDsRow(sDsName, objParam, bUseClientLayout){
  97. //var objParam = utlf_args2Object(sParam);
  98. if(this.objects[sDsName] != null){
  99. this.objects[sDsName].clear();
  100. }else{
  101. var objDs = new Dataset;
  102. this.addChild(sDsName, objDs);
  103. objDs.name = sDsName;
  104. }
  105. this.objects[sDsName].addRow();
  106. //컬럼, ROW 구성
  107. if(utlf_isNull(objParam.length)){
  108. //컬럼이 1개일경우, 단일 literal로 넘어왔을때
  109. if(objParam.type == null) objParam.type = "String";
  110. if(objParam.size == null) objParam.size = 256;
  111. if(utlf_isNull(objParam.val) || objParam.val == "undefined") objParam.val = "";
  112. this.objects[sDsName].addColumn(objParam.col, objParam.type, objParam.size);
  113. this.objects[sDsName].setColumn(0, objParam.col, objParam.val);
  114. }else{
  115. //컬럼이 2개 이상일 경우, array로 넘어왔을때
  116. for(var i in objParam){
  117. //trace("undefined="+utlf_transNullToEmpty(objParam[i].val));
  118. if(objParam[i].type == null) objParam[i].type = "String";
  119. if(objParam[i].size == null) objParam[i].size = 256;
  120. if(utlf_isNull(objParam[i].val) || objParam[i].val == "undefined") objParam[i].val = "";
  121. this.objects[sDsName].addColumn(objParam[i].col, objParam[i].type, objParam[i].size);
  122. this.objects[sDsName].setColumn(0, objParam[i].col, objParam[i].val);
  123. //trace(objParam[i].col+"="+objParam[i].val);
  124. //trace(utlf_transNullToEmpty(objParam[i].val));
  125. }
  126. }
  127. //useClientLayout 설정
  128. if(!utlf_isNull(bUseClientLayout)){
  129. this.objects[sDsName].useclientlayout = bUseClientLayout;
  130. }
  131. //trace(eval(sDsName).saveXML());
  132. return sDsName;
  133. }
  134. //[{col:"userid", val:"test"}, {col:"usernm", val:"테스트"}]
  135. function dsf_addRow(objDs:Dataset, arrParam){
  136. var nRowNum = objDs.addRow();
  137. for(var i in arrParam){
  138. objDs.setColumn(nRowNum, arrParam[i].col, arrParam[i].val);
  139. }
  140. }
  141. /**********************************************************************************
  142. * 함수명 : dsf_copyDs
  143. * 설 명 : dataset을 복사한다.
  144. * argument : dsDest - 목적 dataset
  145. * dsSrc - 소스 dataset
  146. * sMode - copy방식 (replace:교체, after:dest ds 마지막행 이후에 추가, before:dest ds 첫행에 삽입
  147. * return Type : Number - copy row count
  148. * 작성자 : 임준호
  149. **********************************************************************************/
  150. function dsf_copyDs(dsDest:Dataset, dsSrc:Dataset, sMode:String){
  151. var nCopyCount = 0;
  152. try{
  153. if(sMode === "after"){
  154. //append
  155. //같은 col id만 추가한다.
  156. nCopyCount = dsDest.appendData(dsSrc, true);
  157. }else if(sMode === "before"){
  158. //insert 0
  159. var nSrcRowCnt = dsSrc.rowcount;
  160. var nSrcColCnt = dsSrc.colcount;
  161. for(var i=(nSrcRowCnt-1) ; i>=0 ; i--){
  162. dsDest.insertRow(0);
  163. for(var j=0 ; j<nSrcColCnt ; j++){
  164. var sSrcColId = dsSrc.getColID(j);
  165. if(!utlf_isNull(dsDest.getColumnInfo(sSrcColId))){
  166. dsDest.setColumn(0, sSrcColId, dsSrc.getColumn(i, sSrcColId));
  167. }
  168. }
  169. dsDest.setRowType(Dataset.ROWTYPE_NORMAL);
  170. nCopyCount++;
  171. }
  172. }else{
  173. //replace
  174. nCopyCount = dsDest.copyData(dsSrc);
  175. }
  176. }catch(e){
  177. nCopyCount = 0;
  178. sysf_catchTrace(e);
  179. }
  180. return nCopyCount;
  181. }
  182. /**********************************************************************************
  183. * 함수명 : dsf_copyColInfo
  184. * 설 명 : dataset의 column을 복사한다.
  185. * argument : dsDest - 목적 dataset
  186. * dsSrc - 소스 dataset
  187. * bReplace - 목적 dataset의 기존 col정보 유지 여부
  188. * return Type :
  189. * 작성자 : 임준호
  190. **********************************************************************************/
  191. function dsf_copyColInfo(dsDest:Dataset, dsSrc:Dataset, bReplace){
  192. var nSrcColCnt = dsSrc.colcount;
  193. if(utlf_isNull(bReplace)) bReplace = true;
  194. if(bReplace) dsDest.clear();
  195. for(var j=0 ; j<nSrcColCnt ; j++){
  196. var sSrcColId = dsSrc.getColID(j);
  197. var objSrcColInfo = dsSrc.getColumnInfo(sSrcColId);
  198. var objDestColIno = new ColumnInfo(objSrcColInfo.name, objSrcColInfo.type, objSrcColInfo.size);
  199. dsDest.addColumnInfo(sSrcColId, objDestColIno);
  200. }
  201. }
  202. /**********************************************************************************
  203. * 함수명 : dsf_copyNodeListType (->dsf_copyDs사용)
  204. * 설명 : 목적 데이터셋에 소스 데이터셋을을 mdoe방식에 따라 copy 함
  205. * argument :
  206. Object [destModel] - 목적 dataset
  207. Object [srcModel] - 원본 dataset
  208. String [sMode] - copy 방식( "replace" | "after" | "before" )
  209. * return Type : none
  210. * 작성자 : tobesoft
  211. **********************************************************************************/
  212. // function dsf_copyNodeListType(destDS, srcDs, sMode) {
  213. //
  214. // if(srcDs.getRowCount() == 0) return;
  215. //
  216. // if( sMode != "before" ) {
  217. // if( sMode == "replace" || sMode == null ) {
  218. // destDS.clearData();
  219. // }
  220. //
  221. // var nRow;
  222. // for( var i=0; i < srcDs.getRowCount(); i++ ) {
  223. // nRow = destDS.addRow();
  224. // destDS.copyRow(nRow, srcDs, i);
  225. // }
  226. // }
  227. // else
  228. // {
  229. // for( var i=0; i < srcDs.getRowCount(); i++ ) {
  230. // nRow = destDS.insertRow(0);
  231. // destDS.copyRow(nRow, srcDs, i);
  232. // }
  233. // }
  234. // }
  235. /**********************************************************************************
  236. * 함수명 : dsf_copyNodesetType (삭제)
  237. * 설명 : 목적 노드데이터에 소스 데이터을 mdoe방식에 따라 copy 함.
  238. * argument :
  239. Object [destModel] - 목적 dataset
  240. Object [srcModel] - 원본 dataset
  241. String [sMode] - copy 방식( "replace" | "after" | "before" )
  242. * return Type : none
  243. * 작성자 : tobesoft
  244. **********************************************************************************/
  245. // function dsf_copyNodesetType( destDS, srcDs, sMode) {
  246. //
  247. // if(srcDs.getRowCount() == 0) return;
  248. //
  249. // if( sMode != "before" ) {
  250. // if( sMode == "replace" || sMode == null ) {
  251. // destDS.clear();
  252. // }
  253. //
  254. // destDS.copyData(srcDs);
  255. // }
  256. // else
  257. // {
  258. // for( var i=0; i < srcDs.getRowCount(); i++ ) {
  259. // nRow = destDS.insertRow(0);
  260. // destDS.copyRow(nRow, srcDs, i);
  261. // }
  262. // }
  263. // }
  264. /**********************************************************************************
  265. * 함수명 : dsf_copyDsWithPostfix
  266. * 설명 : 목적 노드의 자식 노드를 삭제후 소스 노드의 자식 노드에 postfix의 노드네임을 추가 하여 copy
  267. * argument :
  268. destDS - 목적 dataset
  269. srcDS - 원본 dataset
  270. postfix -추가 할 노드 네임
  271. * return Type : none
  272. * 작성자 : tobesoft
  273. **********************************************************************************/
  274. function dsf_copyDsWithPostfix(destDS, srcDS, postfix) {
  275. destDS.clear();
  276. destDS.loadXML(srcDS.saveXML(srcDS,"a"));
  277. var objCol = new Object();
  278. var sColID = "";
  279. for(var i=0; i < srcDS.getColCount(); i++)
  280. {
  281. sColID = srcDS.getColID(i);
  282. destDS.updateColID(sColID, sColID+postfix);
  283. }
  284. destDS.applyChange();
  285. }
  286. /**********************************************************************************
  287. * 함수명 : dsf_copyDsWithPrefix
  288. * 설명 : 목적 노드의 자식 노드를 삭제후 소스 노드의 자식 노드에 Prefix의 노드네임을 추가 하여 copy
  289. * argument :
  290. destDS - 목적 dataset
  291. srcDS - 원본 dataset
  292. Prefix -추가 할 노드 네임
  293. * return Type : none
  294. * 작성자 : tobesoft
  295. **********************************************************************************/
  296. function dsf_copyDsWithPrefix(destDS, srcDS, prefix) {
  297. destDS.clear();
  298. destDS.loadXML(srcDS.saveXML(srcDS,"a"));
  299. var objCol = new Object();
  300. var sColID = "";
  301. for(var i=0; i < srcDS.getColCount(); i++)
  302. {
  303. sColID = srcDS.getColID(i);
  304. destDS.updateColID(sColID, prefix+sColID);
  305. }
  306. destDS.applyChange();
  307. }
  308. /**********************************************************************************
  309. * 함수명 : dsf_deleteSelectedRows
  310. * 설명 : 선택된 행들을 모두 지우거나 deleted 상태로 마크
  311. * argument : Object grd - 그리드 객체
  312. Boolean markonly - true이면 지우지 않고 상태만 delete 상태로 변경
  313. * return Type : none
  314. * 작성자 : tobesoft
  315. **********************************************************************************/
  316. function dsf_deleteSelectedRows(grd,markonly) {
  317. var rowIdx;
  318. var bindDs = eval(grd.binddataset);
  319. var arrSelected = new Array();
  320. var sSelectType = grd.selecttype;
  321. if(sSelectType == "row" || sSelectType == "currow" || sSelectType == "cell")
  322. {
  323. arrSelected[0] = bindDs.rowposition;
  324. }
  325. else
  326. {
  327. for(var i =0; i < bindDs.getRowCount(); i++)
  328. {
  329. //선택된 행인지 체크
  330. if(bindDs.getSelect(i) == true)
  331. {
  332. arrSelected.push(i);
  333. }
  334. }
  335. }
  336. if (arrSelected.length > 0) {
  337. if (markonly == true) { // mark delete row 상태만 변경
  338. for(var k = arrSelected.length -1; k >= 0; k--)
  339. {
  340. if(bindDs.getRowType(arrSelected[k]) == 2) //추가된 행이면
  341. {
  342. bindDs.deleteRow(arrSelected[k]);
  343. }
  344. else
  345. {
  346. bindDs.updatecontrol = false;
  347. bindDs.setRowType(arrSelected[k], "D");
  348. bindDs.updatecontrol = true;
  349. }
  350. }
  351. }
  352. else //row 삭제
  353. {
  354. for(var k = arrSelected.length -1; k >= 0; k--)
  355. {
  356. //bindDs.updatecontrol = false;
  357. bindDs.deleteRow(arrSelected[k]);
  358. //bindDs.updatecontrol = true;
  359. }
  360. }
  361. }
  362. }
  363. /**********************************************************************************
  364. * 함수명 : dsf_datasetUpdateChk
  365. * 설명 : 데이터셋이 변경 됬는지 체크
  366. * argument : Object objDs - 데이터셋
  367. * return Type : Boolean : true - 데이터셋 업데이트 됨, false - 데이터셋 변경 없음
  368. * 작성자 : tobesoft
  369. **********************************************************************************/
  370. function dsf_datasetUpdateChk(objDs)
  371. {
  372. var rowCnt,i,j;
  373. var rowType;
  374. // 삭제된 Row값 유무체크.
  375. if(objDs.getDeletedRowCount()>0){
  376. return true;
  377. }
  378. if( objDs.getCaseCount("getRowType(rowidx)==2 || getRowType(rowidx)==4 || getRowType(rowidx)==8")>0 ) return true;
  379. return false;
  380. }
  381. /**********************************************************************************
  382. * 함수명 : dsf_getObjFrmDsRow
  383. * 설명 : 데이터셋의 특정 Row를 Object Literal로 값으로 반환
  384. * argument : Dataset : ds - 대상 데이터셋, Number : cr - 복사할 대상 행.
  385. * return Type : Object
  386. * 작성자 : tobesoft
  387. **********************************************************************************/
  388. function dsf_getObjFrmDsRow( ds:Dataset, cr:Number ) {
  389. var cols = ds.getColCount();
  390. var objDs = new Object();
  391. var fildNm = "";
  392. if( ds.rowcount <= cr ) return objDs;
  393. for(var i=0; i<cols; i++) {
  394. fildNm = ds.getColID(i);
  395. objDs[fildNm] = ds.getColumn(cr, fildNm);
  396. }
  397. return objDs;
  398. }
  399. /**********************************************************************************
  400. * 함수명 : dsf_setDsRowFrmObj
  401. * 설명 : Object Literal의 값을 데이터셋의 특정 Row의 각Column명과 메칭하여 값 설정
  402. * argument : Dataset : ds - 대상 데이터셋, Object : obj - 복사할 Object, Number : cr - 복사할 대상 행.
  403. * return Type : Boolean : true - 데이터셋 업데이트 됨, false - 데이터셋 변경 없음
  404. * 작성자 : tobesoft
  405. **********************************************************************************/
  406. function dsf_setDsRowFrmObj( ds:Dataset, obj:Object, cr:Number) {
  407. var cols = ds.getColCount();
  408. var objDs = obj;
  409. var fildNm = "";
  410. if( ds.rowcount <= cr ) return false;
  411. for(var i=0; i<cols; i++) {
  412. fildNm = ds.getColID(i);
  413. if( typeof(objDs[fildNm]) != "undefined" ) {
  414. ds.setColumn(cr, fildNm, objDs[fildNm]);
  415. }
  416. }
  417. return true;
  418. }
  419. /********************************************************************************************************************/
  420. /************************* 파일첨부 관련 함수 *********************************************************************/
  421. /********************************************************************************************************************/
  422. var dsfgv_mimetype = {};
  423. dsfgv_mimetype['x3d'] = 'application/vnd.hzn-3d-crossword';
  424. dsfgv_mimetype['3gp'] = 'video/3gpp';
  425. dsfgv_mimetype['3g2'] = 'video/3gpp2';
  426. dsfgv_mimetype['mseq'] = 'application/vnd.mseq';
  427. dsfgv_mimetype['pwn'] = 'application/vnd.3m.post-it-notes';
  428. dsfgv_mimetype['plb'] = 'application/vnd.3gpp.pic-bw-large';
  429. dsfgv_mimetype['psb'] = 'application/vnd.3gpp.pic-bw-small';
  430. dsfgv_mimetype['pvb'] = 'application/vnd.3gpp.pic-bw-var';
  431. dsfgv_mimetype['tcap'] = 'application/vnd.3gpp2.tcap';
  432. dsfgv_mimetype['7z'] = 'application/x-7z-compressed';
  433. dsfgv_mimetype['abw'] = 'application/x-abiword';
  434. dsfgv_mimetype['ace'] = 'application/x-ace-compressed';
  435. dsfgv_mimetype['acc'] = 'application/vnd.americandynamics.acc';
  436. dsfgv_mimetype['acu'] = 'application/vnd.acucobol';
  437. dsfgv_mimetype['atc'] = 'application/vnd.acucorp';
  438. dsfgv_mimetype['adp'] = 'audio/adpcm';
  439. dsfgv_mimetype['aab'] = 'application/x-authorware-bin';
  440. dsfgv_mimetype['aam'] = 'application/x-authorware-map';
  441. dsfgv_mimetype['aas'] = 'application/x-authorware-seg';
  442. dsfgv_mimetype['air'] = 'application/vnd.adobe.air-application-installer-package+zip';
  443. dsfgv_mimetype['swf'] = 'application/x-shockwave-flash';
  444. dsfgv_mimetype['fxp'] = 'application/vnd.adobe.fxp';
  445. dsfgv_mimetype['pdf'] = 'application/pdf';
  446. dsfgv_mimetype['ppd'] = 'application/vnd.cups-ppd';
  447. dsfgv_mimetype['dir'] = 'application/x-director';
  448. dsfgv_mimetype['xdp'] = 'application/vnd.adobe.xdp+xml';
  449. dsfgv_mimetype['xfdf'] = 'application/vnd.adobe.xfdf';
  450. dsfgv_mimetype['aac'] = 'audio/x-aac';
  451. dsfgv_mimetype['ahead'] = 'application/vnd.ahead.space';
  452. dsfgv_mimetype['azf'] = 'application/vnd.airzip.filesecure.azf';
  453. dsfgv_mimetype['azs'] = 'application/vnd.airzip.filesecure.azs';
  454. dsfgv_mimetype['azw'] = 'application/vnd.amazon.ebook';
  455. dsfgv_mimetype['ami'] = 'application/vnd.amiga.ami';
  456. dsfgv_mimetype['apk'] = 'application/vnd.android.package-archive';
  457. dsfgv_mimetype['cii'] = 'application/vnd.anser-web-certificate-issue-initiation';
  458. dsfgv_mimetype['fti'] = 'application/vnd.anser-web-funds-transfer-initiation';
  459. dsfgv_mimetype['atx'] = 'application/vnd.antix.game-component';
  460. dsfgv_mimetype['mpkg'] = 'application/vnd.apple.installer+xml';
  461. dsfgv_mimetype['aw'] = 'application/applixware';
  462. dsfgv_mimetype['les'] = 'application/vnd.hhe.lesson-player';
  463. dsfgv_mimetype['swi'] = 'application/vnd.aristanetworks.swi';
  464. dsfgv_mimetype['s'] = 'text/x-asm';
  465. dsfgv_mimetype['atomcat'] = 'application/atomcat+xml';
  466. dsfgv_mimetype['atomsvc'] = 'application/atomsvc+xml';
  467. dsfgv_mimetype['atom'] = 'application/atom+xml';
  468. dsfgv_mimetype['ac'] = 'application/pkix-attr-cert';
  469. dsfgv_mimetype['aif'] = 'audio/x-aiff';
  470. dsfgv_mimetype['avi'] = 'video/x-msvideo';
  471. dsfgv_mimetype['aep'] = 'application/vnd.audiograph';
  472. dsfgv_mimetype['dxf'] = 'image/vnd.dxf';
  473. dsfgv_mimetype['dwf'] = 'model/vnd.dwf';
  474. dsfgv_mimetype['par'] = 'text/plain-bas';
  475. dsfgv_mimetype['bcpio'] = 'application/x-bcpio';
  476. dsfgv_mimetype['bin'] = 'application/octet-stream';
  477. dsfgv_mimetype['bmp'] = 'image/bmp';
  478. dsfgv_mimetype['torrent'] = 'application/x-bittorrent';
  479. dsfgv_mimetype['cod'] = 'application/vnd.rim.cod';
  480. dsfgv_mimetype['mpm'] = 'application/vnd.blueice.multipass';
  481. dsfgv_mimetype['bmi'] = 'application/vnd.bmi';
  482. dsfgv_mimetype['sh'] = 'application/x-sh';
  483. dsfgv_mimetype['btif'] = 'image/prs.btif';
  484. dsfgv_mimetype['rep'] = 'application/vnd.businessobjects';
  485. dsfgv_mimetype['bz'] = 'application/x-bzip';
  486. dsfgv_mimetype['bz2'] = 'application/x-bzip2';
  487. dsfgv_mimetype['csh'] = 'application/x-csh';
  488. dsfgv_mimetype['c'] = 'text/x-c';
  489. dsfgv_mimetype['cdxml'] = 'application/vnd.chemdraw+xml';
  490. dsfgv_mimetype['css'] = 'text/css';
  491. dsfgv_mimetype['cdx'] = 'chemical/x-cdx';
  492. dsfgv_mimetype['cml'] = 'chemical/x-cml';
  493. dsfgv_mimetype['csml'] = 'chemical/x-csml';
  494. dsfgv_mimetype['cdbcmsg'] = 'application/vnd.contact.cmsg';
  495. dsfgv_mimetype['cla'] = 'application/vnd.claymore';
  496. dsfgv_mimetype['c4g'] = 'application/vnd.clonk.c4group';
  497. dsfgv_mimetype['sub'] = 'image/vnd.dvb.subtitle';
  498. dsfgv_mimetype['cdmia'] = 'application/cdmi-capability';
  499. dsfgv_mimetype['cdmic'] = 'application/cdmi-container';
  500. dsfgv_mimetype['cdmid'] = 'application/cdmi-domain';
  501. dsfgv_mimetype['cdmio'] = 'application/cdmi-object';
  502. dsfgv_mimetype['cdmiq'] = 'application/cdmi-queue';
  503. dsfgv_mimetype['c11amc'] = 'application/vnd.cluetrust.cartomobile-config';
  504. dsfgv_mimetype['c11amz'] = 'application/vnd.cluetrust.cartomobile-config-pkg';
  505. dsfgv_mimetype['ras'] = 'image/x-cmu-raster';
  506. dsfgv_mimetype['dae'] = 'model/vnd.collada+xml';
  507. dsfgv_mimetype['csv'] = 'text/csv';
  508. dsfgv_mimetype['cpt'] = 'application/mac-compactpro';
  509. dsfgv_mimetype['wmlc'] = 'application/vnd.wap.wmlc';
  510. dsfgv_mimetype['cgm'] = 'image/cgm';
  511. dsfgv_mimetype['ice'] = 'x-conference/x-cooltalk';
  512. dsfgv_mimetype['cmx'] = 'image/x-cmx';
  513. dsfgv_mimetype['xar'] = 'application/vnd.xara';
  514. dsfgv_mimetype['cmc'] = 'application/vnd.cosmocaller';
  515. dsfgv_mimetype['cpio'] = 'application/x-cpio';
  516. dsfgv_mimetype['clkx'] = 'application/vnd.crick.clicker';
  517. dsfgv_mimetype['clkk'] = 'application/vnd.crick.clicker.keyboard';
  518. dsfgv_mimetype['clkp'] = 'application/vnd.crick.clicker.palette';
  519. dsfgv_mimetype['clkt'] = 'application/vnd.crick.clicker.template';
  520. dsfgv_mimetype['clkw'] = 'application/vnd.crick.clicker.wordbank';
  521. dsfgv_mimetype['wbs'] = 'application/vnd.criticaltools.wbs+xml';
  522. dsfgv_mimetype['cryptonote'] = 'application/vnd.rig.cryptonote';
  523. dsfgv_mimetype['cif'] = 'chemical/x-cif';
  524. dsfgv_mimetype['cmdf'] = 'chemical/x-cmdf';
  525. dsfgv_mimetype['cu'] = 'application/cu-seeme';
  526. dsfgv_mimetype['cww'] = 'application/prs.cww';
  527. dsfgv_mimetype['curl'] = 'text/vnd.curl';
  528. dsfgv_mimetype['dcurl'] = 'text/vnd.curl.dcurl';
  529. dsfgv_mimetype['mcurl'] = 'text/vnd.curl.mcurl';
  530. dsfgv_mimetype['scurl'] = 'text/vnd.curl.scurl';
  531. dsfgv_mimetype['car'] = 'application/vnd.curl.car';
  532. dsfgv_mimetype['pcurl'] = 'application/vnd.curl.pcurl';
  533. dsfgv_mimetype['cmp'] = 'application/vnd.yellowriver-custom-menu';
  534. dsfgv_mimetype['dssc'] = 'application/dssc+der';
  535. dsfgv_mimetype['xdssc'] = 'application/dssc+xml';
  536. dsfgv_mimetype['deb'] = 'application/x-debian-package';
  537. dsfgv_mimetype['uva'] = 'audio/vnd.dece.audio';
  538. dsfgv_mimetype['uvi'] = 'image/vnd.dece.graphic';
  539. dsfgv_mimetype['uvh'] = 'video/vnd.dece.hd';
  540. dsfgv_mimetype['uvm'] = 'video/vnd.dece.mobile';
  541. dsfgv_mimetype['uvu'] = 'video/vnd.uvvu.mp4';
  542. dsfgv_mimetype['uvp'] = 'video/vnd.dece.pd';
  543. dsfgv_mimetype['uvs'] = 'video/vnd.dece.sd';
  544. dsfgv_mimetype['uvv'] = 'video/vnd.dece.video';
  545. dsfgv_mimetype['dvi'] = 'application/x-dvi';
  546. dsfgv_mimetype['seed'] = 'application/vnd.fdsn.seed';
  547. dsfgv_mimetype['dtb'] = 'application/x-dtbook+xml';
  548. dsfgv_mimetype['res'] = 'application/x-dtbresource+xml';
  549. dsfgv_mimetype['ait'] = 'application/vnd.dvb.ait';
  550. dsfgv_mimetype['svc'] = 'application/vnd.dvb.service';
  551. dsfgv_mimetype['eol'] = 'audio/vnd.digital-winds';
  552. dsfgv_mimetype['djvu'] = 'image/vnd.djvu';
  553. dsfgv_mimetype['dtd'] = 'application/xml-dtd';
  554. dsfgv_mimetype['mlp'] = 'application/vnd.dolby.mlp';
  555. dsfgv_mimetype['wad'] = 'application/x-doom';
  556. dsfgv_mimetype['dpg'] = 'application/vnd.dpgraph';
  557. dsfgv_mimetype['dra'] = 'audio/vnd.dra';
  558. dsfgv_mimetype['dfac'] = 'application/vnd.dreamfactory';
  559. dsfgv_mimetype['dts'] = 'audio/vnd.dts';
  560. dsfgv_mimetype['dtshd'] = 'audio/vnd.dts.hd';
  561. dsfgv_mimetype['dwg'] = 'image/vnd.dwg';
  562. dsfgv_mimetype['geo'] = 'application/vnd.dynageo';
  563. dsfgv_mimetype['es'] = 'application/ecmascript';
  564. dsfgv_mimetype['mag'] = 'application/vnd.ecowin.chart';
  565. dsfgv_mimetype['mmr'] = 'image/vnd.fujixerox.edmics-mmr';
  566. dsfgv_mimetype['rlc'] = 'image/vnd.fujixerox.edmics-rlc';
  567. dsfgv_mimetype['exi'] = 'application/exi';
  568. dsfgv_mimetype['mgz'] = 'application/vnd.proteus.magazine';
  569. dsfgv_mimetype['epub'] = 'application/epub+zip';
  570. dsfgv_mimetype['eml'] = 'message/rfc822';
  571. dsfgv_mimetype['nml'] = 'application/vnd.enliven';
  572. dsfgv_mimetype['xpr'] = 'application/vnd.is-xpr';
  573. dsfgv_mimetype['xif'] = 'image/vnd.xiff';
  574. dsfgv_mimetype['xfdl'] = 'application/vnd.xfdl';
  575. dsfgv_mimetype['emma'] = 'application/emma+xml';
  576. dsfgv_mimetype['ez2'] = 'application/vnd.ezpix-album';
  577. dsfgv_mimetype['ez3'] = 'application/vnd.ezpix-package';
  578. dsfgv_mimetype['fst'] = 'image/vnd.fst';
  579. dsfgv_mimetype['fvt'] = 'video/vnd.fvt';
  580. dsfgv_mimetype['fbs'] = 'image/vnd.fastbidsheet';
  581. dsfgv_mimetype['fe_launch'] = 'application/vnd.denovo.fcselayout-link';
  582. dsfgv_mimetype['f4v'] = 'video/x-f4v';
  583. dsfgv_mimetype['flv'] = 'video/x-flv';
  584. dsfgv_mimetype['fpx'] = 'image/vnd.fpx';
  585. dsfgv_mimetype['npx'] = 'image/vnd.net-fpx';
  586. dsfgv_mimetype['flx'] = 'text/vnd.fmi.flexstor';
  587. dsfgv_mimetype['fli'] = 'video/x-fli';
  588. dsfgv_mimetype['ftc'] = 'application/vnd.fluxtime.clip';
  589. dsfgv_mimetype['fdf'] = 'application/vnd.fdf';
  590. dsfgv_mimetype['f'] = 'text/x-fortran';
  591. dsfgv_mimetype['mif'] = 'application/vnd.mif';
  592. dsfgv_mimetype['fm'] = 'application/vnd.framemaker';
  593. dsfgv_mimetype['fh'] = 'image/x-freehand';
  594. dsfgv_mimetype['fsc'] = 'application/vnd.fsc.weblaunch';
  595. dsfgv_mimetype['fnc'] = 'application/vnd.frogans.fnc';
  596. dsfgv_mimetype['ltf'] = 'application/vnd.frogans.ltf';
  597. dsfgv_mimetype['ddd'] = 'application/vnd.fujixerox.ddd';
  598. dsfgv_mimetype['xdw'] = 'application/vnd.fujixerox.docuworks';
  599. dsfgv_mimetype['xbd'] = 'application/vnd.fujixerox.docuworks.binder';
  600. dsfgv_mimetype['oas'] = 'application/vnd.fujitsu.oasys';
  601. dsfgv_mimetype['oa2'] = 'application/vnd.fujitsu.oasys2';
  602. dsfgv_mimetype['oa3'] = 'application/vnd.fujitsu.oasys3';
  603. dsfgv_mimetype['fg5'] = 'application/vnd.fujitsu.oasysgp';
  604. dsfgv_mimetype['bh2'] = 'application/vnd.fujitsu.oasysprs';
  605. dsfgv_mimetype['spl'] = 'application/x-futuresplash';
  606. dsfgv_mimetype['fzs'] = 'application/vnd.fuzzysheet';
  607. dsfgv_mimetype['g3'] = 'image/g3fax';
  608. dsfgv_mimetype['gmx'] = 'application/vnd.gmx';
  609. dsfgv_mimetype['gtw'] = 'model/vnd.gtw';
  610. dsfgv_mimetype['txd'] = 'application/vnd.genomatix.tuxedo';
  611. dsfgv_mimetype['ggb'] = 'application/vnd.geogebra.file';
  612. dsfgv_mimetype['ggt'] = 'application/vnd.geogebra.tool';
  613. dsfgv_mimetype['gdl'] = 'model/vnd.gdl';
  614. dsfgv_mimetype['gex'] = 'application/vnd.geometry-explorer';
  615. dsfgv_mimetype['gxt'] = 'application/vnd.geonext';
  616. dsfgv_mimetype['g2w'] = 'application/vnd.geoplan';
  617. dsfgv_mimetype['g3w'] = 'application/vnd.geospace';
  618. dsfgv_mimetype['gsf'] = 'application/x-font-ghostscript';
  619. dsfgv_mimetype['bdf'] = 'application/x-font-bdf';
  620. dsfgv_mimetype['gtar'] = 'application/x-gtar';
  621. dsfgv_mimetype['texinfo'] = 'application/x-texinfo';
  622. dsfgv_mimetype['gnumeric'] = 'application/x-gnumeric';
  623. dsfgv_mimetype['kml'] = 'application/vnd.google-earth.kml+xml';
  624. dsfgv_mimetype['kmz'] = 'application/vnd.google-earth.kmz';
  625. dsfgv_mimetype['gqf'] = 'application/vnd.grafeq';
  626. dsfgv_mimetype['gif'] = 'image/gif';
  627. dsfgv_mimetype['gv'] = 'text/vnd.graphviz';
  628. dsfgv_mimetype['gac'] = 'application/vnd.groove-account';
  629. dsfgv_mimetype['ghf'] = 'application/vnd.groove-help';
  630. dsfgv_mimetype['gim'] = 'application/vnd.groove-identity-message';
  631. dsfgv_mimetype['grv'] = 'application/vnd.groove-injector';
  632. dsfgv_mimetype['gtm'] = 'application/vnd.groove-tool-message';
  633. dsfgv_mimetype['tpl'] = 'application/vnd.groove-tool-template';
  634. dsfgv_mimetype['vcg'] = 'application/vnd.groove-vcard';
  635. dsfgv_mimetype['h261'] = 'video/h261';
  636. dsfgv_mimetype['h263'] = 'video/h263';
  637. dsfgv_mimetype['h264'] = 'video/h264';
  638. dsfgv_mimetype['hpid'] = 'application/vnd.hp-hpid';
  639. dsfgv_mimetype['hps'] = 'application/vnd.hp-hps';
  640. dsfgv_mimetype['hdf'] = 'application/x-hdf';
  641. dsfgv_mimetype['rip'] = 'audio/vnd.rip';
  642. dsfgv_mimetype['hbci'] = 'application/vnd.hbci';
  643. dsfgv_mimetype['jlt'] = 'application/vnd.hp-jlyt';
  644. dsfgv_mimetype['pcl'] = 'application/vnd.hp-pcl';
  645. dsfgv_mimetype['hpgl'] = 'application/vnd.hp-hpgl';
  646. dsfgv_mimetype['hvs'] = 'application/vnd.yamaha.hv-script';
  647. dsfgv_mimetype['hvd'] = 'application/vnd.yamaha.hv-dic';
  648. dsfgv_mimetype['hvp'] = 'application/vnd.yamaha.hv-voice';
  649. dsfgv_mimetype['sfd-hdstx'] = 'application/vnd.hydrostatix.sof-data';
  650. dsfgv_mimetype['stk'] = 'application/hyperstudio';
  651. dsfgv_mimetype['hal'] = 'application/vnd.hal+xml';
  652. dsfgv_mimetype['html'] = 'text/html';
  653. dsfgv_mimetype['irm'] = 'application/vnd.ibm.rights-management';
  654. dsfgv_mimetype['sc'] = 'application/vnd.ibm.secure-container';
  655. dsfgv_mimetype['ics'] = 'text/calendar';
  656. dsfgv_mimetype['icc'] = 'application/vnd.iccprofile';
  657. dsfgv_mimetype['ico'] = 'image/x-icon';
  658. dsfgv_mimetype['igl'] = 'application/vnd.igloader';
  659. dsfgv_mimetype['ief'] = 'image/ief';
  660. dsfgv_mimetype['ivp'] = 'application/vnd.immervision-ivp';
  661. dsfgv_mimetype['ivu'] = 'application/vnd.immervision-ivu';
  662. dsfgv_mimetype['rif'] = 'application/reginfo+xml';
  663. dsfgv_mimetype['3dml'] = 'text/vnd.in3d.3dml';
  664. dsfgv_mimetype['spot'] = 'text/vnd.in3d.spot';
  665. dsfgv_mimetype['igs'] = 'model/iges';
  666. dsfgv_mimetype['i2g'] = 'application/vnd.intergeo';
  667. dsfgv_mimetype['cdy'] = 'application/vnd.cinderella';
  668. dsfgv_mimetype['xpw'] = 'application/vnd.intercon.formnet';
  669. dsfgv_mimetype['fcs'] = 'application/vnd.isac.fcs';
  670. dsfgv_mimetype['ipfix'] = 'application/ipfix';
  671. dsfgv_mimetype['cer'] = 'application/pkix-cert';
  672. dsfgv_mimetype['pki'] = 'application/pkixcmp';
  673. dsfgv_mimetype['crl'] = 'application/pkix-crl';
  674. dsfgv_mimetype['pkipath'] = 'application/pkix-pkipath';
  675. dsfgv_mimetype['igm'] = 'application/vnd.insors.igm';
  676. dsfgv_mimetype['rcprofile'] = 'application/vnd.ipunplugged.rcprofile';
  677. dsfgv_mimetype['irp'] = 'application/vnd.irepository.package+xml';
  678. dsfgv_mimetype['jad'] = 'text/vnd.sun.j2me.app-descriptor';
  679. dsfgv_mimetype['jar'] = 'application/java-archive';
  680. dsfgv_mimetype['class'] = 'application/java-vm';
  681. dsfgv_mimetype['jnlp'] = 'application/x-java-jnlp-file';
  682. dsfgv_mimetype['ser'] = 'application/java-serialized-object';
  683. dsfgv_mimetype['java'] = 'text/x-java-source,java';
  684. dsfgv_mimetype['js'] = 'application/javascript';
  685. dsfgv_mimetype['json'] = 'application/json';
  686. dsfgv_mimetype['joda'] = 'application/vnd.joost.joda-archive';
  687. dsfgv_mimetype['jpm'] = 'video/jpm';
  688. dsfgv_mimetype['jpeg'] = 'image/jpeg';
  689. dsfgv_mimetype['jpg'] = 'image/jpeg';
  690. dsfgv_mimetype['jpgv'] = 'video/jpeg';
  691. dsfgv_mimetype['ktz'] = 'application/vnd.kahootz';
  692. dsfgv_mimetype['mmd'] = 'application/vnd.chipnuts.karaoke-mmd';
  693. dsfgv_mimetype['karbon'] = 'application/vnd.kde.karbon';
  694. dsfgv_mimetype['chrt'] = 'application/vnd.kde.kchart';
  695. dsfgv_mimetype['kfo'] = 'application/vnd.kde.kformula';
  696. dsfgv_mimetype['flw'] = 'application/vnd.kde.kivio';
  697. dsfgv_mimetype['kon'] = 'application/vnd.kde.kontour';
  698. dsfgv_mimetype['kpr'] = 'application/vnd.kde.kpresenter';
  699. dsfgv_mimetype['ksp'] = 'application/vnd.kde.kspread';
  700. dsfgv_mimetype['kwd'] = 'application/vnd.kde.kword';
  701. dsfgv_mimetype['htke'] = 'application/vnd.kenameaapp';
  702. dsfgv_mimetype['kia'] = 'application/vnd.kidspiration';
  703. dsfgv_mimetype['kne'] = 'application/vnd.kinar';
  704. dsfgv_mimetype['sse'] = 'application/vnd.kodak-descriptor';
  705. dsfgv_mimetype['lasxml'] = 'application/vnd.las.las+xml';
  706. dsfgv_mimetype['latex'] = 'application/x-latex';
  707. dsfgv_mimetype['lbd'] = 'application/vnd.llamagraphics.life-balance.desktop';
  708. dsfgv_mimetype['lbe'] = 'application/vnd.llamagraphics.life-balance.exchange+xml';
  709. dsfgv_mimetype['jam'] = 'application/vnd.jam';
  710. dsfgv_mimetype['apr'] = 'application/vnd.lotus-approach';
  711. dsfgv_mimetype['pre'] = 'application/vnd.lotus-freelance';
  712. dsfgv_mimetype['nsf'] = 'application/vnd.lotus-notes';
  713. dsfgv_mimetype['org'] = 'application/vnd.lotus-organizer';
  714. dsfgv_mimetype['scm'] = 'application/vnd.lotus-screencam';
  715. dsfgv_mimetype['lwp'] = 'application/vnd.lotus-wordpro';
  716. dsfgv_mimetype['lvp'] = 'audio/vnd.lucent.voice';
  717. dsfgv_mimetype['m3u'] = 'audio/x-mpegurl';
  718. dsfgv_mimetype['m4v'] = 'video/x-m4v';
  719. dsfgv_mimetype['hqx'] = 'application/mac-binhex40';
  720. dsfgv_mimetype['portpkg'] = 'application/vnd.macports.portpkg';
  721. dsfgv_mimetype['mgp'] = 'application/vnd.osgeo.mapguide.package';
  722. dsfgv_mimetype['mrc'] = 'application/marc';
  723. dsfgv_mimetype['mrcx'] = 'application/marcxml+xml';
  724. dsfgv_mimetype['mxf'] = 'application/mxf';
  725. dsfgv_mimetype['nbp'] = 'application/vnd.wolfram.player';
  726. dsfgv_mimetype['ma'] = 'application/mathematica';
  727. dsfgv_mimetype['mathml'] = 'application/mathml+xml';
  728. dsfgv_mimetype['mbox'] = 'application/mbox';
  729. dsfgv_mimetype['mc1'] = 'application/vnd.medcalcdata';
  730. dsfgv_mimetype['mscml'] = 'application/mediaservercontrol+xml';
  731. dsfgv_mimetype['cdkey'] = 'application/vnd.mediastation.cdkey';
  732. dsfgv_mimetype['mwf'] = 'application/vnd.mfer';
  733. dsfgv_mimetype['mfm'] = 'application/vnd.mfmp';
  734. dsfgv_mimetype['msh'] = 'model/mesh';
  735. dsfgv_mimetype['mads'] = 'application/mads+xml';
  736. dsfgv_mimetype['mets'] = 'application/mets+xml';
  737. dsfgv_mimetype['mods'] = 'application/mods+xml';
  738. dsfgv_mimetype['meta4'] = 'application/metalink4+xml';
  739. dsfgv_mimetype['potm'] = 'application/vnd.ms-powerpoint.template.macroenabled.12';
  740. dsfgv_mimetype['docm'] = 'application/vnd.ms-word.document.macroenabled.12';
  741. dsfgv_mimetype['dotm'] = 'application/vnd.ms-word.template.macroenabled.12';
  742. dsfgv_mimetype['mcd'] = 'application/vnd.mcd';
  743. dsfgv_mimetype['flo'] = 'application/vnd.micrografx.flo';
  744. dsfgv_mimetype['igx'] = 'application/vnd.micrografx.igx';
  745. dsfgv_mimetype['es3'] = 'application/vnd.eszigno3+xml';
  746. dsfgv_mimetype['mdb'] = 'application/x-msaccess';
  747. dsfgv_mimetype['asf'] = 'video/x-ms-asf';
  748. dsfgv_mimetype['exe'] = 'application/x-msdownload';
  749. dsfgv_mimetype['cil'] = 'application/vnd.ms-artgalry';
  750. dsfgv_mimetype['cab'] = 'application/vnd.ms-cab-compressed';
  751. dsfgv_mimetype['ims'] = 'application/vnd.ms-ims';
  752. dsfgv_mimetype['applicatio'] = 'application/x-ms-application';
  753. dsfgv_mimetype['clp'] = 'application/x-msclip';
  754. dsfgv_mimetype['mdi'] = 'image/vnd.ms-modi';
  755. dsfgv_mimetype['eot'] = 'application/vnd.ms-fontobject';
  756. dsfgv_mimetype['xls'] = 'application/vnd.ms-excel';
  757. dsfgv_mimetype['xlam'] = 'application/vnd.ms-excel.addin.macroenabled.12';
  758. dsfgv_mimetype['xlsb'] = 'application/vnd.ms-excel.sheet.binary.macroenabled.12';
  759. dsfgv_mimetype['xltm'] = 'application/vnd.ms-excel.template.macroenabled.12';
  760. dsfgv_mimetype['xlsm'] = 'application/vnd.ms-excel.sheet.macroenabled.12';
  761. dsfgv_mimetype['chm'] = 'application/vnd.ms-htmlhelp';
  762. dsfgv_mimetype['crd'] = 'application/x-mscardfile';
  763. dsfgv_mimetype['lrm'] = 'application/vnd.ms-lrm';
  764. dsfgv_mimetype['mvb'] = 'application/x-msmediaview';
  765. dsfgv_mimetype['mny'] = 'application/x-msmoney';
  766. dsfgv_mimetype['pptx'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';
  767. dsfgv_mimetype['sldx'] = 'application/vnd.openxmlformats-officedocument.presentationml.slide';
  768. dsfgv_mimetype['ppsx'] = 'application/vnd.openxmlformats-officedocument.presentationml.slideshow';
  769. dsfgv_mimetype['potx'] = 'application/vnd.openxmlformats-officedocument.presentationml.template';
  770. dsfgv_mimetype['xlsx'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
  771. dsfgv_mimetype['xltx'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.template';
  772. dsfgv_mimetype['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
  773. dsfgv_mimetype['dotx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.template';
  774. dsfgv_mimetype['obd'] = 'application/x-msbinder';
  775. dsfgv_mimetype['thmx'] = 'application/vnd.ms-officetheme';
  776. dsfgv_mimetype['onetoc'] = 'application/onenote';
  777. dsfgv_mimetype['pya'] = 'audio/vnd.ms-playready.media.pya';
  778. dsfgv_mimetype['pyv'] = 'video/vnd.ms-playready.media.pyv';
  779. dsfgv_mimetype['ppt'] = 'application/vnd.ms-powerpoint';
  780. dsfgv_mimetype['ppam'] = 'application/vnd.ms-powerpoint.addin.macroenabled.12';
  781. dsfgv_mimetype['sldm'] = 'application/vnd.ms-powerpoint.slide.macroenabled.12';
  782. dsfgv_mimetype['pptm'] = 'application/vnd.ms-powerpoint.presentation.macroenabled.12';
  783. dsfgv_mimetype['ppsm'] = 'application/vnd.ms-powerpoint.slideshow.macroenabled.12';
  784. dsfgv_mimetype['mpp'] = 'application/vnd.ms-project';
  785. dsfgv_mimetype['pub'] = 'application/x-mspublisher';
  786. dsfgv_mimetype['scd'] = 'application/x-msschedule';
  787. dsfgv_mimetype['xap'] = 'application/x-silverlight-app';
  788. dsfgv_mimetype['stl'] = 'application/vnd.ms-pki.stl';
  789. dsfgv_mimetype['cat'] = 'application/vnd.ms-pki.seccat';
  790. dsfgv_mimetype['vsd'] = 'application/vnd.visio';
  791. dsfgv_mimetype['wm'] = 'video/x-ms-wm';
  792. dsfgv_mimetype['wma'] = 'audio/x-ms-wma';
  793. dsfgv_mimetype['wax'] = 'audio/x-ms-wax';
  794. dsfgv_mimetype['wmx'] = 'video/x-ms-wmx';
  795. dsfgv_mimetype['wmd'] = 'application/x-ms-wmd';
  796. dsfgv_mimetype['wpl'] = 'application/vnd.ms-wpl';
  797. dsfgv_mimetype['wmz'] = 'application/x-ms-wmz';
  798. dsfgv_mimetype['wmv'] = 'video/x-ms-wmv';
  799. dsfgv_mimetype['wvx'] = 'video/x-ms-wvx';
  800. dsfgv_mimetype['wmf'] = 'application/x-msmetafile';
  801. dsfgv_mimetype['trm'] = 'application/x-msterminal';
  802. dsfgv_mimetype['doc'] = 'application/msword';
  803. dsfgv_mimetype['wri'] = 'application/x-mswrite';
  804. dsfgv_mimetype['wps'] = 'application/vnd.ms-works';
  805. dsfgv_mimetype['xbap'] = 'application/x-ms-xbap';
  806. dsfgv_mimetype['xps'] = 'application/vnd.ms-xpsdocument';
  807. dsfgv_mimetype['mid'] = 'audio/midi';
  808. dsfgv_mimetype['mpy'] = 'application/vnd.ibm.minipay';
  809. dsfgv_mimetype['afp'] = 'application/vnd.ibm.modcap';
  810. dsfgv_mimetype['rms'] = 'application/vnd.jcp.javame.midlet-rms';
  811. dsfgv_mimetype['tmo'] = 'application/vnd.tmobile-livetv';
  812. dsfgv_mimetype['prc'] = 'application/x-mobipocket-ebook';
  813. dsfgv_mimetype['mbk'] = 'application/vnd.mobius.mbk';
  814. dsfgv_mimetype['dis'] = 'application/vnd.mobius.dis';
  815. dsfgv_mimetype['plc'] = 'application/vnd.mobius.plc';
  816. dsfgv_mimetype['mqy'] = 'application/vnd.mobius.mqy';
  817. dsfgv_mimetype['msl'] = 'application/vnd.mobius.msl';
  818. dsfgv_mimetype['txf'] = 'application/vnd.mobius.txf';
  819. dsfgv_mimetype['daf'] = 'application/vnd.mobius.daf';
  820. dsfgv_mimetype['fly'] = 'text/vnd.fly';
  821. dsfgv_mimetype['mpc'] = 'application/vnd.mophun.certificate';
  822. dsfgv_mimetype['mpn'] = 'application/vnd.mophun.application';
  823. dsfgv_mimetype['mj2'] = 'video/mj2';
  824. dsfgv_mimetype['mpga'] = 'audio/mpeg';
  825. dsfgv_mimetype['mxu'] = 'video/vnd.mpegurl';
  826. dsfgv_mimetype['mpeg'] = 'video/mpeg';
  827. dsfgv_mimetype['m21'] = 'application/mp21';
  828. dsfgv_mimetype['mp4a'] = 'audio/mp4';
  829. dsfgv_mimetype['mp4'] = 'video/mp4';
  830. dsfgv_mimetype['mp4'] = 'application/mp4';
  831. dsfgv_mimetype['m3u8'] = 'application/vnd.apple.mpegurl';
  832. dsfgv_mimetype['mus'] = 'application/vnd.musician';
  833. dsfgv_mimetype['msty'] = 'application/vnd.muvee.style';
  834. dsfgv_mimetype['mxml'] = 'application/xv+xml';
  835. dsfgv_mimetype['ngdat'] = 'application/vnd.nokia.n-gage.data';
  836. dsfgv_mimetype['n-gage'] = 'application/vnd.nokia.n-gage.symbian.install';
  837. dsfgv_mimetype['ncx'] = 'application/x-dtbncx+xml';
  838. dsfgv_mimetype['nc'] = 'application/x-netcdf';
  839. dsfgv_mimetype['nlu'] = 'application/vnd.neurolanguage.nlu';
  840. dsfgv_mimetype['dna'] = 'application/vnd.dna';
  841. dsfgv_mimetype['nnd'] = 'application/vnd.noblenet-directory';
  842. dsfgv_mimetype['nns'] = 'application/vnd.noblenet-sealer';
  843. dsfgv_mimetype['nnw'] = 'application/vnd.noblenet-web';
  844. dsfgv_mimetype['rpst'] = 'application/vnd.nokia.radio-preset';
  845. dsfgv_mimetype['rpss'] = 'application/vnd.nokia.radio-presets';
  846. dsfgv_mimetype['n3'] = 'text/n3';
  847. dsfgv_mimetype['edm'] = 'application/vnd.novadigm.edm';
  848. dsfgv_mimetype['edx'] = 'application/vnd.novadigm.edx';
  849. dsfgv_mimetype['ext'] = 'application/vnd.novadigm.ext';
  850. dsfgv_mimetype['gph'] = 'application/vnd.flographit';
  851. dsfgv_mimetype['ecelp4800'] = 'audio/vnd.nuera.ecelp4800';
  852. dsfgv_mimetype['ecelp7470'] = 'audio/vnd.nuera.ecelp7470';
  853. dsfgv_mimetype['ecelp9600'] = 'audio/vnd.nuera.ecelp9600';
  854. dsfgv_mimetype['oda'] = 'application/oda';
  855. dsfgv_mimetype['ogx'] = 'application/ogg';
  856. dsfgv_mimetype['oga'] = 'audio/ogg';
  857. dsfgv_mimetype['ogv'] = 'video/ogg';
  858. dsfgv_mimetype['dd2'] = 'application/vnd.oma.dd2+xml';
  859. dsfgv_mimetype['oth'] = 'application/vnd.oasis.opendocument.text-web';
  860. dsfgv_mimetype['opf'] = 'application/oebps-package+xml';
  861. dsfgv_mimetype['qbo'] = 'application/vnd.intu.qbo';
  862. dsfgv_mimetype['oxt'] = 'application/vnd.openofficeorg.extension';
  863. dsfgv_mimetype['osf'] = 'application/vnd.yamaha.openscoreformat';
  864. dsfgv_mimetype['weba'] = 'audio/webm';
  865. dsfgv_mimetype['webm'] = 'video/webm';
  866. dsfgv_mimetype['odc'] = 'application/vnd.oasis.opendocument.chart';
  867. dsfgv_mimetype['otc'] = 'application/vnd.oasis.opendocument.chart-template';
  868. dsfgv_mimetype['odb'] = 'application/vnd.oasis.opendocument.database';
  869. dsfgv_mimetype['odf'] = 'application/vnd.oasis.opendocument.formula';
  870. dsfgv_mimetype['odft'] = 'application/vnd.oasis.opendocument.formula-template';
  871. dsfgv_mimetype['odg'] = 'application/vnd.oasis.opendocument.graphics';
  872. dsfgv_mimetype['otg'] = 'application/vnd.oasis.opendocument.graphics-template';
  873. dsfgv_mimetype['odi'] = 'application/vnd.oasis.opendocument.image';
  874. dsfgv_mimetype['oti'] = 'application/vnd.oasis.opendocument.image-template';
  875. dsfgv_mimetype['odp'] = 'application/vnd.oasis.opendocument.presentation';
  876. dsfgv_mimetype['otp'] = 'application/vnd.oasis.opendocument.presentation-template';
  877. dsfgv_mimetype['ods'] = 'application/vnd.oasis.opendocument.spreadsheet';
  878. dsfgv_mimetype['ots'] = 'application/vnd.oasis.opendocument.spreadsheet-template';
  879. dsfgv_mimetype['odt'] = 'application/vnd.oasis.opendocument.text';
  880. dsfgv_mimetype['odm'] = 'application/vnd.oasis.opendocument.text-master';
  881. dsfgv_mimetype['ott'] = 'application/vnd.oasis.opendocument.text-template';
  882. dsfgv_mimetype['ktx'] = 'image/ktx';
  883. dsfgv_mimetype['sxc'] = 'application/vnd.sun.xml.calc';
  884. dsfgv_mimetype['stc'] = 'application/vnd.sun.xml.calc.template';
  885. dsfgv_mimetype['sxd'] = 'application/vnd.sun.xml.draw';
  886. dsfgv_mimetype['std'] = 'application/vnd.sun.xml.draw.template';
  887. dsfgv_mimetype['sxi'] = 'application/vnd.sun.xml.impress';
  888. dsfgv_mimetype['sti'] = 'application/vnd.sun.xml.impress.template';
  889. dsfgv_mimetype['sxm'] = 'application/vnd.sun.xml.math';
  890. dsfgv_mimetype['sxw'] = 'application/vnd.sun.xml.writer';
  891. dsfgv_mimetype['sxg'] = 'application/vnd.sun.xml.writer.global';
  892. dsfgv_mimetype['stw'] = 'application/vnd.sun.xml.writer.template';
  893. dsfgv_mimetype['otf'] = 'application/x-font-otf';
  894. dsfgv_mimetype['osfpvg'] = 'application/vnd.yamaha.openscoreformat.osfpvg+xml';
  895. dsfgv_mimetype['dp'] = 'application/vnd.osgi.dp';
  896. dsfgv_mimetype['pdb'] = 'application/vnd.palm';
  897. dsfgv_mimetype['p'] = 'text/x-pascal';
  898. dsfgv_mimetype['paw'] = 'application/vnd.pawaafile';
  899. dsfgv_mimetype['pclxl'] = 'application/vnd.hp-pclxl';
  900. dsfgv_mimetype['efif'] = 'application/vnd.picsel';
  901. dsfgv_mimetype['pcx'] = 'image/x-pcx';
  902. dsfgv_mimetype['psd'] = 'image/vnd.adobe.photoshop';
  903. dsfgv_mimetype['prf'] = 'application/pics-rules';
  904. dsfgv_mimetype['pic'] = 'image/x-pict';
  905. dsfgv_mimetype['chat'] = 'application/x-chat';
  906. dsfgv_mimetype['p10'] = 'application/pkcs10';
  907. dsfgv_mimetype['p12'] = 'application/x-pkcs12';
  908. dsfgv_mimetype['p7m'] = 'application/pkcs7-mime';
  909. dsfgv_mimetype['p7s'] = 'application/pkcs7-signature';
  910. dsfgv_mimetype['p7r'] = 'application/x-pkcs7-certreqresp';
  911. dsfgv_mimetype['p7b'] = 'application/x-pkcs7-certificates';
  912. dsfgv_mimetype['p8'] = 'application/pkcs8';
  913. dsfgv_mimetype['plf'] = 'application/vnd.pocketlearn';
  914. dsfgv_mimetype['pnm'] = 'image/x-portable-anymap';
  915. dsfgv_mimetype['pbm'] = 'image/x-portable-bitmap';
  916. dsfgv_mimetype['pcf'] = 'application/x-font-pcf';
  917. dsfgv_mimetype['pfr'] = 'application/font-tdpfr';
  918. dsfgv_mimetype['pgn'] = 'application/x-chess-pgn';
  919. dsfgv_mimetype['pgm'] = 'image/x-portable-graymap';
  920. dsfgv_mimetype['png'] = 'image/png';
  921. dsfgv_mimetype['ppm'] = 'image/x-portable-pixmap';
  922. dsfgv_mimetype['pskcxml'] = 'application/pskc+xml';
  923. dsfgv_mimetype['pml'] = 'application/vnd.ctc-posml';
  924. dsfgv_mimetype['ai'] = 'application/postscript';
  925. dsfgv_mimetype['pfa'] = 'application/x-font-type1';
  926. dsfgv_mimetype['pbd'] = 'application/vnd.powerbuilder6';
  927. dsfgv_mimetype['pgp'] = 'application/pgp-signature';
  928. dsfgv_mimetype['box'] = 'application/vnd.previewsystems.box';
  929. dsfgv_mimetype['ptid'] = 'application/vnd.pvi.ptid1';
  930. dsfgv_mimetype['pls'] = 'application/pls+xml';
  931. dsfgv_mimetype['str'] = 'application/vnd.pg.format';
  932. dsfgv_mimetype['ei6'] = 'application/vnd.pg.osasli';
  933. dsfgv_mimetype['dsc'] = 'text/prs.lines.tag';
  934. dsfgv_mimetype['psf'] = 'application/x-font-linux-psf';
  935. dsfgv_mimetype['qps'] = 'application/vnd.publishare-delta-tree';
  936. dsfgv_mimetype['wg'] = 'application/vnd.pmi.widget';
  937. dsfgv_mimetype['qxd'] = 'application/vnd.quark.quarkxpress';
  938. dsfgv_mimetype['esf'] = 'application/vnd.epson.esf';
  939. dsfgv_mimetype['msf'] = 'application/vnd.epson.msf';
  940. dsfgv_mimetype['ssf'] = 'application/vnd.epson.ssf';
  941. dsfgv_mimetype['qam'] = 'application/vnd.epson.quickanime';
  942. dsfgv_mimetype['qfx'] = 'application/vnd.intu.qfx';
  943. dsfgv_mimetype['qt'] = 'video/quicktime';
  944. dsfgv_mimetype['rar'] = 'application/x-rar-compressed';
  945. dsfgv_mimetype['ram'] = 'audio/x-pn-realaudio';
  946. dsfgv_mimetype['rmp'] = 'audio/x-pn-realaudio-plugin';
  947. dsfgv_mimetype['rsd'] = 'application/rsd+xml';
  948. dsfgv_mimetype['rm'] = 'application/vnd.rn-realmedia';
  949. dsfgv_mimetype['bed'] = 'application/vnd.realvnc.bed';
  950. dsfgv_mimetype['mxl'] = 'application/vnd.recordare.musicxml';
  951. dsfgv_mimetype['musicxml'] = 'application/vnd.recordare.musicxml+xml';
  952. dsfgv_mimetype['rnc'] = 'application/relax-ng-compact-syntax';
  953. dsfgv_mimetype['rdz'] = 'application/vnd.data-vision.rdz';
  954. dsfgv_mimetype['rdf'] = 'application/rdf+xml';
  955. dsfgv_mimetype['rp9'] = 'application/vnd.cloanto.rp9';
  956. dsfgv_mimetype['jisp'] = 'application/vnd.jisp';
  957. dsfgv_mimetype['rtf'] = 'application/rtf';
  958. dsfgv_mimetype['rtx'] = 'text/richtext';
  959. dsfgv_mimetype['link66'] = 'application/vnd.route66.link66+xml';
  960. dsfgv_mimetype['rss'] = 'application/rss+xml';
  961. dsfgv_mimetype['shf'] = 'application/shf+xml';
  962. dsfgv_mimetype['st'] = 'application/vnd.sailingtracker.track';
  963. dsfgv_mimetype['svg'] = 'image/svg+xml';
  964. dsfgv_mimetype['sus'] = 'application/vnd.sus-calendar';
  965. dsfgv_mimetype['sru'] = 'application/sru+xml';
  966. dsfgv_mimetype['setpay'] = 'application/set-payment-initiation';
  967. dsfgv_mimetype['setreg'] = 'application/set-registration-initiation';
  968. dsfgv_mimetype['sema'] = 'application/vnd.sema';
  969. dsfgv_mimetype['semd'] = 'application/vnd.semd';
  970. dsfgv_mimetype['semf'] = 'application/vnd.semf';
  971. dsfgv_mimetype['see'] = 'application/vnd.seemail';
  972. dsfgv_mimetype['snf'] = 'application/x-font-snf';
  973. dsfgv_mimetype['spq'] = 'application/scvp-vp-request';
  974. dsfgv_mimetype['spp'] = 'application/scvp-vp-response';
  975. dsfgv_mimetype['scq'] = 'application/scvp-cv-request';
  976. dsfgv_mimetype['scs'] = 'application/scvp-cv-response';
  977. dsfgv_mimetype['sdp'] = 'application/sdp';
  978. dsfgv_mimetype['etx'] = 'text/x-setext';
  979. dsfgv_mimetype['movie'] = 'video/x-sgi-movie';
  980. dsfgv_mimetype['ifm'] = 'application/vnd.shana.informed.formdata';
  981. dsfgv_mimetype['itp'] = 'application/vnd.shana.informed.formtemplate';
  982. dsfgv_mimetype['iif'] = 'application/vnd.shana.informed.interchange';
  983. dsfgv_mimetype['ipk'] = 'application/vnd.shana.informed.package';
  984. dsfgv_mimetype['tfi'] = 'application/thraud+xml';
  985. dsfgv_mimetype['shar'] = 'application/x-shar';
  986. dsfgv_mimetype['rgb'] = 'image/x-rgb';
  987. dsfgv_mimetype['slt'] = 'application/vnd.epson.salt';
  988. dsfgv_mimetype['aso'] = 'application/vnd.accpac.simply.aso';
  989. dsfgv_mimetype['imp'] = 'application/vnd.accpac.simply.imp';
  990. dsfgv_mimetype['twd'] = 'application/vnd.simtech-mindmapper';
  991. dsfgv_mimetype['csp'] = 'application/vnd.commonspace';
  992. dsfgv_mimetype['saf'] = 'application/vnd.yamaha.smaf-audio';
  993. dsfgv_mimetype['mmf'] = 'application/vnd.smaf';
  994. dsfgv_mimetype['spf'] = 'application/vnd.yamaha.smaf-phrase';
  995. dsfgv_mimetype['teacher'] = 'application/vnd.smart.teacher';
  996. dsfgv_mimetype['svd'] = 'application/vnd.svd';
  997. dsfgv_mimetype['rq'] = 'application/sparql-query';
  998. dsfgv_mimetype['srx'] = 'application/sparql-results+xml';
  999. dsfgv_mimetype['gram'] = 'application/srgs';
  1000. dsfgv_mimetype['grxml'] = 'application/srgs+xml';
  1001. dsfgv_mimetype['ssml'] = 'application/ssml+xml';
  1002. dsfgv_mimetype['skp'] = 'application/vnd.koan';
  1003. dsfgv_mimetype['sgml'] = 'text/sgml';
  1004. dsfgv_mimetype['sdc'] = 'application/vnd.stardivision.calc';
  1005. dsfgv_mimetype['sda'] = 'application/vnd.stardivision.draw';
  1006. dsfgv_mimetype['sdd'] = 'application/vnd.stardivision.impress';
  1007. dsfgv_mimetype['smf'] = 'application/vnd.stardivision.math';
  1008. dsfgv_mimetype['sdw'] = 'application/vnd.stardivision.writer';
  1009. dsfgv_mimetype['sgl'] = 'application/vnd.stardivision.writer-global';
  1010. dsfgv_mimetype['sm'] = 'application/vnd.stepmania.stepchart';
  1011. dsfgv_mimetype['sit'] = 'application/x-stuffit';
  1012. dsfgv_mimetype['sitx'] = 'application/x-stuffitx';
  1013. dsfgv_mimetype['sdkm'] = 'application/vnd.solent.sdkm+xml';
  1014. dsfgv_mimetype['xo'] = 'application/vnd.olpc-sugar';
  1015. dsfgv_mimetype['au'] = 'audio/basic';
  1016. dsfgv_mimetype['wqd'] = 'application/vnd.wqd';
  1017. dsfgv_mimetype['sis'] = 'application/vnd.symbian.install';
  1018. dsfgv_mimetype['smi'] = 'application/smil+xml';
  1019. dsfgv_mimetype['xsm'] = 'application/vnd.syncml+xml';
  1020. dsfgv_mimetype['bdm'] = 'application/vnd.syncml.dm+wbxml';
  1021. dsfgv_mimetype['xdm'] = 'application/vnd.syncml.dm+xml';
  1022. dsfgv_mimetype['sv4cpio'] = 'application/x-sv4cpio';
  1023. dsfgv_mimetype['sv4crc'] = 'application/x-sv4crc';
  1024. dsfgv_mimetype['sbml'] = 'application/sbml+xml';
  1025. dsfgv_mimetype['tsv'] = 'text/tab-separated-values';
  1026. dsfgv_mimetype['tiff'] = 'image/tiff';
  1027. dsfgv_mimetype['tao'] = 'application/vnd.tao.intent-module-archive';
  1028. dsfgv_mimetype['tar'] = 'application/x-tar';
  1029. dsfgv_mimetype['tcl'] = 'application/x-tcl';
  1030. dsfgv_mimetype['tex'] = 'application/x-tex';
  1031. dsfgv_mimetype['tfm'] = 'application/x-tex-tfm';
  1032. dsfgv_mimetype['tei'] = 'application/tei+xml';
  1033. dsfgv_mimetype['txt'] = 'text/plain';
  1034. dsfgv_mimetype['dxp'] = 'application/vnd.spotfire.dxp';
  1035. dsfgv_mimetype['sfs'] = 'application/vnd.spotfire.sfs';
  1036. dsfgv_mimetype['tsd'] = 'application/timestamped-data';
  1037. dsfgv_mimetype['tpt'] = 'application/vnd.trid.tpt';
  1038. dsfgv_mimetype['mxs'] = 'application/vnd.triscape.mxs';
  1039. dsfgv_mimetype['t'] = 'text/troff';
  1040. dsfgv_mimetype['tra'] = 'application/vnd.trueapp';
  1041. dsfgv_mimetype['ttf'] = 'application/x-font-ttf';
  1042. dsfgv_mimetype['ttl'] = 'text/turtle';
  1043. dsfgv_mimetype['umj'] = 'application/vnd.umajin';
  1044. dsfgv_mimetype['uoml'] = 'application/vnd.uoml+xml';
  1045. dsfgv_mimetype['unityweb'] = 'application/vnd.unity';
  1046. dsfgv_mimetype['ufd'] = 'application/vnd.ufdl';
  1047. dsfgv_mimetype['uri'] = 'text/uri-list';
  1048. dsfgv_mimetype['utz'] = 'application/vnd.uiq.theme';
  1049. dsfgv_mimetype['ustar'] = 'application/x-ustar';
  1050. dsfgv_mimetype['uu'] = 'text/x-uuencode';
  1051. dsfgv_mimetype['vcs'] = 'text/x-vcalendar';
  1052. dsfgv_mimetype['vcf'] = 'text/x-vcard';
  1053. dsfgv_mimetype['vcd'] = 'application/x-cdlink';
  1054. dsfgv_mimetype['vsf'] = 'application/vnd.vsf';
  1055. dsfgv_mimetype['wrl'] = 'model/vrml';
  1056. dsfgv_mimetype['vcx'] = 'application/vnd.vcx';
  1057. dsfgv_mimetype['mts'] = 'model/vnd.mts';
  1058. dsfgv_mimetype['vtu'] = 'model/vnd.vtu';
  1059. dsfgv_mimetype['vis'] = 'application/vnd.visionary';
  1060. dsfgv_mimetype['viv'] = 'video/vnd.vivo';
  1061. dsfgv_mimetype['ccxml'] = 'application/ccxml+xml,';
  1062. dsfgv_mimetype['vxml'] = 'application/voicexml+xml';
  1063. dsfgv_mimetype['src'] = 'application/x-wais-source';
  1064. dsfgv_mimetype['wbxml'] = 'application/vnd.wap.wbxml';
  1065. dsfgv_mimetype['wbmp'] = 'image/vnd.wap.wbmp';
  1066. dsfgv_mimetype['wav'] = 'audio/x-wav';
  1067. dsfgv_mimetype['davmount'] = 'application/davmount+xml';
  1068. dsfgv_mimetype['woff'] = 'application/x-font-woff';
  1069. dsfgv_mimetype['wspolicy'] = 'application/wspolicy+xml';
  1070. dsfgv_mimetype['webp'] = 'image/webp';
  1071. dsfgv_mimetype['wtb'] = 'application/vnd.webturbo';
  1072. dsfgv_mimetype['wgt'] = 'application/widget';
  1073. dsfgv_mimetype['hlp'] = 'application/winhlp';
  1074. dsfgv_mimetype['wml'] = 'text/vnd.wap.wml';
  1075. dsfgv_mimetype['wmls'] = 'text/vnd.wap.wmlscript';
  1076. dsfgv_mimetype['wmlsc'] = 'application/vnd.wap.wmlscriptc';
  1077. dsfgv_mimetype['wpd'] = 'application/vnd.wordperfect';
  1078. dsfgv_mimetype['stf'] = 'application/vnd.wt.stf';
  1079. dsfgv_mimetype['wsdl'] = 'application/wsdl+xml';
  1080. dsfgv_mimetype['xbm'] = 'image/x-xbitmap';
  1081. dsfgv_mimetype['xpm'] = 'image/x-xpixmap';
  1082. dsfgv_mimetype['xwd'] = 'image/x-xwindowdump';
  1083. dsfgv_mimetype['der'] = 'application/x-x509-ca-cert';
  1084. dsfgv_mimetype['fig'] = 'application/x-xfig';
  1085. dsfgv_mimetype['xhtml'] = 'application/xhtml+xml';
  1086. dsfgv_mimetype['xml'] = 'application/xml';
  1087. dsfgv_mimetype['xdf'] = 'application/xcap-diff+xml';
  1088. dsfgv_mimetype['xenc'] = 'application/xenc+xml';
  1089. dsfgv_mimetype['xer'] = 'application/patch-ops-error+xml';
  1090. dsfgv_mimetype['rl'] = 'application/resource-lists+xml';
  1091. dsfgv_mimetype['rs'] = 'application/rls-services+xml';
  1092. dsfgv_mimetype['rld'] = 'application/resource-lists-diff+xml';
  1093. dsfgv_mimetype['xslt'] = 'application/xslt+xml';
  1094. dsfgv_mimetype['xop'] = 'application/xop+xml';
  1095. dsfgv_mimetype['xpi'] = 'application/x-xpinstall';
  1096. dsfgv_mimetype['xspf'] = 'application/xspf+xml';
  1097. dsfgv_mimetype['xul'] = 'application/vnd.mozilla.xul+xml';
  1098. dsfgv_mimetype['xyz'] = 'chemical/x-xyz';
  1099. dsfgv_mimetype['yang'] = 'application/yang';
  1100. dsfgv_mimetype['yin'] = 'application/yin+xml';
  1101. dsfgv_mimetype['zir'] = 'application/vnd.zul';
  1102. dsfgv_mimetype['zip'] = 'application/zip';
  1103. dsfgv_mimetype['zmm'] = 'application/vnd.handheld-entertainment+xml';
  1104. dsfgv_mimetype['zaz'] = 'application/vnd.zzazz.deck+xml';
  1105. /**********************************************************************************
  1106. * 함수명 : dsf_writeFileToDs
  1107. * 설 명 : dataset의 특정컬럼에 주어진 VirtualFile 객체의 내용을 B
  1108. * LOB 형식으로 write 한다.
  1109. * argument : objVFile - write 할 VirtualFile
  1110. * objDataset - 목적 dataset
  1111. * nRow - 파일데이터를 저장할 데이터셋의 행위치
  1112. * sColName - 파일데이터를 저장할 데이터셋의 컬럼명
  1113. *
  1114. * return Type : Object - 저장된 파일에 대한 정보를 담은 객체
  1115. * 작성자 : 이상준
  1116. **********************************************************************************/
  1117. function dsf_writeFileToDs(objVFile, objDataset:Dataset, nRow, sColName)
  1118. {
  1119. var rtn = objVFile.open(VirtualFile.openRead | VirtualFile.openBinary);
  1120. objVFile.seek(0,VirtualFile.seekBegin);
  1121. var bData = new Buffer(objVFile.read(objVFile.getFileSize()));
  1122. var objColInfo = objDataset.getColumnInfo(sColName);
  1123. objDataset.setColumn(nRow,sColName,bData.data);
  1124. // 파일을 닫기전 필요한 파라미터 세팅
  1125. var objFileinfo = new Object();
  1126. objFileinfo.filename = objVFile.filename;
  1127. objFileinfo.filesize = objVFile.getFileSize();
  1128. var sExt = objVFile.filename.substring(objVFile.filename.indexOf(".")+1, objVFile.filename.length);
  1129. objFileinfo.filetype = dsfgv_mimetype[sExt];
  1130. if(objFileinfo.filetype == undefined) {
  1131. objFileinfo.filetype = 'application/octet-stream';
  1132. }
  1133. // 파일을 닫는다.
  1134. objVFile.close();
  1135. return objFileinfo; // FileInfo 반환
  1136. }
  1137. /**********************************************************************************
  1138. * 함수명 : dsf_readFileFromDs
  1139. * 설 명 : dataset의 특정컬럼으로부터 BLOCB 형식의 데이터를 읽어와서
  1140. * 로컬파일시스템에 하나의 파일로 저장한다.
  1141. * argument : sFilePath - 저장될 파일의 경로
  1142. * objDataset - 원본 dataset
  1143. * nRow - 파일데이터를 읽어오는 데이터셋의 행위치
  1144. * sColName - 파일데이터를 읽어오는 데이터셋의 컬럼명
  1145. *
  1146. * return Type : VirtualFile - 저장된 파일에 대한 객체
  1147. * 작성자 : 이상준
  1148. **********************************************************************************/
  1149. function dsf_readFileFromDs(sFilePath, objDataset:Dataset, nRow, sColName)
  1150. {
  1151. // export 시 내문서로 저장이 되기 때문에 파일 이동을 한다.
  1152. this.setWaitCursor(true,true);
  1153. var objExtCommon = new ExtCommon();
  1154. var userHomeDir = system.convertRealPath("%MYDOCUMENT%");
  1155. var arrFileName = sFilePath.split("\\");
  1156. var preFilePath = userHomeDir + arrFileName[arrFileName.length-1];
  1157. var objBytes = objDataset.getColumn(nRow ,sColName);
  1158. var objBuf = new Buffer(objBytes);
  1159. //var vfile = new VirtualFile(sFilePath , VirtualFile.openWrite | VirtualFile.openBinary);
  1160. var vfile = new VirtualFile(preFilePath , VirtualFile.openWrite | VirtualFile.openBinary);
  1161. var rtn = vfile.write(objBuf.data);
  1162. vfile.close();
  1163. // 파일이동
  1164. if(objExtCommon.IsFileExist(sFilePath)) objExtCommon.DeleteFile(sFilePath);
  1165. objExtCommon.MoveFile(preFilePath, sFilePath, false);
  1166. this.setWaitCursor(false,true);
  1167. return sFilePath;
  1168. }
  1169. /**********************************************************************************
  1170. * 함수명 : dsf_setDefaultVal
  1171. * 설 명 : dataset의 특정컬럼에 Default 값을 넣어준다.
  1172. * argument : oDataset - 원본 dataset
  1173. * colNameNVals - Default 값을 적용할 데이터셋의 컬럼명과 Default 값
  1174. * 사용예시 : 1) dsf_setDefaultVal(dataset, "appyn:Y,pid:1234");
  1175. * 2) dsf_setDefaultVal(dataset, "all"); <- 전체 컬럼에 대해서 undefined 값이 나오지 않도록 디폴트값을 ''으로 설정
  1176. * <- useClientLayout 옵션이 true 일때만 사용가능
  1177. * (false 일때는 컬럼 정보 없는 경우가 있어 불가능 함)
  1178. * return Type :
  1179. * 작성자 : 김상목
  1180. **********************************************************************************/
  1181. function dsf_setDefaultVal(oDataset:Dataset, colNameNVals, bAddRow) {
  1182. var allChangeMode = (colNameNVals == "all") ? true : false;
  1183. if(allChangeMode) {
  1184. colNameNVals = "";
  1185. var colCount = oDataset.colcount;
  1186. var colCount2 = colCount - 1;
  1187. for(var i = 0; i < colCount; i++) {
  1188. var postFix = (i == colCount2) ? '' : ',';
  1189. colNameNVals += oDataset.getColID(i) + ":" + '' + postFix;
  1190. }
  1191. }
  1192. var tempVals = colNameNVals.split(',');
  1193. if(tempVals.length < 1)
  1194. return;
  1195. var vals = tempVals[0].split(':');
  1196. if(vals.length < 1)
  1197. return;
  1198. if(!allChangeMode && !oDataset.getColumnInfo(vals[0]))
  1199. oDataset.addColumn(vals[0], "string");
  1200. var expr = "utlf_isNull(" + vals[0] + ")";
  1201. for(var i = 1; i < tempVals.length; i++) {
  1202. var vals = tempVals[i].split(':');
  1203. if(!allChangeMode && !oDataset.getColumnInfo(vals[0]))
  1204. oDataset.addColumn(vals[0], "string");
  1205. expr += " || " + "utlf_isNull(" + vals[0] + ")";
  1206. }
  1207. if(bAddRow && oDataset.rowcount == 0) oDataset.addRow();
  1208. oDataset.enableevent = false;
  1209. oDataset.filter(expr);
  1210. for(var i = 0; i < oDataset.rowcount; i++) {
  1211. for(var j = 0; j < tempVals.length; j++) {
  1212. var vals = tempVals[j].split(':');
  1213. if(utlf_isNull(oDataset.getColumn(i, vals[0]))) {
  1214. oDataset.setColumn(i, vals[0], vals[1]);
  1215. }
  1216. }
  1217. }
  1218. oDataset.filter("");
  1219. oDataset.enableevent = true;
  1220. }
  1221. /**********************************************************************************
  1222. * 함수명 : dsf_setFixVal
  1223. * 설 명 : dataset의 특정컬럼에 고정값을 넣어준다.
  1224. * argument : oDataset - 원본 dataset
  1225. * colNameNVals - 고정값을 적용할 데이터셋의 컬럼명과 고정값
  1226. * 사용예시 : 1) dsf_setFixVal(dataset, "appyn:Y,pid:1234");
  1227. * return Type :
  1228. * 작성자 :
  1229. **********************************************************************************/
  1230. function dsf_setFixVal(oDataset:Dataset, colNameNVals) {
  1231. var tempVals = colNameNVals.split(',');
  1232. if(tempVals.length < 1)
  1233. return;
  1234. var vals = tempVals[0].split(':');
  1235. if(vals.length < 1)
  1236. return;
  1237. if(!oDataset.getColumnInfo(vals[0]))
  1238. oDataset.addColumn(vals[0], "string");
  1239. for(var i = 1; i < tempVals.length; i++) {
  1240. var vals = tempVals[i].split(':');
  1241. if(!oDataset.getColumnInfo(vals[0]))
  1242. oDataset.addColumn(vals[0], "string");
  1243. }
  1244. oDataset.enableevent = false;
  1245. for(var i = 0; i < oDataset.rowcount; i++) {
  1246. for(var j = 0; j < tempVals.length; j++) {
  1247. var vals = tempVals[j].split(':');
  1248. oDataset.setColumn(i, vals[0], vals[1]);
  1249. }
  1250. }
  1251. oDataset.enableevent = true;
  1252. }
  1253. /**********************************************************************************
  1254. * 함수명 : dsf_deleteDs
  1255. * 설 명 : dataset을 삭제한다.
  1256. * argument : sDsName - 원본 dataset 의 이름
  1257. * dsf_deleteDs("ds_tempPatlist");
  1258. * return Type :
  1259. * 작성자 : 김상목
  1260. **********************************************************************************/
  1261. function dsf_deleteDs(sDsName) {
  1262. if(utlf_isNull(this.objects[sDsName])) return;
  1263. var oRemoveDs = this.removeChild(sDsName);
  1264. delete oRemoveDs;
  1265. oRemoveDs = null;
  1266. }
  1267. /**********************************************************************************
  1268. * 함수명 : dsf_getDsCSV
  1269. * 설 명 : Dataset을 CSV로 반환한다.
  1270. * argument : oDataset - Dataset 객체
  1271. nRow - 특정행만 CSV로 만들고 싶을때 행 index를 넘겨준다.
  1272. sHeaderFlag - 해더 정보는 빼고 CSV로 만들때 사용("N"을 넘기면 된다)
  1273. sStatus - 이 값에 해당하는 행의 값만 추출할 때 사용("status:I")
  1274. sRtnCheck - sStatus에 해당하는 값에 따라 해당하는 아이템의 갯수 체크하여 리턴값을 넘기도록 함
  1275. * return Type : String rCSV
  1276. a▦b▦c▩true▦1▦1▩true▦3▦3▩true▦5▦5▩
  1277. * 작성자 : 김상목
  1278. **********************************************************************************/
  1279. function dsf_getDsCSV(oDataset:Dataset, nRow, sHeaderFlag, status, sRtnCheck) {
  1280. if (oDataset.rowcount == 0)
  1281. return "";
  1282. var sColSep = "▦";
  1283. var sRowSep = "▩";
  1284. var rCSV = "";
  1285. var colCount = oDataset.colcount;
  1286. var colCount2 = oDataset.colcount - 1;
  1287. var rowCount = oDataset.rowcount;
  1288. if(colCount == 0)
  1289. return "";
  1290. var colIDs = new Array();
  1291. for(var i = 0; i < colCount; i++) {
  1292. var postFix = (i == colCount2) ? sRowSep : sColSep;
  1293. colIDs[i] = oDataset.getColID(i);
  1294. if(sHeaderFlag != "N")
  1295. rCSV += colIDs[i] + postFix;
  1296. }
  1297. var row = 0;
  1298. if(!utlf_isNull(nRow)) {
  1299. row = nRow;
  1300. rowCount = nRow + 1;
  1301. }
  1302. var statusColNm;
  1303. var statusColVal;
  1304. if(!utlf_isNull(status)) {
  1305. statusColNm = status.split(":")[0];
  1306. statusColVal = status.split(":")[1];
  1307. }
  1308. var selCnt = 0;
  1309. while(row < rowCount) {
  1310. if(utlf_isNull(status) || (oDataset.getColumn(row, statusColNm) == statusColVal)) {
  1311. for(var i = 0; i < colCount; i++) {
  1312. var postFix = (i == colCount2) ? sRowSep : sColSep;
  1313. var value = oDataset.getColumn(row, colIDs[i]);
  1314. if(utlf_isNull(value)) value = "";
  1315. rCSV += value + postFix;
  1316. }
  1317. selCnt++;
  1318. }
  1319. row++;
  1320. }
  1321. if(!utlf_isNull(sRtnCheck) && selCnt == 0)
  1322. return "N";
  1323. return rCSV;
  1324. }
  1325. /**********************************************************************************
  1326. * 함수명 : dsf_setCSVToDs
  1327. * 설 명 : CSV 데이터를 Dataset 으로 생성한다.
  1328. * argument : sDsName - 생성할 Dataset의 이름
  1329. CSV - CSV 데이터
  1330. * 사용예 : dsf_setCSVToDs("ds_patordinfolist", "a▦b▦c▩true▦1▦1▩true▦3▦3▩true▦5▦5▩");
  1331. * 작성자 : 김상목
  1332. **********************************************************************************/
  1333. function dsf_setCSVToDs(sDsName, CSV) {
  1334. if(utlf_isNull(CSV)) {
  1335. dsf_createDs(sDsName);
  1336. return;
  1337. }
  1338. var sColSep = "▦";
  1339. var sRowSep = "▩";
  1340. var CSVArray = CSV.split(sRowSep);
  1341. var CSVArrayCnt = CSVArray.length - 1;
  1342. // 헤더값, 즉 컬럼명을 얻어온다
  1343. var nodeNameArray = CSVArray[0].split(sColSep);
  1344. // 컬럼의 개수를 얻어온다
  1345. var nodeNameArrayCnt = nodeNameArray.length;
  1346. var arrColInfo = new Array();
  1347. for(var i = 0; i < nodeNameArrayCnt; i++) {
  1348. arrColInfo.push({col: nodeNameArray[i]});
  1349. }
  1350. // 파라미터로 넘겨준 이름으로 Dataset을 생성한다.
  1351. dsf_createDs(sDsName, arrColInfo);
  1352. // 생성한 Dataset의 객체를 가져온다.
  1353. var oDataset = this.objects[sDsName];
  1354. for(var i = 1; i < CSVArrayCnt; i++) {
  1355. // i번째 로우(행)의 컬럼 데이터들을 가지고 온다
  1356. var valueArray = CSVArray[i].split(sColSep);
  1357. var rowpos = oDataset.addRow();
  1358. for(var j = 0; j < nodeNameArrayCnt; j++) {
  1359. // 각 로우(행)의 데이터를 컬럼 단위로 하나하나 가지고 와서 oDataset의 컬럼에 하나하나 넣어준다
  1360. oDataset.setColumn(rowpos, nodeNameArray[j], valueArray[j]);
  1361. }
  1362. }
  1363. oDataset.applyChange();
  1364. }
  1365. /**********************************************************************************
  1366. * 함수명 : dsf_makeValue
  1367. * 설 명 : model.makeValue를 대체하기 위해 ds에 column유무를 체크하고 있으면
  1368. * setColumn 없으면 컬럼 생성후 setColumn 실행
  1369. * argument : objDs - 데이터셋
  1370. * sColnm - 컬럼명
  1371. * sData - 입력할 데이터
  1372. * nRow - 추가할 행(default : 0)
  1373. * return Type :
  1374. * 작성자 : 노회식
  1375. **********************************************************************************/
  1376. function dsf_makeValue(objDs, sColnm, sType, sData, nRow) {
  1377. // 컬럼정보 있는지 확인후 없으면 생성
  1378. if(utlf_isNull(objDs.getColumnInfo(sColnm))) {
  1379. var a = objDs.addColumn(sColnm,sType);
  1380. }
  1381. // 바디로우 없으면 한줄 생성
  1382. // if(objDs.rowcount==0) {
  1383. // objDs.addRow();
  1384. // }
  1385. // 로우값 들어오지 않았다면 첫줄
  1386. if(utlf_isNull(nRow)) {
  1387. nRow = 0;
  1388. }
  1389. // 로우값 만큼 로우 생성
  1390. if(nRow >= objDs.rowcount) {
  1391. for(var mi = objDs.rowcount ; mi <= nRow ; mi++) {
  1392. objDs.addRow();
  1393. }
  1394. }
  1395. objDs.setColumn(nRow,sColnm,sData);
  1396. }
  1397. /**********************************************************************************
  1398. * 함수명 : dsf_addDsItem
  1399. * 설명 : 데이타셋 아이템 추가 함수
  1400. * argument : Dataset objDs - 해당 데이타셋 오브젝트
  1401. String sCodeCol - 추가 할 code에 해당하는 데이타셋 컬럼 이름
  1402. String sDataCol - 추가 할 data에 해당하는 데이타셋 컬럼 이름
  1403. String sLabel - 추가 할 아이템 Label
  1404. String sValue - 추가 할 아이템 Value
  1405. String nPosition - 추가 할 위치 ( "above" | "below" )
  1406. * 작성자 : 김상목
  1407. **********************************************************************************/
  1408. function dsf_addDsItem( objDs:Dataset, sCodeCol, sDataCol, sLabel, sValue, sPosition ) {
  1409. if(utlf_isNull(sLabel) && utlf_isNull(sValue) ) {
  1410. sLabel = "전체";
  1411. sValue = "-";
  1412. }
  1413. if(utlf_isNull(sCodeCol)) sCodeCol = "cdid";
  1414. if(utlf_isNull(sDataCol)) sDataCol = "cdnm";
  1415. if(utlf_isNull(sPosition) ) sPosition = "init";
  1416. if(sPosition == "init" || sPosition == "above")
  1417. {
  1418. var nRow = objDs.insertRow(0);
  1419. objDs.setColumn(nRow, sCodeCol, sValue);
  1420. objDs.setColumn(nRow, sDataCol, sLabel);
  1421. }
  1422. else
  1423. {
  1424. var nRow = objDs.addRow();
  1425. objDs.setColumn(nRow, sCodeCol, sValue);
  1426. objDs.setColumn(nRow, sDataCol, sLabel);
  1427. }
  1428. }
  1429. /**********************************************************************************
  1430. * 함수명 : dsf_setTypeFormat
  1431. * 설명 : 데이타셋의 컬럼별 타입과 포맷을 설정하는 함수(기존에 Mapfile에서 설정하여 쓰던 것을 함수로 설정하도록 함)
  1432. * argument : Dataset oDataset - 해당 데이타셋 오브젝트
  1433. String colNameNFormat - 지정 할 컬럼별 타입과 포맷(컬럼별 구분은 '^', 한 컬럼은 컬럼이름:타입:포맷 형식으로 표현)
  1434. - 이 때 포맷의 소수점 앞자리는 무시하고 소수점 아래의 # 갯수에 따라 소수점의 자릿수를 지정함
  1435. * 사용예 : dsf_setTypeFormat(ds_send, "prcpvol:FLOAT^prcpqty:FLOAT^prcptims:INT^prcpdayno:INT");
  1436. - prcpvol 컬럼에 FLOAT 타입을 적용(이렇게 변경 후 기본적으로 FLOAT은 비지니스단으로 넘어갈때 소수점 첫째자리까지 표시됨)
  1437. - prcpqty 컬럼에 FLOAT 타입을 적용
  1438. - prcptims, prcpdayno 컬럼에 INT 타입을 적용
  1439. dsf_setTypeFormat(ds_send, "prcpvol:FLOAT:#.##^prcpqty:FLOAT:#.#^prcptims:INT^prcpdayno:INT");
  1440. - prcpvol 컬럼에 FLOAT 타입을 적용하고 #.## 소수점 둘째자리까지 표시하는 포맷 적용
  1441. - prcpqty 컬럼에 FLOAT 타입을 적용하고 #.# 소수점 첫재자리까지 표시하는 포맷 적용
  1442. - prcptims, prcpdayno 컬럼에 INT 타입을 적용
  1443. dsf_setTypeFormat(ds_send, "rcptamt:INT:#,###^prcpqty:FLOAT^prcptims:INT^prcpdayno:INT");
  1444. - rcptamt 컬럼에 INT 타입을 적용하고 #,### 형태의 포맷을 적용(세자리마다 쉼표 찍는 포맷)
  1445. - prcpqty 컬럼에 FLOAT 타입을 적용
  1446. - prcptims, prcpdayno 컬럼에 INT 타입을 적용
  1447. * 작성자 : 김상목
  1448. **********************************************************************************/
  1449. function dsf_setTypeFormat(oDataset:Dataset, colNameNFormat) {
  1450. var tempVals = colNameNFormat.split('^');
  1451. if(tempVals.length < 1)
  1452. return;
  1453. var vals = tempVals[0].split(':');
  1454. if(vals.length < 1)
  1455. return;
  1456. oDataset.enableevent = false;
  1457. var colArray = new Array();
  1458. var index = 0;
  1459. for(var i = 0; i < tempVals.length; i++) {
  1460. var vals = tempVals[i].split(':');
  1461. var columnInfo = oDataset.getColumnInfo(vals[0]);
  1462. columnInfo.type = "STRING"; // String 으로 바꿔놓고 해야 아래 format으로 변환된 값으로 바뀜
  1463. if(vals.length == 3 && !utlf_isNull(vals[2])) {
  1464. colArray[index] = new Array(2);
  1465. colArray[index][0] = vals[0]; // 컬럼id
  1466. colArray[index++][1] = vals[2]; // format 형식
  1467. }
  1468. }
  1469. if(colArray.length > 0) {
  1470. for(var i = 0; i < oDataset.rowcount; i++) {
  1471. for(j = 0; j < colArray.length; j++) {
  1472. var value = oDataset.getColumn(i, colArray[j][0]);
  1473. oDataset.setColumn(i, colArray[j][0], utlf_setFormat(value, colArray[j][1]));
  1474. }
  1475. }
  1476. }
  1477. for(var i = 0; i < tempVals.length; i++) {
  1478. var vals = tempVals[i].split(':');
  1479. var columnInfo = oDataset.getColumnInfo(vals[0]);
  1480. columnInfo.type = vals[1]; // 원래 설정할 타입으로 다시 변경
  1481. }
  1482. oDataset.enableevent = true;
  1483. }
  1484. /*
  1485. function dsf_clearDsList(checkDsNm, model){
  1486. // utlf_addLog("***** dsf_clearDsList checkDsNm : " + checkDsNm );
  1487. // utlf_addLog("***** this.objects.length : " + this.objects.length );
  1488. var rCnt = 0;
  1489. var model;
  1490. if( utlf_isNull(model) ){ model = this;}
  1491. //else{ model = eval(Model); }
  1492. for(var i=0; i<model.objects.length; i++){
  1493. var temp = (model.objects[i].name).indexOf( checkDsNm );
  1494. if( temp > -1 ){
  1495. // utlf_addLog("***** this.object[" + i + "].name : " + this.objects[i].name );
  1496. var dsSrcNm = model.objects[i].name;
  1497. var tempNm = dsSrcNm.substring(checkDsNm.length, dsSrcNm.length);
  1498. // utlf_addLog("***** tempNm : " + tempNm);
  1499. model.objects[i].clearData();
  1500. rCnt++;
  1501. }
  1502. }
  1503. return rCnt;
  1504. }
  1505. function dsf_copyDsList(dsDestNm, dsSrcNm, sMode, destModel, srcModel ){
  1506. // utlf_addLog("***** dsf_copyDsList dsDestNm : " + dsDestNm + " dsSrcNm : " + dsSrcNm + " sMode : " + sMode + " *****");
  1507. if( utlf_isNull(destModel) ) destModel = this;
  1508. //else destModel = eval(destModel);
  1509. if( utlf_isNull(srcModel) ) srcModel = this;
  1510. //else srcModel = eval(srcModel);
  1511. // utlf_addLog(" destModel : " + destModel);
  1512. // utlf_addLog(" srcModel : " + srcModel);
  1513. // 복사 전 목적노드 리스트 초기화
  1514. var clearCnt = dsf_clearDsList(dsDestNm, destModel);
  1515. if( clearCnt > 0 ) utlf_addLog("***** [" + dsDestNm + "] Node List Clear Count : " + clearCnt + " *****");
  1516. for(var i=0; i<srcModel.objects.length; i++){
  1517. var temp = (srcModel.objects[i].name).indexOf( dsSrcNm );
  1518. if( temp > -1 ){
  1519. // utlf_addLog("***** srcModel.object[" + i + "].name : " + srcModel.objects[i].name );
  1520. // utlf_addLog("***** srcModel.object[" + i + "].rowcount : " + srcModel.objects[i].rowcount );
  1521. var temp_dsSrcNm = srcModel.objects[i].name;
  1522. var dsSrc = srcModel.objects[i];
  1523. var temp_dsDestNm = temp_dsSrcNm.substring(temp_dsSrcNm.length, dsSrcNm.length);
  1524. if( !utlf_isNull(temp_dsDestNm) && !utlf_isNull(dsDestNm) ){
  1525. var dsDest = destModel.objects[dsDestNm + temp_dsDestNm];
  1526. // sysf_trace("dsDest : " +dsDest);
  1527. if( utlf_isNull(dsDest) ){
  1528. // var rNm = dsf_createDs(dsDestNm + temp_dsDestNm);
  1529. // dsDest = this.objects[rNm];
  1530. var sDsName = dsDestNm + temp_dsDestNm;
  1531. var objDs = new Dataset(sDsName);
  1532. destModel.addChild(sDsName, objDs);
  1533. objDs.name = sDsName;
  1534. dsDest = destModel.objects[sDsName];
  1535. // utlf_addLog("dsDest : " +dsDest);
  1536. }
  1537. if( utlf_isNull(sMode) ) sMode = "replace";
  1538. var rCnt = dsDest.copyData(dsSrc);
  1539. //var rCnt = dsf_copyDs(dsDest, dsSrc, sMode);
  1540. utlf_addLog("***** copyDs dsDest : " + dsDest.name + " dsDest copyCnt : " + rCnt + " *****");
  1541. }
  1542. }
  1543. }
  1544. }
  1545. */
  1546. function dsf_clearDsList(arrDs, tForm){
  1547. var rCnt = 0;
  1548. if( utlf_isNull(tForm) ) tForm = this;
  1549. for( var i=0; i< arrDs.length; i++ ){
  1550. var oDsNm = arrDs[i];
  1551. var oDs = tForm.objects[oDsNm];
  1552. if( oDs != null ){
  1553. var nRowCnt = oDs.clearData();
  1554. rCnt++;
  1555. utlf_addLog("***** clearDs : " + oDs.name + " nRowCnt : " + nRowCnt + " *****");
  1556. }
  1557. }
  1558. return rCnt;
  1559. }
  1560. /*
  1561. arrdsDest, arrdsSrc 는 같은 한쌍.
  1562. */
  1563. function dsf_copyDsList(arrdsDest, arrdsSrc, sMode, destForm, srcForm ){
  1564. if( utlf_isNull(destForm) ) destForm = this;
  1565. if( utlf_isNull(srcForm) ) srcForm = this;
  1566. utlf_addLog("@@@@@ destForm : " + destForm.name + " srcForm : " + srcForm.name + " @@@@@");
  1567. if( arrdsDest.length != arrdsSrc.length ){
  1568. utlf_addLog("@@@@@ arrayList count is not the same. check please! @@@@@");
  1569. return;
  1570. }
  1571. if( utlf_isNull(sMode) ) sMode = "replace";
  1572. if( sMode != "append" ){
  1573. // 복사 전 목적노드 리스트 초기화
  1574. var clearCnt = dsf_clearDsList(arrdsDest, destForm);
  1575. if( clearCnt > 0 ) utlf_addLog("@@@@@ [" + arrdsDest + "] Node List Clear Count : " + clearCnt + " @@@@@@");
  1576. }
  1577. var rCnt = 0;
  1578. for(var i=0; i<arrdsDest.length; i++){
  1579. var oDest = destForm.objects[arrdsDest[i]];
  1580. var oSrc = srcForm.objects[arrdsSrc[i]];
  1581. if( oDest == null ){
  1582. var sDsName = arrdsDest[i];
  1583. var objDs = new Dataset(sDsName);
  1584. destForm.addChild(sDsName, objDs);
  1585. objDs.name = sDsName;
  1586. oDest = destForm.objects[sDsName];
  1587. }
  1588. if( sMode == "replace" ){
  1589. rCnt = oDest.copyData(oSrc, true);
  1590. utlf_addLog("***** copyData dsDest : " + oDest.name + " dsDest copyCnt : " + rCnt + " *****");
  1591. }else if ( sMode == "append" ){
  1592. // copy column info
  1593. if( !utlf_isNull(oSrc.filterstr) ){
  1594. dsf_createDs("tmp_oSrc");
  1595. tmp_oSrc.copyData(oSrc, true);
  1596. dsf_copyColInfo(oDest, tmp_oSrc, false);
  1597. rCnt = oDest.appendData(tmp_oSrc, true);
  1598. dsf_deleteDs("tmp_oSrc");
  1599. }else{
  1600. dsf_copyColInfo(oDest, oSrc, false);
  1601. rCnt = oDest.appendData(oSrc, true);
  1602. }
  1603. utlf_addLog("***** appendData dsDest : " + oDest.name + " dsDest copyCnt : " + rCnt + " *****");
  1604. }
  1605. }
  1606. }
  1607. /**********************************************************************************
  1608. * 함수명 : dsf_changeBind
  1609. * 설명 : 컴포넌트에 Bind 되어 있는 값을 변경 한다.
  1610. * argument : String sCompId - 해당 컴포넌트 이름
  1611. String sColNm - 변경 할 컬럼 이름
  1612. String sDsNm - 변경할 데이터셋 이름
  1613. * 작성자 : 김상목
  1614. **********************************************************************************/
  1615. function dsf_changeBind(sCompId, sColNm, sDsNm) {
  1616. for(var i = 0; i < this.binds.length; i++) {
  1617. if(this.binds[i].compid == sCompId) {
  1618. this.binds[i].columnid = sColNm;
  1619. if(!utlf_isNull(sDsNm))
  1620. this.binds[i].datasetid = sDsNm;
  1621. this.binds[i].bind();
  1622. break;
  1623. }
  1624. }
  1625. }
  1626. /**********************************************************************************
  1627. * 함수명 : dsf_mergeColumn
  1628. * 설 명 : DS의 컬럼을 합친다.
  1629. * argument : dsDest - 목적데이터셋
  1630. * dsSrc - 소스데이터셋
  1631. flag - 중복데이터컬럼 세팅 구분(추민수) default -> false, true일경우 중복데이터컬럼값도 변경
  1632. * return Type :
  1633. * 작성자 : 노회식
  1634. **********************************************************************************/
  1635. function dsf_mergeColumn(dsDest, dsSrc, flag) {
  1636. var destRcnt = dsDest.rowcount;
  1637. var srcRcnt = dsSrc.rowcount;
  1638. var srcCcnt = dsSrc.colcount;
  1639. if(utlf_isNull(flag)){
  1640. flag = false;
  1641. }
  1642. if(destRcnt < srcRcnt) {
  1643. for(var i = destRcnt ; i < srcRcnt ; i++) {
  1644. dsDest.addRow();
  1645. }
  1646. }
  1647. for(var i = 0 ; i < srcCcnt ; i++) {
  1648. var colInfo = dsSrc.getColumnInfo(i);
  1649. var colNm = colInfo.name;
  1650. var colType = colInfo.type;
  1651. if(utlf_isNull(dsDest.getColumnInfo(colNm))) {
  1652. dsDest.addColumn(colNm,colType);
  1653. for(var j = 0 ; j < srcRcnt; j++) {
  1654. dsDest.setColumn(j,colNm,dsSrc.getColumn(j,colNm));
  1655. }
  1656. } else {
  1657. if(flag == true){
  1658. for(var j = 0 ; j < srcRcnt; j++) {
  1659. dsDest.setColumn(j,colNm,dsSrc.getColumn(j,colNm));
  1660. }
  1661. }
  1662. }
  1663. }
  1664. }
  1665. /**********************************************************************************
  1666. * 함수명 : dsf_deleteColumn
  1667. * 설 명 : DS의 컬럼을 제거한다
  1668. * argument : oDataset - 원본 dataset
  1669. * colName - 삭제할 데이셋의 컬럼명
  1670. * 사용예시 : 1) dsf_deleteColumn(dataset, "appyn,pid");
  1671. * return Type :
  1672. * 작성자 :
  1673. **********************************************************************************/
  1674. function dsf_deleteColumn(oDataset:Dataset, colName) {
  1675. var vals = colName.split(',');
  1676. if(vals.length < 1)
  1677. return;
  1678. var updatecontrol = oDataset.updatecontrol;
  1679. if( updatecontrol )
  1680. oDataset.updatecontrol = false;
  1681. oDataset.enableevent = false;
  1682. for(var i = 0; i < vals.length; i++) {
  1683. if(oDataset.getColumnInfo(vals[i]) != null)
  1684. oDataset.deleteColumn(vals[i]);
  1685. }
  1686. oDataset.enableevent = true;
  1687. if( updatecontrol )
  1688. oDataset.updatecontrol = true;
  1689. }
  1690. /**********************************************************************************
  1691. * 함수명 : dsf_getColumnNullToEmpty
  1692. * 설 명 : dataset의 특정컬럼 조회시 컬럼이 없거나 값일 없을 경우 ""값을 리턴해준다.
  1693. * argument : oDS - 원본 dataset
  1694. * row - 행번호
  1695. * colNm - 컬럼명
  1696. * 사용예시 : dsf_getColumnNullToEmpty(dataset, 0, "genrdd");
  1697. * return Type :
  1698. * 작성자 : 김상목
  1699. **********************************************************************************/
  1700. function dsf_getColumnNullToEmpty(oDS, row, colNm) {
  1701. var result = "";
  1702. var colInfo = oDS.getColumnInfo(colNm);
  1703. if(!utlf_isNull(colInfo)) {
  1704. result = utlf_transNullToEmpty(oDS.getColumn(row, colNm));
  1705. }
  1706. return result;
  1707. }]]></Script>