View
108
Download
0
Category
Preview:
Citation preview
Uwe HabermannUwe@VandU.eu
Integration der DBI Controls aus Sedna in
Visual Extend
Venelina JordanovaVenelina@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.FillTreeViewWITH 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()
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()
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.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* 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.nMenuAndToolbarStyle0 – 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
Recommended