Einsatz von DBI-Controls in VFX by malj

VIEWS: 25 PAGES: 46

									 Integration der DBI Controls
  aus Sedna in Visual Extend

Venelina Jordanova     Uwe Habermann
   Venelina@VandU.eu     Uwe@VandU.eu
Was machen Venelina & Uwe?
* Neue Firma: V&U – We and You
  * www.VandU.eu
  * Info@VandU.eu
* Geschäftsführer: Venelina & Uwe
* Softwareprojekte mit VFP
  * Visual Extend
* Hohe Qualität zu günstigen Preisen
* Entwicklung in Varna, Bulgarien
              VFX 10.0
* Erstes Framework mit Unterstützung
  der DBI Sedna Components
                   Sedna
*   VFP 9 SP 2
*   Upsizing Wizard
*   Data Explorer
*   Sedna Reporting Features
*   VistaDialogs4COM
*   NET4COM
*   MY for VFP
*   VS 2005 Extension for VFP
*   DBI Sedna Components
               Installation
* Download und Installation:

www.dbi-tech.com/Special_Offers_SednaComponents.asp
\\UHTerra\VFX2008\DBISednaInstall.exe


* Aktivierung zur Entwicklung erforderlich
    DBI Sedna Components
* ctContact  Kontaktliste wie in Outlook
* ctDays     Kalender Tagesansicht
* ctDEdit    Datums- und Zeiteingabe
* ctDropMenu Rechtsklickmenü
* ctFrame    Hintergrund
* ctListBar  Navigationsbereich
* ctToolBar Menü und Symbolleiste
* ctTray     Windows System Tray
    DBI Sedna Components
    Wofür brauche ich das?
* Gestaltung einer modernen
  Benutzeroberfläche ähnlich
  Office 2003 Anwendungen
          Abhängigkeiten
* Kompiliert mit Microsoft Visual C++ 6.0
* MFC42.dll
* MSVCRT.dll
     DBI Studio Controls R3
* Noch viel mehr Controls
* Schon lange erhältlich
  * Controls sind nicht neu
* Gleiche Features
* Gleiche IDs
         Integration in VFX
        Beispiele in VFPizza
* ctContact    Kontaktliste wie in Outlook
*              CustomersDBI.scx
* ctDEdit      Datums- und Zeiteingabe
               Orders.scx
* ctDropMenu   Rechtsklickmenü
* ctFrame      Hintergrund
               Customers.scx
* ctListBar    Öffnen Dialog
* ctToolBar    Menü und Symbolleiste
* ctTray       Windows System Tray
               ctContact
* ctContact   Kontaktliste wie in Outlook

  * Beispiel in CustomersDBI.scx
               ctContact
* Vfxappl.vcx - cDBIctContact
* Eigenschaften
  * .IDFieldName = <ID Feld der Tabelle>
  * .NodeText = <Ausdruck für Überschrift>
  * .aFieldsList = <Array mit
    Datenbeschreibung>

  * .HideEmptyItems = .T.
              ctContact
* Überschriften füllen:
  cDBIctContact.FillTreeView
WITH this
  lnNewHeaderIndex = ;
    .oleContact.AddHeader(ALLTRIM( ;
    TRANSFORM(EVALUATE(.NodeText))))
    .oleContact.HeaderCargo( ;
    lnNewHeaderIndex) = lcNodeKey
ENDWITH
               ctContact
* Daten füllen:
  cDBIctContact.FillTreeView
WITH this
  FOR i=1 TO .oleContact.TitleCount
     .oleContact.ItemText( ;
          lnNewHeaderIndex,i) = ;
          ALLTRIM(TRANSFORM(EVALUATE( ;
          .afieldslist[i,2])))
  ENDFOR
ENDWITH
               ctContact
* Datenbeschreibung füllen:
*    CustomersDBI.scx – cTreeview
  Eigenschaften
  * .IDFieldName = „CustomerID“
  * .NodeText = „CustomerName“

  * .HideEmptyItems = .T.
                   ctContact
* Datenbeschreibung füllen:
*    CustomersDBI.scx – cTreeview.Init
* Array enthält Beschriftungen und
  Feldnamen
   DIMENSION this.afieldslist (2,2)
   this.afieldslist[1,1] = 'Telefon:'
   this.afieldslist[1,2] = 'phone'
   this.afieldslist[2,1] = 'Adresse:'
   this.afieldslist[2,2] = 'address'
   this.oleContact.ColumnWidth = 184
   RETURN DODEFAULT()
             ctContact
CustomersDBI.scx – cTreeview.Init
  DIMENSION this.afieldslist (2,2)
  this.afieldslist[1,1] = 'Telefon:‚
  this.afieldslist[1,2] = 'phone‚
  this.afieldslist[2,1] = 'Adresse:‚
  this.afieldslist[2,2] = 'address‚
  this.oleContact.ColumnWidth = 184
  RETURN DODEFAULT()
              ctContact
* Builder von DBI vorhanden

* Kleiner Nachteil:
  Die Überschrift kann nicht bearbeitet
  werden
               ctDays
* ctDays     Kalender Tagesansicht

* Demo in SednaDemos
* Builder von DBI vorhanden

* (Bisher) keine Verwendung in VFX
                  ctDEdit
* ctDEdit       Datums- und Zeiteingabe
  * cCtDEdit in Vfxctrl.vcx
* Bearbeitung von Zeit- oder
  Datumswerten
* Unterstützung aller SET Einstellungen
  von VFP
                 ctDEdit
* OrdersCA.scx
* Vfxappl.vcx – cDBIctDEdit
* Eigenschaften
  * .cControlsource = <Controlsource> <-
    Wichtig!
  * .DropButton = <z. B. Kalenderanzeige>
  * .SpinButton = <z. B. Tag ändern>
  * .FormatType = <0-2 = Datumformat oder 3 =
    Zeit>
               ctDEdit
* cDBIctDEdit.ClickDrop
     ClickDrop startet Kalender
* cDBIctDEdit.ClickSpin
     Tag ändern
* Freundliches Verhalten bei Falscheingabe
* Builder von DBI vorhanden
             ctDropMenu
* ctDropMenu Rechtsklickmenü
* In VFX einstellbar mit
     goProgram.nMenuAndToolbarStyle
  * 0 – VFP Menü (Standardwert)
  * 1 – DBI ctToolbar
* VfxFormBase.vcx
  * Formularklasse cDBIDropMenuVFXBase
               ctDropMenu
* Vfxobjbase.vcx – cDBIDropMenu.Init
  * Hinzufügen eines Eintrags
     loCtDropMenu.octDropMenu. ;
     Object.AddItem(„Text“, 0, 1)
  * Hinzufügen eines Icons
     loCtDropMenu.octDropMenu. ;
     ItemPicture(1) = ;
       LOADPICTURE(lcPictureName)
* Builder von DBI vorhanden
              ctFrame
* ctFrame        Hintergrund

* Container Steuerelement
* Anzeige von Farbverläufen
* Resizable

* Beispiel in Customers.scx
* Builder von DBI vorhanden
                ctFrame
* Customers.scx
* Controls von Seite 1 in Zwischenablage
  kopieren
* Vfxctrl.vcx – cCtFrame auf die Seite ziehen
* Controls einfügen
* Thisform.langsetup anpassen
* Builder von DBI vorhanden
               ctListBar
* ctListBar   Öffnen Dialog
* In VFX einstellbar mit:
*    goProgram.nOpenDialogStyle
  * 0 - Conform lXPStyleOpenDialog setting
  * 1 - Use Open dialog
  * 2 - Use XP style Open dialog
  * 3 - Use DBi ctListBar
  * 4 - Use Ribbon bar (nur, wenn
        goProgram.nMenuAndToolbarStyle = 2)
              ctListBar
* Vfxformbase.vcx –
  cDBIOpenFormVFXBase
* Gruppe hinzufügen (MakeGroup)
*    lnIndex = this.oleListBar. ;
      AddList(lcGroupCaption)
* Eintrag hinzufügen (MakeItem)
*    lnIndex = this.OleListBar. ;
      AddItem(lnIndex, lcCaption)
* Data Driven
              ctListBar
* Vorsicht mit der Demo in Sednademos
  * Keine typische Anwendung


* Builder von DBI vorhanden
              ctToolBar
* ctToolBar   Menü und Symbolleiste

* In VFX einstellbar mit:
  goProgram.nMenuAndToolbarStyle
   0 – VFP Menü und Symbolleiste
       (Standardwert)
   1 – DBI ctToolbar
   2 – Multifunktionsleiste
               ctToolBar
* Nach manueller Umstellung von
  goProgram.nMenuAndToolbarStyle
  muss das Projekt neu kompiliert werden
* Dabei wird SelectItem.prg generiert
  * Ausgeführter Code für Menüeinträge
             ctToolBar
* Menü
    Vfxappl.vcx – cDBIMenuBar
    Appl.vcx – cDBIAppMenuBar
* Symbolleiste
    Vfxappl.vcx – cDBINavigatorBar
    Appl.vcx – cDBIAppNavigatorBar
             ctToolBar
* Menü
    cDBIMenuBar.LoadMenu
* Data Driven aus Vfxmnu.vmx gelesen
                   ctToolBar
* Menü hinzufügen (LoadMenu)
*     lnIndex = this.octToolbar. ;
        AddItem(0, lcItemDescription, 0)
* Menüeintrag hinzufügen (LoadDropDownMenu)
   * lnIndex = this.octToolbar. ;
      AddItem(lnItemType, ; lcItemDescription, lnPicture)
* Icon hinzufügen
*     lnPicture = This.octToolbar. ;
        AddImage(LOADPICTURE(lcPictureName))
            ctToolBar
* Symbolleiste
*   cDBINavigatorBar.LoadToolbar
              ctToolBar
* Icon hinzufügen (LoadToolbar)
     lnPictureIndex = This.AddPicture ;
      ("BITMAP\TOOLBAR\new.bmp")
* Schaltfläche hinzufügen (LoadToolbar)
     lnButtonIndex = This.octOfficeBar. ;
      AddItem(0, "", lnPictureIndex)
             ctToolBar
* Vorsicht:
* Beim Entfernen von Menüeinträgen
  oder Elementen aus der Symbolleiste,
  werden die IDs neu vergeben!
               ctToolBar
* In VFX einstellbar mit:
* goProgram.cDBIMainToolbar
  * Name der Klasse mit der DBI Symbolleiste
* goProgram.cDBIMainMenu
  * Name der Klasse mit dem DBI Menü
               ctToolBar
* Selectitem.prg für Hotkeys
  * VFX – Application Builder
  * VFX – Update Project
  * VFX – Menu Designer
  * Exe Datei erstellen


* Builder von DBI vorhanden
                  ctTray
* ctTray        Windows System Tray

* Vfxappl.vcx – cSysTray
  * Init
  * IconClick
* In VFX einstellbar mit:
*    goProgram.lHideAppInTray
               ctTray
* Integration in VFP Anwendungen
  IF _SCREEN.WindowState = 1 AND ;
     This.lHideAppInTray
          This.oSysTray = ;
     Createobject("cSysTray")
     _SCREEN.Hide()
  ENDIF
* Builder von DBI vorhanden
         Demos von DBI
* Demo Anwendung mit vielen Beispielen

* Dokumentation in Windows Hilfedateien
    DBI Sedna Components
* ctContact 02.2003   ctContact.hlp
* ctDays    07.2003   ctDays.hlp
* ctDEdit   04.2006   ctDEdit.hlp
* ctDropMenu04.2006   ctDropMenu.hlp
* ctFrame   03.2006   ctFrame.hlp
* ctListBar 04.2006   ctListBar.chm
* ctToolBar 05.2006   ctToolbar.chm
* ctTray    03.2006   ctTray.hlp
 Anzeige von hlp Dateien auf
       Windows Vista
* Windows hlp Hilfesystem muss
  nachinstalliert werden:

* http://support.microsoft.com/kb/917607
   Installation beim Kunden
* Verwendung eines
  Installationsprogramms
  * OCXe sind „selbstregistrierend“
* Programmatische Registrierung
  möglich, aber „meistens“ nicht
  erforderlich
         Pause!




Um 11.15 Uhr geht es weiter

								
To top