Uwe Habermann [email protected] Integration der DBI Controls aus Sedna in Visual Extend Venelina...

46
Uwe Habermann [email protected] Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova [email protected]

Transcript of Uwe Habermann [email protected] Integration der DBI Controls aus Sedna in Visual Extend Venelina...

Page 1: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Uwe [email protected]

Integration der DBI Controls aus Sedna in

Visual Extend

Venelina [email protected]

Page 2: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Was machen Venelina & Uwe?

* Neue Firma: V&U – We and You* www.VandU.eu* [email protected]

* Geschäftsführer: Venelina & Uwe

* Softwareprojekte mit VFP* Visual Extend

* Hohe Qualität zu günstigen Preisen

* Entwicklung in Varna, Bulgarien

Page 3: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

VFX 10.0

* Erstes Framework mit Unterstützungder DBI Sedna Components

Page 4: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 5: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Installation

* Download und Installation:

www.dbi-tech.com/Special_Offers_SednaComponents.asp

\\UHTerra\VFX2008\DBISednaInstall.exe

* Aktivierung zur Entwicklung erforderlich

Page 6: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 7: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

DBI Sedna ComponentsWofür brauche ich das?

* Gestaltung einer modernen Benutzeroberfläche ähnlichOffice 2003 Anwendungen

Page 8: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Abhängigkeiten

* Kompiliert mit Microsoft Visual C++ 6.0

* MFC42.dll

* MSVCRT.dll

Page 9: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

DBI Studio Controls R3

* Noch viel mehr Controls

* Schon lange erhältlich* Controls sind nicht neu

* Gleiche Features

* Gleiche IDs

Page 10: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Integration in VFXBeispiele 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

Page 11: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContact

* ctContact Kontaktliste wie in Outlook

* Beispiel in CustomersDBI.scx

Page 12: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContact

* Vfxappl.vcx - cDBIctContact

* Eigenschaften* .IDFieldName = <ID Feld der Tabelle>* .NodeText = <Ausdruck für Überschrift>* .aFieldsList = <Array mit

Datenbeschreibung>

* .HideEmptyItems = .T.

Page 13: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContact* Überschriften füllen:

cDBIctContact.FillTreeViewWITH this

lnNewHeaderIndex = ; .oleContact.AddHeader(ALLTRIM( ; TRANSFORM(EVALUATE(.NodeText))))

.oleContact.HeaderCargo( ; lnNewHeaderIndex) = lcNodeKey

ENDWITH

Page 14: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 15: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContact

* Datenbeschreibung füllen:

* CustomersDBI.scx – cTreeview Eigenschaften* .IDFieldName = „CustomerID“* .NodeText = „CustomerName“

* .HideEmptyItems = .T.

Page 16: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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()

Page 17: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContactCustomersDBI.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()

Page 18: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctContact

* Builder von DBI vorhanden

* Kleiner Nachteil:

Die Überschrift kann nicht bearbeitet werden

Page 19: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctDays

* ctDays Kalender Tagesansicht

* Demo in SednaDemos

* Builder von DBI vorhanden

* (Bisher) keine Verwendung in VFX

Page 20: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctDEdit

* ctDEdit Datums- und Zeiteingabe* cCtDEdit in Vfxctrl.vcx

* Bearbeitung von Zeit- oder Datumswerten

* Unterstützung aller SET Einstellungen von VFP

Page 21: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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>

Page 22: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctDEdit

* cDBIctDEdit.ClickDropClickDrop startet Kalender

* cDBIctDEdit.ClickSpin

Tag ändern

* Freundliches Verhalten bei Falscheingabe

* Builder von DBI vorhanden

Page 23: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctDropMenu

* ctDropMenu Rechtsklickmenü

* In VFX einstellbar mit

goProgram.nMenuAndToolbarStyle* 0 – VFP Menü (Standardwert)* 1 – DBI ctToolbar

* VfxFormBase.vcx* Formularklasse cDBIDropMenuVFXBase

Page 24: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 25: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctFrame

* ctFrame Hintergrund

* Container Steuerelement

* Anzeige von Farbverläufen

* Resizable

* Beispiel in Customers.scx

* Builder von DBI vorhanden

Page 26: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 27: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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)

Page 28: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 29: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctListBar

* Vorsicht mit der Demo in Sednademos* Keine typische Anwendung

* Builder von DBI vorhanden

Page 30: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* ctToolBar Menü und Symbolleiste

* In VFX einstellbar mit:

goProgram.nMenuAndToolbarStyle0 – VFP Menü und Symbolleiste (Standardwert)

1 – DBI ctToolbar

2 – Multifunktionsleiste

Page 31: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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

Page 32: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Menü

Vfxappl.vcx – cDBIMenuBar

Appl.vcx – cDBIAppMenuBar

* Symbolleiste

Vfxappl.vcx – cDBINavigatorBar

Appl.vcx – cDBIAppNavigatorBar

Page 33: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Menü

cDBIMenuBar.LoadMenu

* Data Driven aus Vfxmnu.vmx gelesen

Page 34: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

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))

Page 35: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Symbolleiste

* cDBINavigatorBar.LoadToolbar

Page 36: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Icon hinzufügen (LoadToolbar)

lnPictureIndex = This.AddPicture ; ("BITMAP\TOOLBAR\new.bmp")

* Schaltfläche hinzufügen (LoadToolbar)

lnButtonIndex = This.octOfficeBar. ;

AddItem(0, "", lnPictureIndex)

Page 37: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Vorsicht:

* Beim Entfernen von Menüeinträgen oder Elementen aus der Symbolleiste, werden die IDs neu vergeben!

Page 38: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* In VFX einstellbar mit:

* goProgram.cDBIMainToolbar* Name der Klasse mit der DBI Symbolleiste

* goProgram.cDBIMainMenu* Name der Klasse mit dem DBI Menü

Page 39: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctToolBar

* Selectitem.prg für Hotkeys* VFX – Application Builder* VFX – Update Project* VFX – Menu Designer* Exe Datei erstellen

* Builder von DBI vorhanden

Page 40: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctTray

* ctTray Windows System Tray

* Vfxappl.vcx – cSysTray* Init* IconClick

* In VFX einstellbar mit:

* goProgram.lHideAppInTray

Page 41: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

ctTray

* Integration in VFP Anwendungen

IF _SCREEN.WindowState = 1 AND ;This.lHideAppInTray

This.oSysTray = ;

Createobject("cSysTray")

_SCREEN.Hide()

ENDIF * Builder von DBI vorhanden

Page 42: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Demos von DBI

* Demo Anwendung mit vielen Beispielen

* Dokumentation in Windows Hilfedateien

Page 43: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

DBI Sedna Components* ctContact 02.2003 ctContact.hlp

* ctDays 07.2003 ctDays.hlp

* ctDEdit 04.2006 ctDEdit.hlp

* ctDropMenu 04.2006 ctDropMenu.hlp

* ctFrame 03.2006 ctFrame.hlp

* ctListBar 04.2006 ctListBar.chm

* ctToolBar 05.2006 ctToolbar.chm

* ctTray 03.2006 ctTray.hlp

Page 44: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Anzeige von hlp Dateien auf Windows Vista

* Windows hlp Hilfesystem muss nachinstalliert werden:

* http://support.microsoft.com/kb/917607

Page 45: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Installation beim Kunden

* Verwendung eines Installationsprogramms* OCXe sind „selbstregistrierend“

* Programmatische Registrierung möglich, aber „meistens“ nicht erforderlich

Page 46: Uwe Habermann Uwe@VandU.eu Integration der DBI Controls aus Sedna in Visual Extend Venelina Jordanova Venelina@VandU.eu.

Pause!

Um 11.15 Uhr geht es weiter