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


Vytvořeno: 03-05-1997 17:37:02
Poslední změna: 01-10-2003 09:32:31

Generates HTML <MAP> sections for the element trees of the module structure.

Modul

Module: Web Publishing

Zdrojový kód:

PROCEDURE ModuleMap(Name$, Page%, BYREF PageWasGenerated!)
BEGIN

/*
 * Generate map for module structure page
 *
 */

  foundsomething! = FALSE;
  
  // we generate link to parent page
  IF Page% > 1 THEN
      foundsomething! = TRUE;
  END
  // find funcdef on this page
  IF NOT foundsomething! THEN
      FOREACH Funcdef WHERE Module = Name$ AND Page=Page% DO
        foundsomething! = TRUE;
        BREAK;
      END
  END
   // find declare on this page
  IF NOT foundsomething! THEN
      FOREACH Declare WHERE Module = Name$ AND Page=Page% DO
        foundsomething! = TRUE;
        BREAK;
      END
  END
  // find usage on this page
  IF NOT foundsomething! THEN
    FOREACH Usage WHERE Module = Name$ AND Page=Page% DO
      foundsomething! = TRUE;
      BREAK;
    END
  END
  // find typeref on this page
  IF NOT foundsomething! THEN
    FOREACH Typeref WHERE Module = Name$ AND Page = Page% DO
      foundsomething! = TRUE;
      BREAK;
    END
  END
  // find usage on this page
  IF NOT foundsomething! THEN
    FOREACH Relationref WHERE Module = Name$ AND Page=Page% DO
      foundsomething! = TRUE;
      BREAK;
    END
  END
  // find child pages
  IF NOT foundsomething! THEN
    FOREACH ModPage WHERE Module = Name$ AND Comppage=Page% DO
      foundsomething! = TRUE;
      BREAK;
    END
  END

  PageWasGenerated! = foundsomething!;
  
  IF foundsomething! THEN
    FOR Module WHERE Name = Name$ DO
      CALL GenMapHeader("map_page" + Str$(Page%));
      
      //we need to find the coord of the most left box in advance
      leftmost% = 286; //highest possible value, root element (286, 15)
      FOREACH Funcdef WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Component WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Usage WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Typeref WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Relationref WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Declare WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Templateelement WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END
      FOREACH Cursor WHERE Module = Module.Name AND Page = Page% AND X < leftmost% ORDER BY X DO
        leftmost% = X;
        BREAK;
      END

      FOREACH Usage WHERE Module = Module.Name AND Page=Page% DO
        CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
        FOR Module WHERE Name = Usage.UsedModule DO
          CALL GenMapRect(Object, Conv$(Boxname), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
        END
      END

      FOREACH Typeref WHERE Module = Module.Name AND Page = Page% DO
        CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
        FOR Typestructure WHERE Name = Typeref.Typestructure DO
          CALL GenMapRect(Object, Conv$(Typeref.Boxname), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
        END
      END

      FOREACH Relationref WHERE Module = Module.Name AND Page=Page% DO
        CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
        FOR Relation WHERE Name = Relationref.Relation DO
          CALL GenMapRect(Object, Conv$(Relationref.Boxname), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
        END
      END
      
      FOREACH Declare WHERE Module = Module.Name AND Page=Page% DO
        CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
        Object$ = Str$(Module.Object) + "_" + Str$(Declare.Declareno);
        CALL GenMapRect2(Object$, Conv$(Declare.Boxname), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
      END
      
      FOREACH Funcdef WHERE Module = Module.Name AND Page=Page% DO
        CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
        CALL GenMapRect(Object, Conv$(Boxname), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
      END

      // link to parent page
      IF Page% > 1 THEN
        FOR Modpage WHERE Module = Module.Name AND Page = Page% DO
            CALL H_CaseBoxCoorToImageCoor(leftmost%, 286, 15, ulc_x%, ulc_y%);
            CALL GenMapRectByName("", "#ModPage" + Str$(Modpage.Comppage), "Module Structure Page "
                                    + Str$(Modpage.Comppage), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
        END
      END
      // link to child page
      FOREACH ModPage WHERE Module = Name$ AND Comppage=Page% DO
        FOR Component WHERE Module = Name$ AND Page = Page% AND Component.Compno = Modpage.Compno DO
            CALL H_CaseBoxCoorToImageCoor(leftmost%, X, Y, ulc_x%, ulc_y%);
            CALL GenMapRectByName("", "#ModPage" + Str$(Modpage.Page), "Module Structure Page "
                                    + Str$(Modpage.Page), ulc_x%, ulc_y%, ulc_x% + 80, ulc_y% + 52);
        END
      END

      CALL GenMapFooter();
    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\24884.htm (C) microTOOL GmbH 2002