XMLVectorWrite(DevObj,Opties,ColSize,MaxWidth,%this) #define DFLBedSize 3040 ; Fabr.Frees.emProfiel.XMLVectorWrite(DevObj,Opties) ;s:('$D(ClientIP)) ClientIP="192.168.1.97" New Param1,Param2,Param3,Param4,Param5 New Key,NL,ProfMaxX,ProfB,ProfXXXD,GroupX,GroupY,Hoogte,Margin,strVML,Scale,VScale,DMLine,sPT,OptieLW New DFLLeft,DFLTop New KadObj,ProfType Set NL=$C(13)_$C(10) Set sPT=$S($G(Opties)["NOPT":"", 1:"pt") ; NOPT als profiel relatief is aan bovenliggende Set DMLine=($G(Opties)["DM=L") ; DrawMode = Line Set InrLine='($G(Opties)["INRLINE=0") ; Voor Extern Profiel: Inner Lines tekenen (dashed); default=TRUE Set Margin=$S($G(Opties)["NOPT":0, 1:10) Set DFLLeft=0 Set DFLTop=0 If $G(Opties)["TOP=" Do . Set DFLTop=+$E(Opties,$F(Opties,"TOP="),99) Set KadObj=%this.KaderDeur Set ProfType=KadObj.ProfType Set Scale=$G(ColSize,$$$DFLBedSize)/$G(MaxWidth,$$$DFLBedSize) ; Begin DrawObject GROUP Set ProfB=ProfType.Breedte Set ProfXXXD=ProfType.Dikte Set ProfMaxX=%this.Lengte Set CSizeX=ProfMaxX+(2*Margin*0) If DMLine Do . Set CSizeY=20 . Set Margin=CSizeY\2 . Set VScale=$S(CSizeY*Scale>10:Scale, 1:10/CSizeY) Else Do . Set CSizeY=$$LosProfGroepHeight^VHSys.Library.VMLLib(ProfType.Breedte,ProfType.Dikte,%this.ProfZijkant)+(2*Margin) . Set VScale=Scale . Set:(Scale'>0.5) OptieLW=";LW=S" Set Param1="style='position:relative; left:"_DFLLeft_sPT_"; top:"_DFLTop_sPT_"; width:"_(CSizeX*Scale\1)_sPT_"; height:"_(CSizeY*VScale\1)_sPT_"; "_$S(Opties["R=I":" rotation:180", 1:"")_"'" Set Param2="coordsize="""_(CSizeX\1)_","_(CSizeY\1)_""" coordorigin="""_(-Margin*0)_","_(-Margin)_""" " Do WRITE^XMLWRITE(DevObj,NL) Do BEGINTAG^XMLWRITE(DevObj, "v:GROUP", "class=""clsProf""", Param1, Param2) Do WRITE^XMLWRITE(DevObj,NL) If DMLine Do . ; Draw a line . Set strVML="" Else Do . ; Top view of detailed profiel . Set strVML=$$LosProfiel^VHSys.Library.VMLLib(%this.Lengte,ProfType.Breedte,ProfType.Dikte,%this.ProfZijkant,$S('InrLine:"INRLINE=0", 1:"")_$S($G(Opties)["L=D":"D="_%this.KaderDeur.Dossier_"-"_%this.ProfPlaats, 1:"")) Do WRITE^XMLWRITE(DevObj,strVML_NL) ; Frezingen Do:(%this.Frezingen.Count()>0) WRITE^XMLWRITE(DevObj,""_NL) Set Key="" For Do %this.Frezingen.GetNext(.Key) Quit:Key="" Do . Do %this.Frezingen.GetAt(Key).XMLVectorWrite(DevObj,%this.ProfPlaats,%this.ProfZijkant,$$REPLACE^vhRtn1($G(Opties),"R=I","")_$G(OptieLW)) ; End DrawObject GROUP Do ENDTAG^XMLWRITE(DevObj,"v:GROUP") Do WRITE^XMLWRITE(DevObj,NL) Quit CalcFrezingOverzicht(%this) ; Fabr.Frees.emProfiel.CalcFrezingOverzicht() ; Create a summary of different types of Frezingen in the list New Key,emFrezing,lstOvz,FType,CNC,Diam,Summary Set Key="" For Set emFrezing=%this.Frezingen.GetNext(.Key) Quit:(Key="") Do . ; Determine FType and Diam . Set FType=$S("RUGB;DOORB;AFSCHUIN;PUNT"'[emFrezing.CNCProg:"F", 1:$S(emFrezing.Diameter>10:"G", 1:"K") ) . Set Diam=$S(emFrezing.Diameter'>0:-1, 1:emFrezing.Diameter) . Set CNC=$S($L(emFrezing.CNCProg):emFrezing.CNCProg, 1:"?") . Set lstOvz(FType,CNC,Diam)=$G(lstOvz(FType,CNC,Diam))+1 Set Summary="" Set FType="" For Set FType=$O(lstOvz(FType)) Quit:(FType="") Do . Set CNC="" . For Set CNC=$O(lstOvz(FType,CNC)) Quit:(CNC="") Do .. Set Diam="" .. For Set Diam=$O(lstOvz(FType,CNC,Diam)) Quit:(Diam="") Do ... Set:($L(Summary)>0) Summary=Summary_";" ... Set Summary=Summary_lstOvz(FType,CNC,Diam)_FType Quit Summary