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
List_Relationships
(ER Model)


Vytvořeno: 12-11-1995 11:00:32
Poslední změna: 01-10-2003 10:48:00

Outputs a list of all relationships between entity types shown in the specified ER model. Information is printed about the type, cardinality, and the entity types connected by the relationships.

Modul

Module: ER Model

Zdrojový kód:

PROCEDURE List_Relationships FOR ERAREA
BEGIN
/*
  list relationships and entity types
*/

  first%=0;
  FOREACH Entity ORDER BY Name DO
    FOREACH Erconnection WHERE Erconnection.Entity=Entity.Name
                           AND NOT Erconnection.Cardinality="ge" DO
      FOR Rship WHERE Rship.Id=Erconnection.Rship DO
        FOREACH Rnode WHERE Rnode.Area=Erarea.Name
                        AND Rnode.Rship=Rship.Id DO

          IF first%=0 THEN
            PRINT {BOLD,"ARIAL",12} "Vztahy v ER modelu ";
            PRINT {BOLD,"ARIAL",ITALIC,12} CONV$(Erarea.Boxname),NL;
            first%=1;
          END

          PRINT {"ARIAL",10} NL,CONV$(Entity.Boxname);
          IF Erconnection.Name<>"" THEN
            PRINT {"ARIAL",10,BOLD} " ",CONV$(Erconnection.Name)," ";
          ELSIF Erconnection.Cardinality="as" THEN
            PRINT {"ARIAL",10,BOLD} " popisuje vztah mezi ";
          ELSIF Erconnection.Cardinality="sz" THEN
            PRINT {"ARIAL",10,BOLD} " specifikuje ";
          ELSE
            PRINT {"ARIAL",10,BOLD} " má vztah k ";
          END
          c%=0;
          FOREACH Erconnection AS EC WHERE EC.Rship=Rship.Id
                                     AND NOT EC.Entity=Erconnection.Entity
                                     AND NOT EC.cardinality="as"
                                     AND NOT EC.cardinality="sz" DO
            FOR Entity WHERE Entity.Name=EC.Entity DO
              IF c%>0 THEN
                PRINT {"ARIAL",10} " a ";
              END
              PRINT {"ARIAL",10} CONV$(Entity.Boxname);
            END
            c%=c%+1;
          END
          PRINT NL;
          IF Erconnection.Cardinality<>"as"
             AND Erconnection.Cardinality<>"sz" THEN
             PRINT {"ARIAL",8} TAB(4),"Cardinalita:",TAB(25),"1:",Erconnection.Cardinality,NL;
          END

        END
      END
    END
  END

  IF first%=0 THEN
    PRINT {BOLD,"ARIAL",10} "ER model ";
    PRINT {BOLD,"ARIAL",ITALIC,10} CONV$(Erarea.Boxname)," neobsahuje žádné vztahy",NL(2);
  ELSE
    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\15991.htm (C) microTOOL GmbH 2002