Diverse aanpassingen grafisch gedeelte.
svn path=/Database/trunk/; revision=6559
This commit is contained in:
374
CAD/CAD_PAC.SRC
374
CAD/CAD_PAC.SRC
@@ -3,10 +3,13 @@
|
||||
/* REVISIONS:
|
||||
*
|
||||
* --- 01.43 ---
|
||||
* 08-03-1999 BIV #2278 - Entry PERIMETER toegevoegd voor update van Omtrek in terreinsector,gebouw en ruimte.
|
||||
* 03-03-1999 BIV #2278 - Procedures cad_slnkPredraw,cad_SLNKModify,cad_SLNKPostErase, cad_SLNKPostDraw uitgebreid
|
||||
* i.v.m. LPN_INS_DEEL t.b.v. Facilitor 3.
|
||||
* 01-03-1999 BIV #2278 - Functies cad_getVerdiepPlgrnd_tekening en cad_getVerdiepCntr_tekening toegevoegd
|
||||
* t.b.v. Facilitor 3, het grafisch plaatsen van een ruimte.
|
||||
* 26-02-1999 BIV #2278 - Procedures cad_slnkPredraw,cad_SLNKModify,cad_SLNKPostErase, cad_SLNKPostDraw aangepast
|
||||
* t.b.v. Facilitor 3.
|
||||
* i.v.m. LPN_ALG_TERREINSECTOR en LPN_ALG_RUIMTE t.b.v. Facilitor 3.
|
||||
* --- 01.42 ---
|
||||
* --- 01.41 ---
|
||||
* 09-12-1998 BIV Functies cad_getDisciplinetekening, cad_getPlattegrondtekening, cad_getContourtekening toegevoegd.
|
||||
@@ -104,17 +107,43 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
END cad_f_deel_get_locatie;
|
||||
|
||||
FUNCTION cad_f_deel_get_verdieping(Key IN NUMBER) RETURN NUMBER IS
|
||||
verdieping_key NUMBER(10);
|
||||
verdieping_key NUMBER(10);
|
||||
PlaatsDeel VARCHAR2(1);
|
||||
WerkplekKey NUMBER(10);
|
||||
BEGIN
|
||||
SELECT ALG_G.alg_verdieping_key
|
||||
INTO verdieping_key
|
||||
FROM alg_ruimte ALG_G, ins_deel INS_D /* de tabel! */
|
||||
WHERE INS_D.ins_deel_key = Key
|
||||
AND INS_D.ins_alg_ruimte_key = ALG_G.alg_ruimte_key;
|
||||
RETURN verdieping_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN NULL;
|
||||
/* Functie aangepast t.b.v. Facilitor 3 i.v.m. mogelijkheid deel te plaatsen op een werkplek */
|
||||
SELECT ins_alg_ruimte_type INTO PlaatsDeel
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = Key;
|
||||
IF PlaatsDeel = 'W' THEN
|
||||
SELECT ins_alg_ruimte_key INTO WerkplekKey
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = Key;
|
||||
/* Bepaal ruimte waarin werkplek zich bevindt en vervolgens de verdieping */
|
||||
BEGIN
|
||||
SELECT alg_verdieping_key INTO verdieping_key
|
||||
FROM alg_ruimte
|
||||
WHERE alg_ruimte_key =
|
||||
(SELECT prs_alg_ruimte_key FROM prs_werkplek
|
||||
WHERE prs_werkplek_key = WerkplekKey);
|
||||
RETURN verdieping_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN NULL;
|
||||
END;
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT ALG_G.alg_verdieping_key
|
||||
INTO verdieping_key
|
||||
FROM alg_ruimte ALG_G, ins_deel INS_D /* de tabel! */
|
||||
WHERE INS_D.ins_deel_key = Key
|
||||
AND INS_D.ins_alg_ruimte_key = ALG_G.alg_ruimte_key;
|
||||
RETURN verdieping_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN NULL;
|
||||
END;
|
||||
END IF;
|
||||
END cad_f_deel_get_verdieping;
|
||||
|
||||
FUNCTION cad_f_deel_get_discipline(Key IN NUMBER) RETURN NUMBER IS
|
||||
@@ -256,6 +285,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
END;
|
||||
END cad_getDisciplinetekening;
|
||||
|
||||
|
||||
FUNCTION cad_getPlattegrondtekening(Locatie_key IN NUMBER)RETURN VARCHAR2 IS
|
||||
locatie_code VARCHAR2(5);
|
||||
tekening VARCHAR2(256);
|
||||
@@ -781,7 +811,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
Return SymboolNaam;
|
||||
END cad_GETBoringSymbolName;
|
||||
|
||||
/* Eenmalige procedure - kan na conversie verwijderd worden */
|
||||
/* Eenmalige procedure t.b.v. Grafische conversie BIS */
|
||||
PROCEDURE cad_SLNKConvPreDraw(Session_Id NUMBER, loc_x_coord NUMBER, loc_y_coord NUMBER) IS
|
||||
LPNName VARCHAR2(128);
|
||||
LPNKey NUMBER(10);
|
||||
@@ -840,26 +870,68 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
END cad_SLNKConvPreDraw;
|
||||
#endif // BIS
|
||||
|
||||
FUNCTION CheckLPNKey(LPNCondName IN VARCHAR2, LPNCondKey IN NUMBER) RETURN BOOLEAN IS
|
||||
Dummy NUMBER(10);
|
||||
BEGIN
|
||||
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
|
||||
BEGIN
|
||||
SELECT alg_terreinsector_key INTO Dummy
|
||||
FROM alg_terreinsector
|
||||
WHERE alg_terreinsector_key = LPNCondKey;
|
||||
RETURN TRUE;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN FALSE;
|
||||
END;
|
||||
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
||||
BEGIN
|
||||
SELECT alg_ruimte_key INTO Dummy
|
||||
FROM alg_ruimte
|
||||
WHERE alg_ruimte_key = LPNCondKey;
|
||||
RETURN TRUE;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN FALSE;
|
||||
END;
|
||||
ELSIF LPNCondName = 'LPN_ALG_WERKPLEK' THEN
|
||||
BEGIN
|
||||
SELECT prs_werkplek_key INTO Dummy
|
||||
FROM prs_werkplek
|
||||
WHERE prs_werkplek_key = LPNCondKey;
|
||||
RETURN TRUE;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RETURN FALSE;
|
||||
END;
|
||||
ELSE
|
||||
raise_application_error(-20000, 'alg_m239');
|
||||
END IF;
|
||||
END CheckLPNKey;
|
||||
|
||||
PROCEDURE cad_SLNKPreDraw(Session_Id NUMBER) IS
|
||||
LPNName VARCHAR2(128);
|
||||
LPNKey NUMBER(10);
|
||||
LPNKeyCond NUMBER(10);
|
||||
#ifdef BIS
|
||||
Diepte NUMBER(8,2);
|
||||
Veld_Key NUMBER(10);
|
||||
Boring_nummer VARCHAR2(5);
|
||||
Projectnr VARCHAR2(8);
|
||||
Ontgraafvak_Naam VARCHAR2(32);
|
||||
Punt_boring BOOLEAN;
|
||||
Boring_Symbol VARCHAR2(128);
|
||||
#endif //BIS
|
||||
LocatieKey NUMBER(10);
|
||||
VerdiepingKey NUMBER(10);
|
||||
DisciplineKey NUMBER(10);
|
||||
locatiecode VARCHAR2(5);
|
||||
Subloc_Code VARCHAR2(5);
|
||||
Boring_nummer VARCHAR2(5);
|
||||
Projectnr VARCHAR2(8);
|
||||
RuimteNr VARCHAR2(10);
|
||||
Ontgraafvak_Naam VARCHAR2(32);
|
||||
gebouwcode VARCHAR2(10);
|
||||
SrcDwg VARCHAR2(128);
|
||||
LoadDwg VARCHAR2(128);
|
||||
AttachDwg1 VARCHAR2(128);
|
||||
AttachDwg2 VARCHAR2(128);
|
||||
Punt_boring BOOLEAN;
|
||||
Boring_Symbol VARCHAR2(128);
|
||||
Valint NUMBER;
|
||||
SeqNr NUMBER(10);
|
||||
Datum DATE;
|
||||
@@ -867,6 +939,11 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
LayerNaam VARCHAR2(256);
|
||||
LayerColor VARCHAR2(256);
|
||||
LayerLineType VARCHAR2(256);
|
||||
Symbool VARCHAR2(256);
|
||||
SrtdeelKey NUMBER(10);
|
||||
Dimensie NUMBER;
|
||||
PlaatsDeel VARCHAR2(1);
|
||||
Omschrijving VARCHAR2(30);
|
||||
|
||||
BEGIN
|
||||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASPREDRAW');
|
||||
@@ -875,7 +952,112 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
IF SeqNr IS NULL THEN
|
||||
SeqNr := 1;
|
||||
END IF;
|
||||
IF LPNNAME = 'LPN_ALG_RUIMTE' THEN
|
||||
IF LPNName = 'LPN_INS_DEEL' THEN
|
||||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_INS_DEEL', 1);
|
||||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||||
/* Bepaal soortdeelkey */
|
||||
SELECT ins_srtdeel_key INTO SrtdeelKey
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
SELECT ins_srtdeel_dimensie INTO Dimensie
|
||||
FROM ins_srtdeel
|
||||
WHERE ins_srtdeel_key = SrtdeelKey;
|
||||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'DIMENSION', SeqNr, Dimensie, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'INS_DEEL_KEY', 1);
|
||||
/* Lees de grafische gegevens uit tabel ins_srtdeel */
|
||||
SELECT ins_srtdeel_cadlaycolor, ins_srtdeel_cadlaylinetype,ins_srtdeel_cadlayer, ins_srtdeel_acadsymbol
|
||||
INTO LayerColor, LayerLineType, LayerNaam, Symbool
|
||||
FROM ins_srtdeel
|
||||
WHERE ins_srtdeel_key = SrtdeelKey;
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'BLOCK', SeqNr, Symbool, 1);
|
||||
cad.cad_SLNKstructinsertVALINT(Session_Id,'INSPOINTCODE', SeqNr, 0, 1);
|
||||
/* Bepaal of een deel geplaatst is op een T(erreinsector) of in een R(uimte)/W(erkplek)... */
|
||||
SELECT ins_alg_ruimte_type INTO PlaatsDeel
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_TERREINSECTOR', 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_TERREINSECTOR_KEY', 1);
|
||||
ELSE /* Ruimte of Werkplek */
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNALIASCONDA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLCONDA', SeqNr, 'ALG_RUIMTE_KEY', 1);
|
||||
END IF;
|
||||
IF PlaatsDeel = 'W' THEN /* Bepaal ruimte waarin werkplek zich bevindt en geef ruimtekey ervan door */
|
||||
SELECT prs_alg_ruimte_key INTO LPNKeyCond
|
||||
FROM prs_werkplek
|
||||
WHERE prs_werkplek_key =
|
||||
(SELECT ins_alg_ruimte_key FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey);
|
||||
ELSE
|
||||
SELECT ins_alg_ruimte_key INTO LPNKeyCond
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
END IF;
|
||||
cad.cad_SLNKstructinsertVALINT(Session_Id,'LPNKEYCONDA', SeqNr, LPNKeyCond, 1);
|
||||
/* Bepaal Disciplinetekening */
|
||||
SrcDwg := cad_f_deel_get_tekeningnaam(LPNKey);
|
||||
IF SrcDwg IS NOT NULL THEN
|
||||
SELECT ins_alg_locatie_key INTO LocatieKey
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
Locatiecode := Bepaal_locatiecode(LocatieKey);
|
||||
SrcDwg := Locatiecode||'\'||SrcDwg;
|
||||
END IF;
|
||||
/* Bepaal LoadDwg */
|
||||
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
||||
LoadDwg := cad_getPlattegrondtekening(Locatiekey);
|
||||
ELSE /* Ruimte of Werkplek */
|
||||
SELECT alg_verdieping_key INTO VerdiepingKey
|
||||
FROM alg_ruimte
|
||||
WHERE alg_ruimte_key = LPNKeyCond;
|
||||
LoadDwg := cad_getVerdiepPlgrnd_tekening(LocatieKey, Verdiepingkey);
|
||||
END IF;
|
||||
LoadDwg := LoadDwg;
|
||||
/* Bepaal Attachdwg's */
|
||||
IF PlaatsDeel = 'T' THEN /* Terreinsector */
|
||||
AttachDwg1 := cad_getContourtekening(LocatieKey); /* Contourtekening locatie */
|
||||
ELSE /* Ruimte of Werkplek */
|
||||
AttachDwg1 := cad_getVerdiepCntr_tekening(LocatieKey, Verdiepingkey); /* Contourtekening verdieping */
|
||||
END IF;
|
||||
AttachDwg2 := SrcDwg;
|
||||
cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', SeqNr, SrcDwg, 1);
|
||||
cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', SeqNr, LoadDwg, 1);
|
||||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, AttachDwg1, 1);
|
||||
cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', SeqNr, Attachdwg2, 0);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL', SeqNr, 'INS_DEEL_OMSCHRIJVING', 1);
|
||||
SELECT ins_deel_omschrijving INTO Omschrijving
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, Omschrijving, 1);
|
||||
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
||||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_GEBOUW', 1);
|
||||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LPNCOLINSA', SeqNr, 'ALG_GEBOUW_KEY', 1);
|
||||
LayerColor := cad_getLayercolor('ALG_GEBOUW');
|
||||
LayerLineType := cad_getLayerlinetype('ALG_GEBOUW');
|
||||
LayerNaam := cad_getLayername('ALG_GEBOUW');
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERCOLOR', SeqNr, LayerColor, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYERLINETYPE', SeqNr, LayerLinetype, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LAYER', SeqNr, Layernaam, 1);
|
||||
SELECT alg_locatie_key INTO Locatiekey
|
||||
FROM alg_gebouw
|
||||
WHERE alg_gebouw_key = LPNKey;
|
||||
SrcDwg := cad_getContourtekening(LocatieKey);
|
||||
LoadDwg := cad_getPlattegrondtekening(LocatieKey);
|
||||
AttachDwg1 := SrcDwg;
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'SRCDWG', 1, SrcDwg, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LOADDWG', 1, LoadDwg, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'ATTACHDWG', 1, AttachDwg1, 1);
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABELCOL',SeqNr, 'ALG_GEBOUW_CODE', 1);
|
||||
SELECT alg_gebouw_code INTO gebouwcode
|
||||
FROM alg_v_aanweziggebouw
|
||||
WHERE alg_gebouw_key = LPNKey;
|
||||
cad.cad_SLNKstructinsertVALSTR(Session_Id,'LABEL',SeqNr, gebouwcode, 1);
|
||||
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||||
cad.cad_SLNKSTRUCTinsertVALSTR(Session_Id,'LPNALIASINSA', SeqNr, 'LPN_ALG_RUIMTE', 1);
|
||||
cad.cad_SLNKSTRUCTinsertVALINT(Session_Id,'LPNKEYINSA', SeqNr, LPNKey, 1);
|
||||
cad.cad_SLNKstructinsertVALINT(Session_Id,'DIMENSION', SeqNr, 2, 1);
|
||||
@@ -1062,6 +1244,7 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
LPNKey NUMBER(10);
|
||||
VeldKey NUMBER(10);
|
||||
Oppervlak NUMBER(13,3);
|
||||
Omtrek NUMBER(13,3);
|
||||
Diepte NUMBER(8,2);
|
||||
Volume NUMBER(12,4);
|
||||
Datum DATE;
|
||||
@@ -1069,15 +1252,26 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
BEGIN
|
||||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASINSO');
|
||||
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYINSO');
|
||||
IF LPNNAME = 'LPN_ALG_RUIMTE' THEN
|
||||
IF LPNNAME = 'LPN_ALG_GEBOUW' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_gebouw
|
||||
SET alg_gebouw_bruto_vloeropp = Oppervlak,
|
||||
alg_gebouw_omtrek = Omtrek
|
||||
WHERE alg_gebouw_key = LPNKey;
|
||||
ELSIF LPNNAME = 'LPN_ALG_RUIMTE' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_ruimte
|
||||
SET alg_ruimte_bruto_vloeropp = Oppervlak
|
||||
SET alg_ruimte_bruto_vloeropp = Oppervlak,
|
||||
alg_ruimte_omtrek = Omtrek
|
||||
WHERE alg_ruimte_key = LPNKey;
|
||||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_terreinsector
|
||||
SET alg_terreinsector_oppervlak = Oppervlak
|
||||
SET alg_terreinsector_oppervlak = Oppervlak,
|
||||
alg_terreinsector_omtrek = Omtrek
|
||||
WHERE alg_terreinsector_key = LPNKey;
|
||||
#ifdef BIS
|
||||
ELSIF LPNName = 'LPN_BIS_BORING' THEN
|
||||
@@ -1139,7 +1333,64 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
Datum := TO_DATE(CheckDatum, 'DD-MM-YYYY');
|
||||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASDELO');
|
||||
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYDELO');
|
||||
IF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||||
IF LPNName = 'LPN_INS_DEEL' THEN
|
||||
DELETE FROM ins_deel
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
COMMIT;
|
||||
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
||||
DELETE FROM alg_gebouw
|
||||
WHERE alg_gebouw_key = LPNKey;
|
||||
COMMIT;
|
||||
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||||
/* Geef aan AutoCAD de sleutels door van de werkplekken die zich in de te verwijderen ruimte bevinden */
|
||||
BEGIN
|
||||
DECLARE
|
||||
Cursor RuimteWerkplek IS
|
||||
SELECT prs_werkplek_key
|
||||
FROM prs_werkplek
|
||||
WHERE prs_alg_ruimte_key = LPNKey;
|
||||
BEGIN
|
||||
Eerste := TRUE;
|
||||
FOR WerkplekRec IN RuimteWerkplek LOOP
|
||||
IF Eerste THEN
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_ALG_WERKPLEK', 1);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 1);
|
||||
Eerste := FALSE;
|
||||
ELSE
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_ALG_WERKPLEK', 0);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, WerkplekRec.prs_werkplek_key, 0);
|
||||
END IF;
|
||||
END LOOP;
|
||||
END;
|
||||
END;
|
||||
/* Geef aan AutoCAD de sleutels door van de delen die zich in de te verwijderen ruimte bevinden EN
|
||||
* de delen die zich op werkplekken bevinden binnen de te verwijderen ruimte...
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE
|
||||
Cursor RuimteDeel IS
|
||||
SELECT ins_deel_key
|
||||
FROM ins_v_aanwezigdeel
|
||||
WHERE ins_alg_ruimte_key = LPNKey
|
||||
AND ins_alg_ruimte_type = 'R'
|
||||
OR (ins_alg_ruimte_type = 'W' AND
|
||||
ins_alg_ruimte_key IN
|
||||
(SELECT prs_werkplek_key from prs_v_aanwezigwerkplek
|
||||
WHERE prs_alg_ruimte_key = LPNKey));
|
||||
BEGIN
|
||||
Eerste := TRUE;
|
||||
FOR DeelRec IN RuimteDeel LOOP
|
||||
IF Eerste THEN
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
||||
Eerste := FALSE;
|
||||
ELSE
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
||||
END IF;
|
||||
END LOOP;
|
||||
END;
|
||||
END;
|
||||
DELETE FROM alg_ruimte
|
||||
WHERE alg_ruimte_key = LPNKey;
|
||||
COMMIT;
|
||||
@@ -1175,6 +1426,27 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
WHERE alg_terreinsector_key = LPNKey;
|
||||
COMMIT;
|
||||
#else
|
||||
BEGIN
|
||||
DECLARE
|
||||
CURSOR TerreinDeel IS
|
||||
SELECT ins_deel_key
|
||||
FROM ins_v_aanwezigdeel
|
||||
WHERE ins_alg_ruimte_key = LPNKey
|
||||
AND ins_alg_ruimte_type = 'T';
|
||||
BEGIN
|
||||
Eerste := TRUE;
|
||||
FOR DeelRec IN TerreinDeel LOOP
|
||||
IF Eerste THEN
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 1);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 1);
|
||||
Eerste := FALSE;
|
||||
ELSE
|
||||
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'LPNALIASDELA', 1,'LPN_INS_DEEL', 0);
|
||||
cad_SLNKSTRUCTinsertVALINT(Session_Id, 'LPNKEYDELA', 1, DeelRec.ins_deel_key, 0);
|
||||
END IF;
|
||||
END LOOP;
|
||||
END;
|
||||
END;
|
||||
DELETE FROM alg_terreinsector
|
||||
WHERE alg_terreinsector_key = LPNKey;
|
||||
COMMIT;
|
||||
@@ -1217,23 +1489,74 @@ CREATE OR REPLACE PACKAGE BODY cad AS
|
||||
|
||||
LPNName VARCHAR2(128);
|
||||
LPNKey NUMBER(10);
|
||||
LPNCondName VARCHAR2(128);
|
||||
LPNCondKey NUMBER(10);
|
||||
VeldKey NUMBER(10);
|
||||
Oppervlak NUMBER(13,3);
|
||||
Diepte NUMBER(8,2);
|
||||
Omtrek NUMBER(13,3);
|
||||
Volume NUMBER(12,4);
|
||||
Datum DATE;
|
||||
Seqnr NUMBER(10);
|
||||
LPNKeyOK BOOLEAN:= FALSE;
|
||||
RuimteType VARCHAR2(1);
|
||||
|
||||
BEGIN
|
||||
LPNName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASMODO');
|
||||
LPNKey := cad_SLNKSTRUCTreadVALINT(Session_id, 'LPNKEYMODO');
|
||||
IF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||||
IF LPNName = 'LPN_INS_DEEL' THEN
|
||||
/* Bepaal nieuwe plek v/h deel */
|
||||
LPNCondName := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNALIASCONDO');
|
||||
LPNCondKey := cad_SLNKSTRUCTreadVALSTR(Session_id, 'LPNKEYCONDO');
|
||||
IF LPNCondKey IS NOT NULL THEN
|
||||
/* Check of key wel bestaat - kan zijn dat tekening niet helemaal up-to-date is */
|
||||
LPNKeyOk := CheckLPNKey(LPNCondName, LPNKey);
|
||||
IF NOT LPNKeyOK THEN
|
||||
Seqnr := 2;
|
||||
LOOP
|
||||
LPNCondKey := cad_SLNKSTRUCTreadVALSTR2(Session_id, 'LPNKEYCONDO', Seqnr);
|
||||
IF LPNCondKey IS NULL THEN
|
||||
EXIT;
|
||||
END IF;
|
||||
LPNKeyOK := CheckLPNKey(LPNCondName, LPNKey);
|
||||
EXIT WHEN LPNKeyOK;
|
||||
Seqnr := Seqnr + 1;
|
||||
END LOOP;
|
||||
END IF;
|
||||
IF LPNKeyOK THEN
|
||||
IF LPNCondName = 'LPN_ALG_TERREINSECTOR' THEN
|
||||
RuimteType := 'T';
|
||||
ELSIF LPNCondName = 'LPN_ALG_RUIMTE' THEN
|
||||
RuimteType := 'R';
|
||||
ELSIF LPNCondName = 'LPN_ALG_WERKPLEK' THEN
|
||||
RuimteType := 'W';
|
||||
END IF;
|
||||
UPDATE ins_deel
|
||||
SET ins_alg_ruimte_key = LPNCondKey,
|
||||
ins_alg_ruimte_type = RuimteType
|
||||
WHERE ins_deel_key = LPNKey;
|
||||
END IF;
|
||||
END IF;
|
||||
ELSIF LPNName = 'LPN_ALG_GEBOUW' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_gebouw
|
||||
SET alg_gebouw_bruto_vloeropp = Oppervlak,
|
||||
alg_gebouw_omtrek = Omtrek
|
||||
WHERE alg_gebouw_key = LPNKey;
|
||||
ELSIF LPNName = 'LPN_ALG_RUIMTE' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_ruimte
|
||||
SET alg_ruimte_bruto_vloeropp = Oppervlak
|
||||
SET alg_ruimte_bruto_vloeropp = Oppervlak,
|
||||
alg_ruimte_omtrek = Omtrek
|
||||
WHERE alg_ruimte_key = LPNKey;
|
||||
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
|
||||
Oppervlak := cad_SLNKSTRUCTreadVALREAL(Session_id, 'AREA');
|
||||
Omtrek := cad_SLNKSTRUCTreadVALREAL(Session_id, 'PERIMETER');
|
||||
UPDATE alg_terreinsector
|
||||
SET alg_terreinsector_oppervlak = Oppervlak
|
||||
SET alg_terreinsector_oppervlak = Oppervlak,
|
||||
alg_terreinsector_omtrek = Omtrek
|
||||
WHERE alg_terreinsector_key = LPNKey;
|
||||
#ifdef BIS
|
||||
ELSIF LPNName = 'LPN_BIS_BORING' THEN
|
||||
@@ -1271,3 +1594,4 @@ END cad;
|
||||
/
|
||||
|
||||
#endif // CAD
|
||||
|
||||
|
||||
Reference in New Issue
Block a user