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


Vytvořeno: 12-11-1995 11:41:32
Poslední změna: 12-04-2002 11:15:14

Outputs a list of all materials referenced by the specified information flow as store or flow.

Modul

Module: Information Flow

Zdrojový kód:

PROCEDURE List_Materials FOR INFORMATIONFLOW
BEGIN
/*
   list material in information flow
*/
  first%=1;
  
  PRINT {BOLD,"ARIAL",12} "Seznam materiálových toků v diagramu informačních toků ";
  PRINT {BOLD,"ARIAL",ITALIC,12} CONV$(Informationflow.Boxname),NL(2);

  FOREACH Datastructure AS DSD WHERE Type="ma" ORDER BY Name DO
    // data structure as store in IFD?
    is_store%=0;
    // 1. Test: as store element in IFD?
    FOREACH Store WHERE Ifd=Informationflow.Name
                  AND Datastructure=DSD.Name DO
      is_store%=1;
      BREAK;
    END
    // 2. Test: as Port in IFD?
    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: ...between 2 functions?
    FOREACH Funfunflow WHERE Ifd=Informationflow.Name AND Infoname=DSD.Name DO
      is_info%=1;
      BREAK;
    END
    // 2. Test:
    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

    // collect roles of data structure
    role$="";
    srole$="";
    IF is_info%=1 THEN
      role$="(tok";
    END
    IF is_store%=1 THEN
      srole$="paměť";
    ELSIF is_store%=2 THEN
      srole$="port";
    ELSIF is_store%>0 THEN
      srole$="paměť, port";
    END
    IF is_store%>0 THEN
      IF role$="" THEN
        role$="(" + srole$;
      ELSE
        role$=role$ + ", " + srole$;
      END
    END

    // used anywhere
    IF role$<>"" THEN
      role$=role$+")";
      first%=0;
      // print name of data structure
      PRINT {"ARIAL",10} TAB(4),CONV$(DSD.Boxname),TAB(35),role$,NL;
    END
  END

  IF first%=1 THEN
    PRINT {"ARIAL",10,ITALIC} TAB(4), "V diagramu nejsou žádné materiálové toky.", 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\30603.htm (C) microTOOL GmbH 2002