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
Relrship
(Web Publishing)


Vytvořeno: 02-11-2002 14:26:12
Poslední změna: 01-10-2003 13:19:51

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Relrship(Name$,Boxname$, Object%)
BEGIN

    foundsomething! = FALSE;
    FOR Relrship WHERE Name = Name$ AND Object = Object% DO
        foundsomething! = TRUE;
        CALL Header ("Relační vztah - " + Name$);
        
        FOR Relation AS R1 WHERE R1.Name = Relrship.Source DO
            Source$ = conv$(R1.Boxname);
        END
        FOR Relation AS R2 WHERE R2.Name = Relrship.Target DO
            Target$ = Conv$(R2.Boxname);
        END
 
        CALL Title3 ("Relační vztah v relačním modelu", Source$, Boxname$, Target$);

    END

    IF NOT foundsomething! THEN
        CALL Header ("Relační vztah - " + Name$);
        CALL Title ("Relační vztah v relačním modelu", Boxname$);
    END

    IF foundsomething! THEN
        FOR Relrship WHERE Name = Name$ AND Object = Object% DO
            CALL GenObjectData(Object, TRUE, TRUE);
            FOR Object WHERE ID = Relrship.Object DO
                CALL GetSystemProperty("WebPubDescriptionPage", sepPage$);
                  IF Semantic <> "" THEN
                  PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
                    IF sepPage$ = "TRUE" THEN
                      PRINT {HTML} Anchor$("<B>popis</B>", "", "desc" + Str$(Relrship.Object) + ".htm");
                      PRINT {HTML} "<BR>",NL;
                    ELSE
                      IF Semantic <> "" THEN
                        dummy$ = Semantic;
                        PRINT dummy$;
                        PRINT {HTML} "<BR>",NL;
                      END
                    END
                  END
 
                PRINT {HTML} "</TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " </TR>",NL;
            END
            
            PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
            CALL H2_TopSpaceless ("Vlastnosti");
            
            PRINT {HTML} "<TABLE BORDER=0 WIDTH=620 NOWRAP VALIGN=BASELINE>", NL;
            PRINT {HTML} " <TR>", NL;
            PRINT {HTML} " <TD VALIGN=TOP WIDTH=""180""></TD>", NL;
            PRINT {HTML} " <TD VALIGN=TOP WIDTH=""120""></TD>", NL;
            PRINT {HTML} " <TD VALIGN=TOP WIDTH=""250""></TD>", NL;
            PRINT {HTML} " </TR>", NL;
            PRINT {HTML} " <TR>", NL;
            
                foundrelation! = FALSE;
            FOR Relation AS R1 WHERE R1.Name = Relrship.Source DO
                PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                PRINT {BOLD} "Zdrojová relace", NL(2);
                PRINT {HTML} Anchor$("<B>" + Conv$(R1.Boxname) + "</B>", "", Str$(Object) + ".htm");
                PRINT NL(2);
                foundrelshipattrib! = FALSE;
                FOREACH Relrshipattribute WHERE Source = Relrship.Source
                                        AND Rship = Relrship.Name
                                        ORDER BY Sourceattribute DO
                    PRINT {BOLD} "Primární ", NL;
                    PRINT Sourceattribute;
                    PRINT {HTML} "</FONT></TD>", NL;
                END
                 // Ausgabe der Kardinalität
                PRINT {HTML} " <TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                PRINT {BOLD} "Kardinalita", NL(2);
                IF Relrship.Cardinality="11" THEN
                  img$="Pfeil1.gif";
                  car$ = "1 : 1";
                ELSIF Relrship.Cardinality="1m" THEN
                  img$="Pfeil2.gif";
                  car$ = "1 : CN";
                ELSIF Relrship.Cardinality="1c" THEN
                  img$="Pfeil3.gif";
                  car$ = "1 : C";
                ELSIF Relrship.Cardinality="cc" THEN
                  img$="Pfeil4.gif";
                  car$ = "C : C";
                ELSIF Relrship.Cardinality="1x" THEN
                  img$="Pfeil5.gif";
                  car$ = "1 : N";
                ELSIF Relrship.Cardinality="cx" THEN
                  img$="Pfeil6.gif";
                  car$ = "C : N";
                ELSIF Relrship.Cardinality="c1" THEN
                  img$="Pfeil7.gif";
                  car$ = "C : 1";
                ELSIF Relrship.Cardinality="cm" THEN
                  img$="Pfeil8.gif";
                  car$ = "C : CN";
                ELSIF Relrship.Cardinality="mm" THEN
                  img$="Pfeil9.gif";
                  car$ = "CN : CN";
                ELSIF Relrship.Cardinality="mx" THEN
                  img$="Pfeil10.gif";
                  car$ = "CN : N";
                ELSIF Relrship.Cardinality="xm" THEN
                  img$="Pfeil11.gif";
                  car$ = "N : CN";
                ELSIF Relrship.Cardinality="xx" THEN
                  img$="Pfeil12.gif";
                  car$ = "N : N";
                ELSE
                  img$=Relrship.Cardinality; //broken link in case of error
                END
                PRINT Car$, NL;
                PRINT {HTML} "<IMG SRC=""",img$, """</TD>";
            END
                           
            FOR Relation AS R2 WHERE R2.Name = Relrship.Target DO
                PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                PRINT {BOLD} "Cílová relace", NL(2);
                PRINT {HTML} Anchor$("<B>" + Conv$(R2.Boxname) + "</B>", "", Str$(Object) + ".htm");
                PRINT NL(2);
                foundrelshipattrib! = FALSE;
                FOREACH Relrshipattribute WHERE Target = Relrship.Target
                                        AND Rship = Relrship.Name
                                        ORDER BY Targetattribute DO
                foundrelshipattrib! = TRUE;
                PRINT {BOLD} "Cizí", NL;
                
                    IF Targetattribute <> "" THEN
                        PRINT Targetattribute;
                    ELSE
                        PRINT {HTML} "není určeno";
                    END
                    PRINT {HTML} "</FONT></TD>", NL;
                END
                
                PRINT {HTML} "</TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " </TR>",NL;
               
                //new row - list all integrity rules
                PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                PRINT {HTML} "<BR><B>Pravidla integrity:</B><BR><BR>";

                Bits$ = "";
                CALL Number2Bitmask(Relrship.Integrity, Bits$);
                IF Mid$(Bits$, 1, 1) = "1" THEN
                  PRINT "delete(cascades)", NL;
                ELSIF Mid$(Bits$, 2, 1) = "1" THEN
                  PRINT "delete(restricted)", NL;
                ELSIF Mid$(Bits$, 3, 1) = "1" THEN
                  PRINT "delete(nullifies)", NL;
                END
                IF Mid$(Bits$, 4, 1) = "1" THEN
                  PRINT "update(cascades)", NL;
                ELSIF Mid$(Bits$, 5, 1) = "1" THEN
                  PRINT "update(restricted)", NL;
                ELSIF Mid$(Bits$, 6, 1) = "1" THEN
                  PRINT "update(nullifies)", NL;
                END

                PRINT {HTML} "</TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " <TD></TD>",NL;
                PRINT {HTML} " </TR>", NL;
            END
            PRINT {HTML} "</TABLE>", NL;
            
            PRINT NL;
            PRINT {HTML} "<TABLE NOWRAP VALIGN=BASELINE>",NL;
            //technical name
            PRINT {HTML} " <TR>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "<B>Technický název:</B></FONT></TD>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "<I>", Id , "</I></FONT></TD>",NL;
            PRINT {HTML} " </TR>",NL;
            //Implementation
            PRINT {HTML} " <TR>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "<B>Implementace:</B></FONT></TD>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            IF Private THEN
                PRINT {HTML} "<I>ano</I></FONT></TD>",NL;
            ELSE
                PRINT {HTML} "<I>ne</I></FONT></TD>",NL;
            END
            PRINT {HTML} " </TR>",NL;
            //end of table
            PRINT {HTML} "</TABLE>",NL;
            
            PRINT {HTML} "</TD>",NL;
            PRINT {HTML} " <TD></TD>",NL;
            PRINT {HTML} " <TD></TD>",NL;
            PRINT {HTML} " </TR>", NL;
            
            FOR Relrship WHERE Name = Name$ AND Object = Object% DO
                PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
                CALL GenUserdefinedProperties(Object);
            END
            
        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\228352404.htm (C) microTOOL GmbH 2002