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
Is_Port_in_IFD
(Information Flow)


Vytvořeno: 12-08-1995 17:49:18
Poslední změna: 12-04-2002 10:58:37

Checks if the specified element is referenced as a port in the current information flow.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE Is_Port_in_IFD(Objname$, Ifd$, Type%, Portno%, BYREF isPort%)
BEGIN
 /*
   find out if object of type "Type%" is referenced as port in
   information flow "Ifd%"
*/
  isPort%=0;

  FOREACH Port WHERE Port.Function=Ifd$
                 AND (Port.Portno=Portno% OR
                      Portno%=0) DO
    continue%=1;
    // port being divided?
    FOREACH Port AS P WHERE Port.Function=P.Function
                        AND Port.Setno=P.Setno
                        AND (LEN(Datastructure)>0 OR
                             LEN(Entity)>0) DO
      continue%=0;
      BREAK;
    END
    // Port to Function
    IF Type%=1 THEN
      FOR Connectionpointset WHERE Setno=Port.Setno
                               AND Function=Ifd$
                               AND Type=1
                               AND Ifunc=Objname$ DO
        isPort%=1;
      END
    // Port to Store or divided into data structure
    ELSIF Type%=2 THEN
      IF Port.Datastructure=Objname$ THEN
        isPort%=1;
      ELSIF continue%=1 THEN
        FOR Connectionpointset WHERE Setno=Port.Setno
                                 AND Function=Ifd$
                                 AND Type=2
                                 AND Store=Objname$ DO
          isPort%=1;
        END
      END
    // Port to external interface
    ELSIF Type%=3 THEN
      FOR Connectionpointset WHERE Setno=Port.Setno
                               AND Function=Ifd$
                               AND Type=3
                               AND Efaceref=Objname$ DO
        isPort%=1;
      END
    // Port to Store or divided into Entity type
    ELSIF Type%=4 THEN
      IF Port.Entity=Objname$ THEN
        isPort%=1;
      ELSIF continue%=1 THEN
        FOR Connectionpointset WHERE Setno=Port.Setno
                                 AND Function=Ifd$
                                 AND Type=4
                                 AND Entityref=Objname$ DO
          isPort%=1;
        END
      END
    // Port to internal interface
    ELSIF Type%=5 THEN
      FOR Connectionpointset WHERE Setno=Port.Setno
                               AND Function=Ifd$
                               AND Type=5
                               AND Iface=Objname$ DO
        isPort%=1;
      END
    END
    // Port to Portref; Port not divided
    IF isPort%=0 AND continue%=1 THEN
      FOR Connectionpointset WHERE Setno=Port.Setno
                               AND Function=Ifd$
                               AND Type=6 DO
        CALL Is_Port_in_IFD(Objname$, Ifd, Type%, Portno, isPort%);
      END
    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\987.htm (C) microTOOL GmbH 2002