Dnes: 18. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Datový sklad
    Tento pojem poprvé formuloval koncem 80. let William Inmon jako strategii přístupu k datům určeným pro rozsáhlé analýzy. V případě datového skladu hovoříme o historických, časově rozlišených, agregovaných, průběžně rozšiřovaných datech uspořádaných pro podporu potřeb managementu.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Mřížka ve FoxPro pošesté


    [Vývoj] - V seriálu Mřížka ve FoxPro se v necelé desítce pokračování věnujeme problematice gridu – tedy mřížky – ve stále velmi populární databázové a vývojové platformě. Charakteristické pro celý seriál je orientace na praktické příklady. Dnes se podíváme například na vlastnosti MemberClass a MemberClassLibrary.



    VFP 8.0 má nové vlastnosti MemberClass a MemberClassLibrary, které slouží k identifikaci třídy a umístění v VCX/PRG souboru, když nějaký konteinerový objekt vytváří automaticky své členy.

    Týká se to následujících tříd – PageFrame, CommandGroup, OptionGroup Control a Grid Control. Další podobné vlastnosti (DEClass,DEClassLibrary a HeaderClass,HeaderClassLibrary) slouží k určení třídy DataEnvironmentu formuláře a třídy hlavičky (header) sloupce. Následující příklad ukazuje použití těchto vlastností u mřížky.

    Upozornění
    Nelze mít vyplněnou pouze vlastnost MemberClass, ale je nutné vyplnit i vlastnost MemberClassLibrary. Umístění a název souboru se třídou musí být korektní vůči nastavení SET PATH TO …

    ******************************************
    * Program: grid_5.prg
    ******************************************
    LOCAL I,lcPath
    lcPath=SYS(16,0)
    lcPath=LEFT(lcPath,RAT("\",lcPath))
    
    SET PATH TO (lcPath)
    SET DEFA TO (lcPath)
    
    CREATE CURSOR Tst (polozka1 I, polozka2 I, polozka I, polozka4 I) 
    FOR I=1 TO 100
        INSERT INTO Tst VALUES (I, I**2, I**3, I**4)
    NEXT
    GO TOP
    
    PUBLIC oForm
    oForm = CREATEOBJECT("FooForm")
    oForm.Visible = .T.
    
    DEFINE CLASS FooForm AS FORM
       AutoCenter = .T.
       Left = 25
       Top = 25
       Height = _Screen.Height-50
       Width = _Screen.Width-50
    
       ADD OBJECT grid1 AS _GRID WITH ;
           Left = 10, Top = 10,;
           Height = Thisform.Height-20, Width = Thisform.Width-20,;
           Name = "Grid1"
    
       PROCEDURE Init
          This.Grid1.AddColumn(5)
          This.Grid1.Columns(This;
           .Grid1.ColumnCount).ControlSource="polozka1+polozka2"
       ENDPROC
    ENDDEFINE
    
    
    DEFINE CLASS _grid AS GRID
       MemberClass="_Column"
       MemberClassLibrary="grid_5.prg"
    
       PROCEDURE ColumnClick(loColumn,loCurrentControl)
          * loColumn – Objektový odkaz na sloupec,
          *                na kterém došlo k události
          * loCurrentControl – Objektový odkaz na aktivní objekt,
          *                na kterém došlo k události
    
          WAIT WINDOW ;
               loColumn.Name+": "+;
               loCurrentControl.Name+".Click() --> "+;
               This.Name+".ColumnClick()" NOWAIT
       ENDPROC
    
       PROCEDURE HeaderClick(loHeader)
          * loHeader – Objektový odkaz na sloupec,
          *            na kterém došlo k události
          WAIT WINDOW ;
               loHeader.Caption+": "+;
               SYS(1272,loHeader)+".Click() --> "+;
               This.Name+".HeaderClick()" NOWAIT
       ENDPROC
    ENDDEFINE
    
    
    DEFINE CLASS _Column AS COLUMN
       HeaderClass="_Header"
       HeaderClassLibrary="grid_5.prg"
    
       ADD OBJECT TEXT1 AS TEXTBOX
    
       PROCEDURE Init()
          This.SetAll("Visible",.T.)
       ENDPROC
    
       PROCEDURE Click()
          This.Parent.ColumnClick(This,EVAL("This."+This.CurrentControl))
       ENDPROC
    
       PROCEDURE text1.Click()
          This.Parent.Click()
       ENDPROC
    
    ENDDEFINE
    
    DEFINE CLASS _Header AS HEADER
       PROCEDURE Click()
          This.Parent.Parent.HeaderClick(This)
       ENDPROC
    ENDDEFINE
    

    A v čem že je ta výhoda? Při nutnosti použití vlastní třídy sloupce se musela dosud použít metoda AddObject() a specifikovat třídu sloupce. Metoda AddColumn() se nedala použít neboť se potom vytvořil sloupec dle třídy Column. Nyní při inicializaci mřížky stačí nastavit vlastnost ColumnCount na mřížce a následně pouze nastavit jednotlivé sloupce (zdroj dat, popis, šířku, atd.).

    V ukázce je použito přesměrování metody Click() ze sloupce, hlavičky a tetxboxu až na mřížku. Nejde o plné nahrazení funkce BINDEVENT().

    Související články:
    Mřížka ve FoxPro poosmé (21.07.2005)
    Mřížka ve FoxPro posedmé (11.07.2005)
    Mřížka ve FoxPro popáté (28.06.2005)
    Mřížka ve FoxPro počtvrté (15.06.2005)
    Mřížka ve FoxPro potřetí (06.06.2005)
    Mřížka ve FoxPro podruhé (24.05.2005)
    Mřížka ve FoxPro poprvé (17.05.2005)

    ( Celý článek! | Autor: Martin Jindra | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1548 hl.)
    Do 1 000,- Kč 
     (1068 hl.)
    Do 10 000,- Kč 
     (999 hl.)
    Do 25 000,- Kč 
     (1378 hl.)
    Do 50 000,- Kč 
     (1016 hl.)
    Do 75 000,- Kč 
     (1178 hl.)
    Více než 75 000,- Kč 
     (1019 hl.)

    Celkem hlasovalo: 8206


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena