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


Vytvořeno: 12-11-1995 11:37:12
Poslední změna: 12-04-2002 11:00:07

Outputs a list of all data structures referenced by the specified information flow as stores or flows.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE List_DataStructures FOR INFORMATIONFLOW
BEGIN
/*
   list all data structures referenced by information flow
*/
  first%=1;
  
  PRINT {BOLD,"ARIAL",12} "Seznam datových struktur použitých v diagramu informačních toků ";
  PRINT {BOLD,"ARIAL",ITALIC,12} CONV$(Informationflow.Boxname),NL(2);

  FOREACH Datastructure AS DSD ORDER BY Name DO
    // data structure as store in IFD?
    IF DSD.Type<>"ma" AND DSD.Type<>"ev" THEN
      is_store%=0;
      // 1. Test: as store?
      FOREACH Store WHERE Ifd=Informationflow.Name
                    AND Datastructure=DSD.Name DO
        is_store%=1;
        BREAK;
      END
      // 2. Test: as Port?
      CALL Is_Port_In_Ifd(DSD.Name, Informationflow.Name, 2, 0, is_port%);
      IF is_port%=1 THEN
        is_store%=is_store%+2;
      END
      
      // data structure as flow label?
      is_info%=0;
      // 1. Test: as flow label between 2 functions?
      FOREACH Funfunflow WHERE Ifd=Informationflow.Name AND Infoname=DSD.Name DO
        is_info%=1;
        BREAK;
      END
      // 2. Test: as flow label?
      IF is_info%=0 THEN
        FOREACH Fundatflow WHERE Ifd=Informationflow.Name AND Infoname=DSD.Name DO
          is_info%=1;
          BREAK;
        END
      END
      // 3. Test:
      IF is_info%=0 THEN
        FOREACH Funifaflow WHERE Ifd=Informationflow.Name AND Infoname=DSD.Name DO
          is_info%=1;
          BREAK;
        END
      END
      // 4. Test:
      IF is_info%=0 THEN
        FOREACH Funefaflow WHERE Ifd=Informationflow.Name AND Infoname=DSD.Name DO
          is_info%=1;
          BREAK;
        END
      END
      // 5. Test:
      IF is_info%=0 THEN
        FOREACH Funportflow WHERE Ifd=Informationflow.Name AND Datastructure=DSD.Name DO
          is_info%=1;
          BREAK;
        END
      END
  
      role$="";
      IF is_info%=1 THEN
        role$="(Flow";
      END
      srole$="";
      IF is_store%=1 THEN
        srole$="Store";
      ELSIF is_store%=2 THEN
        srole$="Port";
      ELSIF is_store%>0 THEN
        srole$="Store, Port";
      END
      IF is_store%>0 THEN
        IF role$="" THEN
          role$="(" + srole$;
        ELSE
          role$=role$ + ", " + srole$;
        END
      END
  
      IF role$<>"" THEN
        role$=role$+")";
        first%=0;
        PRINT {"ARIAL",10} TAB(4),CONV$(DSD.Boxname),TAB(35),role$,NL;
      END
    END
  END

  IF first%=1 THEN
    PRINT {"ARIAL",10,ITALIC} TAB(4), "V diagramu informačních toků nejsou použity žádné datové struktury.", NL;
  END
  PRINT NL;

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\30268.htm (C) microTOOL GmbH 2002