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


Vytvořeno: 03-05-1997 11:31:25
Poslední změna: 01-07-2003 13:49:40

Outputs detailed information about the given design function.

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE Funcdef(module$, no%)
BEGIN

/* ************************************************************************
    Generate all functions from modulestructure into a HTML-site
    
    
    IN
            module$ Name der Modulstruktur
            no% ID der Funcdefno
            
    ************************************************************************
    Created 2002-02-21 mT/DK
    ************************************************************************
    Modified 2002-07-19 mT/DK
    Ersetzung von Sonderzeichen durch Ziffern bei Widget.Name
    ************************************************************************
    Last modified 2002-07-19 mT
    *************************************************************************/

  foundsomething! = FALSE;
  cobol!=FALSE;
  jcl!=FALSE;
  ada!=FALSE;
  java!=FALSE;
  FOR Funcdef WHERE Module = Module$ AND Funcdefno = No% DO
    foundsomething! = TRUE;
    CALL Header("Funkce - " + Conv$(Boxname));
    FOR Module WHERE Name = Funcdef.Module DO
      CALL Title2("Funkce", Conv$(Funcdef.Boxname), Conv$(Boxname));
      IF Language = 2 THEN
         Cobol!=TRUE;
      ELSIF Language = 6 THEN
         ada!=TRUE;
      ELSIF Language = 7 THEN
         jcl!=TRUE;
      ELSIF Language = 8 THEN
         java!=TRUE;
      END
    END
  END

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

  IF foundsomething! THEN
    FOR Funcdef WHERE Module = Module$ AND Funcdefno = No% DO
    
      //general object data
      CALL GenObjectData(Object, FALSE, FALSE);
      PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;

      //description of the object, if avialable
      CALL GetSystemProperty("WebPubDescriptionPage", sepPage$);
      IF hasText THEN
        IF sepPage$ = "TRUE" THEN
          PRINT {HTML} Anchor$("<B>Popis</B>", "", "desc" + Str$(Funcdef.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

      // properties as table with two columns
      CALL H2_TopSpaceless("Vlastnosti");
      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>"+Funcdef.Id+"</I></FONT></TD>",NL;
      PRINT {HTML} " </TR>",NL;
      
       //type
      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"">";
      IF Type="" THEN
         type$="Funkce";
         IF cobol! THEN
            IF Funcdef.Public=0 THEN
               type$="Section";
            ELSE
               type$="Entry";
            END
         END
      ELSIF Type="dg" THEN
         type$="Dialogová funkce";
      ELSIF Type="pr" THEN
         type$="Sub";
      ELSIF Type="pg" THEN
         IF ada! THEN
            type$="Generic Procedure";
          ELSE
            type$="Property Get";
          END
      ELSIF Type="pl" THEN
         type$="Property Let";
      ELSIF Type="ps" THEN
         type$="Property Set";
      ELSIF Type="c" THEN
         type$="Constructor";
      ELSIF Type="f" THEN
         IF java! THEN
            type$="Destructor";
         ELSIF ada! THEN
            type$="Function";
         END
      ELSIF Type="m" THEN
         type$="Method";
      ELSIF Type="s" THEN
         type$="Class Method";
      ELSIF Type="p" THEN
         type$="Procedure";
      ELSIF Type="fg" THEN
         type$="Generic Function";
      ELSIF Type="t" THEN
         type$="Task";
      ELSIF Type="tb" THEN
         type$="Task Type";
      ELSIF Type="jb" THEN
         type$="Job";
      ELSE
         type$=Type;
      END
      PRINT {HTML} "<I>"+type$+"</I></FONT></TD>",NL;
      PRINT {HTML} " </TR>",NL;
      
       // visibility
      IF NOT cobol! THEN
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Viditelnost:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          IF Public=0 THEN
             visib$="Private";
          ELSE
             visib$="Public";
          END
          IF java! THEN
             IF Funcdef.Scope=1 THEN
                visib$="Public";
             ELSIF Funcdef.Scope=2 THEN
                visib$="Protected";
             ELSIF Funcdef.Scope=3 THEN
                visib$="Private";
             ELSIF Funcdef.Scope=4 THEN
                visib$="Private protected";
             ELSE
                visib$="default";
             END
          END
          PRINT {HTML} "<I>"+visib$+"</I></FONT></TD>",NL;
          PRINT {HTML} " </TR>",NL;
      END
      
         // Java properties
      IF java! THEN
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Abstrakt:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          IF Instr(Funcdef.Modifier,"a")>0 THEN
             PRINT {HTML} "<I>ano</I></FONT></TD>",NL;
          ELSE
             PRINT {HTML} "<I>ne</I></FONT></TD>",NL;
          END
          PRINT {HTML} " </TR>",NL;
          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"">";
          IF Instr(Funcdef.Modifier,"f")>0 THEN
             PRINT {HTML} "<I>ano</I></FONT></TD>",NL;
          ELSE
             PRINT {HTML} "<I>ne</I></FONT></TD>",NL;
          END
          PRINT {HTML} " </TR>",NL;
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Native:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          IF Instr(Funcdef.Modifier,"n")>0 THEN
             PRINT {HTML} "<I>ano</I></FONT></TD>",NL;
          ELSE
             PRINT {HTML} "<I>ne</I></FONT></TD>",NL;
          END
          PRINT {HTML} " </TR>",NL;
          PRINT {HTML} " <TR>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          PRINT {HTML} "<B>Synchronized:</B></FONT></TD>",NL;
          PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
          IF Instr(Funcdef.Modifier,"s")>0 THEN
             PRINT {HTML} "<I>ano</I></FONT></TD>",NL;
          ELSE
             PRINT {HTML} "<I>ne</I></FONT></TD>",NL;
          END
          PRINT {HTML} " </TR>",NL;
      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);

      // module
      FOR Module WHERE Name=Funcdef.Module DO
        PRINT {HTML} "Funkce patřící modulu ", NL;
        PRINT {HTML} Anchor$(Conv$(Boxname), "", Str$(Object) + ".htm"), ".<BR>", NL;
      END

      // Dialog
      // Dialog
      IF Funcdef.Type="dg" THEN
        PRINT {HTML} "<BR><HR SIZE=""1"" COLOR=""#3366CC""><BR>", NL;
        PRINT {HTML} "<P ALIGN=CENTER><IMG SRC=""DLG" + Str$(Funcdef.Object) + ".png""" + "BORDER=0></P>", NL;
        
        CALL H2_Topspaceless("Dialogové prvky");
        
        foundwidget!=FALSE;
        FOREACH Widgettype DO
            FOREACH Widget WHERE Widget.Module = Funcdef.Module
                            AND Funcdefno = Funcdef.Funcdefno
                            AND Widgettype.Widgettypeno = Widget.Widgettype DO
                IF foundwidget! THEN
                    PRINT {HTML} "<BR>", NL;
                END

                foundwidget! = TRUE;
                
                IF foundwidget! = TRUE THEN
                    CALL GetResourceProperty ("WebPubGenerateResourceInfo", SepPage$);
                    IF UCASE$(sepPage$) = "TRUE" THEN
                        // replace from special signs
                        Resname$ = Widget.Name;
                        ResultA$ = SUBST$(Resname$, "\", "01");
                        ResultB$= SUBST$(ResultA$, "/", "02");
                        ResultC$= SUBST$(ResultB$, ":", "03");
                        ResultD$= SUBST$(ResultC$, "*", "04");
                        ResultE$= SUBST$(ResultD$, "?", "05");
                        ResultF$= SUBST$(ResultE$, """", "06");
                        ResultG$= SUBST$(ResultF$, "<", "07");
                        ResultH$= SUBST$(ResultG$, ">", "08");
                        ResultI$= SUBST$(ResultH$, "|", "09");
                        
                        CALL SDDialogelements(Funcdef.Module, Widget.Name) INTO Str$(Funcdef.Object) + "_" + ResultI$ + ".htm";
                        PRINT {HTML} "<IMG SRC=""bullet.gif"" ALIGN=TOP> ";
                        PRINT {HTML} Anchor$(Conv$(Widget.Name), "", Str$(Funcdef.Object) + "_" + ResultI$ + ".htm"), NL;
                        PRINT {HTML} "<I>(" + Widgettype.Name + ")</I>", "";
                        PRINT {HTML} "<BR>",NL;
                    ELSE
                        PRINT {HTML} "<B>" + Conv$(Widget.Name) + "</B>", NL;
                        PRINT {HTML} "<I>(" + Widgettype.Name + ")</I>", "";
                        PRINT {HTML} "<BR>",NL;
                    END
                END
            END
        END
        IF NOT foundwidget! THEN
            PRINT {HTML} "<TABLE>",NL;
            PRINT {HTML} " <TR>",NL;
            PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
            PRINT {HTML} "Dialog není definován.";
            PRINT {HTML} "</FONT></TD>",NL;
            PRINT {HTML} " </TR>",NL;
            PRINT {HTML} "</TABLE>",NL;
            PRINT {HTML} "<BR>",NL;
        END
        
      END

      // Implementation trees
      FOREACH Implbox WHERE Module=Funcdef.Module AND Funcdefno = Funcdef.Funcdefno DO
        PRINT {HTML} "<BR><HR SIZE=""1"" COLOR=""#3366CC""><BR>", NL;
        PRINT {HTML} "<TABLE>",NL;
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        CALL Implementationtrees(Funcdef.Module, Funcdef.Funcdefno) INTO "IMP"+ Str$(Funcdef.Object) + ".htm";
        PRINT {HTML} Anchor$("Popis - implementační strom","", "IMP"+ Str$(Funcdef.Object) + ".htm");
        PRINT {HTML} "<BR>";
        PRINT {HTML} " </FONT></TD>",NL;
        PRINT {HTML} " </TR>",NL;
        PRINT {HTML} "</TABLE>",NL;

        BREAK;
      END


      // Implementation trees
      FOREACH Implbox WHERE Module=Funcdef.Module AND Funcdefno = Funcdef.Funcdefno DO
        PRINT {HTML} "<BR><HR SIZE=""1"" COLOR=""#3366CC""><BR>", NL;
        PRINT {HTML} "<TABLE>",NL;
        PRINT {HTML} " <TR>",NL;
        PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
        CALL Implementationtrees(Funcdef.Module, Funcdef.Funcdefno) INTO "IMP"+ Str$(Funcdef.Object) + ".htm";
        PRINT {HTML} Anchor$("Popis - implementační strom","", "IMP"+ Str$(Funcdef.Object) + ".htm");
        PRINT {HTML} "<BR>";
        PRINT {HTML} " </FONT></TD>",NL;
        PRINT {HTML} " </TR>",NL;
        PRINT {HTML} "</TABLE>",NL;

        BREAK;
      END



    // List of references to problem domain functins
      PRINT {HTML} "<BR><HR SIZE=""1"" COLOR=""#3366CC"">", NL;
      CALL H2_TopSpaceless("Problem Domain funkce");
      PRINT {HTML} "<TABLE>",NL;
      PRINT {HTML} " <TR>",NL;
      PRINT {HTML} " <TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2 FACE=""Verdana, Arial"">";
      foundimpl! = FALSE;
      firstimpl!=TRUE;
      FOREACH Implementation WHERE Module=module$ AND Funcdefno = no% DO
         IF firstimpl! THEN
             PRINT {HTML} "Funkce je realizována: <BR><BR> ",NL;
             firstimpl!=FALSE;
         END
         FOR Function WHERE Name=Implementation.Function DO
            PRINT {HTML} " ", Anchor$("<B>"+Conv$(Boxname)+"</B>","", Str$(Object) + ".htm");
            FOR Func WHERE Function = Function.Name DO
               FOR Functionstructure WHERE Name =Func.Fsd DO
                   PRINT {HTML} " ve funkční struktuře ",Anchor$("<B>"+Conv$(Boxname)+"</B>","", Str$(Object) + ".htm");
               END
            END
         END
         PRINT {HTML} "<BR>";
         foundimpl!=TRUE;
      END
      IF NOT foundimpl! THEN
         PRINT {HTML} "Funkce není implementována jako problem domain funkce.";
      END
      PRINT {HTML} "<BR>";
      PRINT {HTML} " </FONT></TD>",NL;
      PRINT {HTML} " </TR>",NL;
      PRINT {HTML} "</TABLE>",NL;
 

      //listing (generated source code)
      PRINT {HTML} "<HR SIZE=""1"" COLOR=""#3366CC"">", NL;
      CALL H2_TopSpaceless("Generovaný zdrojový kód");
      FOR Module WHERE Name = Funcdef.Module DO
         foundformat!=FALSE;
         IF Funcdef.Format <> 0 THEN
            foundformat!=TRUE;
         ELSE
            FOR Defaultformat WHERE Language=Module.Language
                                AND Type="fdt" DO
              foundformat!=TRUE;
           END
         END
         IF foundformat! THEN
            PRINT {HTML} "<FONT SIZE=2 FACE=""Courier, Courier New"">",NL;
            IF Language = 1 THEN
                    CALL "C" DEFAULT FOR Funcdef;
            ELSIF Language = 2 THEN
              CALL "COBOL" DEFAULT FOR Funcdef;
            ELSIF Language = 3 THEN
              CALL "DRIVE" DEFAULT FOR Funcdef;
            ELSIF Language = 5 THEN
              CALL "BASIC" DEFAULT FOR Funcdef;
            ELSIF Language = 6 THEN
              CALL "ADA" DEFAULT FOR Funcdef;
            ELSIF Language = 7 THEN
              CALL "JCL" DEFAULT FOR Funcdef;
            ELSIF Language = 8 THEN
              CALL "Java" DEFAULT FOR Funcdef;
            END
         ELSE
            PRINT {HTML} "<FONT SIZE=2 FACE=""Verdana, Arial"">",NL;
            PRINT {HTML} "Neexistuje generovací funkce. <BR>",NL;
         END
      END
      PRINT {HTML} "</FONT>",NL;
    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\1571.htm (C) microTOOL GmbH 2002