Informační tok Funkční structura Datová struktura ER model Modulová struktura Typová struktura Relační model Dokumentace


[Celkový datový model] [Funkce] [Externí rohraní] [Stavové diagramy] [Datové elementy] [Entity] [Relace]
[Databáze] [Události] [Materiály] [Generovací funkce] [Vyhodnocovací funkce] [Konfigurace] [Uživatelé] [Projekt] [Home]



Vyhodnocovací funkce
GetPortElement
(Information Flow)


Vytvořeno: 12-02-1996 11:16:57
Poslední změna: 12-04-2002 10:58:23

Returns the referenced element of a port.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE GetPortElement(PFunc$, PNo%, BYREF Level%, BYREF EType%, BYREF ESType$, BYREF IsSplit%, BYREF EName$)
BEGIN
/*
    Returns the referenced element of a port.
    The function works recursivly.
    
    INPUT:
    PFunc$ Function of port
    PNo% Number of port
    
    INPUT/OUTPUT
    Level% Level of informationflow defining the referenced element
                    Call: Level%=0
    
    AUSGABE
    EType% Type code of thew referenced element
                    (Type in Connectionpointset)
    ESType$ Sub type of referenced element
    IsSplit% Flag: 1 = Port is split in level 0
                          0 = else
    EName$ Name of referenced element
*/
    
    EType%=0;
    ESType$="";
    IsSplit%=0;
    EName$="";
    
    Level%=Level%+1;
    
    FOR Port WHERE Function = PFunc$
               AND Portno = PNo% DO
        IF Datastructure <> "" THEN
            FOR Datastructure WHERE Name=Port.Datastructure DO
                 EName$=CONV$(Boxname);
                EStype$=Type;
            END
            EType% = 2;
            IsSplit%=1;
            Level%=Level%-1;
        ELSIF Entity <> "" THEN
            FOR Entity WHERE Name=Port.Entity DO
                EName$=CONV$(Boxname);
            END
            EType% = 4;
            IsSplit%=1;
            Level%=Level%-1;
        END
        FOR Connectionpointset WHERE Function = Port.Function
                                 AND Setno = Port.Setno
                                 AND IsSplit% = 0 DO
            EType%=Type;
            IF Type = 1 THEN
                FOR Function WHERE Name=IFunc DO
                    EName$=CONV$(Boxname);
                    ESType$=Type;
                    IF Reusable <> 0 THEN
                        ESType$="re";
                    END
                END
            ELSIF Type = 2 THEN
                FOR Datastructure WHERE Name=Store DO
                    EName$=CONV$(Boxname);
                    EStype$=Type;
                END
            ELSIF Type = 3 THEN
                FOR Eface WHERE Name=Efaceref DO
                    EName$=CONV$(Boxname);
                END
            ELSIF Type = 4 THEN
                FOR Entity WHERE Name=Entityref DO
                    EName$=CONV$(Boxname);
                END
            ELSIF Type = 5 OR Type = 10 THEN
                FOR Function WHERE Name=Iface DO
                    EName$=CONV$(Boxname);
                    ESType$=Type;
                    IF Reusable <> 0 THEN
                        ESType$="re";
                    END
                END
            ELSIF Type = 8 THEN
                EName$ = CONV$(Aliasname);
            ELSIF Type = 6 THEN
                CALL GetPortElement(Ifd, Portno, Level%, EType%, ESType$, IsSplit%, EName$);
            END
        END
        IF Level% <> 0 THEN
            IsSplit% = 0;
        END
    END
END


Generováno: 16.10.2003 7:41 Systém: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\Projekt03.csf Generováno systémem case/4/0
Vygeneroval: Administrator Soubor: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\html\18879.htm (C) microTOOL GmbH 2002