41
Uwe Habermann [email protected] D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Uwe Habermann [email protected] D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Embed Size (px)

Citation preview

Page 1: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Uwe [email protected]

D-DBIIntegration der DBI Controls

aus Sedna in VFP am Beispiel von Visual Extend

Page 2: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

VFX 10.0

• 11 Jahre VFX• dFPUG c/o ISYS GmbH• Marktführer in Europa• Mehr Anwender als alle anderen Framework

Hersteller zusammen• Einziges Framework mit voller

Cursoradapter Unterstützung• Erstes Framework mit Unterstützung

der DBI Sedna Components

Page 3: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Visual Extend 10.0

• VFX 10.0 Build 1104 auf der Konferenz-CD

• 4 Beispielanwendungen– VFPizza– DBI Sedna Components installieren

• 20 Stunden Videos

Page 4: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Wer ist denn das?

• Uwe Habermann

• Diplom-Informatiker, TU Berlin

• FoxPro Entwickler seit FPW 2.5

• MCP für VFP

• Visual Extend Product Manager

• Freiberuflich tätig für ISYS, Wizards & Builders, ProLib, …

• Uwe Habermann & Kathrin Leu GbR

Page 5: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Sedna

• VFP 9 SP 2• DBI Sedna Components• Upsizing Wizard• Data Explorer• Sedna Reporting Features• VistaDialogs4COM• NET4COM• MY for VFP• VS 2005 Extension for VFP

Page 6: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Abhängigkeiten

• Kompiliert mit Microsoft Visual C++ 6.0• MFC42.dll• MSVCRT.dll

Page 8: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

DBI Studio Controls R3

• Noch viel mehr Controls• Schon lange erhältlich• Controls sind nicht neu

• Gleiche Features• Gleiche IDs

Page 9: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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 Navigationsbereich• ctToolBar Menü und Symbolleiste• ctTray Windows System Tray

Page 10: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctContact

• ctContact Kontaktliste wie in Outlook

• Beispiel in CustomersDBI.scx

Page 11: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctContact

• Vfxappl.vcx - cDBIctContact• Eigenschaften• .IDFieldName = <ID Feld der Tabelle>• .NodeText = <Ausdruck für Überschrift>• .aFieldsList = <Array mit Datenbeschreibung>

• .HideEmptyItems = .T.

Page 12: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctContact

• Überschriften füllen:cDBIctContact.FillTreeView

WITH this

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

.oleContact.HeaderCargo( ; lnNewHeaderIndex) = lcNodeKey

ENDWITH

Page 13: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctContact

• Datenbeschreibung füllen:

CustomersDBI.scx – Init• Array enthält Beschriftungen und FeldnamenDIMENSION 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 14: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctContact

• Builder von DBI vorhanden

• Kleiner Nachteil

Die Überschrift kann nicht bearbeitet werden

Page 16: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDays

• ctDays Kalender Tagesansicht

• Demo in SednaDemos• Builder von DBI vorhanden

Page 17: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDEdit

• ctDEdit Datums- und Zeiteingabe

• Bearbeitung von Zeit- oder Datumswerten• Unterstützung aller SET Einstellungen von VFP

• Beispiel in OrdersCA.scx

Page 18: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDEdit

• Vfxappl.vcx – cDBIctDEdit• Eigenschaften• .cControlsource = <Controlsource> <- Wichtig!• .DropButton = <z. B. Kalenderanzeige>• .SpinButton = <z. B. Tag ändern>• .FormatType = <0-2 = Datumformat oder 3 = Zeit>

Page 19: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDEdit

• Vfxappl.vcx – cDBIctDEdit.Init

Unterstützung aller SET Einstellungen von VFP• cDBIctDEdit.ClickDrop

ClickDrop startet Kalender• cDBIctDEdit.ClickSpin

Tag ändern• Freundliches Verhalten bei Falscheingabe

• Builder von DBI vorhanden

Page 20: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDropMenu

• ctDropMenu Rechtsklickmenü• In VFX einstellbar mit

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

• VfxFormBase.vcx• Formularklasse cDBIDropMenuVFXBase

Page 21: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctDropMenu

• Verwendung in Vfxobjbase.vcx – RightClick• Hinzufügen eines Eintrags

loCtDropMenu.octDropMenu. ; Object.AddItem(lcCutText, 0, 1)

• Hinzufügen eines Icons

loCtDropMenu.octDropMenu. ; ItemPicture(1) = ; LOADPICTURE(lcPictureName)

• Builder von DBI vorhanden

Page 22: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctFrame

• ctFrame Hintergrund

• Container Steuerelement• Anzeige von Farbverläufen• Resizable

• Beispiel in Customers.scx• Builder von DBI vorhanden

Page 23: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctListBar

• ctListBar Navigationsbereich

• In VFX einstellbar mit:

goProgram.nOpenDialogStyle• 0 – Öffnen Formular• 1 – XP Öffnen Dialog• 3 – DBI Öffnen Dialog

Page 24: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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 25: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctListBar

• Demo in Sednademos• Keine typische Anwendung

• Builder von DBI vorhanden

Page 26: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• ctToolBar Menü und Symbolleiste

• In VFX einstellbar mit:

goProgram.nMenuAndToolbarStyle• 0 – VFP Menü und Symbolleiste (Standardwert)• 1 – DBI ctToolbar

Page 27: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• Menü

Vfxappl.vcx – cDBIMenuBar• Symbolleiste

Vfxappl.vcx – cDBINavigatorBar

Page 28: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• Menü

cDBIMenuBar.LoadMenu• Data Driven aus Vfxmnu.vmx gelesen

Page 29: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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 30: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• Symbolleiste

cDBINavigatorBar.LoadToolbar

Page 31: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• Icon hinzufügen (LoadToolbar)

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

• Schaltfläche hinzufügen (LoadToolbar)

lnButtonIndex = This.octOfficeBar. ; AddItem(0, "", lnPictureIndex)

Page 32: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• Vorsicht:

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

Page 33: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

• In VFX einstellbar mit:

goProgram.cDBIMainToolbar• Name der Klasse mit der DBI Symbolleiste

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

Page 34: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctToolBar

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

• Builder von DBI vorhanden

Page 35: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctTray

• ctTray Windows System Tray

• Vfxappl.vcx – cSysTray– Init– IconClick

• In VFX einstellbar mit:

goProgram.lHideAppInTray

Page 36: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

ctTray

• Integration in VFP Anwendungen

IF _SCREEN.WindowState = 1 AND ;This.lHideAppInTray

This.oSysTray = ;

Createobject("cSysTray")

_SCREEN.Hide()

ENDIF

• Builder von DBI vorhanden

Page 37: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Demos von DBI

• Demo Anwendung mit vielen Beispielen

• Dokumentation in Windows Hilfedateien

Page 38: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

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 39: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Anzeige von hlp Dateien auf Windows Vista

• Windows hlp Hilfesystem muss nachinstalliert werden:

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

Page 40: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Installation beim Kunden

• Verwendung eines Installationsprogramms• OCXe sind „selbstregistrierend“

• Programmatische Registrierung möglich, aber nicht erforderlich

Page 41: Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend

Vielen Dank undviel Spaß mit Sedna!Bitte denkt an die Bewertungsbögen!

Uwe Habermann