410 likes | 567 Views
D-DBI Integration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend. Uwe Habermann Uwe.Habermann@dFPUG.de. VFX 10.0. 11 Jahre VFX dFPUG c/o ISYS GmbH Marktführer in Europa Mehr Anwender als alle anderen Framework Hersteller zusammen
E N D
D-DBIIntegration der DBI Controls aus Sedna in VFP am Beispiel von Visual Extend Uwe Habermann Uwe.Habermann@dFPUG.de
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 vollerCursoradapter Unterstützung • Erstes Framework mit Unterstützungder 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 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 • 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.ClickDropClickDrop 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