>if !used('schport') > use schport in 0 >endif >if !used ('schcargo') > use schcargo in 0 >endif >if !used ('msvessel') > use msvessel in 0 >endif >if !used ('msport') > use msport in 0 >endif >if !used ('schterminal') > use schterminal in 0 >endif > >SELECT * ; > FROM blt!schport; > where schport.voyno=lcvoyno and; > schport.kdvessel=lckdvessel; > ORDER BY Schport.kdvessel, Schport.voyno, Schport.nouport; > into cursor cur1 > >sele cur1 >*brow > >* vvoyrpt >* as port_time(var) , port_time hanya sekedar variabel > >SELECT cur1.kdvessel+cur1.voyno+cur1.nouport AS vesvoynoup,; > cur1.kdvessel, msvessel.vessel, cur1.voyno, cur1.nouport, cur1.kdport, msport.port,; > cur1.arrived, cur1.departure,cur1.mfocur,mfoprice,cur1.mdocur,cur1.mdoprice,; > cur1.mgocur,cur1.mgoprice,cur1.fwcur,cur1.fwprice,; > (cur1.departure-cur1.arrived)/60/60 AS port_time,; > seahours(cur1.kdvessel,cur1.voyno,cur1.nouport) AS seahours,; > cur1.robabmfo, cur1.robabmgo, cur1.robabmdo, cur1.robabfw,; > cur1.robdbmfo, cur1.robdbmgo, cur1.robdbmdo, cur1.robdbfw,; > cur1.supplymfo, cur1.supplymgo, cur1.supplymdo,; > cur1.supplyfw,; > consea(cur1.kdvessel,cur1.voyno,cur1.nouport,"FO") AS seafo,; > consea(cur1.kdvessel,cur1.voyno,cur1.nouport,"GO") AS seago,; > consea(cur1.kdvessel,cur1.voyno,cur1.nouport,"DO") AS seado,; > consea(cur1.kdvessel,cur1.voyno,cur1.nouport,"FW") AS seafw,; > (cur1.robabmfo+cur1.supplymfo)-cur1.robdbmfo AS portfo,; > (cur1.robabmgo+cur1.supplymgo)-cur1.robdbmgo AS portgo,; > (cur1.robabmdo+cur1.supplymdo)-cur1.robdbmdo AS portdo,; > (cur1.robabfw+cur1.supplyfw)-cur1.robdbfw AS portfw; > FROM cur1,blt!msvessel,blt!msport; > where cur1.kdvessel=msvessel.kdvessel and; > cur1.kdport=msport.kdport; > ORDER BY cur1.kdvessel, cur1.voyno, cur1.nouport; > into cursor cur3 > >sele cur3 >*brow > > >select schcargo.kdvessel,schcargo.voyno,schcargo.nouport,schcargo.nouterminal,; > schcargo.ld,schcargo.kdcargo,schcargo.bookingno; > from blt!schcargo,cur1; > where schcargo.kdvessel=cur1.kdvessel and; > schcargo.voyno=cur1.voyno and; > schcargo.nouport=cur1.nouport; > into cursor cur2 > >sele cur2 >*brow > >*cur4 >SELECT cur2.kdvessel+cur2.voyno+cur2.nouport AS vesvoynoup,; > cur2.kdvessel, cur2.voyno, cur2.nouport,; > cur2.nouterminal, schterminal.kdterminal,cur2.ld, cur2.kdcargo, cur2.bookingno,; > IIF(cur2.ld="L",qntyblcargo(cur2.bookingno,cur2.kdcargo),0.000) AS qntybl,; > IIF(cur2.ld="L",shipfig(cur2.bookingno,cur2.kdcargo,"L"),0.000) AS shipfigload,; > IIF(cur2.ld="D",shipfig(cur2.bookingno,cur2.kdcargo,"D"),0.000) AS shipfigdisch,; > idletime(cur2.kdvessel,cur2.voyno,cur2.nouport,cur2.nouterminal) AS idle_time; > FROM cur2,schterminal; > where cur2.kdvessel=schterminal.kdvessel and; > cur2.voyno=schterminal.voyno and; > cur2.nouport=schterminal.nouport and; > cur2.nouterminal=schterminal.nouterminal; > GROUP BY cur2.kdvessel, cur2.voyno, cur2.nouport,; > cur2.nouterminal, cur2.ld, cur2.kdcargo; > ORDER BY cur2.nouport, cur2.nouterminal; > into cursor cur4 > >sele cur4 >*brow >*create cursor vconsumptreport(vessel c(20),voyno c(5),nouport c(4),port c(15),nouterminal c(4),kdterminal c(4) >* seahours c(6),robabmfo c(8),robabmgo c(8),robabmdo c(8), robabfw c(8),robdbfw c(8),robdbmfo c(8),robdbmgo c(8); >* robdbmdo c(8),supplymdo c(8),supplymfo c(8),supplymgo c(8),supplyfw c(8), seafo c(8),seado c(8),seago c(8), seafo c(8),; >* seafw c(8)) > > *vvoyagereport > SELECT cur3.vessel, cur4.voyno, cur4.nouport,; > cur3.port, cur4.nouterminal, cur4.kdterminal, cur4.ld, cur4.kdcargo,; > cur4.bookingno, cur4.qntybl, cur4.shipfigload,; > cur4.shipfigdisch, cur3.arrived, cur3.departure,; > cur3.port_time, cur4.idle_time, cur3.seahours,; > cur3.robabmfo, cur3.robabmgo, cur3.robabmdo, cur3.robabfw,; > cur3.robdbmfo, cur3.robdbmgo, cur3.robdbmdo, cur3.robdbfw,; > cur3.supplymfo, cur3.supplymgo, cur3.supplymdo,; > cur3.supplyfw, cur3.portfo, cur3.portdo, cur3.portgo,; > cur3.portfw, cur3.seafo, cur3.seago, cur3.seado, cur3.seafw; > FROM cur4 LEFT OUTER JOIN cur3; > ON cur4.vesvoynoup = cur3.vesvoynoup; > order by cur4.voyno,cur4.nouport,cur4.nouterminal,cur4.ld; > into cursor vconsumptreport > > *insert into vconsumptreport values(vessel (20),voyno (5),nouport (4),port (15),nouterminal (4),kdterminal (4) > * seahours (6),robabmfo (8),robabmgo (8),robabmdo (8), robabfw (8),robdbfw (8),robdbmfo (8),robdbmgo (8); > * crobdbmdo (8),supplymdo (8),supplymfo (8),supplymgo(8),supplyfw (8), seafo (8),seado (8),seago (8), seafo (8),; > * cseafw (8)) > > sele vconsumptreport