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


Vytvořeno: 03-05-1997 11:25:14
Poslední změna: 01-14-2003 13:15:49

Outputs detailed information about the given data element.

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Data(name$)
BEGIN

  foundsomething! = FALSE;
  FOR Data WHERE Name = name$ DO
    foundsomething! = TRUE;
    CALL Header("Datový element - " + Boxname);
    CALL Title ("Datový element", Boxname);
  END

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

  IF foundsomething! THEN
    FOR Data WHERE Name = name$ DO
      DataBoxname$ = Boxname;
    
      //general object data
      CALL GenObjectData(Object, TRUE, TRUE);
      PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;

      //description of the object, if avialable
      IF hasText THEN
        CALL GetSystemProperty("WebPubDescriptionPage", sepPage$);
        IF sepPage$ = "TRUE" THEN
          PRINT {HTML} Anchor$("<B>Popis</B>", "", "desc" + Str$(Data.Object) + ".htm");
          PRINT {HTML} "<BR>",NL;
          PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
        ELSE
          IF Semantic <> "" THEN
            dummy$ = Semantic;
            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);

      //spezialization / generalization
      CALL H2_TopSpaceless("Generalizace");

      SuperData$ = Super;
      foundspez! = FALSE;
      IF SuperData$ <> "" THEN
        FOR Data WHERE Name = SuperData$ DO
          foundspez! = TRUE;
          PRINT {HTML} "Datový element je specializací datového elementu ";
          PRINT {HTML} "<I>", Anchor$(Boxname, "", Str$(Object) + ".htm"), "</I><BR>",NL;
        END
      END
      IF NOT foundspez! THEN
          PRINT {HTML} "Datový element není specializací žádného datového elementu.<BR>",NL;
      END
      PRINT {HTML} "<BR>",NL;


      Data$ = Name;
      foundgen! = FALSE;
      FOREACH Data WHERE Super = Data$ DO
        foundgen! = TRUE;
        BREAK;
      END
      IF foundgen! = TRUE THEN
        PRINT {HTML} "Datový element je generalizací datových elementů :<BR><BR>";
        FOREACH Data WHERE Super = Data$ ORDER BY Name DO
          PRINT {HTML} "<img src=""bullet.gif"" ALIGN=""top"">";
          PRINT {HTML} " <I>", Anchor$(Boxname, "", Str$(Object) + ".htm"), "</I><BR>",NL;
        END
      ELSE
        PRINT {HTML} "Datový element není generalizací žádných datových elementů.<BR>",NL;
      END
      PRINT {HTML} "<BR>",NL;

      //defintion attributes of the data elem
      CALL H2_TopSpaceless("Parametry");

      //special data of the data elem - displayed by utilizing a HTML table
      PRINT {HTML} "<TABLE>",NL;

      type$ = Type;
      condition$ = Condition;
      message$ = Message;
      defaultval$ = Defaultvalue;
      picture$ = Picture;
      datavals% = Valuetype;
      widgettype% = Widgettypeno;
      delem_type$ = Name;
      delem_condition$ = Name;
      delem_message$ = Name;
      delem_defaultval$ = Name;
      delem_picture$ = Name;
      delem_datavals$ = Name;
      delem_widgettype$ = Name;

      //before it acutally starts lets quickly determine if this data elem
      //inherits some attributes or not
      IF foundspez! AND Inheritance <> 0 THEN
          CALL FindInheritedDataAttribs( Name, type$, condition$, message$, defaultval$,
                                         picture$, datavals%, widgettype%, delem_type$,
                                         delem_condition$, delem_message$, delem_defaultval$,
                                         delem_picture$, delem_datavals$, delem_widgettype$);
      END

      //type
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<B>Type:</B></FONT></TD>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      IF type$ = "" THEN
        PRINT {HTML} "<I>Nemá typ.</I>";
      ELSE
        PRINT {HTML} "<I>", type$, "</I>";
        IF delem_type$ <> Name THEN
          FOR Data WHERE Name = delem_type$ DO
            PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
          END
        END
      END
      PRINT {HTML} "</FONT></TD>",NL," </TR>",NL;

      //condition - only displayed in case of that the data elem is not an enumeration
      IF ValueType = 0 THEN
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} "<B>Podmínka:</B></FONT></TD>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        IF condition$ = "" THEN
          PRINT {HTML} "<I>Nemá podmínku.</I>";
        ELSE
          PRINT {HTML} "<I>", condition$, "</I>";
          IF delem_condition$ <> Name THEN
            FOR Data WHERE Name = delem_condition$ DO
              PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
            END
          END
        END
        PRINT {HTML} "</FONT></TD>",NL," </TR>",NL;
      END
      
      //message
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<B>Message:</B></FONT></TD>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      IF message$ = "" THEN
        PRINT {HTML} "<I>Nemá message.</I>";
      ELSE
        PRINT {HTML} "<I>", message$, "</I>";
        IF delem_message$ <> Name THEN
          FOR Data WHERE Name = delem_message$ DO
            PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
          END
        END
      END
      PRINT {HTML} "</FONT></TD>",NL," </TR>",NL;
      
      //picture
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<B>Formát:</B></FONT></TD>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      IF picture$ = "" THEN
        PRINT {HTML} "<I>Nemá formát.</I>";
      ELSE
        PRINT {HTML} "<I>", picture$, "</I>";
        IF delem_picture$ <> Name THEN
          FOR Data WHERE Name = delem_picture$ DO
            PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
          END
        END
      END
      PRINT {HTML} "</FONT></TD>",NL," </TR>",NL;
      
      //defaultvalue
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<B>Defaultní hodnota:</B></FONT></TD>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      IF defaultval$ = "" THEN
        PRINT {HTML} "<I>Nemá defaultní hodnotu.</I>";
      ELSE
        PRINT {HTML} "<I>", defaultval$, "</I>";
        IF defaultval$ <> Defaultvalue THEN
          FOR Data WHERE Name = delem_defaultval$ DO
            PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
          END
        END
      END
      PRINT {HTML} "</FONT></TD>",NL," </TR>",NL;
      
      //table extro
      PRINT {HTML} "</TABLE>", NL;
      
      //all sample values / elements of an enumeration
      foundvals! = FALSE;
      Data$ = Name;
      FOREACH DataValue WHERE Data = Data$ DO
        foundvals! = TRUE;
        BREAK;
      END
      PRINT {HTML} "<BR>", NL;
      foundinh! = FALSE;
      IF delem_datavals$ <> Name THEN foundinh! = TRUE; END
      IF foundvals! OR foundinh! THEN
        PRINT {HTML} "<TABLE>",NL;
        PRINT {HTML} " <TR><TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        IF (NOT foundinh! AND ValueType = 0) OR (foundinh! AND datavals% = 0) THEN
          //enumeration
          PRINT {HTML} "Příklady hodnot:";
          IF foundinh! THEN
            FOR Data AS Basedata WHERE Name = delem_datavals$ DO
              PRINT {HTML} "<B> [zděděno od ", Anchor$(Basedata.Boxname, "", Str$(Basedata.Object) + ".htm") ,"]</B>";
              PRINT {HTML} "</FONT></TD></TR>",NL;
              PRINT {HTML} " <TR><TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
              FOREACH DataValue WHERE Data = Basedata.Name ORDER BY POS DO
                PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=""top"">";
                PRINT {HTML} " <I>", Name, "</I><BR>",NL;
              END
            END
          ELSE
            PRINT {HTML} "</FONT></TD></TR>",NL;
            PRINT {HTML} " <TR><TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            FOREACH DataValue WHERE Data = Data$ ORDER BY POS DO
              PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=""top"">";
              PRINT {HTML} " <I>", Name, "</I><BR>",NL;
            END
          END
        ELSE
          //ranged value
          PRINT {HTML} "Rozsah hodnot:";
          IF foundinh! THEN
            FOR Data AS Basedata WHERE Name = delem_datavals$ DO
              PRINT {HTML} "<B> [zděděno od ", Anchor$(Basedata.Boxname, "", Str$(Basedata.Object) + ".htm") ,"]</B>";
              PRINT {HTML} "</FONT></TD></TR>",NL;
              PRINT {HTML} " <TR><TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
              FOREACH DataValue WHERE Data = Basedata.Name ORDER BY POS DO
                PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=""top"">";
                PRINT {HTML} " <I>", Name, "</I><BR>",NL;
              END
            END
          ELSE
            PRINT {HTML} "</FONT></TD></TR>",NL;
            PRINT {HTML} " <TR><TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            FOREACH DataValue WHERE Data = Data$ ORDER BY POS DO
              PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=""top"">";
              PRINT {HTML} " <I>", Name, "</I><BR>",NL;
            END
          END
        END
        PRINT {HTML} " </FONT></TD></TR>",NL;
        PRINT {HTML} "</TABLE>",NL;
      ELSE
        IF (NOT foundinh! AND ValueType = 0) OR (foundinh! AND datavals% = 0) THEN
          PRINT {HTML} "Nemá příklady hodnot.<BR>";
        ELSE
          PRINT {HTML} "Nemá rozsah hodnot.<BR>";
        END
      END
      
      //data elem might be used to specify a widget
      foundwidget! = FALSE;
      FOR Widgettype WHERE Widgettypeno = widgettype% DO
        foundwidget! = TRUE;
        wdgName$ = Name;
      END
      PRINT {HTML} "<BR>", NL;
      IF foundwidget! THEN
        PRINT {HTML} "Přiřazený prvek dialogu: ", wdgName$;
        //check inheritance
        IF delem_widgettype$ <> Data.Name THEN
          FOR Data WHERE Name = delem_widgettype$ DO
            PRINT {HTML} "<B> [zděděno od ", Anchor$(Boxname, "", Str$(Object) + ".htm") ,"]</B>";
          END
        END
        PRINT {HTML} ".<BR>",NL;
      ELSE
        PRINT {HTML} "Nemá přiřazen žádný prvek dialogu.<BR>",NL;
      END
      
    END
    PRINT {HTML} "<BR>", NL;
   

    //check for usage as attribute in an entity
    CALL H2_TopSpaceless("Reference na atributy entit pro " + DataBoxname$ + ":");

    foundattrib! = FALSE;
    FOREACH Attribute WHERE Data = Name$ DO
      foundattrib! = TRUE;
      BREAK;
    END

    IF foundattrib! THEN
      PRINT {HTML} "<TABLE CELLPADDING=2 NOWRAP VALIGN=BASELINE>",NL;
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TH VALIGN=BASELINE ALIGN=LEFT COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial"">Entita</FONT></TH>",NL;
      PRINT {HTML} " <TH ALIGN=LEFT><FONT SIZE=2 FACE=""Verdana, Arial"">Atribut</FONT></TH>",NL;
      PRINT {HTML} " </TR>",NL;
  
      FOREACH Attribute WHERE Data = Name$ ORDER BY Entity DO
        PRINT {HTML} " <TR>",NL;
        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 ALIGN=LEFT VALIGN=TOP><font size=2 FACE=""Verdana, Arial"">";
        FOR Entity WHERE Name = Attribute.Entity DO
          PRINT {HTML} "<B>",Anchor$ ( CONV$ (Boxname) ,"", Str$(Object) + ".htm"), "</B>";
        END
        PRINT {HTML} "</FONT></TD>",NL;
      
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><font size=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} "<B>", Anchor$ (Name, "", Str$(Object) + ".htm"), "</B>";
        PRINT {HTML} "</FONT></TD>",NL;
        PRINT {HTML} " </TR>", NL;
      END
  
      PRINT {HTML} "</TABLE>", NL ;
    ELSE
      PRINT {HTML} "Datový element není refencován na žádný atribut entity.<BR>",NL;
    END
    PRINT {HTML} "<BR>", NL;
   

    //check for usage as attribute in a relation
    CALL H2_TopSpaceless("Reference na atributy relací pro " + DataBoxname$ + ":");

    foundrelattrib! = FALSE;
    FOREACH RelAttribute WHERE Data = Name$ DO
      foundrelattrib! = TRUE;
      BREAK;
    END

    IF foundrelattrib! THEN
      PRINT {HTML} "<TABLE CELLPADDING=2 NOWRAP VALIGN=BASELINE>",NL;
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TH VALIGN=BASELINE ALIGN=LEFT COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial"">Relace</FONT></TH>",NL;
      PRINT {HTML} " <TH ALIGN=LEFT><FONT SIZE=2 FACE=""Verdana, Arial"">Atribut</FONT></TH>",NL;
      PRINT {HTML} " </TR>",NL;
  
      FOREACH RelAttribute WHERE Data = Name$ ORDER BY Relation DO
        PRINT {HTML} " <TR>",NL;
        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 ALIGN=LEFT VALIGN=TOP><font size=2 FACE=""Verdana, Arial"">";
        FOR Relation WHERE Name = RelAttribute.Relation DO
          PRINT {HTML} "<B>",Anchor$ ( CONV$ (Boxname) ,"", Str$(Object) + ".htm"), "</B>";
        END
        PRINT {HTML} "</FONT></TD>",NL;
      
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><font size=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} "<B>", Anchor$ (Name, "", Str$(Object) + ".htm"), "</B>";
        PRINT {HTML} "</FONT></TD>",NL;
        PRINT {HTML} " </TR>", NL;
      END
  
      PRINT {HTML} "</TABLE>", NL ;
    ELSE
      PRINT {HTML} "Datový element není referencován na žádný atribut relace.<BR>",NL;
    END
    PRINT {HTML} "<BR>", NL;
        

    //check for usage as field in dsd
    CALL H2_TopSpaceless("Reference " + DataBoxname$ + " jako položky datových struktur:");

    foundfield! = FALSE;
    FOREACH Field WHERE Data = Name$ DO
      foundfield! = TRUE;
      BREAK;
    END

    IF foundfield! THEN
      PRINT {HTML} "<TABLE CELLPADDING=2 NOWRAP VALIGN=BASELINE>",NL;
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TH VALIGN=BASELINE ALIGN=LEFT COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial"">Datová struktura</FONT></TH>",NL;
      PRINT {HTML} " <TH ALIGN=LEFT><FONT SIZE=2 FACE=""Verdana, Arial"">Položka</FONT></TH>",NL;
      PRINT {HTML} " </TR>",NL;
  
      FOREACH Field WHERE Data = Name$ ORDER BY Datastructure DO
        PRINT {HTML} " <TR>",NL;
        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 ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        FOR Datastructure WHERE Name = Field.Datastructure DO
          PRINT {HTML} "<B>",Anchor$ (CONV$ (Boxname) ,"", Str$(Object) + ".htm"), "</B>";
        END
        PRINT {HTML} "</FONT></TD>",NL;
      
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT CONV$ (Boxname);
        PRINT {HTML} "</FONT></TD>",NL;
        PRINT {HTML} " </TR>", NL;
      END
  
      PRINT {HTML} "</TABLE>", NL ;
    ELSE
      PRINT {HTML} "Datový element není referencován do žádné datové struktury.<BR>",NL;
    END
    PRINT {HTML} "<BR>", NL;


    //check for usage as Tfield in tsd
    CALL H2_TopSpaceless("Reference " + DataBoxname$ + " jako položky typových struktur:");

    foundfield! = FALSE;
    FOREACH TField WHERE Data = Name$ DO
      foundfield! = TRUE;
      BREAK;
    END
    IF foundfield! THEN
      PRINT {HTML} "<TABLE CELLPADDING=2 NOWRAP VALIGN=BASELINE>",NL;
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TH VALIGN=BASELINE ALIGN=LEFT COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial"">Typová structura</FONT></TH>",NL;
      PRINT {HTML} " <TH ALIGN=LEFT><FONT SIZE=2 FACE=""Verdana, Arial"">Položka</FONT></TH>",NL;
      PRINT {HTML} " </TR>",NL;
  
      FOREACH TField WHERE Data = Name$ ORDER BY Typestructure DO
        PRINT {HTML} " <TR>",NL;
        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 ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        FOR Typestructure WHERE Name = TField.Typestructure DO
          PRINT {HTML} "<B>",Anchor$ (CONV$ (Boxname) ,"", Str$(Object) + ".htm"), "</B>";
        END
        PRINT {HTML} "</FONT></TD>",NL;
      
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT CONV$ (Boxname);
        PRINT {HTML} "</FONT></TD>",NL;
        PRINT {HTML} " </TR>", NL;
      END
  
      PRINT {HTML} "</TABLE>", NL ;
    ELSE
      PRINT {HTML} "Datový element není referencován dožádné typové struktury.<BR>",NL;
    END
    
    
  ELSE
    CALL H2_Spaceless("Projekt neobsahuje datový element 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\5802.htm (C) microTOOL GmbH 2002