Uwe Habermann Uwe.Habermann@dFPUG.de D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel...

Preview:

Citation preview

Uwe HabermannUwe.Habermann@dFPUG.de

D-DBIIntegration 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

Visual Extend 10.0

• VFX 10.0 Build 1104 auf der Konferenz-CD

• 4 Beispielanwendungen– VFPizza– DBI Sedna Components installieren

• 20 Stunden Videos

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

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

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

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

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

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

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

• Builder von DBI vorhanden

• Kleiner Nachteil

Die Überschrift kann nicht bearbeitet werden

ctDays

• ctDays Kalender Tagesansicht

• Demo in SednaDemos• Builder von DBI vorhanden

ctDEdit

• ctDEdit Datums- und Zeiteingabe

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

• Beispiel in OrdersCA.scx

ctDEdit

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

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

ctDropMenu

• ctDropMenu Rechtsklickmenü• In VFX einstellbar mit

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

• VfxFormBase.vcx• Formularklasse cDBIDropMenuVFXBase

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

ctFrame

• ctFrame Hintergrund

• Container Steuerelement• Anzeige von Farbverläufen• Resizable

• Beispiel in Customers.scx• Builder von DBI vorhanden

ctListBar

• ctListBar Navigationsbereich

• In VFX einstellbar mit:

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

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

• 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

ctToolBar

• Menü

Vfxappl.vcx – cDBIMenuBar• Symbolleiste

Vfxappl.vcx – cDBINavigatorBar

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

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 nicht erforderlich

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

Uwe Habermann

Recommended