12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : HIT
- * Job Name :
- * File Name : comm_frm.xjs
- * Creator : 임준호
- * Make Date : 2014-02-18
- *
- * Description : form API
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2014-02-18 HIT
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- /********************************************************************************************************************/
- /************************* 폼 일반 *********************************************************************************/
- /********************************************************************************************************************/
- // frmf_getTitle : 현재 화면의 타이틀을 가져온다.
- // frmf_getBizNameByUrl : url에서 업무명을 가져온다.(업무명)
- // frmf_initTitle : 화면 title을 설정한다.
- // frmf_deleteUidChild : uid repository에서 child팝업을 삭제한다.
- // frmf_initForm : form 초기화. form의 onload함수에 반드시 추가한다.
- // frmf_getChildUID : child 윈도우의 UID 정보
- // frmf_getChildPID : child 윈도우의 PID 정보
- // frmf_getMyUID : 현재 form의 UID 정보
- // frmf_getOpenerUID : Opener의 UID 정보(child 팝업에 저장된 opener uid를 가져온다.)
- // frmf_getScreenDisabled : 화면 상태 반환
- // frmf_setMenuDisabled : 상단 메뉴 enable 상태 설정
- // frmf_openLoadingBar : loading 이미지 open
- // frmf_closeLoadingBar : loading 이미지 close
- // frmf_setParameter : name 명으로 value 값을 저장, 기존에 같은 name이 있으면 첫번째 값을 덮어쓴다.
- // frmf_addParameter : name 명으로 value 값을 추가
- // frmf_getParameter : index 번째 name의 값을 가져옴, index 생략하면 1
- // frmf_getParameterCount : 해당 sName의 파라메터 갯수
- // frmf_removeParameter : name 명으로 저장된 데이터들 중에서 index 번째 위치에 있는 값을 삭제한다. index를 생략하면 첫번째 위치의 값을 삭제한다.
- // frmf_clearParameter : name의 모든 값울 삭제함, 삭제하기전 값을 반환한다. (getParmeter후 초기화 하는 로직 단순화를 위해)
- // frmf_clearAllParameter : parameter 전체를 삭제한다.
- // frmf_chkMdt : 포커스를 이동할 때 필수, 선택 Validation check
- // frmf_chkMdtMax : 포커스를 이동할 때 필수, 선택 Validation check
- // frmf_chkMdtGrid : 그리드에서 포커스를 이동할 때나 저장할 때 그리드 필수항목 check 하고 포커스를 해당 cell로 이동
- // frmf_chkOpt : 여러 개의 값 중에서 하나만 필수일때 Validation check
- // frmf_chkMdtMaxOnly : 입력 제한길이 체크
- // frmf_getViewer : 주어진 이름의 form, div 객체를 반환한다.
- // frmf_createPopupMenu : 팝업메뉴 생성
- // frmf_createPopupMenuDs : DataSet으로부터 팝업메뉴 생성
- // frmf_setPopupMenuDs : 팝업메뉴에 dataset을 설정한다. (신규 2014-05-16)
- // frmf_initPopupMenu : 화면에서 사용할 popupmenu 생성
- // frmf_mouseRightClick : 화면 우클릭 이벤트시 popupmenu 호출
- // frmf_event_onmenuclick : 화면 팝업메뉴 선택 이벤트
- // (삭제, 원복)frmf_isRequiredControls : 입력 컨트롤들의 필수값 체크 (frmf_chkMdt로 대체함)(다시 원복 김상목 2015.11.26)
- // frmf_isRequiredGroup :div 안의 component들중 입력가능한 component의 필수값 체크
- // (삭제)frmf_removeChildren : 경로의 노드를 삭제
- // frmf_removeMask : 스트링 객체의 해당 마스크 문자를 제거후 반환한다.
- // frmf_logout : 로그아웃
- // frmf_checkTimeout : 세션 타임 아웃 확인
- // frmf_textViewPopup : text의 내용을 보거나 수정 할 팝업호출 (2014-04-22 신규)
- // frmf_findFuncFromForm : 화면 URL에 해당하는 폼에서 함수 유무를 체크한다. (2014-04-22 신규)
- // frmf_findTextFromForm : 화면 URL에 해당하는 폼에서 text의 유무를 체크한다. (2014-04-22 신규)
- // frmf_removeTitlebar : titlebar와 border를 제거한다. (2014-04-23 신규)
- // frmf_setDefaultWorkForm : 메인프레임 work영역을 default화면으로 변경한다. (2014-04-24 신규)
- // frmf_getMainFormParam : frmf_openForm에서 인자값을 넘겼을때 받는 form에서 사용한다. (2014-06-11 신규)
- // frmf_checkAlone : 자신이 최상단 화면인지를 리턴한다. (2015-04-29 신규)
- /********************************************************************************************************************/
- /************************* Caching API ******************************************************************************/
- /********************************************************************************************************************/
- // frmf_storeIntoCache : dataset을 cache에 저장한다.
- // frmf_copyFromCache : Cache에서 itemname으로 저장된 dataset을 objDs에 복사한다. 해당 itemname으로 복사가 되었으면 true를 복사된 내용이 없으면 false를 반환한다.
- /********************************************************************************************************************/
- /************************* 팝업 관련 함수 *************************************************************************/
- /********************************************************************************************************************/
- // frmf_setPopArgs : 팝업 인자값에 오프너의 screen id를 넣는다.
- // frmf_setPopupPosiotion : 팝업(modal, modeless) 위치 설정
- // frmf_modal : 화면 id로 Modal Dialog를 실행한다.
- // frmf_modalInternal : URL로 Modal Dialog를 실행한다.
- // frmf_open : 화면ID로 Modeless Dialog를 실행한다.
- // frmf_openInternal : URL로 Modeless Dialog를 실행한다.
- // frmf_newChildFrame : Modal/Modeless Popup 처리.
- // frmf_isPopup : 자신이 팝업인지 아닌지를 리턴한다.
- // frmf_getPopupId : 팝업 ID를 가져온다.
- // frmf_findPopup : 팝업의 Form 객체를 가져온다.
- // frmf_getChildWindow : open된 팝업들 중에서 다른 화면으로 바뀌지 않은 팝업의 form object를 리턴한다. child window가 없거나 있더라도 다른 화면으로 바뀌었다면 null을 리턴한다.
- // frmf_findChildWindow : 열려있는 팝업 중에서 현재의 UID가 주어진 UID와 동일한 팝업을 찾아서 리턴한다. 없으면 null
- // frmf_setFormInfo : 팝업정보를 gds_openFormInfo에 저장한다.
- // frmf_deletePopInfo : 팝업정보를 gds_openFormInfo에서 삭제한다.
- // frmf_getChildPopList : 폼에서 열린 팝업 목록을 가져온다.
- // frmf_setCloseChildPop : 화면전환시 child가 close되도록 저장
- // frmf_closeChildPop : 화면전환시 child popup 닫기로 지정된 경우 해당 form의 child popup을 모두 닫는다.
- // frmf_setFocusPop : 지정된 팝업을 focus한다.
- // frmf_setFocusOpener : opener를 focus한다.
- // frmf_setFocus : 자기자신을 focus한다.
- // frmf_openHtml : HTML Open 팝업(시스템에 설정된 기본 브라우저가 아닌 인터넷 익스플로러가 실행된다.)
- // frmf_getMainViewer : main work form 객체를 반환한다.
- // frmf_checkOpener : Opener가 다른 화면으로 변경되었는지 여부를 반환한다.
- // frmf_getCurrentFormKind : 현재 화면의 종류("modal", "modeless", "main")를 조회한다.(신규 : 2014-11-19)
- // frmf_getoOpener : 화면에 소속된 상황에 따른 opener(main work form, opener, getOwnerFrame) 객체를 가져온다(신규 : 2015-02-24)
- /********************************************************************************************************************/
- /************************* 화면이동관련 함수 *********************************************************************/
- /********************************************************************************************************************/
- // frmf_openForm : screen id로 해당 화면을 업무화면 영역에 로딩한다.
- // frmf_openFormInternal : screen url로 해당 화면을 업무화면 영역에 로딩한다.
- /********************************************************************************************************************/
- /************************* 화면권한정보 함수 *********************************************************************/
- /********************************************************************************************************************/
- // frmf_checkAuth : 주어진 유형에 해당하는 버튼권한을 가져온다.
- // frmf_getScreenID : 화면아이디를 가져온다
- // frmf_getMainFormScreenID : 메인 form의 화면아이디를 가져온다. (2014-06-11 신규)
- // frmf_getScreenAuth : 화면권한코드를 가져온다.
- // frmf_getMenuParam : 메뉴파라미터를 가져온다.
- // frmf_getMenuGroupCD : 메뉴그룹코드를 가져온다.
- // frmf_getMenuItemCD : 메뉴아이템코드를 가져온다.
- // frmf_getPrestDeptCd : 메뉴그룹의 사용처 부서코드를 가져온다.
- /********************************************************************************************************************/
- /************************* 컴포넌트 공통 함수 ********************************************************************/
- /********************************************************************************************************************/
- // frmf_addComboItem : 콤보 아이템 추가 함수
- // frmf_addComboItemAll : 모든 콤보 아이템 추가 함수(2014.04.03 : 변경)
- // frmf_setInputNodeCurPid : setInputNodeCurText 함수와 동일한 기능. 환자번호 총 9자리로 0으로 채우는 기능 추가됨(2014.04.04 : 변경)
- // frmf_setInputNodeCurPid_Change : 환자번호의 자리수에 맞게 0을 채움(2014.04.04 : 변경)
- // frmf_openImageFileDialog : 이미지 파일 선택 다이알로그를 띄운다.
- // frmf_inputEnterKey : 컴퍼넌트 이벤트 호출
- // frmf_btnSetEnable : 버튼 enable false 시 tooltiptext가 나오도록 하기 위한 함수 추가 (2017.08.28 : 신규)
- /********************************************************************************************************************/
- /************************* 화면 확대축소 함수 ********************************************************************/
- /********************************************************************************************************************/
- // frmf_initAnchors : 화면 오픈 시 앵커 배열 arrAnchors을 초기화 (2015.06.16 : 신규)
- // frmf_getAnchors : 앵커 배열 arrAnchors에 현재 화면에 사용중인 앵커 객체 저장 (2015.06.16 : 신규)
- // frmf_addArrAnchor : 동적으로 앵커 필요한 Component 추가시 이 함수 호출 필요 (2015.06.16 : 신규)
- // frmf_RemoveAnchors : 앵커 제저 (2015.06.16 : 신규)
- // frmf_RestoreAnchors : 앵커 복원 (2015.06.16 : 신규)
- // frmf_setZoom : 화면을 확대 축소 하는 함수 (2015.06.16 : 신규)
- /********************************************************************************************************************/
- /************************* 파일다운로드 함수 ********************************************************************/
- /********************************************************************************************************************/
- // frmf_LargeFileDownload : 대용량 파일 다운로드 함수 (2019.03.18 : 신규)
- //frmf_setParameter, frmf_getParameter 에서 사용
- var FRMFGV_ARR_FORM_PARAMETER = new Object();
-
- //frmf_initForm 에서 사용
- var FRMGV_OBJ_UID_REPOSITORY = new Object();
- // ------- 공통에서 사용중인 단축키 목록 ------- //
- // - ctrl 누르고 동작하는 것들
- var keycode_plus = 107; // '+' : 화면 확대
- var keycode_equal = 187; // '=' : 화면 확대
- var keycode_minus_1 = 109; // '-' : 화면 축소
- var keycode_minus_2 = 189; // '-' : 화면 축소
- var keycode_zero = 48; // '0' : 화면 100% 크기로 설정
- var keycode_F5 = 116; // 'F5' : Reload
- var keycode_F7 = 118; // 'F7' : 소스보기
- var keycode_F9 = 120; // 'F9' : 로그보기
- var keycode_F10 = 121; // 'F10' : Property 보기
- // - alt 누르고 동작하는 것들
- // keycode_F5 // 'F5' : 데이타셋 보기
- // - 단독으로 동작하는 것들
- var keycode_F12 = 123; // 'F12' : 스크린샷 모드 시작
- var keycode_ESC = 27; // 'ESC' : 스크린샷 모드 종료
- // ------------------------------------------------ //
- /********************************************************************************************************************/
- /************************* 폼 일반 *********************************************************************************/
- /********************************************************************************************************************/
- /****************************************************************************************
- * Function : frmf_getBizNameByUrl
- * Description : url에서 title명을 가져온다.(업무명)
- * Argument : 01.sUrl - url정보
- * return type : String - url에서 업무명을 잘라서 리턴한다.
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getBizNameByUrl(sUrl){
- var sTitleName = "";
- try{
- sTitleName = sUrl.split(".")[0].split("::")[1].split("_")[1];
- }catch(e){
- sTitleName = "";
- }
- return sTitleName;
- }
- /****************************************************************************************
- * Function : frmf_getTitle
- * Description : 현재 화면의 타이틀을 가져온다.
- * Argument :
- * return type : String - 타이틀
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getTitle(){
-
- var sTitleName = "";
-
- if(!frmf_isPopup()){
- sTitleName = application.mainframe.titletext;
- }else{
- sTitleName = this.titletext;
- }
-
- return sTitleName;
- }
- //=======================================================================================
- // Function
- //---------------------------------------------------------------------------------------
- /***********************************************************************************************
- * 함수명 : lf_commoduleDataSetShow
- * 설 명 : 화면의 keydown event를 추가한다.
- * argument :
- * return Type :
- * 작성자 : KKM
- ************************************************************************************************/
- function lf_commoduleDataSetShow()
- {
- this.onkeydown.addHandler(lf_onDataSetShow);
- }
- /***********************************************************************************************
- * 함수명 : lf_onDataSetShow
- * 설 명 : keydown event 로 DataSet 미리보기 화면을 modal로 띄운다.
- * argument :
- * return Type :
- * 작성자 : KKM
- ************************************************************************************************/
- function lf_onDataSetShow(obj:Form, e:KeyEventInfo)
- {
- if (e.altKey && e.keycode == keycode_F5) {
- lf_popupDataSetShow();
- return true;
- }
- }
- function lf_popupDataSetShow() {
- var newChild = new ChildFrame();
- var currentFrame = this.getOwnerFrame();
- var sMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory);
- var sObjScreenSize = system.getScreenRect(sMoniterIndex);
- var sScreenLeft = sObjScreenSize.left;
- var sScreenRight = sObjScreenSize.right;
- var sScreenTop = sObjScreenSize.top;
- var sScreenBottom = sObjScreenSize.bottom;
- var sScreenWidth = sScreenRight - sScreenLeft;
- var sScreenHeight = sScreenBottom - sScreenTop
-
- newChild.resizable = true;
- newChild.style.border = "1px solid #ccd0d2ff";
- newChild.style.bordertype = "round 15px 15px";
- newChild.init("datasetrtrv", sScreenLeft + (sScreenWidth/2)-235 ,sScreenTop + (sScreenHeight/2)-130, sScreenLeft + (sScreenWidth/2)+235, sScreenTop + (sScreenHeight/2)-130, "com_commodulexp::SSZFM00401_DataSetRtrv.xfdl");
-
- newChild.showModal(currentFrame);
- newChild.destroy();
- newChild = null;
- }
- /****************************************************************************************
- * Function : frmf_initTitle
- * Description : 화면 title을 설정한다.
- * Argument :
- * return type :
- * Creator : 임준호
- * Modifier : 손병은 (TF 관련 타이틀 구현 위해 setTitle 함수 이용토록 수정)
- ****************************************************************************************/
- function frmf_initTitle(obj:Form, sTitle){
-
- var sSysteminstnm = sysf_getUserInfo("systeminstnm");
-
- if(!frmf_isPopup()){
- var sTitleText = utlf_isNull(sTitle) ? parent.bgv_sTitleText : sTitle;
- var sscrnid = frmf_getScreenID();
- frmf_setTitle(sTitleText, sscrnid);
- }else{
- var sPopupTitle = "";
-
- try{
- if(utlf_isNull(sTitle)) {
- if(utlf_isNull(obj.titletext)){
- sPopupTitle += frmplgv_titleName;
- }else{
- sPopupTitle += obj.titletext;
- }
- } else {
- sPopupTitle += sTitle;
- }
- //sPopupTitle = sPopupTitle + "("+frmplgv_pid+") - ";
- }catch(e){}
-
- if(!utlf_isNull(sSysteminstnm)){
- sPopupTitle += " " + "[" + sSysteminstnm + "]";
- //sPopupTitle += sSysteminstnm + " ";
- }
-
- // var sDutplcenm = sysf_getUserInfo("dutplcenm");
- // var sUserName = sysf_getUserName();
- // var sLoginDate = sysf_getTitleLoginDate();
-
- // if(!utlf_isNull(sDutplcenm)){
- // sPopupTitle += sDutplcenm + " ";
- // }
- //
- // if(!utlf_isNull(sUserName)){
- // sPopupTitle += sUserName + " ";
- // }
- //
- // if(!utlf_isNull(sLoginDate)){
- // sPopupTitle += sLoginDate + " ";
- // }
- var systemSymbol = "";//"◇"; // 시스템 구분을 아이콘이 대체 하고 있어서 이건 필요 없어짐 180515. smkim
- // var systemcd = sysf_getSystemCd();
- //
- // if(!utlf_isNull(systemcd)) {
- // if (systemcd == "HIS031") {
- // systemSymbol = "◇";
- // } else if (systemcd == "HIS032") {
- // systemSymbol = "◆";
- // } else if (systemcd == "MIS030") {
- // systemSymbol = "▣";
- // } else if (systemcd == "CRM030") {
- // systemSymbol = "♣";
- // } else {
- // systemSymbol = "◇";
- // }
- // }
-
- sPopupTitle = systemSymbol + " " + sPopupTitle;
-
- this.titletext = sPopupTitle;
-
- try{
- stt_titleText.position.width = obj.position.width - 50;
- stt_titleText.wordwrap = "none";
- stt_titleText.transparenthittest = true;
- stt_titleText.text = sPopupTitle;
-
- }catch(e){}
- }
- }
- /*
- function frmf_initTitle(obj:Form){
-
- var sSysteminstnm = sysf_getUserInfo("systeminstnm");
-
- if(!frmf_isPopup()){
- var sMainTitle = "";
-
- var sTitleText = parent.bgv_sTitleText;
- var sTitle = sysf_getSystemInfo("title");
- var sDutplcenm = sysf_getUserInfo("dutplcenm");
- var sUserName = sysf_getUserName();
- var sLoginDate = sysf_getTitleLoginDate();
- var sWasName = sysf_getSystemInfo("wasname");
- if(!utlf_isNull(sTitleText)){
- sMainTitle += sTitleText+"("+frmf_getScreenID()+")"+" - ";
- }
-
- if(!utlf_isNull(sSysteminstnm)){
- sMainTitle += sSysteminstnm+" ";
- }
-
- if(!utlf_isNull(sTitle)){
- sMainTitle += sTitle+" ";
- }
-
- if(!utlf_isNull(sDutplcenm)){
- sMainTitle += sDutplcenm+" ";
- }
-
- if(!utlf_isNull(sUserName)){
- sMainTitle += sUserName+" ";
- }
-
- if(!utlf_isNull(sLoginDate)){
- sMainTitle += sLoginDate+" ";
- }
-
- if(!utlf_isNull(sLoginDate)){
- sMainTitle += sWasName+" ";
- }
-
- application.mainframe.titletext = sMainTitle;
- }else{
-
- var sPopupTitle = "";
-
- try{
-
- if(utlf_isNull(obj.titletext)){
- sPopupTitle += frmplgv_titleName;
- }else{
- sPopupTitle += obj.titletext;
- }
-
- sPopupTitle = sPopupTitle + "("+frmplgv_pid+") - ";
- }catch(e){}
-
- if(!utlf_isNull(sSysteminstnm)){
- sPopupTitle += sSysteminstnm;
- }
-
- this.titletext = sPopupTitle;
-
- try{
- stt_titleText.position.width = obj.position.width - 50;
- stt_titleText.wordwrap = "none";
- stt_titleText.transparenthittest = true;
- stt_titleText.text = sPopupTitle;
-
- }catch(e){}
- }
- }
- */
- /****************************************************************************************
- * Function : frmf_setTitle
- * Description : 화면 title을 설정한다.
- * Argument : 01.sTitleText - 타이틀제목
- * 02.sscrnid - 화면ID
- * return type :
- * Creator : 손병은
- ****************************************************************************************/
- function frmf_setTitle(sTitleText, sscrnid){
- if("로그아웃" == sTitleText) {
- application.mainframe.titletext = "Ku2.0";
- return;
- }
-
- var sSysteminstnm = sysf_getUserInfo("systeminstnm");
- var sMainTitle = "";
-
- var sTitleText = sTitleText;
- var sTitle = sysf_getSystemInfo("title");
- var sDutplcenm = sysf_getUserInfo("dutplcenm");
- var sUserName = sysf_getUserName();
- var sLoginDate = sysf_getTitleLoginDate();
- var sWasName = sysf_getSystemInfo("wasname");
- if(!utlf_isNull(sTitleText)){
- var sscrn = "";
- if(!utlf_isNull(sscrnid) && sscrnid.indexOf("form") < 0) sscrn = "(" + sscrnid + ")";
-
- sMainTitle += sTitleText + sscrn + " - ";
- }
-
- if(!utlf_isNull(sSysteminstnm)){
- sMainTitle += "[" + sSysteminstnm + "] ";
- }
-
- if(!utlf_isNull(sTitle)){
- sMainTitle += sTitle+" ";
- }
-
- if(!utlf_isNull(sDutplcenm)){
- sMainTitle += sDutplcenm+" ";
- }
-
- if(!utlf_isNull(sUserName)){
- sMainTitle += sUserName+" ";
- }
-
- if(!utlf_isNull(sLoginDate)){
- sMainTitle += sLoginDate+" ";
- }
-
- // sWasName 은 상태메시지란에 표시하도록 함
- // if(!utlf_isNull(sLoginDate)){
- // sMainTitle += sWasName+" ";
- // }
- var systemSymbol = "";//"◇"; // 시스템 구분을 아이콘이 대체 하고 있어서 이건 필요 없어짐 180515. smkim
-
- // var systemcd = sysf_getSystemCd();
- //
- // // icon, system symbol 설정
- // if(!utlf_isNull(systemcd)) {
- // if (systemcd == "HIS031") {
- // systemSymbol = "◇";
- // } else if (systemcd == "HIS032") {
- // systemSymbol = "◆";
- // } else if (systemcd == "MIS030") {
- // systemSymbol = "▣";
- // } else if (systemcd == "CRM030") {
- // systemSymbol = "♣";
- // } else {
- // systemSymbol = "◇";
- // }
- // }
-
- var lastlogininfo = "";
- try {
- var logindt = gds_lastlogininfo.getColumn(0, "logindt");
- if(!utlf_isNull(logindt)) {
- lastlogininfo += " * 마지막 접속 정보 : " + logindt.substr(0, 4) + "." + logindt.substr(4, 2) + "." + logindt.substr(6, 2) + " " + logindt.substr(8, 2) + ":" + logindt.substr(10, 2) + ":" + logindt.substr(12, 2);
- lastlogininfo += " (IP:" + gds_lastlogininfo.getColumn(0, "logip") + ")";
- }
- } catch (e) {
- }
-
- try {
- application.mainframe.titletext = systemSymbol + " " + sMainTitle + lastlogininfo;
- } catch (e) {
- }
- }
- /****************************************************************************************
- * Function : frmf_deleteUidChild
- * Description : uid repository에서 child팝업을 삭제한다.
- * Argument : 01.objForm - form
- * : 02.sPopupUid - 팝업 uid
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_deleteUidChild(objForm:Form, sPopupUid){
-
- if(!utlf_isNull(objForm)){
- var arrUidChildTemp = objForm.FRMGV_OBJ_UID_REPOSITORY.uid_child;
- objForm.FRMGV_OBJ_UID_REPOSITORY.uid_child = new Array();
- for(var i in arrUidChildTemp){
- if(arrUidChildTemp[i].uid != sPopupUid){
- objForm.FRMGV_OBJ_UID_REPOSITORY.uid_child.push(arrUidChildTemp[i]);
- }
- }
- }
- }
- //
- // function frmf_addUidChild(objForm:Form, sPopupId){
- // //opener uid repository
- // if(!utlf_isNull(objForm)){
- // var arrUidChildTemp = objForm.FRMGV_OBJ_UID_REPOSITORY.uid_child;
- // for(var i in arrUidChildTemp){
- // if(arrUidChildTemp[i].pid == frmplgv_pid){
- // arrUidChildTemp[i].uid = sUidMyself;
- // }
- // }
- // objForm.FRMGV_OBJ_UID_REPOSITORY.uid_child = arrUidChildTemp;
- // }
- // }
- /****************************************************************************************
- * Function : frmf_initForm
- * Description : form 초기화. form의 onload함수에 반드시 추가한다.
- * Argument : 01.obj - form Ojbect
- * return type :
- * Creator : tobesoft
- ****************************************************************************************/
- function frmf_initForm(obj:Form, noSetTitle){
-
- //화면 우클릭에 뜰 PopupDiv 만들기
- //frmf_createPopupMenu(obj);
-
- //화면 uid 관리
- if(sysf_getObjType(obj) == "Form" || obj.name == "div_work"){ //div 또는 tab에 url로 연결된 form의 구분을 위해
- var sUidMyself = "";
- if(obj.name != "form_top" && obj.name != "form_top_singlemode"){
- sUidMyself = utlf_getRandomSubmitUUID();
- }else{
- sUidMyself = "top";
- }
- var sUidOpener = frmf_getOpenerUID();
- var arrUidChild = new Array();
- FRMGV_OBJ_UID_REPOSITORY.uid_myself = sUidMyself;
- FRMGV_OBJ_UID_REPOSITORY.uid_opener = sUidOpener;
- FRMGV_OBJ_UID_REPOSITORY.uid_child = arrUidChild;
- //opener uid repository
- if(!utlf_isNull(opener)){
- var arrUidChildTemp = null;
- if(opener.getOwnerFrame().form.name == "form_work" || opener.getOwnerFrame().form.name == "form_workrec" || opener.getOwnerFrame().form.name == "form_work_singlemode"){
- arrUidChildTemp = opener.getOwnerFrame().form.div_work.FRMGV_OBJ_UID_REPOSITORY.uid_child;
- }else{
- arrUidChildTemp = opener.getOwnerFrame().form.FRMGV_OBJ_UID_REPOSITORY.uid_child;
- }
-
- for(var i in arrUidChildTemp){
- if(arrUidChildTemp[i].pid == frmplgv_pid){
- arrUidChildTemp[i].uid = sUidMyself;
- }
- }
-
- opener.getOwnerFrame().form.FRMGV_OBJ_UID_REPOSITORY.uid_child = arrUidChildTemp;
- }
-
- //타이틀 설정
- if(noSetTitle != true)
- frmf_initTitle(obj);
-
- //M모드로 열리는 팝업은 상하좌우 margin을 10px씩 준다.
- try{
- if(frmf_isPopup() && frmplgv_sOpt == "M" && sysf_getObjType(obj) == "Form"){
- //화면 스크롤이 생겨서 프레임의 사이즈를 조절함 2014.04.01 tobesoft
- var popFrame = this.getOwnerFrame();
- popFrame.position.width = obj.position.width+24;
- popFrame.position.height = obj.position.height+50;
- obj.style.margin = "10px 10px 10px 10px";
- }
- }catch(e){}
-
- //하단 상태메시지 초기화
- try{
- agv_objAppBottomPath.form.stt_statusMsg.text = "";
- }catch(e){}
- }
-
- // AWT 관련 이벤트
- if (awtf_AwtUseThisWindow() == '1')
- obj.onkeyup.setHandler(awtf_AwtSearch);
-
- // 데이타셋 확인용 모듈
- lf_commoduleDataSetShow();
- // 1. 확대 축소 기능을 위한 Anchor 초기화(100% 배율 일때만 Anchor 동작, 나머지 배율에선 Anchor를 default 처리)
- // 2. 스크린샷 기능을 위한 ScreenShot 초기화
- var screenKind = getPopUpOrMain(obj);
- if(screenKind == "popup") { // popup(form 으로 시작하는 화면들은 제외)
- frmf_initAnchors(obj, false);
- //frmf_initScreenShot(obj, false); // 보안정책으로 서비스 종료(2019.07.18 smkim)
- lf_preventFullWidthChar();
- } else if(screenKind == "main") { // main
- frmf_initAnchors(obj, true);
- //frmf_initScreenShot(obj, true); // 보안정책으로 서비스 종료(2019.07.18 smkim)
- lf_preventFullWidthChar();
- } else if(screenKind == "loader") { // 서식 wordwrap 적용
- frmf_initWordwrap(obj);
- }
-
- // 마우스 우클릭시 공통 팝업 발생 모듈 초기화
- frmf_initCommonPopup(obj);
- }
- function lf_preventFullWidthChar() {
- this.onkeydown.addHandler(lf_onPreventFullWidthChar);
- }
- function lf_onPreventFullWidthChar(obj:Form, e:KeyEventInfo)
- {
- if (e.altKey && e.keycode == keycode_equal) {
- var screenName = utlf_isNull(obj.name) ? "" : "[" + obj.name + "] ";
- sysf_trace("================== " + screenName + "전각 반각 상태 변경 ============================");
- return true;
- }
- }
- function getPopUpOrMain(obj) {
- var result = "";
- if(obj.parent == "[object ChildFrame]" && (obj.name.indexOf("form_") < 0)) { // popup(form 으로 시작하는 화면들은 제외)
- result = "popup";
- } else if(obj.frmf_getCurrentFormKind() == "main" && obj.name == "div_work") { // main
- result = "main";
- } else if( ((obj.parent == "[object Form]" || obj.parent == "[object Div]" ) && obj.name == "ivw_base") ){
- // object Form : 서식로더가 popup 일 경우, object Div : 진료기록메인, 제증명, Consult 화면 등 적용
- result = "loader";
- }
- return result;
- }
- // ----------------- 여기서 부터 앵커 적용 로직
- var arrAnchors;
- function frmf_initAnchors(obj, isMain) {
- arrAnchors = new Array();
-
- frmf_getAnchors(obj, 0);
-
- var zoomrate = agv_objAppBottomPath.form.fGetZoomRate();
- if(zoomrate != 100 && zoomrate != "100%") {
- frmf_RemoveAnchors();
-
- obj.setZoom(zoomrate);
- obj.vscrollbar.pos = 0;
- obj.hscrollbar.pos = 0;
- obj.resetScroll();
- }
-
- if(isMain) {
- obj.onmousewheel.addHandler(fMain_Zoom_onmousewheel);
- obj.onkeydown.addHandler(fMain_Zoom_onkeydown);
- } else {
- obj.parent.form.onmousewheel.addHandler(fPopup_Zoom_onmousewheel);
- obj.parent.form.onkeydown.addHandler(fPopup_Zoom_onkeydown);
- }
- }
- function frmf_getAnchors(obj, seq)
- {
- var sType;
- for(var i = 0 ; i < obj.components.length; i++ )
- {
- sType = obj.components[i].toString().toUpperCase();
- switch(sType) {
- case "[OBJECT POPUPDIV]":
- case "[OBJECT MENU]":
- case "[OBJECT POPUPMENU]":
- continue;
- break;
- default:
- var strAnchor = obj.components[i].anchor;
- if(strAnchor == "default" || utlf_isNull(strAnchor)) continue;
- break;
- }
-
- if(!utlf_isNull(obj.components[i].anchor)) {
- arrAnchors[seq] = new Array(2);
- arrAnchors[seq][0] = obj.components[i];
- arrAnchors[seq][1] = obj.components[i].anchor.toString();
- ++seq;
- }
-
- if (obj.components[i].components)
- {
- switch(sType) {
- case "[OBJECT TAB]":
- case "[OBJECT TABPAGE]":
- case "[OBJECT DIV]":
- if(utlf_isNull(obj.components[i].url) == true) seq = frmf_getAnchors(obj.components[i], seq);
- break;
- }
- }
- }
-
- return seq;
- }
- // 동적으로 앵커 필요한 Component 추가시 이 함수 호출 필요
- function frmf_addArrAnchor(component) {
- var seq = arrAnchors.length;
- arrAnchors[seq] = new Array(2);
- arrAnchors[seq][0] = component;
- arrAnchors[seq][1] = component.anchor.toString();
- }
- function frmf_RemoveAnchors()
- {
- for(var i = 0; i < arrAnchors.length; i++) {
- arrAnchors[i][0].anchor = "default";
- }
- }
- function frmf_RestoreAnchors()
- {
- for(var i = 0; i < arrAnchors.length; i++) {
- arrAnchors[i][0].anchor = arrAnchors[i][1];
- }
- }
- var STEPVAL = 5; // 마우스 휠 한번 돌릴때 마다 증감하는 확대 축소 배율
- var isZoomEnable = true; // 마우스 스크롤로 확대/축소 사용 할 여부 (frmf_setZoomEnable(false) 하면 확대축소 기능 끔)
- function frmf_setZoom(obj, zoomrate, isMain) {
- if(zoomrate == 100) frmf_RestoreAnchors();
- else frmf_RemoveAnchors();
-
- obj.setZoom(zoomrate);
-
- if(isMain) agv_objAppBottomPath.form.fSetZoomRateValue(zoomrate);
- }
- function fSetZoom(obj, amount, isMain) {
- var zoomrate = obj.getZoom();
-
- if(amount < 0)
- zoomrate -= STEPVAL;
- else
- zoomrate += STEPVAL;
-
- if(zoomrate < 10)
- zoomrate = 10;
- else if(zoomrate > 1000)
- zoomrate = 1000;
-
- frmf_setZoom(obj, zoomrate, isMain);
- }
- function frmf_setZoomEnable(enable) {
- isZoomEnable = enable
- }
- function fPopup_Zoom_onmousewheel(obj:Form, e:MouseWheelEventInfo)
- {
- if(!isZoomEnable) return;
- if( getKeyState(0x11)){
- fSetZoom(obj, e.amount);
-
- return true;
- }
- }
- function fPopup_Zoom_onkeydown(obj:Form, e:KeyEventInfo) {
- if( e.ctrlKey ){
- if(e.keycode == keycode_plus || e.keycode == keycode_equal) { // 숫자패드 '+' 키 누를 때 또는 '=' 누를 때
- fSetZoom(obj, 120);
- return true;
- } else if(e.keycode == keycode_minus_1 || e.keycode == keycode_minus_2) { // '-' 키 누를 때
- fSetZoom(obj, -120);
- return true;
- } else if(e.keycode == keycode_zero) { // '0' 누를 때
- frmf_RestoreAnchors();
- frmf_setZoom(obj, 100);
- return true;
- }
- }
- }
- function fMain_Zoom_onmousewheel(obj:Div, e:MouseWheelEventInfo) {
- if( e.ctrlKey ) {
- fSetZoom(obj, e.amount, true);
- return true;
- }
- }
- function fMain_Zoom_onkeydown(obj:Div, e:KeyEventInfo) {
- if( e.ctrlKey ){
- if(e.keycode == keycode_plus || e.keycode == keycode_equal) { // 숫자패드 '+' 누를 때 또는 '=' 누를 때
- fSetZoom(obj, 120, true);
- return true;
- } else if(e.keycode == keycode_minus_1 || e.keycode == keycode_minus_2) { // '-' 누를 때
- fSetZoom(obj, -120, true);
- return true;
- } else if(e.keycode == keycode_zero) { // '0' 누를 때
- frmf_RestoreAnchors();
- frmf_setZoom(obj, 100, true);
- return true;
- }
- }
- }
- // ----------------- 여기까지 부터 앵커 적용 로직
- // ----------------- 여기서 부터 캡쳐 적용 로직
- var isCaptureMode = false; // 캡쳐모드인지 구분
- var isCaptureMainWindow = false; // 캡쳐 창이 메인 창인지 팝업 창인지 구분
- var captureScreenRect:ImageViewer; // 캡쳐를 구역 표시를 위한 배경
- var captureRect:ImageViewer; // 실제 캡쳐 되는 영역
- var captureStartPos = new Array(); // 캡쳐 시작 기준 좌표
- function frmf_initScreenShot(obj, isMain) {
- isCaptureMainWindow = isMain;
-
- obj.onkeydown.addHandler(screenShot_onkeydown);
- }
- function screenShot_onkeydown(obj:Form, e:KeyEventInfo)
- {
- if(e.keycode == keycode_F12) { // 'F12'
- toggleCaptureMode(obj, !isCaptureMode);
- return true;
- } else if(e.keycode == keycode_ESC) { // 'ESC'
- if(isCaptureMode) {
- toggleCaptureMode(obj, false);
- return true;
- }
- }
- }
- function toggleCaptureMode(obj, enable) {
- isCaptureMode = enable;
- if(enable) {
- obj.onlbuttondown.addHandler(screenShot_onlbuttondown);
- obj.onlbuttonup.addHandler(screenShot_onlbuttonup);
- obj.onmousemove.addHandler(screenShot_onmousemove);
-
- var titlebarheight = (!isCaptureMainWindow && obj.parent.showtitlebar) ? 24 : 0;
-
- var adjustPositionLeft = 0;
- var adjustPositionTop = 0;
-
- var adjustTop = titlebarheight + 14;
- var adjustRight = -8;
- var adjustBottom = -8;
- var adjustLeft = 12;
- if(isCaptureMainWindow) {
- adjustPositionLeft = 10;
- adjustPositionTop = 10;
-
- adjustTop = 10;
- adjustRight = 18;
- adjustBottom = 0;
- adjustLeft = 10;
- } else {
- try {
- if(frmplgv_sOpt != "M") {
- adjustTop = 0;
- adjustRight = 0;
- adjustBottom = 0;
- adjustLeft = 0;
- }
- } catch(e) {
- }
- }
-
- if(obj.components["iv_capture_screen"] == null) {
- captureScreenRect = new ImageViewer("iv_capture_screen", obj.position.left - adjustPositionLeft, obj.position.top - adjustPositionTop, obj.position.right, obj.position.bottom);
- obj.addChild("iv_capture_screen", captureScreenRect);
- } else {
- captureScreenRect.position.left = obj.position.left - adjustPositionLeft;
- captureScreenRect.position.top = obj.position.top - adjustPositionTop;
- captureScreenRect.position.right = obj.position.right;
- captureScreenRect.position.bottom = obj.position.bottom;
-
- captureScreenRect.visible = true;
- }
-
- captureScreenRect.style.background = "transparent";
- captureScreenRect.style.border = "0 solid #000000";
- captureScreenRect.style.cursor = "crosshair";
-
- captureScreenRect.image = "";
- captureScreenRect.image = obj.parent.saveToImageObject();
-
- captureScreenRect.style.padding = adjustTop * -1 + " " + adjustRight * -1 + " " + adjustBottom * -1 + " " + adjustLeft * -1;
-
- captureScreenRect.show();
- captureScreenRect.bringToFront();
-
- // 통합기록은 예외 처리(해당 컴포넌트가 외부 모듈로써 캡쳐 영역이 제일 위로 안올라오는 현상 때문에 잠시 안보이도록 처리한다)
- if(obj.name == "SMMRI00400") {
- var popupObj = frmf_findPopup("SMMRI00400");
- popupObj.grup_right.iviewerIemr.visible = false;
- }
- } else {
- obj.onlbuttondown.removeHandler(screenShot_onlbuttondown);
- obj.onlbuttonup.removeHandler(screenShot_onlbuttonup);
- obj.onmousemove.removeHandler(screenShot_onmousemove);
-
- captureScreenRect.style.cursor = "";
-
- // 통합기록은 예외 처리(해당 컴포넌트가 외부 모듈로써 캡쳐 영역이 제일 위로 안올라오는 현상 때문에 잠시 안보이도록 처리한다)
- if(obj.name == "SMMRI00400") {
- var popupObj = frmf_findPopup("SMMRI00400");
- popupObj.grup_right.iviewerIemr.visible = true;
- }
-
- captureScreenRect.visible = false;
-
- // var objDelete1 = this.removeChild("iv_capture_screen");
- // if(objDelete1 != null) {
- // captureScreenRect.destroy();
- // captureScreenRect = null;
- //
- // objDelete1.destroy();
- // objDelete1 = null;
- // }
- //
- var objDelete2 = obj.removeChild("iv_capture");
- if(objDelete2 != null) {
- captureRect.destroy();
- captureRect = null;
-
- objDelete2.destroy();
- objDelete2 = null;
- }
- }
- }
- function screenShot_onlbuttondown(obj:Form, e:MouseEventInfo)
- {
- if(!isCaptureMode) return;
-
- captureStartPos[0] = e.canvasX;
- captureStartPos[1] = e.canvasY;
-
- if(obj.components["iv_capture"] == null) {
- captureRect = new ImageViewer("iv_capture", e.canvasX, e.canvasY, e.canvasX, e.canvasY);
- obj.addChild("iv_capture", captureRect);
- }
-
- captureRect.style.background = "transparent";
- captureRect.style.bordertype = "normal 0 0";
- captureRect.style.border = "1 solid #ff0000";
- captureRect.show();
- captureRect.bringToFront();
- }
- function screenShot_onlbuttonup(obj:Form, e:MouseEventInfo)
- {
- if(!isCaptureMode) return;
-
- if(utlf_isNull(captureRect)) return;
-
- obj.onlbuttondown.removeHandler(screenShot_onlbuttondown);
- obj.onlbuttonup.removeHandler(screenShot_onlbuttonup);
- obj.onmousemove.removeHandler(screenShot_onmousemove);
-
- isCaptureMode = false;
-
- captureRect.style.border = "0 none #ff0000";
- captureRect.image = captureScreenRect.saveToImageObject();
-
- var top = captureRect.position.top;
- var right = captureScreenRect.position.right - captureRect.position.right;
- var bottom = captureScreenRect.position.bottom - captureRect.position.bottom;
- var left = captureRect.position.left;
-
- captureRect.style.padding = top * -1 + " " + right * -1 + " " + bottom * -1 + " " + left * -1;
-
- var to_day = new Date();
- var strToday = to_day.getFullYear() + "";
- strToday += utlf_right("0" + (to_day.getMonth() + 1), 2);
- strToday += utlf_right("0" + to_day.getDate(), 2);
- strToday += utlf_right("0" + to_day.getHours(), 2);
- strToday += utlf_right("0" + to_day.getMinutes(), 2);
- strToday += utlf_right("0" + to_day.getSeconds(), 2);
-
- var fileName = "screenshot" + "_" + strToday;
- //fileName = "quick_capture";
-
- var bSucc = captureRect.saveToImage(fileName + ".png", "PNG");
-
- captureScreenRect.style.cursor = "";
-
- if(obj.name == "SMMRI00400") {
- var popupObj = frmf_findPopup("SMMRI00400");
- popupObj.grup_right.iviewerIemr.visible = true;
- }
-
- captureScreenRect.visible = false;
-
- // var objDelete1 = this.removeChild("iv_capture_screen");
- // if(objDelete1 != null) {
- // captureScreenRect.destroy();
- // captureScreenRect = null;
- //
- // objDelete1.destroy();
- // objDelete1 = null;
- // }
- //
- var objDelete2 = this.removeChild("iv_capture");
- if(objDelete2 != null) {
- captureRect.destroy();
- captureRect = null;
-
- objDelete2.destroy();
- objDelete2 = null;
- }
-
- moveFileToDeskTop(fileName + ".png");
- }
- function moveFileToDeskTop(fileName) {
- var objExtCommon = new ExtCommon();
- var userHomeDir = system.convertRealPath("%MYDOCUMENT%");
- var preFilePath = userHomeDir + fileName;
- var desktopPath = userHomeDir.replace("Documents", "Desktop");
- var newFilePath = desktopPath + fileName;
-
- if(objExtCommon.IsFileExist(newFilePath)) objExtCommon.DeleteFile(newFilePath);
-
- objExtCommon.MoveFile(preFilePath, newFilePath, false);
- }
- function screenShot_onmousemove(obj:Form, e:MouseEventInfo)
- {
- if(!isCaptureMode) return;
-
- if(obj.components["iv_capture"] == null) return;
-
- var adjustTop = 0;
- var adjustRight = 20;
- var adjustBottom = 20;
- var adjustLeft = 0;
-
- if(isCaptureMainWindow) {
- adjustTop = -10;
- adjustRight = 18;
- adjustBottom = 10;
- adjustLeft = -10;
- } else {
- try {
- if(frmplgv_sOpt != "M") {
- adjustTop = 36;
- adjustRight = 2;
- adjustBottom = 2;
- adjustLeft = 2;
- }
- } catch(e) {
- }
- }
- if(captureStartPos[0] < e.canvasX) {
- var right = e.canvasX;
- if (right > obj.position.right - adjustRight) right = obj.position.right - adjustRight;
-
- captureRect.position.right = right;
- } else {
- var left = e.canvasX;
- if (left < obj.position.left + adjustLeft) left = obj.position.left + adjustLeft;
-
- captureRect.position.left = left;
- }
-
- if(captureStartPos[1] < e.canvasY) {
- var bottom = e.canvasY;
- if (bottom > obj.position.bottom - adjustBottom) bottom = obj.position.bottom - adjustBottom;
-
- captureRect.position.bottom = bottom;
- } else {
- var top = e.canvasY;
- if (top < obj.position.top + adjustTop) top = obj.position.top + adjustTop;
-
- captureRect.position.top = top;
- }
- }
- // ----------------- 여기까지 부터 캡쳐 적용 로직
- // ----------------- 여기부터 Wordwrap 적용 로직
- function frmf_initWordwrap(obj){
- frmf_setWordwrap(obj, 0);
- }
- function frmf_setWordwrap(obj, seq)
- {
- var sType;
- var bAnchor = false;
- if( obj instanceof Form ){
- if( obj.name == "ivw_base" ){
- // 2018.01.05 서식로더 사이즈에 따른 앵커제외처리
- if( obj.position.height < 680 ){
- bAnchor = true;
- }
- }
- }
-
- for(var i = 0 ; i < obj.components.length; i++ )
- {
- sType = obj.components[i].toString().toUpperCase();
- switch(sType) {
- case "[OBJECT STATIC]":
- var strWordwrap = obj.components[i].wordwrap;
- if(!utlf_isNull(strWordwrap) && strWordwrap != "none") continue;
- obj.components[i].wordwrap = "both";
-
- var strText = obj.components[i].text;
- if(!utlf_isNull(strText)){
- var sIdx = strText.lastIndexOf("\n");
- if( sIdx != -1 && sIdx == parseInt(strText.length) -1 ){
- // 줄바꿈 한번 더 체크
- var sIdx2 = strText.lastIndexOf("\n", parseInt(sIdx) -1);
- if( sIdx2 != -1 && sIdx2 == parseInt(strText.length) -2 ){
- strText = strText.substr(0, sIdx2);
- }else{
- strText = strText.substr(0, sIdx);
- }
- obj.components[i].text = strText;
- }
- }
-
- break;
- case "[OBJECT TEXTAREA]":
- obj.components[i].wordwrap = "both";
- var strPadding = obj.components[i].padding;
- if( !utlf_isNull(strPadding) && strPadding == "0 0 0 0" ){
- obj.components[i].padding = "0 5 0 5";
- }
- break;
- case "[OBJECT CALENDAR]":
- case "[OBJECT MASKEDIT]":
- obj.components[i].onlbuttonup.addHandler(frmf_setCaretPos);
- var strUserMask = obj.components[i].userMask;
- if( !utlf_isNull(strUserMask) && strUserMask == "include" ){
- var strMask = obj.components[i].mask;
- var strType = obj.components[i].type;
- if( !utlf_isNull(strMask) && strMask.indexOf("#.#") > -1
- && !utlf_isNull(strType) && strType == "string" ){
- obj.components[i].type = "number";
- }
- // 제증명 사망/사산/사태증명서
- if( !utlf_isNull(strMask) && strMask == "####'년' ##'월' ##'일' ##'시' ##'분'"
- && !utlf_isNull(strType) && strType == "string"){
- obj.components[i].mask = "####'년' ##'월' ##'일' ##'시' ##'분'";
- obj.components[i].clipmode = "excludespace";
- }
- if( obj.components[i].name == "STX_40"
- && !utlf_isNull(strMask) && strMask == "####-##-## ##:##"
- && !utlf_isNull(strType) && strType == "string"){
- obj.components[i].ontextchange.addHandler(utlf_validMaskEditDateTime);
- obj.components[i].clipmode = "excludespace";
- }
-
- }
- break;
-
- case "[OBJECT TABPAGE]":
- case "[OBJECT DIV]":
- if( obj.components[i].name == "grup_base" ){
- var nMoniterIndex = system.getMonitorIndex(application.mainframe.position.left, application.mainframe.position.top);
- var objScreenInfo = system.getScreenRect(nMoniterIndex);
- var nScreenTop = objScreenInfo.top;
- var nScreenBottom = objScreenInfo.bottom;
- var nScreenHeight = nScreenBottom - nScreenTop;
-
- // 2017.09.05 사용자 해상도에 따른 앵커제외처리
- if( nScreenHeight < 960 || bAnchor == true){
- obj.components[i].anchor = "";
- }
- }
- break;
- case "[OBJECT BUTTON]":
- if( !utlf_isNull(obj.components[i].class)
- && (obj.components[i].class == "btn2" || obj.components[i].class == "icon_top")
- && !utlf_isNull(obj.components[i].name) && obj.components[i].name.indexOf("EXT") > -1 ){
-
- if( !utlf_isNull(obj.components[i].align) && obj.components[i].align == "left middle" )
- obj.components[i].align = "";
- if( !utlf_isNull(obj.components[i].background)
- && (obj.components[i].background == "transparent stretch 0.gif" || obj.components[i].background == "transparent") )
- obj.components[i].background = "";
- if( !utlf_isNull(obj.components[i].border) && obj.components[i].border == "1 none #808080 " )
- obj.components[i].border = "";
- if( !utlf_isNull(obj.components[i].color) && obj.components[i].color == "#184d8bff" )
- obj.components[i].color = "";
- if( !utlf_isNull(obj.components[i].font) && obj.components[i].font == "돋움,8,normal" )
- obj.components[i].font = "";
- if( !utlf_isNull(obj.components[i].padding) && obj.components[i].padding == "1 13 1 13" )
- obj.components[i].padding = "";
- }
- break;
- /*
- // 1.0 스타일로 점선 표시(보류)
- case "[OBJECT RADIO]":
- obj.components[i].style = ":focused {border:1 dotted #808080ff ;}";
- break;
- case "[OBJECT CHECKBOX]":
- obj.components[i].focusborder = "1 dotted #808080ff";
- break;
- */
- // 1.0 Combo 필수입력 설정 후 2.0 전환 시 디자인 틀어짐
- case "[OBJECT COMBO]":
- if( !utlf_isNull(obj.components[i].class)
- && obj.components[i].class == "combo_essential"
- ){
- if( !utlf_isNull(obj.components[i].align) && obj.components[i].align == "left middle" )
- obj.components[i].align = "";
- if( !utlf_isNull(obj.components[i].background)
- && obj.components[i].background == "#ffffffff" )
- obj.components[i].background = "";
- if( !utlf_isNull(obj.components[i].border) && (obj.components[i].border == "1 solid #333333ff " || obj.components[i].border == "1 solid #c0c0c0ff ") )
- obj.components[i].border = "";
- }
- break;
-
- /*
- case "[OBJECT RADIO]":
- if( !utlf_isNull(obj.components[i].background) && obj.components[i].background == "transparent"){
- obj.components[i].background = "";
- }
- break;
- case "[OBJECT GRID]":
- if( !utlf_isNull(obj.components[i].gridtype) && obj.components[i].gridtype == "Y" ){
- trace(obj.components[i].name);
- if( obj.components[i].autosizingtype == "none" ){
- obj.components[i].autosizingtype = "row";
- obj.components[i].extendsizetype = "row";
- obj.components[i].setCellProperty( "body", 0, "autosizerow", "limitmin");
- }
- //if( obj.components[i].extendsizetype == "none" )
-
- }
- break;
- */
- default:
- continue;
- break;
- }
-
- ++seq;
- if (obj.components[i].components)
- {
- switch(sType) {
- case "[OBJECT TABPAGE]":
- case "[OBJECT DIV]":
- if(utlf_isNull(obj.components[i].url) == true) seq = frmf_setWordwrap(obj.components[i], seq);
- break;
- }
- }
- }
-
- return seq;
- }
- function frmf_setCaretPos(obj){
- if(utlf_isNull(obj.value))
- {
- obj.setCaretPos(0);
- }
- }
- // ----------------- 여기까지 Wordwrap 적용 로직
- // ----------------- 여기부터 공통 팝업(마우스 우클릭) 적용 로직
- function frmf_initCommonPopup(obj) {
- if(!gv_isCommonPopup && (sysf_isQuickView() || gv_bIsPreview)){
- return;
- }
-
- // 하위 div나 tab에 속해 있는 화면들은 제외
- var sType = obj.parent.toString().toUpperCase();
- if(sType == "[OBJECT CHILDFRAME]" || (sType == "[OBJECT FORM]" && obj.name == "div_work")) {
- var objPopupMenu = new PopupMenu("commonPopupMenu", 10, 10, 100, 100);
- objPopupMenu.captioncolumn = "name";
- objPopupMenu.idcolumn = "func";
- objPopupMenu.levelcolumn = "level";
- objPopupMenu.enablecolumn = "enable";
- objPopupMenu.hotkeycolumn = "hotkey";
- objPopupMenu.innerdataset = "gds_commonPopup";
- objPopupMenu.onmenuclick.addHandler(commonPopupMenu_onmenuclick);
-
- obj.addChild("commonPopupMenu", objPopupMenu);
-
- obj.onkeydown.addHandler(commonpopup_onkeydown);
- obj.onrbuttondown.addHandler(commonpopup_onrbuttondown);
-
- objPopupMenu.show();
- }
- }
- function commonpopup_onkeydown(obj:Form, e:KeyEventInfo) {
- if( e.ctrlKey ){
- if(e.keycode == keycode_F5) { // 'F5'
- frmf_CommonReload();
- return true;
- } else if(e.keycode == keycode_F7) {
- return true;
- } else if(e.keycode == keycode_F9) { // 'F9'
- commonLog();
- return true;
- } else if(e.keycode == keycode_F10) { // 'F10'
- commonProperty(e.fromobject);
- return true;
- }
- }
- }
- function commonpopup_onrbuttondown(obj:Form, e:MouseEventInfo)
- {
- var sType;
-
- if(commonPopupMenu.isPopup()) {
- commonPopupMenu.closePopup();
- return;
- }
-
- switch(e.fromobject) {
- case "[object Grid]" : // 일단 그리드에서는 동작 안하도록 처리함
- if(e.fromobject.getEditText() != undefined) // 편집 상태일 때는 안뜨도록(기본 팝업창 발생)
- break;
- if(e.fromobject.rowcount > 0)
- break;
- if(e.fromobject.selecttype == "multiarea")
- break;
- case "[object Form]" :
- case "[object Div]" :
- case "[object Tabpage]" :
- case "[object Static]" :
- // 상단과 하단 영역은 Reload 기능 disable
- if(obj.name == "form_top" || obj.name == "form_bottom") {
- gds_commonPopup.setColumn(0, "enable", false);
- } else {
- gds_commonPopup.setColumn(0, "enable", true);
- }
-
- commonPopupMenu.userdata = e.fromobject;
-
- var nX = system.clientToScreenX(obj, e.clientX);
- var nY = system.clientToScreenY(obj, e.clientY);
-
- commonPopupMenu.trackPopup(nX, nY, "", false);
- break;
- }
- }
- function commonPopupMenu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
- {
- obj.closePopup();
- eval(e.id + "(e.fromobject.userdata)");
- }
- function frmf_CommonReload() {
- // 메인창은 Reload 시 TF Viewer가 나와버리므로 별도로 처리한다.
- if(this.name == "form_work") {
- var objScreenInfo = application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_objScreenInfo;
- frmf_openForm(objScreenInfo.scrnid, objScreenInfo, agv_objMainFormParam);
- } else {
- reload();
- }
- }
- function commonLog() {
- var extObj = new ExtCommon();
- var localpath = system.convertRealPath("%XPLATFORM%");
- var filename = "XPLATFORM_" + removeSpChar(application.xadl) + "_" + utlf_getCurrentDate() + ".log";
- var path = localpath + filename;
-
- var objActiveX = new ActiveX();
- var FSO = objActiveX.createObject("Scripting.FileSystemObject");
-
- // 객체 생성 실패하면 리턴
- if (FSO == null) return;
- // 시스템 드라이브가 없다면..
- if (FSO.DriveExists("C") == false) return;
- // 오늘 날짜로 된 로그 파일이 없으면 마지막으로 로그인한 날짜 로그 파일 오픈
- if (FSO.FileExists(path) == false) {
- filename = "XPLATFORM_" + removeSpChar(application.xadl) + "_" + sysf_getTitleLoginDate(true) + ".log";
- path = localpath + filename;
- }
-
- extObj.executeProcess(path, "", "");
- }
- function removeSpChar(str) {
- var specialChars = /[\/~!#$^&*=+|:;?"<,.>']/;
- var retVal = str.split(specialChars).join("");
- return retVal.replace("8443", "443");
- }
- function commonProperty(obj) {
- var currentObj = obj;
- var currentFile = getFormFileNameFromObject(currentObj);
-
- var objArg = new Object();
- objArg._form_title = currentFile[0];
- objArg._form_pkgname = currentFile[1];
- objArg._form_filename = currentFile[2];
-
- frmf_modalInternal("form_property", "com_hismainxp::form_property.xfdl", objArg, false, null, null, null, 380, 284, null, null, null, "M");
- }
- function getFormFileNameFromObject(currentObj){
- var ret = ["", ""];
- var obj = currentObj;
-
- // while 보다 for 문으로 처리함 10depth 까지 들어갈 일은 없다고 판단.
- for(var i = 0; i < 10; i++) {
- if(utlf_isNull(obj)) break;
-
- if(obj == "[object Tabpage]" || obj == "[object Div]") {
- var url = obj.url;
- if(!utlf_isNull(url)) {
- ret[1] = url.split("::")[0];
-
- var filename = url.split("::")[1];
-
- if(gv_bIsPreview || utlf_isNull(obj.parent.bgv_sTitleText)) {
- ret[0] = frmf_getBizNameByUrl(ret[1] + "::" + filename);
- ret[2] = filename;
- } else {
- ret[0] = obj.parent.bgv_sTitleText;
- ret[2] = filename.split(".")[0] + "_" + obj.parent.bgv_sTitleText + "." + filename.split(".")[1];
- }
- break;
- }
- } else if(obj == "[object Form]" || obj == "[object ChildFrame]"){
- var url = this.getOwnerFrame().formurl;
-
- ret[1] = url.split("::")[0];
-
- var filename = url.split("::")[1];
-
- if(gv_bIsPreview || utlf_isNull(frmplgv_titleName)) {
- ret[0] = frmf_getBizNameByUrl(ret[1] + "::" + filename);
- ret[2] = filename;
- } else {
- ret[0] = frmplgv_titleName;
- ret[2] = filename.split(".")[0] + "_" + frmplgv_titleName + "." + filename.split(".")[1];
- }
- break;
- }
-
- obj = obj.parent;
- }
-
- return ret;
- }
- var xmlHttp = null;
- function frmf_findTitleTextFromForm(sUrl){
- if(gv_bIsPreview) {
- var doc = new DomDocument();
-
- doc.url = sUrl;
- var rtn = doc.load(false);
-
- if(!utlf_isNull(doc.documentElement)){
- return doc.documentElement.getElementsByTagName("Form")[0].getAttribute("titletext");
- }else{
- return "";
- }
- } else {
- var tempUrl = sUrl.split("::");
- var comp = tempUrl[0].split("_");
-
- sUrl = sysf_getURLprefix() + "/xpapps/" + comp[0] + "/" + comp[1] + "/xp/" + tempUrl[1];
- if (xmlHttp == null) {
- var objActiveX = new ActiveX("xmlHttp", 0, 0, 0, 0);
- xmlHttp = objActiveX.createObject("Microsoft.XMLHTTP");
- this.addChild("xmlHttp1", xmlHttp);
- }
- xmlHttp.open("POST", sUrl, false);
- xmlHttp.Send();
- xslfile = xmlHttp.responseText;
- //trace("xslfile : " + xslfile);
- var domPar = new DomParser;
- domDoc = domPar.parseFromString(xslfile);
- //trace("domDoc : " + domDoc);
- // Node값 보기
- var domElement = domDoc.getElementsByTagName("Form");
- //trace("text : " + domElement.get_item(0).getAttribute("titletext"));
-
- var text = domElement.get_item(0).getAttribute("titletext");
- if(text == "File Not Found") text = "";
-
- return text;
- }
- }
- // 런처 자체 기능으로 동작
- function commonViewSource(obj) {
- }
- // ----------------- 여기까지 공통 팝업(마우스 우클릭) 적용 로직
- /****************************************************************************************
- * Function : frmf_getChildUID
- * Description : child 윈도우의 UID 정보
- * Argument : 01.sPid : child 팝업의 popup id
- * return type : String - sId로 생성된 팝업의 uid
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getChildUID(sPid){
- var sUidChild = "";
- var arrChild = FRMGV_OBJ_UID_REPOSITORY.uid_child;
-
- for(var i in arrChild){
- if(arrChild[i].pid == sPid){
- sUidChild = arrChild[i].uid;
- break;
- }
- }
-
- return sUidChild;
- }
- /****************************************************************************************
- * Function : frmf_getChildPID
- * Description : child 윈도우의 PID 정보
- * Argument : 01.sUid : child 팝업의 uid
- * return type : String - 팝업의 pid
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getChildPID(sUid){
- var sPidChild = "";
- var arrChild = FRMGV_OBJ_UID_REPOSITORY.uid_child;
-
- for(var i in arrChild){
- if(arrChild[i].uid == sUid){
- sPidChild = arrChild[i].pid;
- break;
- }
- }
-
- return sPidChild;
- }
- /****************************************************************************************
- * Function : frmf_getMyUID
- * Description : 현재 form의 UID 정보
- * Argument :
- * return type : String - 현재 form의 UID를 리턴
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getMyUID(){
-
- return FRMGV_OBJ_UID_REPOSITORY.uid_myself;
- }
- /****************************************************************************************
- * Function : frmf_getOpenerUID
- * Description : Opener의 UID 정보(child 팝업에 저장된 opener uid를 가져온다.)
- * Argument :
- * return type : String - Opener의 UID를 리턴, Opener가 없으면 "" 리턴
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getOpenerUID(){
-
- var sUidOpener = "";
- if(!utlf_isNull(opener)){
- if(sysf_getObjType(opener) != "Form" && opener.name != "div_work"){
- //div에서 팝업을 띄웠을때는 div의 parent Form으로 접근한다.
- sUidOpener = opener.getOwnerFrame().form.FRMGV_OBJ_UID_REPOSITORY.uid_myself;
- }else{
- sUidOpener = opener.FRMGV_OBJ_UID_REPOSITORY.uid_myself;
- }
- }
-
- return sUidOpener;
- }
- /**********************************************************************************
- * 함수명 : frmf_getScreenDisabled
- * 설명 : 화면 상태 반환
- * argument :
- * return Type : Boolean - enable 여부
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getScreenDisabled(){
- return !this.enable;
- }
- /**********************************************************************************
- * 함수명 : frmf_setMenuDisabled
- * 설명 : 상단 메뉴 enable 상태 설정
- * argument : bVal - true or false
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setMenuDisabled(bVal){
- agv_objAppTopPath.form.menu_top.enable = bVal;
- }
- /**********************************************************************************
- * 함수명 : frmf_openLoadingBar
- * 설명 : loading 이미지 open
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_openLoadingBar(){
- frmf_loadingbarTrace(1);
-
- this.setWaitCursor(true, true);
- }
- /**********************************************************************************
- * 함수명 : frmf_closeLoadingBar
- * 설명 : loading 이미지 close
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_closeLoadingBar(){
- frmf_loadingbarTrace(2);
-
- this.setWaitCursor(false, true);
- }
- function frmf_loadingbarTrace(gubun) {
- var dutplcecd = sysf_getUserInfo("dutplcecd");
- if(dutplcecd == "4070700000" || dutplcecd == "4072000000" || dutplcecd == "4130100000" || dutplcecd == "1000000000") {
- var openerWindowNm = "";
- var openerWindowCd = "";
- var openerWindow = this.opener;
- if(!utlf_isNull(openerWindow)) {
- openerWindowNm = openerWindow.name;
- openerWindowCd = openerWindow.frmf_getScreenID();
- }
-
- var title = "";
- var countNum = 0;
-
- switch(gubun) {
- case 1:
- title = "frmf_openLoadingBar";
- countNum = 1;
- break;
- case 2:
- title = "frmf_closeLoadingBar";
- countNum = -1;
- break;
- case 3:
- title = "last_loadingbarTrace"
- countNum = 0;
- break;
- }
-
- var loadingCnt = -999;
- try {
- gvLoadingCount = parseInt(gvLoadingCount) + countNum;
- loadingCnt = parseInt(gvLoadingCount);
- } catch(e) {}
-
- trace("\n---- " + title + " -------------------------------------" +
- "\n|" +
- "\n| " + "로그인 시간 : " + sysf_getUserInfo("logindt") + ", 로딩 카운트 : " + loadingCnt +
- "\n| " + sysf_getProcessID() + " (ProcessID), " + sysf_getUserInfo("systemcd") + ", " + sysf_getUserId() + ", " + sysf_getUserName() + ", " + sysf_getIPAddress() +
- "\n| " + "현재창 이름 : " + frmf_getScreenID() + ", 로그 찍은 시간 : " + utlf_getCurrentDate() + " " + utlf_getCurrentTime() + ", 부모창 이름 : " + openerWindowNm + "(" + openerWindowCd + ")" +
- "\n|" +
- "\n-----------------------------------------------------");
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_setParameter
- * 설명 : name 명으로 value 값을 저장, 기존에 같은 name이 있으면 첫번째 값을 덮어쓴다.
- * argument : sName - 파라메터 key
- * sValue - 파라메터 value
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setParameter(sName, sValue){
- var arrParam = new Array();
- arrParam.push(sValue);
-
- if(sName == "errflag") { // errflag는 환자상단정보에서 사용하는데 1.0과 처리 방식이 달라져서 이렇게 분기함
- var objForm = frmf_getViewer("patientInfo");
- objForm.FRMFGV_ARR_FORM_PARAMETER[sName] = arrParam;
- } else {
- FRMFGV_ARR_FORM_PARAMETER[sName] = arrParam;
- }
-
- xxf_tfSetParameter(sName,sValue);
- }
- /**********************************************************************************
- * 함수명 : frmf_addParameter
- * 설명 : name 명으로 value 값을 추가
- * argument : sName - 파라메터 key
- * sValue - 파라메터 value
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_addParameter(sName, sValue){
- if(utlf_isNull(FRMFGV_ARR_FORM_PARAMETER[sName])){
- //null일때
- frmf_setParameter(sName, sValue);
- }else{
- //null이 아닐때
- FRMFGV_ARR_FORM_PARAMETER[sName].push(sValue);
-
- xxf_tfSetParameter(sName,sValue);
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_getParameter
- * 설명 : index 번째 name의 값을 가져옴, index 생략하면 1
- * argument : sName - 파라메터 key
- * nIndex - 파라메터 index
- * return Type : ETC - 파라메터 value
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getParameter(sName, nIndex){
- if(utlf_isNull(nIndex)) nIndex = 1;
-
- if(utlf_isNull(FRMFGV_ARR_FORM_PARAMETER[sName])){
- return null;
- }
-
- return FRMFGV_ARR_FORM_PARAMETER[sName][nIndex-1];
- }
- /**********************************************************************************
- * 함수명 : frmf_getParameterCount
- * 설명 : 해당 sName의 파라메터 갯수
- * argument : sName - 파라메터 key
- * return Type : Number - 파라메터 count
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getParameterCount(sName){
-
- var nParamCnt = 0;
- if(!utlf_isNull(FRMFGV_ARR_FORM_PARAMETER[sName])){
- nParamCnt = FRMFGV_ARR_FORM_PARAMETER[sName].length;
- }
- return nParamCnt;
- }
- /**********************************************************************************
- * 함수명 : frmf_removeParameter
- * 설명 : name 명으로 저장된 데이터들 중에서 index 번째 위치에 있는 값을 삭제한다.
- * index를 생략하면 첫번째 위치의 값을 삭제한다.
- * argument : sName - 파라메터 key
- * nIndex - 파라메터 index
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_removeParameter(sName, nIndex){
-
- var arrTemp = new Array();
-
- if(utlf_isNull(nIndex)) nIndex = 1;
-
- for (var i in FRMFGV_ARR_FORM_PARAMETER[sName]){
- if(i != (nIndex-1)){
- arrTemp.push(FRMFGV_ARR_FORM_PARAMETER[sName][i]);
- }
- }
-
- FRMFGV_ARR_FORM_PARAMETER[sName] = arrTemp;
- }
- /**********************************************************************************
- * 함수명 : frmf_clearParameter
- * 설명 : name의 모든 값울 삭제함, 삭제하기전 값을 반환한다. (getParmeter후 초기화 하는 로직 단순화를 위해)
- * argument : sName - 파라메터 key
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_clearParameter(sName){
-
- var sRetValue = frmf_getParameter(sName);
-
- FRMFGV_ARR_FORM_PARAMETER[sName] = null;
-
- return sRetValue;
- }
- /**********************************************************************************
- * 함수명 : frmf_clearAllParameter
- * 설명 : parameter 전체를 삭제한다.
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_clearAllParameter(){
-
- FRMFGV_ARR_FORM_PARAMETER = new Array();
- }
- /**********************************************************************************
- * 함수명 : frmf_chkMdt
- * 설명 : 포커스를 이동할 때 필수, 선택 Validation check
- * argument : arrObjId - 검사할 컴포넌트 ID
- * arrMsg - 검사할 컴포넌트 명칭
- * return Type : Boolean - 유효 여부
- * 작성자 : 임준호
- * 예시 : if(!chkMdt(["edt_date1","edt_date2"], ["등록기간1","등록기간2"]) ) return;
- **********************************************************************************/
- function frmf_chkMdt(arrObjId, arrMsg){
-
- for(var i in arrObjId){
- var sObjVal = null;
- sObjVal = eval(arrObjId[i]).value;
- if(utlf_isNull(sObjVal)){
- sysf_messageBox(arrMsg[i], "C001", "");
- eval(arrObjId[i]).setFocus();
- return false;
- }
- }
-
- return true;
- }
- /**********************************************************************************
- * 함수명 : frmf_chkMdtMax
- * 설명 : 포커스를 이동할 때 필수, 선택 Validation check, null과 max값을 체크한다.
- * argument : arrObjId - 검사할 컴포넌트 ID
- * arrMsg - 검사할 컴포넌트 명칭
- * arrMax - 최대 byte값
- * return Type : Boolean - 유효 여부
- * 작성자 : 임준호
- * 예시 : if(!chkMdt(["edt_date1","edt_date2"], ["등록기간1","등록기간2"], [10,10]) ) return;
- **********************************************************************************/
- function frmf_chkMdtMax(arrObjId, arrMsg, arrMax){
-
- for(var i in arrObjId){
- var sObjVal = null;
- sObjVal = eval(arrObjId[i]).value;
- if(utlf_isNull(sObjVal)){
- sysf_messageBox(arrMsg[i], "C001");
- eval(arrObjId[i]).setFocus();
- return false;
- }else{
- if(arrMax[i]>0 && utlf_getLengB(sObjVal)>arrMax[i]){
- sysf_messageBox(arrMsg[i] + " 입력 제한길이(" + arrMax[i] + " Byte)를", "E003");
- eval(arrObjId[i]).value = utlf_getStringByte(sObjVal, 0, arrMax[i]);
- eval(arrObjId[i]).setFocus();
- return false;
- }
- }
- }
-
- return true;
- }
- /**********************************************************************************
- * 함수명 : frmf_chkMdtGrid
- * 설명 : 그리드에서 포커스를 이동할 때나 저장할 때 그리드 필수항목 check 하고 포커스를 해당 cell로 이동
- * argument : objGrid - 검사할 그리드 object
- * arrColIdx - 검사할 그리드의 column index
- * arrMsg - 출력할 메시지 (default : null 값이면 rownumber와 column명을 출력한다.)
- * return Type : Boolean - 유효 여부
- * 작성자 : 임준호
- * 예시 : if(!chkMdtGrid(grd_asso, [1,2], ["기관코드","기관명칭"])) return;
- **********************************************************************************/
- function frmf_chkMdtGrid(objGrid:Grid, arrColIdx, arrMsg){
-
- var rowCnt = objGrid.rowcount;
-
- for(var i in arrColIdx){
- for(var j=0 ; j<rowCnt ; j++){
- var sValue = objGrid.getCellValue(j, (arrColIdx[i]));
-
- if(utlf_isNull(sValue)){
- if(arrMsg == null || arrMsg[i] == null || arrMsg[i] == ""){
- sysf_messageBox(j+1 + "행 " + objGrid.getCellText(-1, arrColIdx) + " ", "C001");
- }else{
- sysf_messageBox(j+1 + "행 " + arrMsg[i] + " ", "C001");
- }
-
- objGrid.setFocus();
- this.objects[objGrid.binddataset].rowposition = j;
- objGrid.setCellPos(arrColIdx[i]);
- objGrid.showEditor(true);
- return false;
- }
- }
- }
-
- return true;
- }
- /**********************************************************************************
- * 함수명 : frmf_chkOpt
- * 설명 : 여러 개의 값 중에서 하나만 필수일때 Validation check
- * argument : arrObjId - 검사할 컴포넌트 ID
- * arrMsg - 출력할 메시지 : 컴포넌트 명
- * return Type : Boolean - 유효 여부
- * 작성자 : 임준호
- * 예시 : if(!chkMdt(["edt_date1","edt_date2"], ["등록기간1","등록기간2"]) ) return;
- **********************************************************************************/
- function frmf_chkOpt(arrObjId, arrMsg){
-
- var sMsg = "";
-
- for(var i in arrObjId){
-
- var sObjVal = null;
- sObjVal = eval(arrObjId[i]).value;
-
- if(utlf_isNull(sObjVal)){
- sMsg = sMsg + "'" + arrMsg[i] + "' ";
- }else{
- return true;
- }
- }
-
- sysf_messageBox(sMsg + " 중 하나는", "C001", "");
- eval(arrObjId[0]).setFocus();
- return false;
- }
- /**********************************************************************************
- * 함수명 : frmf_chkMdtMaxOnly
- * 설명 : 입력 제한길이 체크
- * argument : arrObjId - 검사할 컴포넌트 ID
- * arrMsg - 검사할 컴포넌트 명칭
- * arrMax - 최대 byte값
- * return Type : Boolean - 유효 여부
- * 작성자 : 임준호
- * 예시 : if(!chkMdt(["edt_date1","edt_date2"], ["등록기간1","등록기간2"]) ) return;
- **********************************************************************************/
- function frmf_chkMdtMaxOnly(arrObjId, arrMsg, arrMax){
-
- for(var i in arrObjId){
- var sObjVal = null;
- sObjVal = eval(arrObjId[i]).value;
- if(arrMax[i]>0 && utlf_getLengB(sObjVal)>arrMax[i]){
- sysf_messageBox(arrMsg[i] + " 입력 제한길이(" + arrMax[i] + " Byte)를", "E003");
- eval(arrObjId[i]).value = utlf_getStringByte(sObjVal, 0, arrMax[i]);
- eval(arrObjId[i]).setFocus();
- return false;
- }
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_getViewer
- * 설명 : 주어진 이름의 form, div 객체를 반환한다.
- * argument : sName - viewer이름
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getViewer(sName){
-
- var objForm = null;
-
- if(sName == "patientInfo"){
- objForm = agv_objAppTopPath.form.div_patient.div_patientInfo;
- // }else if(sName == "patientInfo_detail"){
- // objForm = agv_objAppTopPath.form.div_patient.div_patientInfo_detail;
- }else if(sName == "bizMain"){
- objForm = agv_objAppWorkPath.form.div_work;
- }else if(sName == "sysMessage"){
- objForm = agv_objAppBottomPath.form;
- }else if(sName == "top"){
- objForm = agv_objAppTopPath.form;
- }else if(sName == "orderbasicinfo"){
- objForm = agv_objAppTopPath.form.dv_orderbasicinfo;
- }
-
- return objForm;
- }
- /****************************************************************************************
- * Function : frmf_createPopupMenu
- * Description : 팝업메뉴 생성
- * Argument : 01.sPopupName - 팝업메뉴명
- * : 02.sEventFunc - 팝업메뉴클릭 이벤트 함수명
- * : 03.arrMenuInfo - 팝업메뉴 정보
- * : 04.sDsNm - popupmenu에서 사용할 dataset name (default : "frmfds_"+sPopupName) 팝업메뉴2개이상 사용시 꼭 넣어줄것
- * 예)frmf_createPopupMenu("pmn_popupMenu", "lf_menu_event", [{id: "1", level: "0", title: "삭제"}, {id: "2", level: "0", title: "추가"}], "ds_popupmenu01");
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_createPopupMenu(sPopupName, sEventFunc, arrMenuInfo, sDsNm){
-
- var objPopMenu = new PopupMenu(sPopupName, 0, 0, 100, 100);
-
- if(!utlf_isNull(arrMenuInfo)){
- var arrColInfo = new Array();
- arrColInfo = [ {col: "id", type:"string", size:256},
- {col: "level", type:"string", size:256},
- {col: "title", type:"string", size:256},
- {col: "type", type:"string", size:256}
- ];
- if(utlf_isNull(sDsNm)) sDsNm = "frmfds_"+sPopupName;
- var sDsName = dsf_createDs(sDsNm, arrColInfo);
- var bindDs = this.objects[sDsName];
- for(var i in arrMenuInfo){
- var nRow = bindDs.addRow();
- bindDs.setColumn(nRow, "id", arrMenuInfo[i].id);
- bindDs.setColumn(nRow, "level", arrMenuInfo[i].level);
- bindDs.setColumn(nRow, "title", arrMenuInfo[i].title);
- }
-
- objPopMenu.innerdataset = bindDs;
- }
-
-
- objPopMenu.captioncolumn = "title";
- //objPopMenu.hotkey = "hotkey";
- objPopMenu.idcolumn = "id";
- objPopMenu.levelcolumn = "level";
- objPopMenu.cursor = "arrow";
- this.addChild(objPopMenu.name, objPopMenu);
- objPopMenu.show();
-
- objPopMenu.onmenuclick.addHandler(eval(sEventFunc)); //메뉴클릭이벤트
- }
- /****************************************************************************************
- * Function : frmf_createPopupMenuDs
- * Description : DataSet으로부터 팝업메뉴 생성
- * Argument : 01.sPopupName - 팝업메뉴명
- * : 02.sEventFunc - 팝업메뉴클릭 이벤트 함수명
- * : 03.sDsMenuInfo - 팝업메뉴 DataSet정보
- * : 04.sDsNm - popupmenu에서 사용할 dataset name (default : "frmfds_"+sPopupName) 팝업메뉴2개이상 사용시 꼭 넣어줄것
- * 예)frmf_createPopupMenu("pmn_popupMenu", "lf_menu_event", "ds_menu", "ds_popupmenu01");
- * return type :
- ****************************************************************************************/
- function frmf_createPopupMenuDs(sPopupName, sEventFunc, sDsMenuInfo, sDsNm){
- var objPopMenu = new PopupMenu(sPopupName, 0, 0, 100, 100);
-
- if(!utlf_isNull(sDsMenuInfo)){
- var arrColInfo = new Array();
- arrColInfo = [ {col: "id", type:"string", size:256},
- {col: "level", type:"string", size:256},
- {col: "title", type:"string", size:256},
- {col: "type", type:"string", size:256}
- ];
- if(utlf_isNull(sDsNm)) sDsNm = "frmfds_"+sPopupName;
- var sDsName = dsf_createDs(sDsNm, arrColInfo);
- var bindDs = this.objects[sDsName];
-
- var rows = sDsMenuInfo.rowcount;
- for(var i = 0; i < rows; i++) {
- var nRow = bindDs.addRow();
- bindDs.setColumn(nRow, "id", sDsMenuInfo.getColumn(i, "hardcd"));
- bindDs.setColumn(nRow, "level", 0);
- bindDs.setColumn(nRow, "title", sDsMenuInfo.getColumn(i, "hardcdnm"));
- }
-
- objPopMenu.innerdataset = bindDs;
- }
-
-
- objPopMenu.captioncolumn = "title";
- //objPopMenu.hotkey = "hotkey";
- objPopMenu.idcolumn = "id";
- objPopMenu.levelcolumn = "level";
- objPopMenu.cursor = "arrow";
- this.addChild(objPopMenu.name, objPopMenu);
- objPopMenu.show();
-
- objPopMenu.onmenuclick.addHandler(eval(sEventFunc)); //메뉴클릭이벤트
- }
- /****************************************************************************************
- * Function : frmf_setPopupMenuDs
- * Description : 팝업메뉴에 dataset을 설정한다.
- * Argument : 01.sPopupName - 팝업메뉴명
- * : 02.arrMenuInfo - 팝업메뉴 정보
- * : 03.sDsNm - popupmenu에서 사용할 dataset name (default : "frmfds_"+sPopupName)
- * 예)frmf_setPopupMenuDs("pmn_popupMenu", [{id: "1", level: "0", title: "삭제"}, {id: "2", level: "0", title: "추가"}], "ds_popupmenu01");
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_setPopupMenuDs(sPopupName, arrMenuInfo, sDsNm){
-
- if(utlf_isNull(this.components[sPopupName])){
- return false;
- }
-
- var arrColInfo = new Array();
- arrColInfo = [ {col: "id", type:"string", size:256},
- {col: "level", type:"string", size:256},
- {col: "title", type:"string", size:256},
- {col: "type", type:"string", size:256}
- ];
- if(utlf_isNull(sDsNm)) sDsNm = "frmfds_"+sPopupName;
- var sDsName = dsf_createDs(sDsNm, arrColInfo);
- var bindDs = this.objects[sDsName];
- for(var i in arrMenuInfo){
- var nRow = bindDs.addRow();
- bindDs.setColumn(nRow, "id", arrMenuInfo[i].id);
- bindDs.setColumn(nRow, "level", arrMenuInfo[i].level);
- bindDs.setColumn(nRow, "title", arrMenuInfo[i].title);
- }
-
- this.components[sPopupName].innerdataset = bindDs;
-
- return true;
- }
- /**********************************************************************************
- * 함수명 : frmf_initPopupMenu
- * 설명 : 화면에서 사용할 popupmenu 생성
- * argument : Object obj - form Ojbect
- * return Type : none
- * 작성자 : tobesoft
- **********************************************************************************/
- function frmf_initPopupMenu(obj)
- {
- if(!utlf_isNull(components["_popMenu"])) _popMenu.destroy();
- var objPopMenu = new PopupMenu("_popMenu", 0, 0, 100, 100);
-
- var arrColInfo = new Array();
- arrColInfo = [ {col: "id", type:"string", size:256},
- {col: "level", type:"string", size:256},
- {col: "title", type:"string", size:256},
- {type: "type", type:"string", size:256}
- ];
-
- var sDsName = dsf_createDs("ds_formPopMenu", arrColInfo);
- var bindDs = eval(sDsName);
- var nRow = bindDs.addRow();
- bindDs.setColumn(nRow, "id", "1");
- bindDs.setColumn(nRow, "level", "1");
- bindDs.setColumn(nRow, "title", "Reload");
-
- objPopMenu.innerdataset = bindDs
- objPopMenu.captioncolumn = "title";
- objPopMenu.hotkey = "hotkey";
- objPopMenu.idcolumn = "id";
- objPopMenu.levelcolumn = "level";
- objPopMenu.cursor = "arrow";
- this.addChild(objPopMenu.name, objPopMenu);
- objPopMenu.show();
- objPopMenu.onmenuclick.addHandler(frmf_event_onmenuclick); //메뉴클릭이벤트
- obj.onrbuttondown.addHandler(frmf_mouseRightClick); //popupmenu 오픈
- obj.PopMenu = objPopMenu;
- }
- /**********************************************************************************
- * 함수명 : frmf_mouseRightClick()
- * 설명 : 화면 우클릭 이벤트시 popupmenu 호출
- * argument : Object obj - form Ojbect
- Object e - event object
- * return Type : none
- * 작성자 : tobesoft
- **********************************************************************************/
- function frmf_mouseRightClick(obj,e)
- {
- //var objPopMenu = obj.PopMenu;
- var objPopMenu = obj.deleteP;
-
- objPopMenu.trackPopup(e.screenX,e.screenY);
- }
- /**********************************************************************************
- * 함수명 : frmf_event_onmenuclick()
- * 설명 : 화면 팝업메뉴 선택 이벤트
- * argument : Object obj - form Ojbect
- Object e - event object
- * return Type : none
- * 작성자 : tobesoft
- **********************************************************************************/
- function frmf_event_onmenuclick(obj, e)
- {
- if(e.id == "1") //reload
- {
- this.reload();
- }
-
- }
- /************************************************************************************************
- * 함수명 : frmf_isRequiredControls(삭제대상 - frmf_chkMdt로 대체함)(다시 원복 김상목 2015.11.26)
- * 설명 : 입력 컨트롤들의 필수값 체크 (주의 입력창과 캡션의 부모는 같아야 한다)
- * argument : Array arrCompID ex)arrCompId = new Array("edt_code","cal_days");
- * return Type : none
- * 작성자 : tobesoft
- ex)arrCompId = new Array("edt_code","cal_days");
- ex) frmf_isRequiredControls(arrCompId);
- ************************************************************************************************/
- function frmf_isRequiredControls(arrCompID) {
- var arrCnt = arrCompID.length;
-
- for(var i = 0; i < arrCnt; i++)
- {
- var objComp = eval(arrCompID[i]);
- if(!utlf_isNull(objComp)) {
- if(utlf_isNull(objComp.value))
- {
- var captionID = objComp.name.replace(objComp.name.substr(0, 3), "cap");
- var objCaption = eval("objComp.parent." + captionID);
- if(!utlf_isNull(objCaption)) {
- sysf_messageBox(objCaption.text, "I003");
- } else {
- sysf_messageBox("", "I003");
- }
-
- objComp.setFocus();
- return false;
- }
- }
- }
-
- return true;
- }
- /************************************************************************************************
- * 함수명 : frmf_isRequiredGroup
- * 설명 : div 안의 component들중 입력가능한 component의 필수값 체크
- * argument : String groupID - 그룹 아이디
- * return Type : none
- * 작성자 : tobesoft
- ex) frmf_isRequiredGroup("Div00");
- ************************************************************************************************/
- function frmf_isRequiredGroup(groupID)
- {
- var objGrp = eval(groupID);
- var arrComp = objGrp.components;
- var childID, captionID;
- var childObj, captionObj;
- for(var i =0; i < arrComp.length; i++)
- {
- //입력 컨트롤이면
- if(!utlf_isNull(arrComp[i]._required) && arrComp[i]._required == "true" && (arrComp[i] instanceof Edit || arrComp[i] instanceof Combo
- || arrComp[i] instanceof MaskEdit || arrComp[i] instanceof TextArea
- || arrComp[i] instanceof Calendar || arrComp[i] instanceof Spin)
- )
- {
- if(utlf_isNull(arrComp[i].value))
- {
- childID = arrComp[i].name;
- captionID = childID.replace(childID.substr(0, 3), "cap");
- captionObj = objGrp.components[captionID];
- if(!utlf_isNull(captionObj)){
- captionLabel = captionObj.text;
- sysf_messageBox(captionLabel, "I003");
- }else{
- sysf_messageBox("", "I003");
- }
- arrComp[i].setFocus();
- return false;
- break;
- }
- }
- }
- return true;
- }
- /************************************************************************************************
- * 함수명 : frmf_removeChildren (삭제 대상)
- * 설명 : 경로의 노드를 삭제
- * argument : Object objDs - 데이타셋
- * return Type : none
- * 작성자 : tobesoft
- ************************************************************************************************/
- /*
- function frmf_removeChildren( objDs ) {
- objDs.clearData();
- }
- */
- /************************************************************************************************
- * 함수명 : frmf_removeMask
- * 설명 : 스트링 객체의 해당 마스크 문자를 제거후 반환한다.
- * argument : String str - 원본 문자열
- String mask - 제거할 마스크 문자
- * return Type : String 마스크 제거된 문자열
- * 작성자 : tobesoft
- ************************************************************************************************/
- function frmf_removeMask( str, mask ) {
-
- var strTmp = "";
- strTmp = str.replace(mask, "");
- return strTmp;
- }
- /****************************************************************************************
- * Function : frmf_logout
- * Description : 로그아웃
- * Argument :
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_logout(){
- agv_objAppTopPath.form.lf_logout();
- }
- /****************************************************************************************
- * Function : frmf_checkTimeout
- * Description : 세션 타임 아웃 확인
- * Argument :
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_checkTimeout(){
-
- var nSessionTimeout = toNumber(sysf_getSystemInfo("sessiontimeout"));
- var dtDate = new Date();
- var nDate = dtDate.getTime();
- var nDiffTime = 0;
- if(agv_nLastTransactionTime > 0){
- nDiffTime = (nDate - agv_nLastTransactionTime)/1000/60;
- }
-
- if(nDiffTime > nSessionTimeout){
- //타임아웃
- return false;
- }else{
- //안타임아웃
- return true;
- }
- }
- /****************************************************************************************
- * Function : frmf_textViewPopup
- * Description : text의 내용을 보거나 수정 할 팝업호출
- * Argument : 01.sTitleTxt : String 팝업 화면 타이틀
- * : 02.sCont : String 팝업화면의 textarea에 들어갈 text
- * : 03.bReadonly : true / false (textarea를 readonly로 하지 여부)
- * : 04.nLeft : Number left
- * : 05.nTop : Number top
- * : 06.nWidth : Number width
- * : 07.nHeight : Number height
- * return type : -1 or String rtn (창닫기나 취소 버튼 클릭으로 창을 닫을 경우 -1을 리턴함)
- * Creator : tobesoft
- * ex) var rtn = frmf_textViewPopup(stitle, sCont, false, "","",600,400);
- * if(rtn <> -1)
- * {
- * Dataset09.setColumn(Dataset09.rowposition, "Column0", rtn);
- * }
- ****************************************************************************************/
- function frmf_textViewPopup(sTitleTxt, sCont, bReadonly, nLeft,nTop,nWidth,nHeight)
- {
- if(utlf_isNull(sTitleTxt))
- {
- return;
- }
-
- this.enable = false;
-
- var sID = "com_TextDetailView";
- var sURL = "com_hismainxp::com_TextDetailView.xfdl";
- var sArg = {pTitleTxt:sTitleTxt, pCont:sCont, pReadonly:bReadonly};
-
- if(utlf_isNull(nLeft)) nLeft = "";
- if(utlf_isNull(nTop)) nTop = "";
- if(utlf_isNull(nWidth)) nWidth = 400;
- if(utlf_isNull(nHeight)) nHeight = 235;
-
- var rtn = frmf_modalInternal(sID, sURL, sArg, false, "", nLeft, nTop, nWidth, nHeight, "", "", "", "P");
-
- this.enable = true;
-
- return rtn;
- }
- /****************************************************************************************
- * Function : frmf_findFuncFromForm
- * Description : 화면 URL에 해당하는 폼에서 함수 유무를 체크한다.
- * Argument : 01.sUrl : 화면 URL
- * : 02.sFunc : 함수명
- * return type : Boolean : 함수 존재 유무
- * Creator : tobesoft
- ****************************************************************************************/
- function frmf_findFuncFromForm(sUrl, sFunc){
-
- return frmf_findTextFromForm(sUrl, "function "+sFunc);
- }
- /****************************************************************************************
- * Function : frmf_findTextFromForm
- * Description : 화면 URL에 해당하는 폼에서 text의 유무를 체크한다.
- * Argument : 01.sUrl : 화면 URL
- * : 02.sText : 찾을 text
- * return type : Boolean : text 존재 유무
- * Creator : tobesoft
- ****************************************************************************************/
- function frmf_findTextFromForm(sUrl, sText){
-
- var doc = new DomDocument;
- doc.url = sUrl;
- var rtn = doc.load(false);
- utlf_addLog(" doc.load(false) : " + rtn);
- if(!utlf_isNull(doc.documentElement)){
- utlf_addLog(" doc.documentElement is not null " );
- var Script_doc = doc.documentElement.getElementsByTagName("Script");
-
- for(var i=0 ; i<Script_doc.length ; i++){
- var source = Script_doc.get_item(i).source;
- var nIdx = eval("source.search(/"+sText+"/g)");
-
- if(nIdx >= 0 )
- return true;
- else
- return false;
- }
- }else{
- utlf_addLog(" doc.documentElement is null " );
- return false;
- }
- }
- /****************************************************************************************
- * Function : frmf_removeTitlebar
- * Description : titlebar와 border를 제거한다.
- * Argument : 01.obj : Form object
- * : 02.sMode : remove mode (dynamic[default] : 메뉴에서 띄워진 팝업을 구분하여 동적으로 titlebar 제거, force : 무조건 titlebar 제거)
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_removeTitlebar(obj:Form, sMode){
-
- var bRemove = false;
-
- if(utlf_isNull(sMode)){
- sMode = "dynamic";
- }
-
- if(sMode == "dynamic"){
- var sOpenType = null;
- try{
- sOpenType = plgv_openType;
- }catch(e){
- sOpenType = null;
- }
-
- if(sOpenType == "top_menu"){
- bRemove = true;
- }
- }else if(sMode == "force"){
- bRemove = true;
- }
-
- if(bRemove){
- parent.showtitlebar = false;
- obj.style.margin = "0px 0px 0px 0px";
- obj.parent.border = "0 solid #38424a";
- obj.position.width = obj.position.width-24;
- obj.parent.position.width = obj.parent.position.width-24;
- obj.position.height = obj.position.height-44;
- obj.parent.position.height = obj.parent.position.height-44;
- }
- }
- /****************************************************************************************
- * Function : frmf_setDefaultWorkForm
- * Description : 메인프레임 work영역을 default화면으로 변경한다.
- * Argument :
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_setDefaultWorkForm(){
-
- var objScrnInfo = new Object();
- objScrnInfo.menuitemnm = "";
- agv_objAppWorkPath.form.div_work.frmf_openFormInternal("com_hismainxp::form_default.xfdl", objScrnInfo);
- }
- /****************************************************************************************
- * Function : frmf_getMainFormParam
- * Description : frmf_openForm에서 인자값을 넘겼을때 받는 form에서 사용한다.
- * Argument :
- * return type :
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_getMainFormParam(){
-
- var objParam = agv_objMainFormParam;
- agv_objMainFormParam = null;
- return objParam;
- }
- // function frmf_initQuickLink(obj:Form){
- // var objButton = new Button();
- // objButton.init("btn_viewQuickLink", 1236, 0, 1256, 20);
- // obj.addChild("btn_viewQuickLink", objButton);
- // objButton.class = "quicklink";
- // objButton.onclick.addHandler(frmf_btn_viewQuickLink_onlick);
- // objButton.show();
- //
- // var objPopupDiv = new PopupDiv();
- // objPopupDiv.init("pdv_quickLink", 10, 10, 100, 100);
- //
- // }
- //
- // function frmf_btn_viewQuickLink_onlick(){
- // }
- /****************************************************************************************
- * Function : frmf_checkAlone
- * Description : 자신이 최상단 화면인지를 리턴한다.
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function frmf_checkAlone(){
-
- if( (this.frmf_getCurrentFormKind() == "main" && this.name == "div_work") || this.parent == "[object ChildFrame]" ){
- return true;
- }
- return false;
- }
- /********************************************************************************************************************/
- /************************* Caching API ******************************************************************************/
- /********************************************************************************************************************/
- /**********************************************************************************
- * 함수명 : frmf_storeIntoCache
- * 설명 : dataset을 cache에 저장한다.
- * argument : sItemName - cache될 itemname (dataset id)
- * objDs - cache에 저장할 dataset object
- * nDueMin - 유효기간(분) null일 경우 10시간
- * return Type : Boolean - 저장 여부
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_storeIntoCache(sItemName, objDs:Dataset, nDueMin){
-
- //quick view 여부
- if(sysf_isQuickView()){
- return false;
- }
-
-
- return agv_objAppTopPath.form.storeIntoCache(sItemName, objDs, nDueMin);
- }
- /**********************************************************************************
- * 함수명 : frmf_copyFromCache
- * 설명 : Cache에서 itemname으로 저장된 dataset을 objDs에 복사한다.
- * 해당 itemname으로 복사가 되었으면 true를 복사된 내용이 없으면 false를 반환한다.
- * argument : sItemName - cache될 itemname (dataset id)
- * objDs - 복사하려는 dataset object
- * return Type : Boolean - 복사 여부
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_copyFromCache(sItemName, objDs:Dataset){
-
- //quick view 여부
- if(sysf_isQuickView()){
- return false;
- }
-
- return agv_objAppTopPath.form.copyFromCache(sItemName, objDs);
- }
- /********************************************************************************************************************/
- /************************* 팝업 관련 함수 *************************************************************************/
- /********************************************************************************************************************/
- /**********************************************************************************
- * 함수명 : frmf_setPopArgs
- * 설명 : 팝업 인자값을 추가한다.
- * argument : arrArgs - 팝업 인자값
- * sKey - 인자값 key
- * sValue - 인자값 value
- * return Type : Array - 팝업의 기본 인자값
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setPopArgs(arrArgs, sKey, sValue){
-
- var arrRetArgs = null;
-
- if(utlf_isNull(arrArgs)){
- arrRetArgs = new Object();
- arrRetArgs[sKey] = sValue;
- }else{
- arrArgs[sKey] = sValue;
- arrRetArgs = arrArgs;
- }
-
- return arrRetArgs;
- }
- /****************************************************************************************
- * Function : frmf_setPopupPosiotion
- * Description : 팝업(modal, modeless) 위치 설정
- * Argument : 01.sID : 팝업ID
- * : 02.bPrevPos : 이전좌표 사용여부
- * : 03.nMonitor : 모니터 번호
- * : 04.nLeft : left
- * : 05.nTop : top
- * return type : String - left, top 정보
- * Creator : 임준호
- ****************************************************************************************/
- function frmf_setPopupPosiotion(sID, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight){
-
- if(utlf_isNull(bPrevPos)) bPrevPos = true;
- if(bPrevPos){
- //이전좌표 사용
- //quick view 일 경우에 대비
- try{
- // 팝업좌표저장된 top 에서 해당팝업의 좌표를 찾음
- var popLocation = agv_objAppTopPath.form.getPopupLocation(sID);
- if (popLocation != undefined){
-
- // 좌표가 있으면 해당좌표로 세팅
- //if(utlf_isNull(nLeft)){
- nLeft = popLocation.scrnxpos;
- //}
- //if(utlf_isNull(nTop)){
- nTop = popLocation.scrnypos;
- //}
- }else{
- //이전 좌표가 없으면 중앙으로
- //=================================
- }
- }catch (e){
- sysf_catchTrace(e);
- }
- }else{
- var objScreenInfo = null;
-
- if(utlf_isNull(nMonitor)){
- var nMoniterIndex = system.getMonitorIndex(application.mainframe.position.left, application.mainframe.position.top); //모니터번호 // cursorx, cursory 에서 mainframe left, top로 변경(20161222. smkim)
- objScreenInfo = system.getScreenRect(nMoniterIndex);
- }else{
- objScreenInfo = system.getScreenRect(nMonitor);
- }
-
- nScreenLeft = objScreenInfo.left;
- nScreenTop = objScreenInfo.top;
- nScreenRight = objScreenInfo.right;
- nScreenBottom = objScreenInfo.bottom;
- nScreenWidth = nScreenRight - nScreenLeft;
- nScreenHeight = nScreenBottom - nScreenTop;
- //이전좌표 사용 안함
- if(utlf_isNull(nMonitor) && utlf_isNull(nLeft) && utlf_isNull(nTop)){
-
- //모니터번호와 left, top 모두 null일때는 중앙으로
- if(utlf_isNull(nWidth) || utlf_isNull(nHeight)){
- //팝업의 width와 height가 null이면 0,0에 띄운다.
- nLeft = nScreenLeft;
- nTop = nScreenTop;
-
- }else{
- nLeft = (nScreenLeft+(nScreenWidth/2))-(nWidth/2);
- nTop = (nScreenTop+(nScreenHeight/2))-(nHeight/2);
- }
- }else{
-
- if(!utlf_isNull(nMonitor) && utlf_isNull(nLeft) && utlf_isNull(nTop)){
- //모니터번호만 null이 아닐때
- //=================================
- //해당모니터에 중앙으로 위치- 나중에 추가 (아래 두줄은 삭제)
- //nLeft = objScreenInfo.left;
- //nTop = objScreenInfo.top;
- //=================================
- if(utlf_isNull(nWidth) || utlf_isNull(nHeight)){
- //팝업의 width와 height가 null이면 0,0에 띄운다.
- nLeft = nScreenLeft;
- nTop = nScreenTop;
- }else{
- nLeft = (nScreenLeft+(nScreenWidth/2))-(nWidth/2);
- nTop = (nScreenTop+(nScreenHeight/2))-(nHeight/2);
- }
- }else if(!utlf_isNull(nMonitor) && !utlf_isNull(nLeft) && !utlf_isNull(nTop)){
- //모니터번호, left, top 모두 null이 아닐때
- if(nLeft <= nScreenLeft) {
- nLeft = nScreenLeft + nLeft;
- }
-
- if(nTop <= nScreenTop) {
- nTop = nScreenTop + nTop;
- }
- }else{
- //기타
- if(utlf_isNull(nLeft)) nLeft = 0;
- if(utlf_isNull(nTop)) nTop = 0;
- //nLeft = nScreenLeft+nLeft;
- //nTop = nScreenTop+nTop;
- }
- }
- }
- var m_cnt = system.monitorcount;
-
- var left = 0;
- var right = 0;
- var top = 0;
- var bottom = 0;
- var objScreenInfo;
-
- for(var i = 1; i <= m_cnt; i++) {
- objScreenInfo = system.getScreenRect(i);
-
- if(objScreenInfo.left < left) left = objScreenInfo.left;
- if(objScreenInfo.top < top) top = objScreenInfo.top;
- if(objScreenInfo.right > right) right = objScreenInfo.right;
- if(objScreenInfo.bottom > bottom) bottom = objScreenInfo.bottom;
- }
- if(utlf_isNull(nLeft) || left >= nLeft || (nLeft + 70) >= right) nLeft = 0;
- if(utlf_isNull(nTop) || top >= nTop || (nTop + 70) >= bottom) nTop = 0;
- // if(utlf_isNull(nLeft) || nLeft < 0 || nLeft > system.screenwidth) nLeft = 0;
- // if(utlf_isNull(nTop) || nTop < 0 || nTop > system.screenheight) nTop = 0;
- return nLeft+"|"+nTop;
- }
- /**********************************************************************************
- * 함수명 : frmf_modal
- * 설명 : 화면 id로 Modal Dialog를 실행한다.
- * argument : sID ( Popup Form의 ID )
- * : sScreenID ( 화면ID )
- * : sArg ( Popup Form으로 전달될 Argument )
- * : bPrevPos (이전좌표 사용여부)
- * : nMonitor (모니터 번호)
- * : nLeft ( Popup Form Left Position )
- * : nTop ( Popup Form Top Position )
- * : nWidth ( Popup Form Width )
- * : nHeight ( Popup Form Height )
- * : sStyle (ex. title=true,status=true)
- * - title (default: true) titlebar 표시 여부
- * - status (default: false) statusbar 표시 여부
- * - close (default: true) titlebar의 close 버튼 enable 여부
- * - min (default: false) titlebar의 min 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - max (default: false) titlebar의 max 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - layered (default: true) 윈도우 투명 여부
- * - resize (default: false) resizable 여부
- * : sProp ( Chile Frame의 모든 Property를 설정 )
- * : objScrnInfo ( 화면관련정보 ex:사용처, 화면권한, 메뉴파라미터)
- * : sOpt - 스타일 옵션 "M" 타이틀바가 있고 메인형식의 팝업, "P" 타이틀바가 없는 형식의 팝업
- * return Type : String ( Dialog창에서 close()에 의해 Return된 값 )
- * 작성자 : 임준호
- * 수정내역 : 1. XP, TF 연동 (20141014. 손병은)
- **********************************************************************************/
- function frmf_modal(sID, sScreenID, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt)
- {
- var rtn = "";
-
- // 모달 팝업에대해서 포커스 처리
- // var popup = application.popupframes[sID];
- // if (popup != undefined) {
- // popup.winlevel="top";
- // popup.activate();
- //
- // return;
- // }
-
- // 화면아이디를 세팅한다.
- if (utlf_isNull(objScrnInfo) == false){
- objScrnInfo.scrnid = sScreenID;
- }
-
- //var sURL = sysf_getScreenURL(sScreenID);
- var obj = sysf_getScreenInfo(sScreenID, objScrnInfo);
- //trace("scrnurl:"+obj.scrnurl+",scrnurlxp:"+obj.scrnurlxp+", tfyn:"+obj.tfyn);
-
- if(!utlf_isNull(obj.tfyn) && obj.tfyn=="Y"){
- var refDs;
- var resultref;
- var resultid;
- if(!utlf_isNull(sArg)){
- refDs = sArg.xx_refds;
- resultref = sArg.xx_resultref;
- resultid = sArg.xx_resultid;
- }
-
- //trace("sScreenID:"+sScreenID+",nMonitor:"+nMonitor + "resultref:"+resultref+",resultid:"+resultid);
-
- //id, monNo, xPos, yPos, wid, refDs, resultref, resultid, userProp, prevPos, authCode, resizeType
- rtn = xxf_tfModal(sScreenID, nMonitor, nLeft, nTop, sID, refDs, resultref, resultid); //id,monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos, authCode, resizeType
- }else{
- this.getOwnerFrame().form.enable = false; // enable true는 popup_close 이벤트에서 처리 한다.
-
- rtn = frmf_modalInternal(sID, obj.scrnurlxp, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, obj.scrnurlxp_real);
- }
-
- return rtn;
- }
- /**********************************************************************************
- * 함수명 : frmf_modalInternal
- * 설명 : URL로 Modal Dialog를 실행한다.
- * argument : sID ( Popup Form의 ID )
- * : sURL ( Popup Form URL )
- * : sArg ( Popup Form으로 전달될 Argument )
- * : bPrevPos (이전좌표 사용여부)
- * : nMonitor (모니터 번호)
- * : nLeft ( Popup Form Left Position )
- * : nTop ( Popup Form Top Position )
- * : nWidth ( Popup Form Width )
- * : nHeight ( Popup Form Height )
- * : sStyle (ex. title=true,status=true)
- * - title (default: true) titlebar 표시 여부
- * - status (default: false) statusbar 표시 여부
- * - close (default: true) titlebar의 close 버튼 enable 여부
- * - min (default: false) titlebar의 min 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - max (default: false) titlebar의 max 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - layered (default: true) 윈도우 투명 여부
- * - resize (default: false) resizable 여부
- * : sProp ( Chile Frame의 모든 Property를 설정 )
- * : objScrnInfo ( 화면관련정보 ex:사용처, 화면권한, 메뉴파라미터)
- * : sOpt - 스타일 옵션 "M" 타이틀바가 있고 메인형식의 팝업, "P" 타이틀바가 없는 형식의 팝업
- * return Type : String ( Dialog창에서 close()에 의해 Return된 값 )
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_modalInternal(sID, sURL, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, sRealUrl)
- {
- //gds_openFormInfo에 팝업 정보 추가
- frmf_setFormInfo(sID, this.name, "Modal");
-
- var rtn = null;
- var newChild;
- var MyFrame = this.getOwnerFrame();
-
- //화면 좌표 설정
-
- var sPopupPosition = frmf_setPopupPosiotion(sID, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight);
- nLeft = toNumber(sPopupPosition.split("|")[0]);
- nTop = toNumber(sPopupPosition.split("|")[1]);
-
- // 모달 팝업에대해서 포커스 처리
- var popup = application.popupframes[sID];
- if (!utlf_isNull(popup)) {
- if(popup.name != this.getOwnerFrame().form.name != popup.form.opener.name) {
- for(var i = 0; i < application.popupframes.length; i++) {
- if(utlf_isNull(application.popupframes[sID + "_" + i])) {
- sID += "_" + i;
- break;
- }
- }
- } else {
- popup.winlevel="top";
- if(popup.openstatus != "maximize") popup.openstatus = "normal";
- popup.activate();
- return;
- }
- }
-
- newChild = frmf_newChildFrame(sID, sURL, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, nMonitor, "modal");
-
- try{
- var objfocus = this.getFocus();
- }catch (e){}
-
- //opener의 uid repository에 팝업 정보 입력
- try{
- sArg = frmf_setPopArgs(sArg, "frmplgv_pid", sID);
- this.FRMGV_OBJ_UID_REPOSITORY.uid_child.push({pid: sID, uid: null});
- }catch(e){}
-
- //팝업의 titletext를 url의 업무명으로 설정하기위해 args를 선언한다.
- var realUrl = utlf_isNull(sRealUrl) ? sURL : sRealUrl;
- sArg = frmf_setPopArgs(sArg, "frmplgv_titleName", frmf_getBizNameByUrl(realUrl));
-
- sArg = frmf_setPopArgs(sArg, "frmplgv_sOpt", sOpt);
-
- rtn = newChild.showModal(sID, MyFrame, sArg, this);
- this.removeChild(newChild.name);
- newChild.destroy();
- newChild = null;
-
- try{objfocus.setFocus();}catch (e){}
-
- if( ("x"+rtn == "xNaN") && ( new String(rtn.length).valueOf() == "undefined")) rtn = "";
- if (rtn == null) rtn = "";
- var v_ChkStr = new String(rtn);
- if (v_ChkStr == null) rtn = "";
- if (v_ChkStr.toString().length == 0) rtn = "";
-
- //if( utlf_isNull(rtn) ) rtn = "";
- //try{ f_setFocus(); }catch (e){}
-
- return rtn;
- }
- /**********************************************************************************
- * 함수명 : frmf_open
- * 설명 : 화면ID로 Modeless Dialog를 실행한다.
- * argument : sID ( Popup Form의 ID )
- * : sScreenID ( 화면ID )
- * : sArg ( Popup Form으로 전달될 Argument )
- * : bPrevPos (이전좌표 사용여부)
- * : nMonitor (모니터 번호)
- * : nLeft ( Popup Form Left Position )
- * : nTop ( Popup Form Top Position )
- * : nWidth ( Popup Form Width )
- * : nHeight ( Popup Form Height )
- * : sStyle (ex. title=true,status=true)
- * - title (default: true) titlebar 표시 여부
- * - status (default: false) statusbar 표시 여부
- * - close (default: true) titlebar의 close 버튼 enable 여부
- * - min (default: false) titlebar의 min 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - max (default: false) titlebar의 max 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - layered (default: true) 윈도우 투명 여부
- * - resize (default: false) resizable 여부
- * - opentype (default: nomal) max:팝업을 화면 전체크기로 오픈, normal:지정된 크기로 오픈
- * : sProp ( Chile Frame의 모든 Property를 설정 )
- * : objScrnInfo ( 화면관련정보 ex:사용처, 화면권한, 메뉴파라미터)
- * : sOpt - 스타일 옵션 "M" 타이틀바가 있고 메인형식의 팝업, "P" 타이틀바가 없는 형식의 팝업
- * return Type : Boolean
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_open(sID, sScreenID, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt){
- //var sURL = sysf_getScreenURL(sScreenID);
- var obj = sysf_getScreenInfo(sScreenID, objScrnInfo);
- // trace("scrnurl:"+obj.scrnurl+",scrnurlxp:"+obj.scrnurlxp+", tfyn:"+obj.tfyn);
- var sitemid;
- if(!utlf_isNull(objScrnInfo)){
- sitemid = objScrnInfo.itemid;
- }
-
- if(!utlf_isNull(obj.tfyn) && obj.tfyn=="Y"){
- var refDs;
- var resultref;
- var resultid;
- var openType;
- if(!utlf_isNull(sArg)){
- refDs = sArg.xx_refds;
- resultref = sArg.xx_resultref;
- resultid = sArg.xx_resultid;
- openType = sArg.plgv_openType;
- }
- try{
- // TF는 무조건 팝업으로 뜨도록 함
- if(openType != "top_menu" || utlf_isNull(sitemid)){
- //id, monNo, xPos, yPos, wid, refDs, resultref, resultid, userProp, prevPos, authCode, resizeType
- xxf_tfOpen(sScreenID, nMonitor, nLeft, nTop, sID, refDs, resultref, resultid); //id,monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos, authCode, resizeType
- }else{
- xxf_tfOpenMenuItem(sitemid);
- }
- } catch (e) {
- alert("팝업오픈 중 오류가 발생하였습니다. "+ "|" + e.name + "|" + e.message + "|" + e.number + "|" + e.description);
-
- }
-
- }else{
- frmf_openInternal(sID, obj.scrnurlxp, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, obj.scrnurlxp_real);
- }
-
- }
- /**********************************************************************************
- * 함수명 : frmf_openInternal
- * 설명 : URL로 Modeless Dialog를 실행한다.
- * argument : sID ( Popup Form의 ID )
- * : sURL ( Popup Form URL )
- * : sArg ( Popup Form으로 전달될 Argument )
- * : bPrevPos (이전좌표 사용여부)
- * : nMonitor (모니터 번호)
- * : nLeft ( Popup Form Left Position )
- * : nTop ( Popup Form Top Position )
- * : nWidth ( Popup Form Width )
- * : nHeight ( Popup Form Height )
- * : sStyle (ex. title=true,status=true)
- * - title (default: true) titlebar 표시 여부
- * - status (default: false) statusbar 표시 여부
- * - close (default: true) titlebar의 close 버튼 enable 여부
- * - min (default: false) titlebar의 min 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - max (default: false) titlebar의 max 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - layered (default: true) 윈도우 투명 여부
- * - resize (default: false) resizable 여부
- * - opentype (default: nomal) max:팝업을 화면 전체크기로 오픈, normal:지정된 크기로 오픈
- * : sProp ( Chile Frame의 모든 Property를 설정 )
- * : objScrnInfo ( 화면관련정보 ex:사용처, 화면권한, 메뉴파라미터)
- * : sOpt - 스타일 옵션 "M" 타이틀바가 있고 메인형식의 팝업, "P" 타이틀바가 없는 형식의 팝업
- * return Type : Boolean
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_openInternal(sID, sURL, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, sRealUrl){
- var rtn;
- var newChild;
- var ret;
-
- //화면 좌표 설정
- var sPopupPosition = frmf_setPopupPosiotion(sID, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight);
- nLeft = toNumber(sPopupPosition.split("|")[0]);
- nTop = toNumber(sPopupPosition.split("|")[1]);
-
- //중복 화면 ID 처리
- var popup = application.popupframes[sID];
- if (!utlf_isNull(popup)) {
- popup.winlevel="top";
- if(popup.openstatus != "maximize") popup.openstatus = "normal";
- popup.activate();
- return;
- }
-
- try {
-
- //var MyFrame = null;
- //if(bFixAlign == true) MyFrame = this.getOwnerFrame();
- // 좌표가 없으면 개발자가 정의한 좌표로 세팅
- newChild = frmf_newChildFrame(sID, sURL, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, nMonitor, "modeless");
- //opener의 uid repository에 팝업 정보 입력
- try{
- sArg = frmf_setPopArgs(sArg, "frmplgv_pid", sID);
- this.FRMGV_OBJ_UID_REPOSITORY.uid_child.push({pid: sID, uid: null});
- }catch(e){}
-
- //팝업의 titletext를 url의 업무명으로 설정하기위해 args를 선언한다.
- var realUrl = utlf_isNull(sRealUrl) ? sURL : sRealUrl;
- sArg = frmf_setPopArgs(sArg, "frmplgv_titleName", frmf_getBizNameByUrl(realUrl));
-
- sArg = frmf_setPopArgs(sArg, "frmplgv_sOpt", sOpt);
- ret = newChild.showModeless(sID.toString(), null, sArg, this);
- //nLeft = application.mainframe.position.left + (application.mainframe.position.width - nWidth)/2;
- //nTop = application.mainframe.position.top + (application.mainframe.position.height - nHeight)/2;
- } catch (e) {
- alert("팝업오픈 중 오류가 발생하였습니다. "+ "|" + e.name + "|" + e.message + "|" + e.number + "|" + e.description);
-
- }
- //gds_openFormInfo에 팝업 정보 추가
- frmf_setFormInfo(sID.toString(), this.name, "Modeless");
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_newChildFrame
- * 설명 : Modal/Modeless Popup 처리
- * argument : sID ( Popup Form의 ID )
- * : sURL ( Popup Form URL )
- * : nLeft ( Popup Form Left Position )
- * : nTop ( Popup Form Top Position )
- * : nWidth ( Popup Form Width )
- * : nHeight ( Popup Form Height )
- * : sStyle (ex. title=true,status=true)
- * - title (default: true) titlebar 표시 여부
- * - status (default: false) statusbar 표시 여부
- * - close (default: true) titlebar의 close 버튼 enable 여부
- * - min (default: false) titlebar의 min 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - max (default: false) titlebar의 max 버튼 enable 여부 (resizable이 true일때만 나타난다.)
- * - layered (default: true) 윈도우 투명 여부
- * - resize (default: false) resizable 여부
- * - opentype (default: nomal) max:팝업을 화면 전체크기로 오픈, normal:지정된 크기로 오픈
- * - nocenter (default: false) 위치 저장되지 않는 화면 중 중앙에 위치 하지 않도록 한다.
- * : sProp ( Chile Frame의 모든 Property를 설정 )
- * : objScrnInfo ( 화면관련정보 ex:사용처, 화면권한, 메뉴파라미터)
- * : sOpt - 스타일 옵션 "M" 타이틀바가 있고 메인형식의 팝업, "P" 타이틀바가 없는 형식의 팝업
- * return Type : Child Frame Object
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_newChildFrame(sID, sURL, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt, nMonitor, sType){
-
- var newChild = null;
- //var MyFrame = this.getOwnerFrame();
-
- var bTitle = true;
- var bStatus = false;
- var bClose = true;
- var bMin = false;
- var bMax = false;
- var bAutoSize = true;
- var bLayered = false;
- var bResize = false;
- var flag;
- var bNoCenter = false;
-
- var aProp = new Array();
-
- //resize, min버튼, max버튼 여부가 modal은 default false, modeless는 default true
- if(sType == "modeless"){
- bResize = true;
- bMin = true;
- bMax = true;
- }
-
- if(utlf_isNull(sID) || utlf_isNull(sURL)) return null;
-
- newChild = new ChildFrame;
-
- if(utlf_isNull(nLeft)) newChild.openalign.halign = "center";
-
- if(utlf_isNull(nTop)) newChild.openalign.valign = "middle";
-
- if(utlf_isNull(nWidth) || nWidth < 0 || utlf_isNull(nHeight) || nHeight < 0 ){
- nWidth = 0;
- nHeight = 0;
- bAutoSize = true;
- // }else{ // autosize가 false면 anchor 와 충돌 발생(레이아웃 틀어짐)
- // bAutoSize = false;
- }
-
- if(!utlf_isNull(sStyle)){
- var i, arr, arr1;
- arr = sStyle.split(",");
- for( i = 0 ; i < arr.length ; i++ )
- {
- arr1 = arr[i].split("=");
- arr1[0] = utlf_rTrim(utlf_lTrim(arr1[0]));
- arr1[1] = utlf_rTrim(utlf_lTrim(arr1[1]));
-
- if(arr1[1].toLowerCase() == "true" ) flag = true;
- else flag = false;
-
- if(arr1[0].toLowerCase() == "title") bTitle = flag;
- if(arr1[0].toLowerCase() == "status") bStatus = flag;
- if(arr1[0].toLowerCase() == "close") bClose = flag;
- if(arr1[0].toLowerCase() == "min") bMin = flag;
- if(arr1[0].toLowerCase() == "max") bMax = flag;
- if(arr1[0].toLowerCase() == "layered") bLayered = flag;
- if(arr1[0].toLowerCase() == "resize") bResize = flag;
-
- if(arr1[0].toLowerCase() == "opentype"){
- if(arr1[1].toLowerCase() == "max"){
- //팝업을 전체화면으로 오픈한다. 작업표시줄 상관없이 꽉차게
- if(utlf_isNull(nMonitor)){
- nMonitor = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
- }
- var objScreenSize = system.getScreenRect(nMonitor);
- var nScreenLeft = objScreenSize.left;
- var nScreenTop = objScreenSize.top;
- var nScreenRight = objScreenSize.right;
- var nScreenBottom = objScreenSize.bottom;
- var nScreenWidth = nScreenRight - nScreenLeft;
- var nScreenHeight = nScreenBottom - nScreenTop;
- nLeft = nScreenLeft;
- nTop = nScreenTop;
- nWidth = nScreenWidth;
- nHeight = nScreenHeight;
- //bAutoSize = false; // autosize가 false면 anchor 와 충돌 발생(레이아웃 틀어짐)
- }
- }
-
- if(arr1[0].toLowerCase() == "nocenter") {
- if(arr1[1].toLowerCase() == "true" ) bNoCenter = true;
- }
- }
- }
-
- if(utlf_isNull(sProp) == false){
- var i;
- aProp = sProp.split(",");
- for( i = 0 ; i < aProp.length ; i++ )
- {
- aProp[i] = aProp[i].split("=");
- aProp[i][0] = utlf_rTrim(utlf_lTrim(aProp[i][0]));
- aProp[i][1] = utlf_rTrim(utlf_lTrim(aProp[i][1]));
- }
- }
-
- ///// 추가내용////////////////
- //sOpt가 null일때는 타이틀바가 없는 팝업 스타일 적용
- if(utlf_isNull(sOpt)) sOpt = "P";
- //팝업 옵션션에 따른 스타일 적용
- if(sOpt == "M"){
- bTitle = true; //타이틀바 보이게 하기
- newChild.border = "2 solid #38424a";
- }else if(sOpt == "P"){
- newChild.formurl = sURL;
- bTitle = false; //타이틀바 안보이게 하기
- }
- /////////// 추가내용끝////////
- newChild.formurl = sURL;
-
- ////// sStyle내용 적용( 이부분은 init()호출전에 사용해야 함 )
- newChild.showtitlebar = bTitle;
- newChild.autosize = bAutoSize;
- newChild.layered = bLayered;
- newChild.resizable = bResize;
- //newChild.bordertype = "round 4 4";
- newChild.init(sID, nLeft, nTop, nLeft + nWidth, nTop + nHeight);
-
- ////// sStyle내용 적용( 이부분은 init()호출후에 사용해야 함 )
- newChild.showstatusbar = bStatus;
-
- if(sOpt != "P") {
- newChild.titlebar.minbutton.visible = true;
- newChild.titlebar.minbutton.enable = bMin;
- newChild.titlebar.maxbutton.enable = bMax;
- newChild.titlebar.closebutton.enable = bClose;
- }
-
- //newChild.style.margin = "100px 100px 100px 100px";
- if( agv_objAppTopPath.form.getPopupLocation(sID) == undefined && !bNoCenter){
- newChild.openalign = "center middle";
- }
-
- // newChild.titlebar.style.background = "@gradation";
- // newChild.titlebar.style.gradation = "linear 0,0 #4b6274 0,100 #2f4758 [49% #586f80] [50% #3a5569]";
- // newChild.titlebar.style.border = "0 none #808080, 0 none #808080, 1 solid #2e4556,0 none #808080";
- // newChild.titlebar.style.bordertype = "normal";
- // newChild.titlebar.style.font = "Tahoma,9,bold antialias";
- // newChild.titlebar.style.color = "#ffffff";
- // newChild.titlebar.style.align = "left middle";
- // newChild.titlebar.style.padding = "0 0 2 0";
- // newChild.titlebar.style.icon = "URL('IMG::ico_title.png')";
- // icon, system symbol 설정
- var isSingle = false;
- try {
- isSingle = (!utlf_isNull(gv_SINGLE));
- } catch(e) {}
- if(isSingle) {
- favicon = lf_getIconImg("ico");
- // application.mainframe.style.icon = "";
- // var test = lf_getIconImg("ico");
- // trace("test : " + test);
- // newChild.style.icon = favicon;
- // application.mainframe.style.icon = test;
- } else {
- var systemcd = sysf_getSystemCd();
- var favicon = "URL('IMG::favicon_031_xp.ico')";
- if(!utlf_isNull(systemcd)) {
- if (systemcd == "HIS032") {
- favicon = "URL('IMG::favicon_032_xp.ico')";
- } else if (systemcd == "HIS033") {
- favicon = "URL('IMG::favicon_033_xp.ico')";
- } else if (systemcd == "MIS030") {
- favicon = "URL('IMG::favicon_030_xp.ico')";
- } else if (systemcd == "MIS033") {
- favicon = "URL('IMG::favicon_MIS033_xp.ico')";
- } else if (systemcd == "CRM030") {
- favicon = "URL('IMG::favicon_CRM030_xp.ico')";
- }
- }
- }
-
- newChild.style.icon = favicon;
- //MyFrame.addChild(sID, newChild); // 이거 꼭 해야 함
- ////// sProp내용 적용
- // for( i = 0 ; i < aProp.length ; i++ )
- // {
- // frmf_SetProp( "this.getOwnerFrame()."+sID, aProp[i][0], aProp[i][1] );
- // }
- //MyFrame.removeChild(sID); // 이거 꼭 해야 함
-
- // close 핸들러 지정
- newChild.onclose.setHandler(popup_onclose);
-
- //quick view 일 경우에 대비
- try {
-
- if(utlf_isNull(objScrnInfo)){
- //화면 정보 설정
- objScrnInfo = new Object();
- objScrnInfo.scrnid = sID;
- }
- objScrnInfo.type = sType;
- newChild.bgv_objScreenInfo = objScrnInfo; // 화면 정보 세팅
- } catch (e)
- {
- newChild.frmlgv_objScreenInfo = {scrnauth: "11100000", type: sType}; // 화면 정보 세팅
- }
-
- return newChild;
- }
- function popup_onclose(obj:ChildFrame, e:CloseEventInfo)
- {
- try {
- if(obj.form.lgv_bExcept) return;
-
- if(obj.bgv_objScreenInfo.type == "modal") // modal 은 화면 열때 enable을 false 시켰기 때문
- this.getOwnerFrame().form.enable = true;
-
- // if (sysf_isQuickView()==false) {
- // 팝업좌표 위치 저장
- var loc = {scrnxpos: obj.position.left,
- scrnypos: obj.position.top};
- agv_objAppTopPath.form.setPopupLocation(obj.name, loc);
- // }
-
- //gds_openFormInfo에서 팝업정보 삭제
- obj.form.frmf_deletePopInfo(obj.name);
-
- //opener의 form uid repository에서 child정보 삭제
- if(!obj.form.utlf_isNull(obj.form.opener)) { // opener 가 있을 때만
- if(obj.form.opener.getOwnerFrame().form.name == "form_work"){
- obj.form.frmf_deleteUidChild(obj.form.opener.getOwnerFrame().form.div_work, obj.form.FRMGV_OBJ_UID_REPOSITORY.uid_myself);
- }else{
- obj.form.frmf_deleteUidChild(obj.form.opener.getOwnerFrame().form, obj.form.FRMGV_OBJ_UID_REPOSITORY.uid_myself);
- }
- }
- //opener.FRMGV_OBJ_UID_REPOSITORY.uid_child = arrUidChildTemp;
-
- } catch (e) {
- trace("popup_onclose 에러");
- obj.form.sysf_catchTrace(e);
- }
- }
- function frmf_getIconImg() {
- var result = "";
- var prgmname = gds_single.lookup("activeYN", "Y", "prgmname");
- var instcd = gv_currentInstcd;
-
- if(lf_isNull(instcd)) instcd = "his031";
-
- if(lf_isNull(prgmname))
- result = "IMG::favicon_031_xp.ico";
- else
- result = "IMG::" + prgmname + instcd.substr(3) + ".png";
-
- return result;
- }
- /**********************************************************************************
- * 함수명 : frmf_isPopup
- * 설 명 : 자신이 팝업인지 아닌지를 리턴한다.
- * argument :
- * return Type : String
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_isPopup(){
-
- //frmplgv_pid -> modal, open 팝업을 열때 항상 pid를 넘겨준다.
- try{
- if (utlf_isNull(frmplgv_pid)){
- return false;
- } else {
- return true;
- }
- }catch(e){
- return false;
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_isPopupRec
- * 설 명 : 자신이 팝업인지 아닌지를 리턴한다.
- * argument :
- * return Type : String
- * 작성자 : 최재원
- **********************************************************************************/
- function frmf_isPopupRec(){
-
- //frmplgv_pid -> modal, open 팝업을 열때 항상 pid를 넘겨준다.
- try{
- if (utlf_isNull(this.getOwnerFrame().frmplgv_pid)){
- return false;
- } else {
- return true;
- }
- }catch(e){
- sysf_catchTrace(e);
- return false;
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_getPopupId
- * 설 명 : 팝업 ID를 가져온다.
- * argument :
- * return Type : String
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getPopupId(){
-
- return this.parent.name;
- }
- /**********************************************************************************
- * 함수명 : frmf_findPopup
- * 설 명 : 팝업의 Form 객체를 가져온다. 없으면 null
- * argument : sPopupId - 팝업 ID
- * return Type : Form Object
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_findPopup(sPopupId){
-
- var objForm = application.popupframes[sPopupId];
-
- if(!utlf_isNull(objForm)) objForm = application.popupframes[sPopupId].form;
-
- return objForm;
- }
- /**********************************************************************************
- * 함수명 : frmf_getChildWindow
- * 설 명 : open된 팝업들 중에서 다른 화면으로 바뀌지 않은 팝업의 form object를 리턴한다.
- * child window가 없거나 있더라도 다른 화면으로 바뀌었다면 null을 리턴한다.
- * argument : sPid - 팝업 ID
- * return Type : Form Object
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getChildWindow(sPid){
- return frmf_findChildWindow(frmf_getChildUID(sPid));
- }
- /**********************************************************************************
- * 함수명 : frmf_findChildWindow
- * 설 명 : 열려있는 팝업 중에서 현재의 UID가 주어진 UID와 동일한
- * 팝업을 찾아서 리턴한다. 없으면 null
- * argument : sUid - 팝업 UID
- * return Type : Form Object
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_findChildWindow(sUid){
-
- var sPid = frmf_getChildPID(sUid);
- return frmf_findPopup(sPid);
- }
- /**********************************************************************************
- * 함수명 : frmf_setFormInfo
- * 설 명 : 팝업정보를 gds_openFormInfo에 저장한다.
- * argument : sPopId - 팝업 ID
- * sParentId - 부모(opener) form ID
- * sKind - 팝업 종류 (modal, modeless)
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setFormInfo(sFormId, sParentId, sKind){
-
- var nRowNum = null;
- var nFormCount = 0;
-
- for(var i=0 ; i<gds_openFormInfo.rowcount ; i++){
- var sStoredFormId = gds_openFormInfo.getColumn(i, "id");
- if(sFormId == sStoredFormId){
- nRowNum = i;
- nFormCount++;
- }
- }
- if(nFormCount == 0){
- nRowNum = gds_openFormInfo.addRow();
- }
-
- gds_openFormInfo.setColumn(nRowNum, "id", sFormId);
- gds_openFormInfo.setColumn(nRowNum, "parent_id", sParentId);
- gds_openFormInfo.setColumn(nRowNum, "kind", sKind);
- gds_openFormInfo.setColumn(nRowNum, "uuid", utlf_getRandomSubmitUUID());
- }
- /**********************************************************************************
- * 함수명 : frmf_getCurrentFormKind
- * 설 명 : 현재 화면의 종류를 조회한다.
- * argument :
- * return Type : kind ("modal", "modeless", "main")
- * 작성자 : 김상목
- **********************************************************************************/
- function frmf_getCurrentFormKind() {
- var currentScrObj = this.getOwnerFrame();
- var type;
-
- //quick view 일 경우에 대비
- try {
- type = currentScrObj.bgv_objScreenInfo.type;
- } catch (e) {
- // 메뉴에서 여는 메인은 type 정보가 없음
- try {
- type = currentScrObj.frmlgv_objScreenInfo.type;
- } catch (e) {}
- } finally {
- if(utlf_isNull(type)) type = "main";
- }
-
- return type;
- }
- /**********************************************************************************
- * 함수명 : frmf_getoOpener
- * 설 명 : 화면에 소속된 상황에 따른 opener객체를 가져온다,
- * argument :
- * return Type : main work form, opener, getOwnerFrame()
- * 작성자 : 최재원
- **********************************************************************************/
- function frmf_getoOpener() {
- var oOpener;
-
- if( frmf_getCurrentFormKind() == "main" ){
- oOpener = frmf_getMainViewer();
- }else{
- if( sysf_getObjType(this) == "Form" ) oOpener = opener;
- else oOpener = this.getOwnerFrame().form;
- }
-
- return oOpener;
- }
- /**********************************************************************************
- * 함수명 : frmf_deletePopInfo
- * 설 명 : 팝업정보를 gds_openFormInfo에서 삭제한다.
- * argument : sPopId - 팝업 ID
- * return Type : Number - 삭제된 row count
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_deletePopInfo(sPopId){
-
- var nRowCnt = gds_openFormInfo.rowcount;
- var nDelRowCnt = 0;
-
- for(var i=0 ; i<nRowCnt ; i++){
- var sStoredPopId = gds_openFormInfo.getColumn(i, "id");
- if(sStoredPopId == sPopId){
- gds_openFormInfo.deleteRow(i);
- nDelRowCnt++;
- }
- }
-
- return nDelRowCnt;
- }
- /**********************************************************************************
- * 함수명 : frmf_getChildPopList
- * 설 명 : 폼에서 열린 팝업 목록을 가져온다.
- * argument : objForm - 팝업 목록을 가져올 폼
- * return Type : Array - 팝업ID 목록
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getChildPopList(objForm:Form){
-
- var nRowCnt = gds_openFormInfo.rowcount;
- var sFormId = objForm.name;
- var arrResult = new Array();
-
- for(var i=0 ; i<nRowCnt ; i++){
- var sParentId = gds_openFormInfo.getColumn(i, "parent_id");
- if(sFormId == sParentId){
- arrResult.push(gds_openFormInfo.getColumn(i, "id"));
- }
- }
-
- return arrResult;
- }
- /**********************************************************************************
- * 함수명 : frmf_setCloseChildPop
- * 설 명 : 화면전환시 child가 close되도록 저장
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setCloseChildPop(){
-
- gv_bChildClose = true;
- }
- /**********************************************************************************
- * 함수명 : frmf_closeChildPop
- * 설 명 : 화면전환시 child popup 닫기로 지정된 경우 해당 form의 child popup을 모두 닫는다.
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_closeChildPop(){
-
- var arrPopList = null;
-
- //if(gv_bChildClose === true){
- arrPopList = frmf_getChildPopList(this);
-
- for(var i in arrPopList){
- var popup = application.popupframes[arrPopList[i]];
-
- if(!utlf_isNull(popup)) popup.form.close();
- }
- //}
- }
- /**********************************************************************************
- * 함수명 : frmf_setFocusPop
- * 설 명 : 지정된 팝업을 focus한다.
- * argument : sPopId - 팝업 ID
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setFocusPop(sPopId, topmost){
-
- var objPop = application.popupframes[sPopId];
- if (!utlf_isNull(objPop)) {
- objPop.winlevel= (topmost) ? "topmost" : "top";
- objPop.activate();
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_setFocusOpener
- * 설 명 : opener를 focus한다.
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setFocusOpener(topmost){
-
- var sPropertyNm = this.opener.parent.toString();
-
- if(sPropertyNm == "[object Form]"){
- this.opener.parent.parent.winlevel= (topmost) ? "topmost" : "top";
- this.opener.parent.parent.activate();
- }else if(sPropertyNm == "[object ChildFrame]"){
- this.opener.parent.winlevel= (topmost) ? "topmost" : "top";
- this.opener.parent.activate();
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_setFocus
- * 설 명 : 자기자신을 focus한다.
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_setFocus(topmost){
-
- var sPropertyNm = this.parent.toString();
-
- if(sPropertyNm == "[object Form]"){
- this.parent.parent.winlevel= (topmost) ? "topmost" : "top";
- this.parent.parent.activate();
- }else if(sPropertyNm == "[object ChildFrame]"){
- this.parent.winlevel= (topmost) ? "topmost" : "top";
- this.parent.activate();
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_openHtml
- * 설명 : HTML Open 팝업(시스템에 설정된 기본 브라우저가 아닌 인터넷 익스플로러가 실행된다.)
- * argument : sUrl - HTML URL
- * return Type : void
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_openHtml(sUrl){
- system.execBrowser(sUrl);
- }
- /**********************************************************************************
- * 함수명 : frmf_getMainViewer
- * 설명 : main work form 객체를 반환한다.
- * argument :
- * return Type :
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getMainViewer(){
- return application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work;
- }
- /**********************************************************************************
- * 함수명 : frmf_checkOpener
- * 설명 : Opener가 다른 화면으로 변경되었는지 여부를 반환한다.
- * argument :
- * return Type : Boolean - opener 변경 여부
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_checkOpener(){
-
- var bRetValue = false;
-
- if(utlf_isNull(opener)){
- bRetValue = false;
- }else{
- bRetValue = true;
- }
-
- return bRetValue;
- // var bRetValue = false;
- // var sOpenerScrnid = null;
- //
- // if(frmf_isPopup()){
- // var sPropertyNm = this.opener.parent.toString();
- //
- // if(sPropertyNm == "[object Form]"){
- // //work팝업
- // sOpenerScrnid = opener.parent.bgv_objScreenInfo.scrnid;
- // }else if(sPropertyNm == "[object ChildFrame]"){
- // //일반팝업
- // sOpenerScrnid = opener.name;
- // }
- // if(sOpenerScrnid == plgv_scrnid) bRetValue = true;
- // }
- //
- // return bRetValue;
- }
- /********************************************************************************************************************/
- /************************* 화면이동관련 함수 *********************************************************************/
- /********************************************************************************************************************/
- /**********************************************************************************
- * 함수명 : frmf_openForm
- * 설명 : screen id로 해당 화면을 업무화면 영역에 로딩한다.
- * argument : sScreenID - 업무화면의 화면ID
- * objScrnInfo - 화면권한정보
- * objParam - 인자값
- * EX)))
- * //인자값 넘길때
- * var objParam = new Object();
- * objParam.test1 = "A";
- * objParam.test2 = "B";
- * frmf_openForm("SMZSA20500", null, objParam);
- *
- * //인자값 가져올때
- * //frmf_getMainFormParam 함수는 일회성. 한번 가져오면 인자값이 사라진다.
- * var objParam = frmf_getMainFormParam();
- * trace(objParam.test1);
- * return Type : void
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_openForm(sScreenID, objScrnInfo, objParam){
-
- if(utlf_isNull(objScrnInfo)) objScrnInfo = new Object();
- objScrnInfo.scrnid = sScreenID;
-
- // url 가져오는 방법 변경
- var url = sysf_getScreenInfo(sScreenID, objScrnInfo);
- objScrnInfo.tfyn = url.tfyn;
- objScrnInfo.scrnurlxp_real = url.scrnurlxp_real;
-
- var bUrl = url.scrnurlxp;
-
- frmf_openFormInternal(url.scrnurlxp, objScrnInfo, objParam);
- //frmf_openFormInternal(sysf_getScreenURL(sScreenID), objScrnInfo, objParam);
-
- /*
- alert("1");
- var aUrl = application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url;
- if(bUrl != aUrl){
- alert("URL 변조됨 (" + bUrl + " -> " + aUrl + ")");
- }else{
- alert("정상");
- }
- */
- }
- /**********************************************************************************
- * 함수명 : frmf_openFormInternal
- * 설명 : screen url로 해당 화면을 업무화면 영역에 로딩한다.
- * argument : sUrl - 서버상의 실제 XP FORM URL
- * objScrnInfo - 화면정보가 담긴 오브젝트
- * return Type : void
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_openFormInternal(sUrl, objScrnInfo, objParam){
-
- // var sChildFrameId = "ChildFrameWork";
- // var objCF = new ChildFrame(sChildFrameId);
- // objCF.formurl = "com_hismainxp::form_work.xfdl";
- //
- // application.mainframe.VFrameSet.FrameSet.addChild(sChildFrameId, objCF);
- //
- // objCF.openstatus = "maximize";
- // objCF.dragmovetype = "none";
- // objCF.showtitlebar = false;
- // objCF.style.border = "0px solid #ffffff";
- // objCF.autosize = true;
- // objCF.show();
- //
- // //화면에 대한 정보를 로딩한다.
- // objCF.lgv_sUrl = sUrl;
- // objCF.lgv_objScreenInfo = objScrnInfo;
- //trace(objParam);
- agv_objMainFormParam = objParam;
- //gds_openFormInfo에 팝업 정보 추가
- //frmf_setFormInfo("Main", "", "Main");
-
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_objScreenInfo = objScrnInfo;
- //trace("===="+application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_objScreenInfo.menuitemnm);
- //메뉴명
- var sTitleText = "";
- var stfyn = "N";
- var realUrl = objScrnInfo.scrnurlxp_real;
-
- if(utlf_isNull(realUrl)) realUrl = sUrl;
-
- sTitleText = frmf_findTitleTextFromForm(realUrl);
-
- if(utlf_isNull(sTitleText)) sTitleText = frmf_getBizNameByUrl(realUrl);
- if(sTitleText == "default") sTitleText = "메인화면";
- try {
- if(objScrnInfo.isLogout)
- sTitleText = "로그아웃";
- } catch(e) {}
-
- //if(utlf_isNull(objScrnInfo.menuitemnm)){
-
- // sTitleText = frmf_getBizNameByUrl(sUrl);
- if(!utlf_isNull(objScrnInfo)){
- // sTitleText = objScrnInfo.menuitemnm;
- stfyn = objScrnInfo.tfyn;
- sscrnid = objScrnInfo.scrnid;
- sitemid = objScrnInfo.itemid;
- }
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_sTitleText = sTitleText;
- trace("sscrnid:"+sscrnid + ", stfyn:"+ stfyn + ", sTitleText:"+ sTitleText + ", itemid:"+sitemid);
- if(stfyn != "Y"){
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = "";
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = sUrl;
-
- //application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_hisweb.visible = false;
- xxf_showTF(false);
-
- }else{
- var objScrnInfo = new Object();
- objScrnInfo.menuitemnm = "";
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_objScreenInfo = objScrnInfo;
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.bgv_sTitleText = objScrnInfo.menuitemnm;
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = "";
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = "com_hismainxp::form_default.xfdl";
-
- xxf_showTF(false);
-
- // application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = "";
- // //application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_hisweb.visible = true;
- //
- // xxf_showTF(true);
- //
- // frmf_setTitle(sTitleText, sscrnid);
- //
- // // 함수호출(화면전환)
- // //agv_objAppWorkPath.form.div_hisweb.hisweb.document.parentWindow.execScript("openMenuItem('"+sitemid+"')","JavaScript");
- // xxf_tfOpenMenuItem(sitemid);
- }
-
- /* TF와의 연계 목적 아래부분 수정. 손병은.
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = "";
- application.mainframe.VFrameSet.FrameSet.ChildFrameWork.form.div_work.url = sUrl;
- */
-
-
-
-
- }
- /**********************************************************************************
- * 함수명 : frmf_navigate
- * 설명 : screen id로 해당 화면을 업무화면 영역에 로딩한다.
- * argument : sScreenId - 업무화면의 화면ID
- * objScrnInfo - 화면권한정보
- * return Type : void
- * 작성자 : 임준호
- *********************************************************************************
- function frmf_navigate(sScreenId, objScrnInfo){
- frmf_openForm(sScreenID, objScrnInfo);
- }
- */
- /********************************************************************************************************************/
- /************************* 화면권한정보 함수 **********************************************************************/
- /********************************************************************************************************************/
- //var frmlgv_objScreenInfo = new Object(); // 화면에 대한 정보를 담고있는 오브젝트
- /**********************************************************************************
- * 함수명 : frmf_setSpclScrnAuth
- * 설명 : 메뉴권한과 상관없이 강제로 화면의 권한을 지정한다.
- * argument : auth : 권한코드(r:읽기/x:실행/p:출력)
- * flag : true / false (true 인 경우 setScreenBtnDisabled()를 자동으로 호출해서 버튼컨트롤에서 지정한 _auth 를 적용시킨다.) 기본값 true
- * return Type :
- * 작성자 : 김상목
- **********************************************************************************/
- function frmf_setSpclScrnAuth(auth, flag) {
- if(utlf_isNull(this.objects["ds_properties"]))
- dsf_createDs("ds_properties");
-
- if(ds_properties.rowcount == 0)
- ds_properties.addRow();
-
- ds_properties.addColumn("auth", "string");
- ds_properties.setColumn(0, "auth", frmf_getAuthCode(auth));
-
- if (flag == null) {
- flag = true;
- }
- if (flag == true) {
- // TF 그대로 복사 해놓음 추후 구현 필요
- frmf_setScreenBtnDisabled();
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_getAuthCode
- * 설명 : 사용자가 입력하는 권한코드를 실제 코드로 변경해서 반환한다.
- * argument : auth : 권한코드
- * return Type : 10000000, 11000000, 11100000
- * 작성자 : 김상목
- **********************************************************************************/
- function frmf_getAuthCode(auth) {
- var authCode = "";
- switch (auth.toUpperCase()) {
- case 'R': authCode = "10000000"; break;
- case 'X': authCode = "11000000"; break;
- case 'P': authCode = "11100000"; break;
- default : authCode = "";
- }
- return authCode;
- }
- /**********************************************************************************
- * 함수명 : frmf_setScreenBtnDisabled
- * 설명 : 버튼 권한 속성(_auth)에 따라 화면권한(RXP)을 처리한다.
- * argument : documentObj 화면으로부터 obj를 받아 온다.
- * return Type :
- * 작성자 : 김상목
- **********************************************************************************/
- function frmf_setScreenBtnDisabled( documentObj ) {
- // TF 그대로 복사 해놓음 추후 구현 필요
- // if (documentObj == null) {
- // documentObj = document;
- // }
- //
- // var childObjCnt = documentObj.controls.length;
- // var childObj;
- //
- // for (var i=0; i < childObjCnt; i++) {
- // childObj = documentObj.controls.item(i);
- //
- // if (childObj.elementName == "xforms:iviewer") {
- // setScreenBtnDisabled( childObj.document );
- // } else if (childObj.elementName == "xforms:button") {
- // var btnAuth = childObj.attribute("_auth");
- // if(btnAuth.toUpperCase() == "R" || btnAuth.toUpperCase() == "X" || btnAuth.toUpperCase() == "P"){
- // childObj.disabled = !checkAuth(btnAuth);
- // }
- // }
- // }
- }
- /**********************************************************************************
- * 함수명 : frmf_checkAuth
- * 설 명 : 주어진 유형에 해당하는 버튼권한을 가져온다.
- * argument : sAuth - 버튼권한유형 (R: 조회, X:실행/저장, P:출력)
- * return Type : Boolean (버튼권한)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_checkAuth(sAuth)
- {
- var f = sAuth.charAt(0);
- var a = frmf_getScreenAuth(sAuth);
- var v = '0';
- switch(f) {
- case 'r': // 조회권한
- case 'R':
- v = a.charAt(0);
- break;
- case 'x': // 처리권한
- case 'X':
- v = a.charAt(1);
- break;
- case 'p':
- case 'P':
- v = a.charAt(2);
- break;
- }
- if (v == '1') {
- return true;
- } else {
- return false;
- }
- }
- /**********************************************************************************
- * 함수명 : frmf_getScreenID
- * 설 명 : 화면아이디를 가져온다.
- * argument : void
- * return Type : String (화면코드)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getScreenID(){
- var ret;
-
- // quick view 일경우에 대비
- try{
- if(this == "[object Tabpage]" || this == "[object Div]") {
- var url = this.url;
- ret = url.split("::")[1].substr(0,10);
- } else {
- ret = utlf_transNullToEmpty(parent.bgv_objScreenInfo.scrnid).split("_")[0];
- }
- }catch(e){
- ret = this.name.split("_")[0];
- }
-
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_getMainFormScreenID
- * 설 명 : 메인 form의 화면아이디를 가져온다.
- * argument : void
- * return Type : String (화면코드)
- * 작성자 : 임준호
- **********************************************************************************/
- function frmf_getMainFormScreenID(){
-
- var ret;
-
- // quick view 일경우에 대비
- try{
- //trace(this.getOwnerFrame().form.bgv_objScreenInfo.scrnid)
- ret = utlf_transNullToEmpty(this.getOwnerFrame().form.bgv_objScreenInfo.scrnid);
- }catch(e){
- ret = this.name.split("_")[0];
- }
-
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_getScreenAuth
- * 설 명 : 화면권한코드를 가져온다.
- * argument : void
- * return Type : String (화면권한코드)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getScreenAuth(auth)
- {
- var ret;
-
- // quick view 일경우에 대비
- try {
- if(utlf_isNull(auth)) {
- if(frmf_isPopup())
- ret = utlf_transNullToEmpty(this.getOwnerFrame().bgv_objScreenInfo.scrnauth);
- else
- ret = utlf_transNullToEmpty(this.getOwnerFrame().form.bgv_objScreenInfo.scrnauth);
- } else {
- switch (auth.toUpperCase()) {
- case 'R': ret = "10000000"; break;
- case 'X': ret = "11000000"; break;
- case 'P': ret = "11100000"; break;
- default : ret = "";
- }
- }
- } catch (e)
- {
- ret = "11100000";
- }
-
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_getMenuParam
- * 설 명 : 메뉴파라미터를 가져온다.
- * argument : void
- * return Type : String (메뉴파라미터)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getMenuParam()
- {
- var ret;
-
- // quick view 일경우에 대비
- try {
- if(frmf_isPopup())
- ret = utlf_transNullToEmpty(this.getOwnerFrame().bgv_objScreenInfo.menuparam);
- else
- ret = utlf_transNullToEmpty(this.getOwnerFrame().form.bgv_objScreenInfo.menuparam);
- } catch (e)
- {
- ret = "";
- }
-
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_getMenuGroupCD
- * 설 명 : 메뉴그룹코드를 가져온다.
- * argument : void
- * return Type : String (메뉴그룹코드)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getMenuGroupCD()
- {
- var sMenuGroupCD = gv_sCurrentAuthGroup.split("|")[0];
- return utlf_transNullToEmpty(sMenuGroupCD);
- }
- /**********************************************************************************
- * 함수명 : frmf_getMenuItemCD
- * 설 명 : 메뉴아이템코드를 가져온다.
- * argument : void
- * return Type : String (메뉴아이템코드)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getMenuItemCD()
- {
- var ret;
- // quick view 일경우에 대비
- try {
- if(frmf_isPopup())
- ret = utlf_transNullToEmpty(this.getOwnerFrame().bgv_objScreenInfo.menuitemcd);
- else
- ret = utlf_transNullToEmpty(this.getOwnerFrame().form.bgv_objScreenInfo.menuitemcd);
- } catch (e)
- {
- ret = "";
- }
-
- return ret;
- }
- /**********************************************************************************
- * 함수명 : frmf_getPrestDeptCd
- * 설 명 : 메뉴그룹의 사용처 부서코드를 가져온다.
- * argument : void
- * return Type : String (사용처 부서코드)
- * 작성자 : 이상준
- **********************************************************************************/
- function frmf_getPrestDeptCd()
- {
- return utlf_transNullToEmpty(gv_sPrestDeptCd);
- }
- /********************************************************************************************************************/
- /************************* 컴포넌트 공통 함수 ******************************************************************* /
- /********************************************************************************************************************/
- /**********************************************************************************
- * 함수명 : frmf_addComboItem
- * 설명 : 콤보 아이템 추가 함수
- * argument : String comboID - 해당 콤보 아이디
- String sLabel - 추가 할 아이템 Label
- String sValue - 추가 할 아이템 Value
- String nPosition - 추가 할 위치 ( "above" | "below" )
- * return Type : Boolean (정상처리여부)
- * 작성자 : tobesoft
- **********************************************************************************/
- function frmf_addComboItem( comboID, sLabel, sValue, sPosition ) {
-
- var objCombo = eval(comboID);
-
- //innerdataset
- if(!((objCombo.innerdataset).toString() == "[object Dataset]"))
- {
- var objDs = eval(objCombo.innerdataset);
- }
- else
- {
- var objDs = objCombo.innerdataset;
- }
-
- if(utlf_isNull(sLabel) && utlf_isNull(sValue) ) {
- sLabel = "전체";
- sValue = "-";
- }
-
- if(utlf_isNull(sPosition) ) sPosition = "init";
-
- if(sPosition == "init" || sPosition == "above")
- {
- var nRow = objDs.insertRow(0);
- objDs.setColumn(nRow, objCombo.codecolumn, sValue);
- objDs.setColumn(nRow, objCombo.datacolumn, sLabel);
- }
- else
- {
- var nRow = objDs.addRow();
- objDs.setColumn(nRow, objCombo.codecolumn, sValue);
- objDs.setColumn(nRow, objCombo.datacolumn, sLabel);
- }
-
- }
- /**********************************************************************************
- * 함수명 : frmf_addComboItemAll
- * 설명 : 모든 콤보 아이템 추가 함수
- * argument : String comboIDs - 해당 콤보 아이디 예)"combo1|combo2|combo3"
- String label - 추가 할 아이템 Label (default="- 전 체 - ");
- String sVal - 추가 할 아이템 value (default="");
- * return Type : none
- * 작성자 : tobesoft
- ex) var comboIDs = "Combo01|Combo02|Combo03";
- frmf_addComboItemAll( comboIDs, "전체", "all");
- **********************************************************************************/
- function frmf_addComboItemAll( comboIDs, sLabel, sVal) {
-
- var comboIDArray = comboIDs.split("|");
-
- if(utlf_isNull(sLabel) ) sLabel = "- 전 체 -";
- if(utlf_isNull(sVal) ) sVal = "";
-
- for( var i = 0; i < comboIDArray.length; i++ )
- {
- frmf_addComboItem( comboIDArray[i], sLabel, sVal);
- }
- }
- /************************************************************************************************
- * 함수명 : frmf_setInputNodeCurPid
- * 설명 : setInputNodeCurText 함수와 동일한 기능. 환자번호 총 7자리로 0으로 채우는 기능 추가됨.
- * argument : objComp - 컴퍼넌트 object
- mask - 제거할 문자 string
- * return Type : none
- * 작성자 : tobesoft
- ************************************************************************************************/
- function frmf_setInputNodeCurPid( objComp, mask ) {
- var nVal = objComp.value;
- if(utlf_isNull(nVal)){
- objComp.value = "";
- }else{
- if(!utlf_isNull(mask))
- {
- var sRtn = utlf_setReplaceWord(nVal, mask);
- }
- else
- {
- var sRtn =nVal;
- }
- //objComp.value = utlf_lPad(sRtn, 7, "0");
- objComp.value = sRtn;
- }
-
- sysf_setFormUpdate();
- }
- /************************************************************************************************
- * 함수명 : frmf_setInputNodeCurPid_Change
- * 설명 : 순천향 메인 상단 화면에서 호출하게끔 추가 - 환자번호의 자리수에 맞게 0을 채움
- * argument : ipt_pid - 환자번호
- * return Type : rtn - 환자번호 String
- * 작성자 : tobesoft
- ************************************************************************************************/
- function frmf_setInputNodeCurPid_Change( ipt_pid ) {
-
- var rtn="";
- if(utlf_isNull(ipt_pid))
- {
- return rtn;
- }
- var forCnt = 7-ipt_pid.length;//[2012.10.13 이성웅 수정] setValue -> makeValue
-
- for(var i=0; i<forCnt; i++){
- rtn+="0";
- }
- rtn+=ipt_pid;
- return rtn;
- }
- /************************************************************************************************
- * 함수명 : frmf_openImageFileDialog()
- * 설명 : 이미지 파일 선택 다이알로그를 띄운다. 선택한 파일의 크기를 제한하고 싶으면 최대치 byte를 인자로 준다.
- 선택한 파일 경로를 반환한다. 취소하였거나 파일크기가 최대치를 초과했을 경우 ""를 반환한다.
- * argument : Integer maxBytes - 이미지 파일 제한 싸이즈(Byte)
- * return Type : file Path or ""
- * 작성자 : tobesoft
- ************************************************************************************************/
- function frmf_openImageFileDialog(maxBytes)
- {
- vf = new FileDialog;
- vf.filter = "JPEG Files(*.jpg)|*.jpg|GIF Files(*.gif)|*.gif|BMP Files(*.bmp)|*.bmp";
- var objFileList = vf.open("Image",FileDialog.MULTILOAD ,"%MYDOCUMENT%");
- //if((!utlf_isNull(rtn) || rtn > 0)&& (!utlf_isNull(maxBytes) || maxBytes > 0))
- if(!utlf_isNull(objFileList))
- {
- var nFileSize = 0;
- for (var i = 0; i < objFileList.length; i++)
- {
- if (objFileList[i].open(VirtualFile.openRead))
- {
- nFileSize = objFileList[i].getFileSize();
- objFileList[i].close();
-
- if(nFileSize > maxBytes)
- {
- sysf_messageBox("파일 크기가 최대치("+(maxBytes/1024)+"K)를","E003");
- return "";
- break;
- }
- }
- }
- }
-
- return objFileList;
- }
- /************************************************************************************************
- * 함수명 : frmf_inputEnterKey
- * 설명 : 컴퍼넌트 이벤트 호출
- * argument : String compId - 컴퍼넌트 아이디
- String sEventObject - EventObject ID
- Object objEventInfo - 이벤트 정보가 포함된 EventInfo 오브젝트
-
- * return Type : none
- * 작성자 : tobesoft
- ex) var e = new EditClickEventInfo;
- frmf_inputEnterKey("Edit00", "oneditdblclick", e );
- ************************************************************************************************/
- function frmf_inputEnterKey(compId, sEventObject, objEventInfo )
- {
- var objComp = eval(compId);
-
- eval("objComp."+sEventObject+".fireEvent(objComp,objEventInfo)");
- }
- /************************************************************************************************
- * 함수명 : frmf_getComponents
- * 설명 : 컴퍼넌트 검색
- * argument : String tarNm - 검색할 컴퍼넌트 아이디
- Object obj- Form Object
- * return Type : null / Object
- * 작성자 :
- ex) frmf_getComponents("TextArea00", this, 0);
- [전제] 검색하는 form의 하위에는 검색하는 이름이 하나일 경우
- ************************************************************************************************/
- function frmf_getComponents(tarNm, obj)
- {
- if( utlf_isNull(tarNm) ) return;
- if( utlf_isNull(obj) ) obj = this;
- var tarObj = null;
-
- var sType;
- for(var i = 0 ; i < obj.components.length; i++ )
- {
- sType = obj.components[i].toString().toUpperCase();
- //trace("sType : "+sType + " " + obj.components[i].name);
- switch(sType) {
-
- case "[OBJECT POPUPDIV]":
- case "[OBJECT MENU]":
- case "[OBJECT POPUPMENU]":
- continue;
- break;
- case "[OBJECT TABPAGE]":
- case "[OBJECT TAB]":
- case "[OBJECT DIV]":
- default:
- break;
- }
-
- if( obj.components[i].name == tarNm ){
- tarObj = obj.components[i];
- return obj.components[i];
- }
-
- if (obj.components[i].components)
- {
- switch(sType) {
- case "[OBJECT TABPAGE]":
- case "[OBJECT TAB]":
- case "[OBJECT DIV]":
- tarObj = frmf_getComponents(tarNm, obj.components[i]);
- if( tarObj != null )
- return tarObj;
- break;
- }
- }
- }
- return tarObj;
- }
- /************************************************************************************************
- * 함수명 : frmf_btnSetEnable
- * 설명 : 버튼 enable false 시 tooltiptext가 나오도록 하기 위한 함수
- * argument : Object obj - 버튼 객체
- boolean enable - true, false
- String tooltiptext - 툴팁 메시지
- * return Type : none
- * 작성자 :
- ex) frmf_btnSetEnable(Button00, true, "enable 툴팁");
- ************************************************************************************************/
- function frmf_btnSetEnable(obj:Button, enable, tooltiptext) {
- if(enable) {
- obj.style.background = "";
- obj.style.gradation = "";
- obj.style.border = "";
- obj.style.color = "";
- obj.style.cursor = "";
- obj.style.shadow = "";
- } else {
- obj.style.background = obj.currentstyle.background;
- obj.style.gradation = "linear 0,0 #ffffffff 0,100 #ebebebff";
- obj.style.border = "2 double #cacacaff #ffffffff";
- obj.style.color = "#808080";
- obj.style.cursor = "arrow";
- obj.style.shadow = "outer 0,0 0 #00000000";
- }
-
- if(utlf_isNull(tooltiptext)) tooltiptext = "";
-
- obj.tooltiptext = tooltiptext;
- obj.enableevent = enable;
- }
- /****************************************************************************************
- * Function : frmf_getBizNameByUrl
- * Description : url에서 title명을 가져온다.(업무명)
- * Argument : submitid (String) - submitid
- filepath (String) - 파일경로
- showui (Boolean) - ui 표시 여부
- * return type :
- * Creator : 김상목
- ****************************************************************************************/
- function frmf_LargeFileDownload(submitid, filepath, showui) {
- if (utlf_isNull(filepath)) {
- sysf_messageBox("파일 경로가 올바르지 않습니다.", "E");
- return;
- }
-
- var fd = new FileDialog;
- var objFilePath = null;
- var multi = false;
-
- if(typeof(filepath) != "string") {
- objFilePath = fd.open("다운 받을 위치를 선택하여 주십시오", FileDialog.SELFOLDER);
- multi = true;
- } else {
- var filenm = filepath.split(/\/|\\/); // / 또는 \ 로 split 하여 마지막 항목을 default 파일 명으로 사용한다.
- var len = filenm.length;
- filenm = filenm[len-1];
-
- if(utlf_isNull(filenm)) {
- sysf_messageBox("파일 이름이 올바르지 않습니다.", "E");
- return;
- }
-
- objFilePath = fd.open("다운 받을 위치를 선택하여 주십시오", FileDialog.SAVE, "", filenm);
- multi = false;
- }
- if(utlf_isNull(objFilePath)) {
- sysf_messageBox("파일 저장 경로가 올바르지 않습니다.", "E");
- return;
- }
-
- // 현재는 showui 무조건 true
- //if (utlf_isNull(showui)) {
- showui = true;
- //}
-
- var objArg = new Object();
- objArg.arg_submitid = submitid;
- objArg.arg_filepath = filepath;
- objArg.arg_localfile = objFilePath;
- objArg.arg_showui = showui;
- objArg.arg_multi = multi;
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = system.clientToScreenX(this, this.position.left) + (this.position.width - 330) / 2; // 330 파일다운로드 창 width
- var ypt = system.clientToScreenY(this, this.position.top) + (this.position.height - 127) / 2; // 127 파일다운로드 창 height
-
- frmf_modalInternal("SPZZZ00600", "com_commonxp::SPZZZ00600_파일다운로드.xfdl", objArg, false, mon, xpt, ypt);
- }]]></Script>
|