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
EntityType_with_References
(Entity Type)


Vytvořeno: 12-08-1995 15:30:05
Poslední změna: 12-03-2002 13:46:36

Lists all information flows, data structures, relational models, and dialog elements in the system referencing the specified entity type.

Modul

Module: Entity Type

Zdrojový kód:

PROCEDURE EntityType_with_References(Ename$, erm$)
BEGIN
  /* print list of references to entity type (ER model
     referred to as parameter "erm$" is being suppressed) */
     
  FOR Entity WHERE Name=Ename$ DO
    PRINT {BOLD,"ARIAL",10} CONV$(Entity.Boxname),NL;
    found%=0;
    FOREACH Enode WHERE Enode.Entity=Entity.Name ORDER BY Area DO
      IF Enode.Area<>erm$ THEN
        FOR Erarea WHERE Erarea.Name=Enode.Area DO
          found%=1;
          PRINT {"ARIAL",8} TAB(4),"ER model:";
          PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Erarea.Boxname);
          PRINT {"ARIAL",8} TAB(36),"(entita)",NL;
        END
      END
    END
  
    // as Entitypart
    FOREACH Entitypart WHERE Entitypart.Entity=Entity.Name ORDER BY Datastructure DO
      FOR Datastructure WHERE Datastructure.Name=Entitypart.Datastructure DO
        found%=1;
        PRINT {"ARIAL",8} TAB(4),"Datová struktura:";
        PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Datastructure.Boxname);
        PRINT {"ARIAL",8} TAB(36),"(entita: ";
        PRINT {"ARIAL",8,ITALIC} CONV$(Entitypart.Boxname),")",NL;
      END
    END
  
    // as Entityref
    FOREACH Entityref WHERE Entityref.Entity=Entity.Name ORDER BY Ifd DO
      FOR Informationflow WHERE Informationflow.Name=Entityref.Ifd DO
        found%=1;
        PRINT {"ARIAL",8} TAB(4),"Diagram informačních toků:";
        PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Informationflow.Boxname);
        PRINT {"ARIAL",8} TAB(36),"(entita)",NL;
      END
    END
  
    // as Funportflow
    lastifd$="";
    FOREACH Funportflow WHERE Funportflow.Entity=Entity.Name ORDER BY Ifd DO
      IF Ifd<>lastifd$ THEN
        FOR Informationflow WHERE Informationflow.Name=Funportflow.Ifd DO
          found%=1;
          PRINT {"ARIAL",8} TAB(4),"Diagram informačních toků:";
         PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Informationflow.Boxname);
         PRINT {"ARIAL",8} TAB(36),"(informační tok mezi: port/funkce ";
         FOR Function WHERE Name=Funportflow.Function DO
            PRINT {"ARIAL",8, ITALIC} CONV$(Boxname);
          END
          PRINT {"ARIAL",8} ")",NL;
        END
        lastifd$=Ifd;
      END
    END
  
    // as Funentflow
    lastifd$="";
    FOREACH Funentflow WHERE Funentflow.Entity=Entity.Name ORDER BY Ifd DO
      IF Ifd<>lastifd$ THEN
        FOR Informationflow WHERE Informationflow.Name=Funentflow.Ifd DO
          found%=1;
          PRINT {"ARIAL",8} TAB(4),"Diagram informačních toků:";
          PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Informationflow.Boxname);
          PRINT {"ARIAL",8} TAB(36),"(informační tok mezi: entita/funkce ";
          FOR Function WHERE Name=Funentflow.Function DO
            PRINT {"ARIAL",8,ITALIC} CONV$(Boxname);
          END
          PRINT {"ARIAL",8} ")",NL;
        END
        lastifd$=Ifd;
      END
    END
  
    // as Port
    FOREACH Port WHERE Port.Entity=Entity.Name ORDER BY Function DO
      FOR Informationflow WHERE Informationflow.Name=Port.Function DO
        found%=1;
        PRINT {"ARIAL",8} TAB(4),"Diagram informačních toků:";
        PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Informationflow.Boxname);
        PRINT {"ARIAL",8} TAB(36),"(Port)",NL;
      END
    END
  
    // by Relation
    FOREACH Relation WHERE Relation.Entity=Entity.Name ORDER BY Name DO
      FOREACH Relnode WHERE Relnode.Relation=Relation.Name DO
        FOR Relarea WHERE Relarea.Name=Relnode.Area DO
          found%=1;
          PRINT {"ARIAL",8} TAB(4),"Relační model:";
          PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Relarea.Boxname);
          PRINT {"ARIAL",8} TAB(36),"(Relace: ";
          PRINT {"ARIAL",8,ITALIC} CONV$(Relation.Boxname);
          PRINT {"ARIAL",8} ")",NL;
        END
      END
    END
    
      //Attributeconnection
    Rel$ = "";
    FOREACH Attributeconnection WHERE Entity = Entity.Name ORDER BY Attributeconnection.Relation DO
      IF Rel$ <> Attributeconnection.Relation THEN
        FOR Relation WHERE Relation.Name=Attributeconnection.Relation DO
          PRINT {"ARIAL",8} TAB(4),"ER-model:", TAB(18);
          FOREACH Relnode WHERE Relation=Relation.Name DO
            FOR Relarea WHERE Name=Relnode.Area DO
              PRINT {"ARIAL",ITALIC,8} CONV$(Boxname);
            END
            BREAK;
          END
          found%=1;
          PRINT {"ARIAL",8} TAB(36),"(Relace: ";
          PRINT {"ARIAL",8,ITALIC} CONV$(Relation.Boxname) , ", reference na atribut";
          PRINT {"ARIAL",8} ")" ,NL;
        END
        Rel$ = Relation;
      END
    END
    // Field
    lastattribute$="";
    FOREACH Field WHERE Field.Entity=Entity.Name DO
      IF lastattribute$<> Field.Attribute THEN
        FOR Datastructure WHERE Datastructure.Name=Field.Datastructure DO
          found%=1;
          first%=1;
          PRINT {"ARIAL",8} TAB(4),"Datová struktura:";
          PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Datastructure.Boxname);
          PRINT {"ARIAL",8} TAB(36),"(položka typu atribut)",NL;
        END
        lastattribute$=Field.Attribute;
      END
    END

    // Resource
    lastfunc$="";
    FOREACH Resourceattribute WHERE Entity=Entity.Name ORDER BY Function DO
      IF lastfunc$<>Function THEN
        FOR Resource WHERE Name=Resourceattribute.Resource
                       AND Function=Resourceattribute.Function DO
          FOREACH Ifunc WHERE Function=Resource.Function DO
            found%=1;
            PRINT {"ARIAL",8} TAB(4),"Diagram informačních toků:";
            FOR Informationflow WHERE Name=IFunc.Ifd DO
              PRINT {"ARIAL",8,ITALIC} TAB(18),CONV$(Boxname);
            END
            PRINT {"ARIAL",8} TAB(36),"(dialogová funkce: ";
            FOR Function WHERE Name=Resource.Function DO
              PRINT {"ARIAL",8,ITALIC} CONV$(Boxname);
            END
            PRINT {"ARIAL",8} ")",NL;
          END
        END
      END
      lastfunc$=Function;
    END

    IF found%=0 THEN
      PRINT {"ARIAL",10,ITALIC} TAB(4),"Entita nemá žádné reference.",NL;
    END
    PRINT NL;
  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\22832.htm (C) microTOOL GmbH 2002