470 likes | 683 Views
Integration der DBI Controls aus Sedna in Visual Extend. Venelina Jordanova Venelina@VandU.eu. Uwe Habermann 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
E N D
Integration der DBI Controls aus Sedna in Visual Extend VenelinaJordanova Venelina@VandU.eu Uwe Habermann 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ützungder 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 ComponentsWofür brauche ich das? • Gestaltung einer modernen Benutzeroberfläche ähnlichOffice 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 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
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 • 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 „meistens“ nicht erforderlich
Pause! Um 11.15 Uhr geht es weiter