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


Vytvořeno: 02-11-2002 15:26:22
Poslední změna: 01-10-2003 13:39:52

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Rship(Name$, Id%)
BEGIN

                foundsomething! = FALSE;
    FOR Rship WHERE Name = Name$ AND Id = Id% DO
        foundsomething! = TRUE;
        CALL Header ("Relační vztah - " + Name$);
        CALL Title4 ("Relační vztah v ER modelu", Name$, ID%);
    END

    IF NOT foundsomething! THEN
        CALL Header ("Relační vztah - " + Name$);
        CALL Title4 ("Relační vztah v ER modelu", Name$, ID%);
    END
    
    IF foundsomething! THEN
        FOR Rship WHERE Name = Name$ AND Id = Id% DO
            CALL GenObjectData(Object, TRUE, TRUE);
            FOR Object WHERE ID = Rship.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$(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 CELLPADDING=2 VALIGN=BASELINE NOWRAP>", NL;
            PRINT {HTML} " <TR>", NL;
            PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">Od entity</FONT></TH>", NL;
            PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">Pravidlo</FONT></TH>", NL;
            PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">Kardinalita</FONT></TH>",NL;
            PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">K entitě</FONT></TH>",NL;
            
            PRINT {HTML} " </TR>",NL;
            
            FOREACH Rship WHERE Name = Name$ AND Id = Id% DO
                FOREACH Rnode WHERE Rship = Rship.Id DO
                    FOR Erarea WHERE Name = Rnode.Area DO
                        FOREACH Enode WHERE Enode.Area = Erarea.Name DO
                            FOR Entity WHERE Entity.Name = Enode.Entity DO
                                FOREACH Erconnection WHERE Erconnection.Entity = Entity.Name
                                        AND Erconnection.Rship = Rship.Id
                                        AND NOT Erconnection.Cardinality = "ge" DO
                                    FOR Rship WHERE Rship.Id=Erconnection.Rship DO
                                        FOR Rnode WHERE Rnode.Area = Erarea.Name
                                                AND Rnode.Rship = Rship.Id DO

                                            PRINT {HTML} " <TR>", NL;
                                            
                                            first% = 1;
                                            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP WIDTH=""150""><FONT SIZE=2 FACE=""Verdana, Arial"">";
                                            PRINT {HTML} Anchor$("<B>" + Conv$(Entity.Boxname) + "</B>", "", Str$(Entity.Object) + ".htm");
                                            PRINT {HTML} "</FONT></TD>", NL;
                                            
                                            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP WIDTH=""250""><FONT SIZE=2 FACE=""Verdana, Arial"">";
                                            IF Erconnection.Name <> "" THEN
                                                PRINT {BOLD} Conv$(Erconnection.Name); PRINT NL;
                                            ELSIF Erconnection.Cardinality="as" THEN
                                                PRINT {BOLD} " popisuje vztah mezi "; PRINT NL;
                                            ELSIF Erconnection.Cardinality="sz" THEN
                                                PRINT {BOLD} " specializuje "; PRINT NL;
                                            ELSE
                                                PRINT {BOLD} " má vztah k "; PRINT NL;
                                            END
                                                               
                                            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP WIDTH=""120""><FONT SIZE=2 FACE=""Verdana, Arial"">";
                                            IF Erconnection.Name <> "" THEN
                                                PRINT Cardinality;
                                            ELSIF Erconnection.Cardinality = "as" THEN
                                                PRINT "-";
                                            ELSIF Erconnection.Cardinality = "sz" THEN
                                                PRINT "-";
                                            ELSE
                                                PRINT {ITALIC} "<není určeno>";
                                            END
                                            PRINT {HTML} "</FONT></TD>", NL;
                                            
                                            c% = 0;
                                            
                                            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP WIDTH=""180""><FONT SIZE=2 FACE=""Verdana, Arial"">";
                                            FOREACH Erconnection AS EC WHERE EC.Rship=Rship.Id
                                                    AND NOT EC.Entity=Erconnection.Entity
                                                    AND NOT EC.cardinality="as"
                                                    AND NOT EC.cardinality="sz" DO
                                                FOR Entity WHERE Entity.Name=EC.Entity DO
                                                    IF c%>0 THEN
                                                        PRINT " a ";
                                                    END
                                                    PRINT Conv$(Entity.Boxname);
                                                END
                                            c% = c% + 1;
                                            END
                                            PRINT {HTML} " </TR>",NL;
                                            IF Erconnection.hasText THEN
                                                dummy$ = Text;
                                                PRINT {HTML} "<TR>";
                                                PRINT {HTML} "<TD></TD>";
                                                PRINT {HTML} "<TD COLSPAN=""3""><FONT SIZE=2 FACE=""Verdana, Arial"">";
                                                PRINT {HTML} "<B>Popis: </B><BR>", NL;
                                                PRINT dummy$;
                                                PRINT {HTML} "</TD>";
                                                PRINT {HTML} "</TR>";
                                            END
                                            
                                        END
                                    END
                                END
                            END
                        END
                    END
                END
                PRINT {HTML} "</TABLE>", NL, "<BR>", NL;
            END
            
            //Implementation
            PRINT {HTML} " <TR>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "<B>Problem domain:</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;
            
            PRINT NL;
            PRINT {HTML} " <TR>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "<B>Reference na relaci:</B></FONT></TD>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            
            foundsomething! = FALSE;
            
            FOREACH Relation WHERE Rship = Rship.Id DO
                foundsomething! = TRUE;
                PRINT {HTML} "<I>"" Conv$(Relation.Boxname)""</I></FONT></TD>",NL;
            END
            
            IF NOT Foundsomething! THEN
                PRINT {HTML} "<I>nemá referenci</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 Rship WHERE Name = Name$ AND Id = Id% 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\63378931.htm (C) microTOOL GmbH 2002