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


Vytvořeno: 02-11-2002 14:09:36
Poslední změna: 01-10-2003 13:25:25

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE RelrshipsHelper(RelName$)
BEGIN

    //relationships - done as a large table
        
          
        CALL H2_TopSpaceless("Relační vztahy");
        foundrelship! = FALSE;
        
        FOREACH Relrship WHERE Source = RelName$ DO
            foundrelship! = TRUE;
            BREAK;
        END
        FOREACH Relrship WHERE Target = RelName$ DO
            foundrelship! = TRUE;
            BREAK;
        END

        IF foundrelship! THEN
          
          PRINT {HTML} "<TABLE BORDER=0 WIDTH=620 NOWRAP VALIGN=BASELINE>",NL;
          //dummyrow just for proper formatting the table
          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;
          foundrelship! = FALSE;
           
                FOREACH Relrship WHERE (Source = RelName$ OR Target = RelName$) ORDER BY Source, Target, Name DO
                  counter% = 0;
                    
                      counter% = counter% + 1;
                      IF counter% < 2 THEN
                        //relationship of the two tables to each other
                        //left side (source)
                        FOR Relation WHERE Name = Relrship.Source DO
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
                          PRINT {HTML} Anchor$("<B>" + Conv$(Relation.Boxname) + "</B>","", Str$(Relation.Object) + ".htm");
                          PRINT {HTML} "</FONT></TD>",NL;
                        END
                        //middle (relationship)
                        IF Relrship.Cardinality="11" THEN
                          img$="Pfeil1.gif";
                        ELSIF Relrship.Cardinality="1m" THEN
                          img$="Pfeil2.gif";
                        ELSIF Relrship.Cardinality="1c" THEN
                          img$="Pfeil3.gif";
                        ELSIF Relrship.Cardinality="cc" THEN
                          img$="Pfeil4.gif";
                        ELSIF Relrship.Cardinality="1x" THEN
                          img$="Pfeil5.gif";
                        ELSIF Relrship.Cardinality="cx" THEN
                          img$="Pfeil6.gif";
                        ELSIF Relrship.Cardinality="c1" THEN
                          img$="Pfeil7.gif";
                        ELSIF Relrship.Cardinality="cm" THEN
                          img$="Pfeil8.gif";
                        ELSIF Relrship.Cardinality="mn" THEN
                          img$="Pfeil9.gif";
                        ELSIF Relrship.Cardinality="mx" THEN
                          img$="Pfeil10.gif";
                        ELSIF Relrship.Cardinality="xm" THEN
                          img$="Pfeil11.gif";
                        ELSIF Relrship.Cardinality="xx" THEN
                          img$="Pfeil12.gif";
                        ELSE
                          img$=Relrship.Cardinality; //broken link in case of error
                        END
                        PRINT {HTML} " <TD ALIGN=CENTER><IMG SRC=""",img$, """</TD>",NL;
                        //right side (target)
                        FOR Relation WHERE name=Relrship.Target DO
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
                          PRINT {HTML} Anchor$("<B>" + Conv$(Relation.Boxname) + "</B>","", Str$(Relation.Object) + ".htm");
                          PRINT {HTML} "</FONT></TD>",NL;
                        END
                    
                        //start next row with detail information about the name of relationship (in the middle)
                        PRINT {HTML} " <TR>",NL;
                        PRINT {HTML} " <TD></TD>",NL;
                        PRINT {HTML} " <TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                        PRINT {HTML} Anchor$("<B>" + Conv$(Relrship.Boxname) + "</B>","", Str$(Relrship.Object) + ".htm");
                        PRINT {HTML} "</FONT></TD>",NL;
                        PRINT {HTML} " <TD></TD>",NL;
                        PRINT {HTML} " </TR>",NL;
                    
                        //another new row - this time with the headlines for the primary and foreign keys
                        PRINT {HTML} " <TR>",NL;
                        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                        PRINT {HTML} "<B>Primární</B>";
                        PRINT {HTML} "</FONT></TD>",NL;
                        PRINT {HTML} " <TD></TD>",NL;
                        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                        PRINT {HTML} "<B>Cizí</B>";
                        PRINT {HTML} "</FONT></TD>",NL;
                        PRINT {HTML} " </TR>",NL;
                    
                        //new row - list all source and target attributes
                        foundrelshipattrib! = FALSE;
                        FOREACH Relrshipattribute WHERE Source = Relrship.Source
                                                    AND Target = Relrship.Target
                                                    AND Rship = Relrship.Name
                                                    ORDER BY Targetattribute DO
                          foundrelshipattrib! = TRUE;
                          PRINT {HTML} " <TR>",NL;
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          PRINT Sourceattribute;
                          PRINT {HTML} "</FONT></TD>",NL;
                          PRINT {HTML} " <TD></TD>",NL;
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          IF Targetattribute <> "" THEN
                            PRINT Targetattribute;
                          ELSE
                            PRINT {HTML} "není určeno";
                          END
                          PRINT {HTML} "</FONT></TD>",NL;
                          PRINT {HTML} " </TR>",NL;
                        END
                        IF NOT foundrelshipattrib! THEN
                          PRINT {HTML} " <TR>",NL;
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          PRINT {HTML} "není určeno";
                          PRINT {HTML} "</FONT></TD>",NL;
                          PRINT {HTML} " <TD></TD>",NL;
                          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
                          PRINT {HTML} "není určeno";
                          PRINT {HTML} "</FONT></TD>",NL;
                          PRINT {HTML} " </TR>",NL;
                        END
                     
                        //new row - list all integrity rules
                        PRINT {HTML} " <TR>",NL;
                        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;
                        
                        //new, but last row - this time a small horizontal ruler
                        PRINT {HTML} " <TR>",NL;
                        PRINT {HTML} " <TD COLSPAN=3>";
                        PRINT {HTML} "<HR SIZE=1 NOSHADE COLOR=""#3366cc"">";
                        PRINT {HTML} "</TD>",NL;
                        PRINT {HTML} " </TR>",NL;
                      END
                    
                  
               END
            
          
          PRINT {HTML} "</TABLE>",NL;
        ELSE
          PRINT {HTML} "Vztahy mezi relacemi nelze zobrazit.<BR>",NL;
        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\666413347.htm (C) microTOOL GmbH 2002