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
FSD_FuncListPrintFSDTree
(Function Structure)


Vytvořeno: 01-17-1997 17:01:25
Poslední změna: 12-04-2002 10:19:18

Output in RTF-format: Draws the entire tree of the function structure with explanatory text at the functions.

Modul

Module: Function Structure

Zdrojový kód:

PROCEDURE FSD_FuncListPrintFSDTree(fList$, mitInfo%, onlyFSD%)
BEGIN
     /*
        pre: flist$ contains functions in hierarchical order
        post: the functions will be printed with the following infos
              FSD, if function is a FSD
              STD, if function is a STD
              IFD, if an IFD exists
              DLG, if function is a control function
              CTRL, if function is a control function
              DSGN, if function is implemented
    */

   
    WHILE fList$ <> "" DO
        funcsep% = INSTR (fList$, "@");
        itemsep% = INSTR (fList$, "~");
        func$ = Left$(fList$, funcsep%-1);
        levelstr$ = MID$ (fList$, funcsep%+1, itemsep% - funcsep% - 1);
        level% = VAL(levelstr$);
        maxlen% = Len(fList$);
        fList$= RIGHT$ (fList$, maxlen% - itemsep%);


        IF level% > 0 THEN
            // Print lines and corners
            curmaxpos% = maxlen%;
            curlevel%=1;
            SET STYLE {"Courier New", RTF, 16};
            // find line type
            WHILE curlevel% < level% DO
                    pos% = INSTR(fList$, "@"+Str$(curlevel%)+"~");
                    IF pos% > 0 AND pos% < curmaxpos% THEN
                        PRINT "\u9474\'a6", " "; //CHR$ (179)
                        curmaxpos% = pos%;
                    ELSE
                        PRINT " ";
                    END
                curlevel%=curlevel%+1;
            END
            
            //find corner type
            pos% = INSTR(fList$, "@"+Str$(curlevel%)+"~");
            IF pos% > 0 AND pos% < curmaxpos% THEN
                PRINT "\u9500\'2b";
            ELSE
                PRINT "\u9492\'2b";
            END
            PRINT "\u9472\'2d\u9472\'2d";
        
            // Zeilenabstand verkleinern
            PRINT "\sl-280";
            PRINT "\slmult0";
                      
        END


    // Namen der Funktion wie eingegeben
    FOR Function WHERE Name=func$ DO
        PRINT {"Arial", 9, BOLD} " ", CONV$ (Boxname), " ";
    END
    // welche besonderen Eigenschaften hat die Funktion?
    // DLG? (Dialogfunktion)
    // DAT? (Verarbeitungsfunktion)
    // CTRL? (Steuerfunktion)
    // STD? (Standardbaustein)
    IF mitInfo%<>0 THEN
        FOR Function WHERE Name=func$ DO
            // PRINT "Type: ";
            IF Type="" THEN
                //PRINT " DAT";
            ELSIF Type="cp" THEN
                PRINT {"Arial", 8, BOLD, BROWN} " CTRL";
            ELSIF Type="dg" THEN
                PRINT {"Arial", 8, BOLD, DARKGREEN} " DLG";
            END
            IF Reusable<>0 THEN
                PRINT {"Arial", 8, BOLD, TURQUOISE} "STD";
            END
        END
        // FSD?
        IF onlyFSD% = 0 THEN
            FOR Functionstructure WHERE Name=func$ DO
                PRINT {"Arial", 8, BOLD, DARKRED} " FSD";
            END
        END
        // IFD?
        FOR Informationflow WHERE Name=func$ DO
            PRINT {"Arial", 8, BOLD, DARKBLUE} " IFD";
        END
        // DSGN ?
        FOR Implementation WHERE Function=func$ DO
            PRINT {"Arial", 8, BOLD, MAGENTA} " DSGN";
        END
    END
    CALL FSD_NL_Join (1);
  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\20166.htm (C) microTOOL GmbH 2002