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
RelationalModel_ERModel_Connection_Rships
(Connection ER Model - Relational Model)


Vytvořeno: 09-21-2001 15:15:26
Poslední změna: 11-29-2002 12:48:32

Modul

Module: Connection ER Model - Relational Model

Zdrojový kód:

PROCEDURE RelationalModel_ERModel_Connection_Rships(relArea$, ermArea$, bCheck!)
BEGIN
/* ***************************************************************************
    
    ***************************************************************************
    (Created 09/19/2001 mT)
    ***************************************************************************/

    IF bCheck! THEN
        PRINT {BOLD,"ARIAL",11} "Vztahy relačního modelu bez odpovídajících vztahů ER modelu", NL;
    ELSE
        PRINT {BOLD,"ARIAL",11} "Vztahy relačního modelu a jim odpovídající vztahy ER modelu", NL;
    END

    bOutput! = FALSE;
    FOREACH Relrship ORDER BY Source, Target DO
        
        bErr! = FALSE;
        rsName$ = ""; out2a$ = ""; out2b$ = ""; out3b$ = "";
        FOREACH Rellink WHERE (Rellink.Area = relArea$ OR relArea$ = "")
                          AND Rellink.Source = Relrship.Source
                          AND Rellink.Target = Relrship.Target DO
            
            // Beziehungsname
            CALL GetRelrshipName(Relrship.Source, Relrship.Target, Relrship.Name, rsName$);
            
            IF Relrship.Private THEN
            
                out2b$ = "(pouze v realizaci)";
            
            ELSE
                
                // Verbindung zum ER-Modell
                IF Relrship.Erconnectionno <> 0 THEN
                    ent$ = Relrship.Entity;
                    rsh% = Relrship.Rship;
                    ercno% = Relrship.Erconnectionno;

                    FOR Rship WHERE Id = Relrship.Rship DO
                    
                        IF Rship.Type = 1 THEN
                            // Generalisierung
                            FOR Relation WHERE Name = Relrship.Target DO
                                FOR Erconnection WHERE Entity = Relation.Entity
                                                   AND Rship = Rship.Id DO
                                    
                                    ent$ = Entity;
                                    rsh% = Rship;
                                    ercno% = Erconnectionno;
                                END
                            END
                        
                        END
                    
                    END
                    
                    CALL GetErmRelationshipName(ent$, rsh%, ercno%, out2a$);
                    
                    // Graphische Ausprägung ?
                    IF ermArea$ <> "" THEN
                    
                        bNodeFound! = FALSE;
                        FOR Erlink WHERE Area = ermArea$
                                     AND Entity = ent$
                                     AND Rship = rsh%
                                     AND Erconnectionno = ercno% DO
                            bNodeFound! = TRUE;
                        END
                        IF NOT bNodeFound! THEN
                            bErr! = TRUE;
                            out3b$ = "(v diagamu neexistuje)";
                        END
                     
                    END
                
                ELSE
                
                    bErr! = TRUE;
                    out2b$ = "(nemá odpovídající vztah)";
                
                END
            
            END
            
            IF rsName$ <> "" AND (NOT bCheck! OR bErr!) THEN
                bOutPut! = TRUE;
                PRINT {BOLD,"ARIAL", 10} rsName$;
                IF out2a$ <> "" THEN
                    PRINT {"ARIAL", ITALIC, 10} TAB(32), out2a$, NL;
                END
                IF out2b$ <> "" THEN
                    PRINT {"ARIAL", 10} TAB(32), out2b$, NL;
                END
                IF out3b$ <> "" THEN
                    PRINT {"ARIAL", 10} TAB(32), out3b$, NL;
                END
            END
            
            BREAK;
        END
    END
    
    IF NOT bOutput! THEN
        IF bCheck! THEN
            PRINT {"ARIAL", 11} TAB(4), "Neexistují vztahy bez vazeb.", NL;
        ELSE
            PRINT {"ARIAL", 11} TAB(4), "Neexistují žádné vztahy.", 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\496936470.htm (C) microTOOL GmbH 2002