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
CrossReferenceCall
(Miscellaneous Evaluating Functions)


Vytvořeno: 12-03-1996 11:18:30
Poslední změna: 12-04-2002 14:17:19

Output of function calls in a function or in all functions of a language and a type.

Modul

Module: Miscellaneous Evaluating Functions

Zdrojový kód:

PROCEDURE CrossReferenceCall(Language$, Type$, Name$)
BEGIN
/* Outputs the function calls in the selected functions.
    
    Language$ Values:
                    C, COBOL, DRIVE, SQL, BASIC, ADA, JCL and JAVA
                    QUERY for evaluation functions
                    "" for all functions
    Type$ Type of Component of the function
                    Values:
                    Global 000
                    (in Modulstructures:)
                    Callback cbk
                    Module Structure/Module/Program mod
                    Module Head/Program Head cmt
                    Function/Procedure/Subroutine fdt
                    Dialog/Form fdt
                    Reference to Relation end
                    Reference to Type Structure dde
                    Reference to Module usa
                    Declaration/Variable/Typedefinition dec
                    (Language SQL:)
                    Data Base dba
                    Relation rla
                    Index idx
                    Type Structure tsd
                    Type Structure: Type/Attribute field tfi
                    Type Structure: Condition tco
                    Type Structure: Relation Reference rlp
                    Type Structure: Part tpa
                    (for Evaluation functions/QUERY:)
                    Configuration cfg
                    Data Base dba
                    Data Element dat
                    Data Structure/Event/Material dsd
                    Entity Type ent
                    ER Model erm
                    External Interface efa
                    Function fun
                    Function Structure fsd
                    Implementation Tree fdt
                    Information Flow ifd
                    Module Strukture mod
                    Relation rla
                    Relational Model rel
                    Report Structure rep
                    Scenario sce
                    Type Structure tsd
                    State Transition Diagram std
                    all components ""
    Name$ Name of function
*/

    sprachtab% = 35;
    comptab% = 42;
    modtab% = 62;
    
    IF Language$ = "" AND (Type$ <> "" OR Name$ <> "") THEN
        PRINT "Pokud je zvolena komponenta nebo funkce je třeba zadat jazyk!", NL;
    ELSE

        Name$ = UCASE$(Name$);
        Language$ = UCASE$ (Language$);
        Language% = Languageid%(Language$);
        Type$=LCASE$(Type$);
           
        PRINT {"Arial", 12, BOLD} "Funkce volané zvolenou funkcí ", NL(3);
        SET STYLE {"Arial", 10};
    
        FOREACH Format AS f1 WHERE (Language = Language% OR (Language% = 0))
        AND ((Language% <> 0 AND (Type = Type$ OR Type$ = "")) OR (Language% = 0))
        AND ((Language% <> 0 AND (UCASE$(Name) = Name$ OR Name$ = "")) OR (Language% = 0))
        ORDER BY Language, Type, Name DO
    
            SET STYLE {"Arial", 10, BOLD};
            PRINT Name;
            SET STYLE {"Arial", 10, BOLD};
            PRINT TAB(sprachtab%), Languagename$(Language);
            IF Type <> "000" THEN
               PRINT TAB (comptab%), Tablename$(Type);
            END
            PRINT NL;
            
            SET STYLE {"Arial", 10};
                        
            substring$ = Code;
            EXTERN "gencref.dll" CALL GFgetCalls(substring$);
                        // Format substring$: fname1.sprache1.komponente1.extern1;..;fnameN.spracheN.komponenteN.externN;
            pos% = instr(substring$, ";");

            IF pos% = 0 THEN
                PRINT TAB(3), "(žádné se nevolají)";
            END

            WHILE(pos% > 0) DO
                aufruf$ = left$(substring$, pos%);
                len% = len(substring$);
                substring$ = right$(substring$, len% - pos%);
            
                pos1% = instr(aufruf$, ".");
                fname$ = left$(aufruf$, pos1%-1);
                len%= len(aufruf$);
                aufruf$ = right$(aufruf$, len% - pos1%);
     
                pos1% = instr(aufruf$, ".");
                sprache$ = left$(aufruf$, pos1%-1);
                len%= len(aufruf$);
                aufruf$ = right$(aufruf$, len% - pos1%);
                
                pos1% = instr(aufruf$, ".");
                komponente$ = left$(aufruf$, pos1%-1);
                len%= len(aufruf$);
                aufruf$ = right$(aufruf$, len% - pos1%);
     
                pos1% = instr(aufruf$, ";");
                ext$ = left$(aufruf$, pos1%-1);
                pos% = instr(substring$, ";");
                                
                // Output
                PRINT TAB(3), fname$, " ";
                
                IF sprache$ <> "" THEN
                    sprache$=MID$(UCASE$(sprache$), 2, LEN(sprache$)-2);
                    PRINT TAB(sprachtab%),sprache$ , " ";
                ELSE
                    sprache$=Languagename$(Language);
                    PRINT TAB(sprachtab%), sprache$ ;
                END

                IF komponente$ = "" THEN
                    komponente$ = "Global";
                END
                PRINT TAB(comptab%), NAME$(komponente$)," ";
                type$=TableId$(komponente$);
                
                FOR Format WHERE Type=type$ AND Name = fname$
                            AND Language=Languageid%(sprache$) DO
                    PRINT TAB(modtab%), Formatmodule;
                END
                PRINT NL;
            END
            PRINT NL;
        END
    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\11896.htm (C) microTOOL GmbH 2002