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


Vytvořeno: 04-15-1997 15:07:26
Poslední změna: 12-19-2002 10:37:50

Outputs detailed information about the given data structure.

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Datastructure(name$)
BEGIN

  //IMPORTANT NOTE: Events and materials are NOT covered here
  
  foundsomething! = FALSE;
  FOR Datastructure WHERE Name=name$ AND Type = "" DO
    foundsomething! = TRUE;
    CALL Header("Datová struktura - " + Conv$(Boxname));
    CALL Title ("Datová struktura", Conv$(Boxname));
  END

  //display a dummy title if the data elem does not exist
  IF NOT foundsomething! THEN
    CALL Header("Datová struktura - " + name$);
    CALL Title ("Datová struktura", name$);
  END

  IF foundsomething! THEN
    FOR Datastructure WHERE Name=name$ AND Type = "" DO
    
      //display image(s) along with their image maps
      CALL DatastructureMap(Name, 1, PageWasGenerated!);
      PRINT {HTML} Anchor$( "", "DPage1", "#DPage1");
      CALL Long2IDString(Object, id$);
      PRINT {HTML} "<P ALIGN=CENTER><IMG SRC=1-" + id$ + ".png BORDER=0 USEMAP=""#map_page1""></P>", NL;
      firstPage! = TRUE;
      FOREACH Dpage WHERE Datastructure = Datastructure.Name ORDER BY Page DO
        IF firstPage! THEN // generate page numbers only for more than one page
          PRINT {HTML} "<P ALIGN=CENTER><I>Stránka diagramu 1</I></P>", NL;
          firstPage! = FALSE;
        END
        CALL DatastructureMap(Datastructure, Page, PageWasGenerated!);
        PRINT {HTML} Anchor$( "", "DPage"+Str$(Page), "#DPage" + Str$(Page));
        CALL PageNo2IDString(Page, pageid$);
        PRINT {HTML} "<P ALIGN=CENTER><IMG SRC=" + pageid$ + "-" + id$ + ".png BORDER=0";
        IF PageWasGenerated! THEN
          PRINT {HTML} " USEMAP=""#map_page", Page ,"""";
        END
        PRINT {HTML} "></P>",NL;
        PRINT {HTML} "<P ALIGN=CENTER><I>Stránka diagramu "+ Str$(Page) + "</I></P>", NL;
      END
      
      //general object data
      CALL GenObjectData(Object, TRUE, TRUE);
      PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;

      //description of the object, if avialable
      FOR Field WHERE Datastructure = Datastructure.Name AND X = 286 AND Y = 15 AND Page = 1 AND hasText DO
        CALL GetSystemProperty("WebPubDescriptionPage", sepPage$);
        IF sepPage$ = "TRUE" THEN
          PRINT {HTML} Anchor$("<B>Popis</B>", "", "desc" + Str$(Datastructure.Object) + ".htm");
          PRINT {HTML} "<BR>",NL;
          PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
        ELSE
          IF Text <> "" THEN
            dummy$ = Text;
            PRINT dummy$;
            PRINT {HTML} "<BR>",NL;
            PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
          END
        END
      END

      //two column table with userdefined properties of the element - one line per property
      CALL GenUserdefinedProperties(Object);
      
      //list of all data fields
      CALL H2_TopSpaceless("Datové položky");
      founddata! = FALSE;
      FOREACH Field WHERE Datastructure = Datastructure.Name DO
        founddata! = TRUE;
        BREAK;
      END
      IF founddata! THEN
        PRINT {HTML} "<TABLE NOWRAP VALIGN=BASELINE>",NL;
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial""><B>Name</B></FONT></TH>",NL;
        PRINT {HTML} " <TH VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><B>atribut</B></FONT></TH>",NL;
        PRINT {HTML} " <TH VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><B>datový element</B></FONT></TH>",NL;
        PRINT {HTML} " </TR>",NL;
        FOREACH Field WHERE Datastructure = Datastructure.Name DO
          //dataelem or attribute of an entity
          PRINT {HTML} " <TR>",NL;
        
          //name
          PRINT {HTML} " <TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<IMG SRC=""bullet.gif""> ";
          PRINT {HTML} "</FONT></TD>",NL;
          PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT Conv$(Boxname);
          PRINT {HTML} "</FONT></TD>",NL;
        
          //data
          IF Data <> "" THEN
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><CENTER>-</CENTER></FONT></TD>";
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><CENTER>";
            FOR Data WHERE Name = Field.Data DO
              PRINT {HTML} Anchor$(Boxname, "", Str$(Object) + ".htm");
            END
            PRINT {HTML} "</CENTER></FONT></TD>",NL;

          ELSIF Entity <> "" THEN
            //link to attribute + link to entity
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><CENTER>";
            FOR Attribute WHERE Attribute.Name = Field.Attribute
                          AND Attribute.Entity = Field.Entity DO
              PRINT {HTML} Anchor$( Attribute.Name, "", Str$(Object) + ".htm");
            END
            PRINT " (";
            FOR Entity WHERE Name = Field.Entity DO
              PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
            END
            PRINT ")";
            PRINT {HTML} "</CENTER></FONT></TD>", NL;
            
            //data elem is the associated one to the attribute
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""></FONT></TD>", NL;
          ELSE
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><CENTER>-</CENTER></FONT></TD>", NL;
            PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><CENTER>-</CENTER></FONT></TD>", NL;
          END
          
          PRINT {HTML} " </TR>", NL;
        END
        PRINT {HTML} "</TABLE>",NL;
      ELSE
        PRINT {HTML} "Datová struktura neobsahuje žádné položky.<BR>",NL;
      END
      
      //entities
      CALL H2("Reference na entity");
      foundent! = FALSE;
      FOREACH Entitypart WHERE Datastructure = Datastructure.Name DO
        foundent! = TRUE;
        BREAK;
      END
      IF foundent! THEN
        PRINT {HTML} "<TABLE NOWRAP VALIGN=BASELINE>",NL;
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial""><B>Name</B></FONT></TH>",NL;
        PRINT {HTML} " <TH VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><B>reference</B></FONT></TH>",NL;
        PRINT {HTML} " </TR>",NL;
        FOREACH Entitypart WHERE Datastructure = Datastructure.Name ORDER BY Entitypart.Entity DO
          PRINT {HTML} " <TR>",NL;
        
          //name
          PRINT {HTML} " <TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<IMG SRC=""bullet.gif""> ";
          PRINT {HTML} "</FONT></TD>",NL;
          PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT Conv$(Boxname);
          PRINT {HTML} "</FONT></TD>",NL;
        
          //references
          PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          FOR Entity WHERE Name = Entity DO
            PRINT {HTML} Anchor$("<B> " + Conv$(Boxname) + "</B>", "", Str$(Object) + ".htm");
          END
          PRINT {HTML} "</FONT></TD>",NL;

          PRINT {HTML} " </TR>",NL;
        END
        PRINT {HTML} "</TABLE>";
      ELSE
        PRINT {HTML} "Datová struktura neobsahuje žádné reference na entity.<BR>",NL;
      END
      
      // parts
      CALL H2("Reference na datové struktury (party)");
      founddpart! = FALSE;
      FOREACH Dpart WHERE Datastructure = Datastructure.Name DO
        founddpart! = TRUE;
        BREAK;
      END
      IF founddpart! THEN
        PRINT {HTML} "<TABLE NOWRAP VALIGN=BASELINE>",NL;
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial""><B>Name</B></FONT></TH>",NL;
        PRINT {HTML} " <TH VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><B>reference</B></FONT></TH>",NL;
        PRINT {HTML} " </TR>",NL;
        FOREACH Dpart WHERE Datastructure = Datastructure.Name ORDER BY Dpart.Dpartname DO
          PRINT {HTML} " <TR>",NL;
        
          //name
          PRINT {HTML} " <TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<IMG SRC=""bullet.gif""> ";
          PRINT {HTML} "</FONT></TD>",NL;
          PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT Conv$(Boxname);
          PRINT {HTML} "</FONT></TD>",NL;
          
          //references
          PRINT {HTML} " <TD VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          FOR Datastructure WHERE Name = Dpart.Dpartname DO
            PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
          END
          PRINT {HTML} "</FONT></TD>",NL;
          
          PRINT {HTML} " </TR>",NL;
        END
        PRINT {HTML} "</TABLE>";
      ELSE
        PRINT {HTML} "Datová struktura neobsahuje žádné reference na další datové struktury (party).<BR>",NL;
      END
      
      //associated type structure
      PRINT {HTML} "<BR>",NL;
      CALL H2_TopSpaceless("Od povídající typové struktury");
      foundtsd! = FALSE;
      FOR Typestructure WHERE Typestructure.Datastructure = Datastructure.Name DO
        foundtsd! = TRUE;
        PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
        PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm"), "<BR>",NL;
      END
      IF NOT foundtsd! THEN
        PRINT {HTML} "Datová struktura nemá odpovídající typovou strukturu.", "<BR>", NL;
      END

    END
  ELSE
    CALL H2_Spaceless("Neexistuje datová struktura daného jména.");
    PRINT {HTML} "<BR>",NL;
  END

  CALL Footer("");
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\11488.htm (C) microTOOL GmbH 2002