SMRSM00500_물류MSDS물품일괄등록.xfdl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRSM00500" position="absolute 0 0 1197 782" titletext="신규물질 등록 조회(물류)" oninit="SMRSM00500_oninit" onload="SMRSM00500_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="신규물질 등록 조회(물류)" class="tit_1" position="absolute 0 0 203 25" anchor="left top"/>
  8. <Shape id="line2" linetype="horizontal" class="line_2" position="absolute 0 35 1194 41" anchor="top right"/>
  9. <Button id="btn_save" taborder="1" text="일괄등록" class="btn4" position="absolute 1112 14 1192 36" anchor="top right" onclick="btn_save_onclick"/>
  10. <Div id="grp_sea" taborder="2" class="div_SA2" position="absolute 0 39 1194 79" anchor="left top right">
  11. <Layouts>
  12. <Layout>
  13. <Static id="caption7" text="물품코드 최종 Update 일자" class="search_name" position="absolute 24 11 210 28" anchor="left top"/>
  14. <Shape id="line5" linetype="vertical" class="line_4" position="absolute 477 6 483 28" anchor="right"/>
  15. <Button id="btn_search" taborder="2" text="조회" class="btn1" position="absolute 498 7 554 29" anchor="right" onclick="grp_sea_btn_search_onclick"/>
  16. <Static id="caption1" text="~" position="absolute 326 12 337 27" anchor="left top"/>
  17. <Calendar id="ipt_fromdd" taborder="3" class="input_default" position="absolute 220 9 321 28" mask="yyyy-mm-dd" anchor="left top" autoskip="true" autoselect="true"/>
  18. <Calendar id="ipt_todd" taborder="4" class="input_default" position="absolute 344 9 445 28" mask="yyyy-mm-dd" anchor="left top" autoselect="true" autoskip="true"/>
  19. </Layout>
  20. </Layouts>
  21. </Div>
  22. <Shape id="line3" class="line_10" position="absolute 0 105 765 111" anchor="left top right"/>
  23. <Shape id="line1" linetype="horizontal" class="line_10" position="absolute 770 105 1190 111" anchor="top right"/>
  24. <Static id="caption21" text="미등록된 물류 MSDS물품 목록" class="tit_2" position="absolute 1 89 215 104" anchor="left top"/>
  25. <Static id="caption20" text="상세내역" class="tit_2" position="absolute 771 89 845 105" anchor="top right"/>
  26. <Grid id="grd_goodlist" taborder="3" binddataset="ds_main_goodlist" useinputpanel="false" position="absolute 0 110 765 740" anchor="all" oncellclick="grd_goodlist_oncellclick" cellsizingtype="col">
  27. <Formats>
  28. <Format id="default">
  29. <Columns>
  30. <Column size="26" band="left"/>
  31. <Column size="30"/>
  32. <Column size="77"/>
  33. <Column size="188"/>
  34. <Column size="86"/>
  35. <Column size="94"/>
  36. <Column size="94"/>
  37. <Column size="157"/>
  38. <Column size="0"/>
  39. <Column size="0"/>
  40. <Column size="0"/>
  41. <Column size="0"/>
  42. </Columns>
  43. <Rows>
  44. <Row size="24" band="head"/>
  45. <Row size="24"/>
  46. </Rows>
  47. <Band id="head">
  48. <Cell/>
  49. <Cell col="1" text="선택"/>
  50. <Cell col="2" text="물품코드"/>
  51. <Cell col="3" text="물품명"/>
  52. <Cell col="4" text="규격"/>
  53. <Cell col="5" text="제조회사"/>
  54. <Cell col="6" text="주거래처"/>
  55. <Cell col="7" text="물질명"/>
  56. <Cell col="8" text="제조회사코드"/>
  57. <Cell col="9" text="주거래처코드"/>
  58. <Cell col="10" text="최초등록일"/>
  59. <Cell col="11" text="비고"/>
  60. </Band>
  61. <Band id="body">
  62. <Cell celltype="head"/>
  63. <Cell col="1" displaytype="checkbox" edittype="checkbox" class="text_center" text="bind:checkflag" expr="expr:checkflag == 'Y' || checkflag == '1' ? 1 : 0"/>
  64. <Cell col="2" class="text_center" text="bind:goodcd"/>
  65. <Cell col="3" style="align:left top;padding:4 2 2 2;" text="bind:goodnm" wordwrap="word"/>
  66. <Cell col="4" style="align:left middle;" text="bind:goodspec"/>
  67. <Cell col="5" style="align:left middle;" text="bind:prodcmpynm"/>
  68. <Cell col="6" style="align:left middle;" text="bind:maincustlastsuplplcenm"/>
  69. <Cell col="7" style="align:left top;padding:4 2 2 2;" text="bind:matrnm" wordwrap="word"/>
  70. <Cell col="8" text="bind:prodcmpycd"/>
  71. <Cell col="9" text="bind:maincustlastsuplplce"/>
  72. <Cell col="10" text="bind:frgstdd"/>
  73. <Cell col="11" text="bind:cmt"/>
  74. </Band>
  75. </Format>
  76. </Formats>
  77. </Grid>
  78. <Static id="cap_matrnm" text="물 질 명" class="cell_1" position="absolute 770 110 878 135" anchor="top right"/>
  79. <Edit id="ipt_matrnm" taborder="4" class="input_essential" position="absolute 881 113 1186 132" autoselect="true" anchor="top right"/>
  80. <Shape id="line4" linetype="horizontal" class="line_2" position="absolute 770 133 1191 139" anchor="top right"/>
  81. <Shape id="line17" linetype="horizontal" class="line_2" position="absolute 770 295 1190 301" anchor="top right"/>
  82. <Shape id="line18" linetype="horizontal" class="line_2" position="absolute 770 355 1190 361" anchor="top right"/>
  83. <Static id="caption25" text="(물류)물품코드" class="cell_1" position="absolute 770 137 878 162" anchor="top right"/>
  84. <Static id="caption27" text="비 고" class="cell_1" position="absolute 770 299 878 357" anchor="top right"/>
  85. <Static id="caption29" text="최초등록일" class="cell_1" position="absolute 770 272 878 297" anchor="top right"/>
  86. <Calendar id="ipt_frgstdd" taborder="5" class="input_default" position="absolute 881 275 979 294" mask="yyyy-mm-dd" autoselect="true" anchor="top right"/>
  87. <Shape id="line19" linetype="horizontal" class="line_2" position="absolute 770 160 1190 166" anchor="top right"/>
  88. <Static id="caption2" text="(물류)물품명" class="cell_1" position="absolute 770 164 878 189" anchor="top right"/>
  89. <Shape id="line7" linetype="horizontal" class="line_2" position="absolute 770 187 1191 193" anchor="top right"/>
  90. <Shape id="line20" linetype="horizontal" class="line_2" position="absolute 770 214 1191 220" anchor="top right"/>
  91. <Static id="caption11" text="규 격" class="cell_1" position="absolute 770 191 878 216" anchor="top right"/>
  92. <Shape id="line9" linetype="horizontal" class="line_2" position="absolute 770 241 1191 247" anchor="top right"/>
  93. <Static id="caption8" text="제조회사" class="cell_1" position="absolute 770 218 878 243" anchor="top right"/>
  94. <Shape id="line10" linetype="horizontal" class="line_2" position="absolute 770 268 1191 274" anchor="top right"/>
  95. <Static id="caption12" text="주거래처" class="cell_1" position="absolute 770 245 878 270" anchor="top right"/>
  96. <Button id="btn_prodcmpycd" taborder="6" class="icon_search" position="absolute 935 222 951 238" anchor="top right" onclick="btn_prodcmpycd_onclick"/>
  97. <Edit id="ipt_prodcmpycd" taborder="7" class="input_default" position="absolute 881 221 931 240" autoselect="true" anchor="top right"/>
  98. <Edit id="opt_maincustlastsuplplcenm" taborder="8" readonly="true" position="absolute 955 248 1185 267" autoselect="true" anchor="top right" class="output"/>
  99. <Edit id="ipt_maincustlastsuplplce" taborder="9" class="input_default" position="absolute 881 248 931 267" autoselect="true" anchor="top right"/>
  100. <Button id="btn_maincustlastsuplplce" taborder="10" class="icon_search" position="absolute 935 249 951 265" anchor="top right" onclick="btn_maincustlastsuplplce_onclick"/>
  101. <Edit id="opt_goodcd" taborder="11" readonly="true" position="absolute 881 140 974 159" autoselect="true" anchor="top right" class="output"/>
  102. <Edit id="opt_goodnm" taborder="12" readonly="true" position="absolute 881 167 1186 186" autoselect="true" anchor="top right" class="output"/>
  103. <Edit id="opt_goodspec" taborder="13" readonly="true" position="absolute 881 193 1186 212" autoselect="true" anchor="top right" class="output"/>
  104. <TextArea id="ta_cmt" taborder="14" position="absolute 881 301 1186 353" autoselect="true" wordwrap="word" anchor="top right"/>
  105. <Static id="caption3" text="※ 물류 물품마스터에서 물품코드의 제조회사를 변경하였을 경우, 해당 물품코드가 화학물질코드로 기등록된 것이면 제조회사와 무관하게 위의 목록 상에는 나타나지 않음을 양지하시기 바랍니다." position="absolute 5 746 1055 766" anchor="left right bottom" style="color:#ff0000ff;"/>
  106. <Edit id="ipt_prodcmpynm" taborder="15" class="input_default" position="absolute 955 221 1185 240" autoselect="true" anchor="top right"/>
  107. <Button id="btn_excel" taborder="16" text="엑셀출력" class="btn7" position="absolute 689 85 763 104" anchor="top right" onclick="btn_excel_onclick"/>
  108. </Layout>
  109. </Layouts>
  110. <Objects>
  111. <Dataset id="ds_main_goodlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_goodlist_oncolumnchanged">
  112. <ColumnInfo>
  113. <Column id="checkflag" type="STRING"/>
  114. <Column id="goodcd" type="STRING"/>
  115. <Column id="goodnm" type="STRING"/>
  116. <Column id="goodspec" type="STRING"/>
  117. <Column id="prodcmpynm" type="STRING"/>
  118. <Column id="maincustlastsuplplcenm" type="STRING"/>
  119. <Column id="matrnm" type="STRING"/>
  120. <Column id="prodcmpycd" type="STRING"/>
  121. <Column id="maincustlastsuplplce" type="STRING"/>
  122. <Column id="frgstdd" type="STRING"/>
  123. <Column id="cmt" type="STRING"/>
  124. </ColumnInfo>
  125. </Dataset>
  126. <Dataset id="ds_main_condition" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  127. <ColumnInfo>
  128. <Column id="fromdd" type="STRING" size="256"/>
  129. <Column id="todd" type="STRING" size="256"/>
  130. </ColumnInfo>
  131. <Rows>
  132. <Row/>
  133. </Rows>
  134. </Dataset>
  135. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  136. <Dataset id="ds_main_goodinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  137. <ColumnInfo>
  138. <Column id="matrnm" type="STRING" size="256"/>
  139. <Column id="goodcd" type="STRING" size="256"/>
  140. <Column id="goodnm" type="STRING" size="256"/>
  141. <Column id="goodspec" type="STRING" size="256"/>
  142. <Column id="prodcmpycd" type="STRING" size="256"/>
  143. <Column id="prodcmpynm" type="STRING" size="256"/>
  144. <Column id="maincustlastsuplplce" type="STRING" size="256"/>
  145. <Column id="maincustlastsuplplcenm" type="STRING" size="256"/>
  146. <Column id="frgstdd" type="STRING" size="256"/>
  147. <Column id="cmt" type="STRING" size="256"/>
  148. </ColumnInfo>
  149. <Rows>
  150. <Row/>
  151. </Rows>
  152. </Dataset>
  153. </Objects>
  154. <Bind>
  155. <BindItem id="item0" compid="grp_sea.ipt_fromdd" propid="value" datasetid="ds_main_condition" columnid="fromdd"/>
  156. <BindItem id="item1" compid="grp_sea.ipt_todd" propid="value" datasetid="ds_main_condition" columnid="todd"/>
  157. <BindItem id="item2" compid="ta_cmt" propid="value" datasetid="ds_main_goodinfo" columnid="cmt"/>
  158. <BindItem id="item3" compid="ipt_frgstdd" propid="value" datasetid="ds_main_goodinfo" columnid="frgstdd"/>
  159. <BindItem id="item4" compid="ipt_maincustlastsuplplce" propid="value" datasetid="ds_main_goodinfo" columnid="maincustlastsuplplce"/>
  160. <BindItem id="item5" compid="opt_maincustlastsuplplcenm" propid="value" datasetid="ds_main_goodinfo" columnid="maincustlastsuplplcenm"/>
  161. <BindItem id="item6" compid="ipt_prodcmpynm" propid="value" datasetid="ds_main_goodinfo" columnid="prodcmpynm"/>
  162. <BindItem id="item7" compid="ipt_prodcmpycd" propid="value" datasetid="ds_main_goodinfo" columnid="prodcmpycd"/>
  163. <BindItem id="item8" compid="opt_goodspec" propid="value" datasetid="ds_main_goodinfo" columnid="goodspec"/>
  164. <BindItem id="item9" compid="opt_goodnm" propid="value" datasetid="ds_main_goodinfo" columnid="goodnm"/>
  165. <BindItem id="item10" compid="opt_goodcd" propid="value" datasetid="ds_main_goodinfo" columnid="goodcd"/>
  166. <BindItem id="item11" compid="ipt_matrnm" propid="value" datasetid="ds_main_goodinfo" columnid="matrnm"/>
  167. </Bind>
  168. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  169. * System Name :
  170. * Job Name :
  171. * Creator :
  172. * Make Date : 2017-06-19
  173. * Description :
  174. *---------------------------------------------------------------------------------------
  175. * Modify Date Modifier Modify Description
  176. *---------------------------------------------------------------------------------------
  177. * 2017-06-19 Live Converter TF->XP
  178. *
  179. *---------------------------------------------------------------------------------------
  180. ****************************************************************************************/
  181. include "com_commonxp::comm_main.xjs";
  182. include "mis_miscommonxp::MIS.xjs";
  183. include "mis_miscommonxp::RAC001.xjs";
  184. include "mis_miscommonxp::RSZ001.xjs";
  185. function SMRSM00500_oninit(obj:Form, e:InitEventInfo)
  186. {
  187. frmf_initForm(obj);
  188. }
  189. function SMRSM00500_onload(obj:Form, e:LoadEventInfo)
  190. {
  191. grdf_initGrid(grd_goodlist);
  192. grdf_setRowTypeIcon(grd_goodlist, 0);
  193. fOpenForm();
  194. }
  195. //화면 로드시 초기화 함수
  196. function fOpenForm()
  197. {
  198. misfGridInit(grd_goodlist);
  199. ds_main_condition.setColumn(0, "fromdd", utlf_getCurrentDate().toDate().getAddDate(-1,"M").getDateFormat());
  200. ds_main_condition.setColumn(0, "todd", utlf_getCurrentDate());
  201. }
  202. //조회
  203. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  204. {
  205. fGetGoodList();
  206. }
  207. //코드 목록 조회 함수
  208. function fGetGoodList()
  209. {
  210. misfGridInit(grd_goodlist);
  211. ds_main_goodlist.clearData(); //조회시 기존 데이터 삭제
  212. ds_send.copyData(ds_main_condition);
  213. var oParam = {};
  214. oParam.id = "TRRSM00501";
  215. oParam.service = "purcbaseapp.PurcBaseMngt";
  216. oParam.method = "reqGetMsdsGoodList";
  217. oParam.inds = "req=ds_send";
  218. oParam.outds = "ds_main_goodlist=goodlist";
  219. oParam.async = false;
  220. //oParam.callback = "cf_TRRSM00501";
  221. tranf_submit(oParam);
  222. }
  223. function grd_goodlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  224. {
  225. if(ds_main_goodlist.rowcount == 0 || e.col < 1) return;
  226. if( !utlf_isNull(opt_goodcd.value))
  227. {
  228. fPutGoodInfo();
  229. }
  230. var cur_row = ds_main_goodlist.rowposition;
  231. fGetGoodInfo(cur_row);
  232. }
  233. //상세내역 -> 목록
  234. function fPutGoodInfo()
  235. {
  236. if( true )
  237. {
  238. var iRow = ds_main_goodlist.findRow("goodcd", opt_goodcd.value);
  239. ds_main_goodlist.enableevent = false;
  240. ds_main_goodlist.updatecontrol = false;
  241. ds_main_goodlist.setColumn(iRow, "matrnm", String(utlf_transNullToEmpty(ipt_matrnm.value)).replace("\n", ""));
  242. ds_main_goodlist.setColumn(iRow, "prodcmpycd", utlf_trim(utlf_transNullToEmpty(ipt_prodcmpycd.value)));
  243. ds_main_goodlist.setColumn(iRow, "prodcmpynm", utlf_transNullToEmpty(ipt_prodcmpynm.value));
  244. ds_main_goodlist.setColumn(iRow, "maincustlastsuplplce", utlf_trim(utlf_transNullToEmpty(ipt_maincustlastsuplplce.value)));
  245. ds_main_goodlist.setColumn(iRow, "maincustlastsuplplcenm", utlf_transNullToEmpty(opt_maincustlastsuplplcenm.value));
  246. ds_main_goodlist.setColumn(iRow, "frgstdd", utlf_transNullToEmpty(ipt_frgstdd.value));
  247. ds_main_goodlist.setColumn(iRow, "cmt", utlf_transNullToEmpty(ta_cmt.value));
  248. ds_main_goodlist.updatecontrol = true;
  249. ds_main_goodlist.enableevent = true;
  250. }
  251. }
  252. //목록 -> 상세내역
  253. function fGetGoodInfo(pRow)
  254. {
  255. if ( pRow >= 0 )
  256. {
  257. ds_main_goodinfo.copyRow(0, ds_main_goodlist, pRow);
  258. }
  259. }
  260. //일괄등록
  261. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  262. {
  263. fClickSaveBtn();
  264. }
  265. // 저장버튼 클릭시 저장 수행 함수
  266. function fClickSaveBtn()
  267. {
  268. var iCheckCount = 0;
  269. for(var i = 0; i < ds_main_goodlist.rowcount; i++)
  270. {
  271. if(ds_main_goodlist.getColumn(i, "checkflag") == "Y")
  272. {
  273. iCheckCount = 1;
  274. break;
  275. }
  276. }
  277. if(iCheckCount == 0)
  278. {
  279. sysf_messageBox("선택된 물품이 없습니다. 먼저 코드 등록할 물품을 선택하십시요. ", "E999", "");
  280. return false;
  281. }
  282. if( !utlf_isNull(opt_goodcd.value))
  283. {
  284. fPutGoodInfo();
  285. }
  286. if(!fIsValidForSave()) //저장전 유효성 검사
  287. {
  288. return;
  289. }
  290. //model.makeValue("/root/send/goodlist", grd_goodlist.getUpdateData());
  291. var oParam = {};
  292. oParam.id = "TXRSM00501";
  293. oParam.service = "purcbaseapp.PurcBaseMngt";
  294. oParam.method = "reqExeSaveMsdsGood";
  295. oParam.inds = "goodlist=ds_main_goodlist:U";
  296. oParam.async = false;
  297. oParam.callback = "cf_TXRSM00501";
  298. tranf_submit(oParam);
  299. }
  300. function cf_TXRSM00501(sSvcId, nErrorCode, sErrorMsg)
  301. {
  302. if(nErrorCode < 0) return;
  303. else
  304. {
  305. sysf_messageBox("정상적으로 처리되었습니다. .", "I999", "");
  306. fGetGoodList(); //등록 후 재조회
  307. }
  308. }
  309. function ds_main_goodlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  310. {
  311. if(e.columnid == "checkflag")
  312. {
  313. obj.setColumn(e.row, "checkflag", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  314. }
  315. }
  316. function btn_prodcmpycd_onclick(obj:Button, e:ClickEventInfo)
  317. {
  318. rszfOpenPopUpListByWndName(ipt_prodcmpycd,"","prodcmpycd,prodcmpynm","SPRSD00160","","");
  319. }
  320. function btn_maincustlastsuplplce_onclick(obj:Button, e:ClickEventInfo)
  321. {
  322. rszfOpenPopUpListByWndName(ipt_maincustlastsuplplce,"","maincustlastsuplplce,maincustlastsuplplcenm","SPRSD00220");
  323. }
  324. //저장전 유효성 검사
  325. function fIsValidForSave()
  326. {
  327. for(var i = 0; i < ds_main_goodlist; i++)
  328. {
  329. if(ds_main_goodlist.getColumn(i, "checkflag") == "N") continue;
  330. if( utlf_isNull(ds_main_goodlist.getColumn(i, "matrnm")))
  331. {
  332. sysf_messageBox("물품코드 " + ds_main_goodlist.getColumn(i, "goodcd") + " 의 물질명이 등록되지 않았습니다. ", "E999", "");
  333. return false;
  334. }
  335. }
  336. return true;
  337. }
  338. //엑셀출력
  339. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  340. {
  341. misfSaveExcel(grd_goodlist);
  342. }
  343. ]]></Script>
  344. </Form>
  345. </FDL>