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


Vytvořeno: 03-05-1997 11:36:27
Poslední změna: 01-10-2003 09:24:49

Outputs detailed information about the given module structure.

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Module(name$)
BEGIN

  //note.. pages with funcdefs are being generated implicitly..

  found! = FALSE;
  FOR Module WHERE Name = Name$ DO
    found! = TRUE;
    IF Template=0 THEN
      CALL Header("Modulová struktura - " + Conv$(Boxname));
      CALL Title ("Modulová struktura", Conv$(Boxname));
    ELSE
      CALL Header("Předloha modulu - " + Conv$(Boxname));
      CALL Title ("Předloha modulu", Conv$(Boxname));
    END
  END

  //display a dummy title if module structure / template does not exist
  IF NOT found! THEN
    CALL Header("Modulová struktura / Předloha modulu - " + name$);
    CALL Title ("Modulová struktura / Předloha modulu", name$);
    CALL H2_Spaceless("Neexistuje modulová struktura / předloha modulu daného jména.");
    PRINT {HTML} "<BR>",NL;
  ELSE
    FOR Module WHERE Name = Name$ DO
      //display image(s) along with their image maps
      CALL ModuleMap(Name, 1, PageWasGenerated!);
      PRINT {HTML} Anchor$( "", "ModPage1", "#ModPage1");
      CALL Long2IDString(Object, id$);
      PRINT {HTML} "<P ALIGN=CENTER><IMG SRC=1-" + id$ + ".png BORDER=0 USEMAP=""#map_page1""></P>", NL;
      firstPage! = TRUE;
      FOREACH Modpage WHERE Module = Module.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 ModuleMap(Module, Page, PageWasGenerated!);
        PRINT {HTML} Anchor$( "", "ModPage"+Str$(Page), "#ModPage" + 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 Component WHERE Boxname = Module.Boxname 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$(Module.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 properties of the module - one line per attribute
      CALL H2_TopSpaceless("Properties");
      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;
      //language
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<B>Jazyk:</B></FONT></TD>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      PRINT {HTML} "<I>", LANGUAGENAME$(Language) , "</I></FONT></TD>",NL;
      PRINT {HTML} " </TR>",NL;
      //JAVA properties
      IF Language = 8 THEN
        //class or interface
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} "<B>Typ:</B></FONT></TD>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} " <I>",NL;
        IF Type = 1 THEN //class
          PRINT {HTML} "Class";
        ELSIF Type = 2 THEN //interface
          PRINT {HTML} "Interface";
        END
        PRINT {HTML} "</I></FONT></TD>",NL;
        PRINT {HTML} " </TR>",NL;
        //visibility
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        PRINT {HTML} "<B>Visibility:</B></FONT></TD>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><I>", NL;
        IF Protection <> 0 THEN
          PRINT {HTML} "Public";
        ELSE
          PRINT {HTML} "Not Public";
        END
        PRINT {HTML} "</I></FONT></TD>",NL;
        PRINT {HTML} " </TR>",NL;
        //if class: abstract and or final
        IF Type = 1 THEN //only classes can be either abstract or final
          //abstract
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Abstract:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><I>", NL;
          IF Abstract THEN
            PRINT {HTML} "ano";
          ELSE
            PRINT {HTML} "ne";
          END
          PRINT {HTML} "</I></FONT></TD>",NL;
          PRINT {HTML} " </TR>",NL;
          //final
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Final:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><I>", NL;
          IF Final THEN
            PRINT {HTML} "ano";
          ELSE
            PRINT {HTML} "ne";
          END
          PRINT {HTML} "</I></FONT></TD>",NL;
          PRINT {HTML} " </TR>",NL;
        END
      END

      //end of table
      PRINT {HTML} "</TABLE>",NL;
      PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;

      //two column table with userdefined properties of the element - one line per property
      CALL GenUserdefinedProperties(Object);
      
      //list of all used modules
      CALL H2_TopSpaceless("Využívané moduly");
      found! = FALSE;
      FOREACH Usage WHERE Module = Module.Name ORDER BY Module DO
        FOR Module WHERE Name = Usage.Usedmodule DO
          IF found! THEN
            PRINT {HTML} "<BR>", NL;
          END
          found! = TRUE;
          PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
          PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
        END
      END
      IF NOT found! THEN
        PRINT {HTML} "Tento modul nevyužívá žádné další moduly.<BR>",NL;
      END

        //Variablen / Typdefinition
   
      found! = FALSE;
    
      CALL H2("Proměnné / Deklarace");
      found! = FALSE;
      FOREACH Declare WHERE Module = Module.Name ORDER BY Id DO
          IF found! THEN
              PRINT {HTML} "<BR>", NL;
          END
          found! = TRUE;
          CALL Declare(Declare.Module, Declare.Declareno) INTO Str$(Module.Object) + "_" + Str$(Declare.Declareno) + ".htm";
          PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
          PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Module.Object) + "_" + Str$(Declare.Declareno) + ".htm"), NL;
      END
      IF NOT found! THEN
          PRINT {HTML} "Modul neobsahuje proměnné.<BR>",NL;
      END

      //list of all modules where is one is referenced from
      CALL H2("Moduly s referencemi na tento modul");
      found! = FALSE;
      FOREACH Usage WHERE Usedmodule = Module.Name ORDER BY Module DO
        FOR Module WHERE Name = Usage.Module DO
          IF found! THEN
            PRINT {HTML} "<BR>", NL;
          END
          found! = TRUE;
          PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
          PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
        END
      END
      IF NOT found! THEN
        PRINT {HTML} "Tento modul není referencován v žádném modulu.<BR>",NL;
      END
      
      //list of all function definitions
      CALL H2("Funkce");
      found! = FALSE;
      FOREACH Funcdef WHERE Module = Module.Name ORDER BY Conv$(Funcdef.Boxname) DO
        IF found! THEN
          PRINT {HTML} "<BR>",NL;
        END
        found! = TRUE;
        CALL Funcdef(Module, Funcdefno) INTO Str$(Object) + ".htm";
        PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
        PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
      END
      IF NOT found! THEN
        PRINT {HTML} "Modul neobsahuje žádné funkce.<BR>",NL;
      END
    
      //referenced relations
      CALL H2("Reference na relace");
      found! = FALSE;
      lastRel$ = "";
      FOREACH Relationref WHERE Module = Module.Name ORDER BY Relation DO
        IF Relation <> lastRel$ THEN
            FOR Relation WHERE Name = Relationref.Relation DO
              IF found! THEN
                PRINT {HTML} "<BR>",NL;
              END
              found! = TRUE;
              PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
              PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
            END
        END
        lastRel$ = Relation;
      END
      IF NOT found! THEN
        PRINT {HTML} "Modul neobsahuje žádné reference na relace.<BR>",NL;
      END
      
      //referenced type structures
      CALL H2 ("Reference na typové struktury");
      found! = FALSE;
      lastTSD$ = "";
      FOREACH Typeref WHERE Module=Module.Name ORDER BY Typestructure DO
        IF Typestructure <> lastTSD$ THEN
            FOR Typestructure WHERE Name = Typeref.Typestructure DO
              IF found! THEN
                PRINT {HTML} "<BR>",NL;
              END
              found! = TRUE;
              PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
              PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm");
            END
        END
        lastTSD$ = Typestructure;
      END
      IF NOT found! THEN
        PRINT {HTML} "Modul neobsahuje žádné reference na typové struktury.<BR>",NL;
      END

      //output files
      CALL H2 ("Výstupní soubory");
      foundfile! = FALSE;
      FOREACH Modulefile AS MF WHERE Module = Module.Name ORDER BY Filetype DO
          IF NOT foundfile! THEN
              PRINT {HTML} "<TABLE CELLPADDING=2 VALIGN=BASELINE NOWRAP>", NL;
              PRINT {HTML} " <TR>", NL;
              PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP COLSPAN=2><FONT SIZE=2 FACE=""Verdana, Arial"">Výstupní soubor</FONT></TH>", NL;
              PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">Typ souboru</FONT></TH>", NL;
              PRINT {HTML} " <TH ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">Generovací<BR>funkce</FONT></TH>";
              PRINT {HTML} " </TR>", NL;
              foundfile! = TRUE;
          END
            PRINT {HTML} " <TR>";
            FOR Filetype WHERE Id = MF.Filetype DO
              ftname$ = Name;
              ftext$ = Extension;
              ftpath$ = Path;
              ftformat% = Format;
            END
            
            //filenname and path
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><IMG SRC = ""bullet.gif""></TD>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial""><B>";
            filename$ = Filename;
            IF len(filename$) >= 2 THEN
                IF Mid$(filename$, 2, 1) <> ":" AND Left$(filename$, 2) <> "\\" THEN
                  // relative path (no drive, no UNC)
                  IF Right$(ftpath$,1) = "\" AND Left$(filename$, 1) = "\" THEN
                     // double backslash, so remove one of them
                     fnLen% = Len(filename$);
                     filename$ = ftpath$ + Right$(filename, fnLen% -1);
                  ELSE
                     filename$ = ftpath$ + filename$;
                  END
                END
            END
            CALL GetSystemProperty("WebPubGenerateSourceCode", genCode$);
            IF genCode$ = "TRUE" THEN
                mfName$ = "mf_"+ Str$(Module.Object) + "_"+ Str$(MF.Filetype) + ".htm";
                PRINT {HTML} Anchor$(filename$+ "." + ftext$, "", mfName$) , "</B></FONT></TD>",NL;
            ELSE
                PRINT {HTML} filename$+ "." + ftext$, "</B></FONT></TD>",NL;
            END
           
            //file type
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} ftname$, "</FONT></TD>",NL;

            //generating function
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            foundformat! = FALSE;
            format% = Format;
            IF format% = 0 THEN //format of file type will be used
              format% = ftformat%;
            END
            FOR Format WHERE Id = format% DO
              PRINT {HTML} Anchor$(Name, "", Str$(Format.Object) + ".htm"), "</FONT></TD>", NL;
              foundformat! = TRUE;
            END

            IF NOT foundformat! THEN
              PRINT {HTML} "-", "</FONT></TD>",NL;
            END

            IF foundformat! AND genCode$ = "TRUE" THEN
                CALL SourceFile(filename$+ "." + ftext$, ftname$, format% , MF.TID) INTO mfName$;
            END

      END
      IF foundfile! THEN
          PRINT {HTML} "</TABLE><BR>", NL;
      ELSE // foundfile! = false: no files defined for module
          PRINT {HTML} "Neexistují žádné výstupní soubory.<BR>", NL;
      END

      
    END
  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\12647.htm (C) microTOOL GmbH 2002