CHE
COS'E' OLE
OLE sta per Object Linking and
Embedded ed é un sistema che permette a Visual Basic di
condividere dati con altre applicazioni Windows, per esempio é
possibile includere un foglio di Excel, o un documento di WinWord o
un grafico generato da un'altra applic azione in un form. Per farlo
ho bisogno, supponendo di voler utilizzare un foglio excel, di
inserire il control OLE in un form, dimensionato secondo le esigenze
e valorizzare alcune proprietà di OLE per avere direttamente
il foglio excel desiderato. Con u n click nel control OLE, viene
aperto Excel per l'inserimento dei dati: terminata questa fase i
valori inseriti nel foglio Excel saranno visualizzati nel control OLE
direttamente nel form.
CREAZIONE
DI LINK OBJECT
Ole linking permette di creare un
foglio excel usando excel, di compiere delle variazioni e una volta
salvato su disco di trasferire i dati nell'oggetto Ole presente in
Visual Basic. Al posto di Excel si poteva usa una qualsiasi altra
applicazione in grado di usare Ole. Per fare ciò bisogna:
inserire un control Ole in un form ed impostarlo come:
selezionare come tipo oggetto
Microsoft Excel Worksheet
selezionare creazione da file
indicando il file Excel da usare
selezionare Ole Linking
confermare il tutto Quando
l'applicazione VB é attiva, con un doppio click sul foglio
creato con Ole, apriamo Excel che automaticamente mostrerà il
contenuto del file inserito nelle proprietà Ole; possiamo fare
tutte le variazioni che vogliamo. Alla fine salviamo su disco qua nto
fatto e chiudiamo Excel; tutti i dati inseriti sono ora anche nel
foglio creato con Ole in Visual Basic. Notare che per fare tutto
ciò non é stata digitata alcuna istruzione.
PROPRIETA'
DI OLE
I valori all e proprietà di
Ole si possono sia in creazione dell'applicazione come fatto in
precedenza col foglio di excel, sia run-time durante cioé
l'esecuzione dell'applicazione VB. Per usare Ole run-time, bisogna
assegnare alle proprietà Ole i valori che in desi gn time
venivano assegnati automaticamente. Le proprietà di Ole sono:
Class OleTypeAllowed SourceDoc e SourcItem Action
Class
serve per stabilire che tipo di
oggetto si debba usare se un foglio Excel, ad esempio o un documento
WinWord. Esempio: assegnazione ad Ole di un foglio Excel
- ole1.Class =
"ExcelWorkSheet"
OleTypeAllowed
indica che tipo di Ole si vuole
utilizzare: Linking, Embedded o entrambe. I valori sono delle
costanti che sono
- OLE_LINKED
- OLE_EMBEDDED
- OLE_EITHER
SourceDoc
identifica il file dell'applicazione
che si vuole usare: se uso Excel dovrà dichiare di usare un
file di tipo XLS.
SourceItem
identifica invece il dato del
documento da considerare; nel caso di un foglio excel saranno le
coordinate di una cella. Esempi di assegnazione sourceDoc e
sourceItem
- ole1.sourceDoc
= "PROVA.XLS"
- ole1.sourceItem
= "R5C6"
Action
serve a specificare il tipo di azione
da compiere con ole come creare, o cancellare un oggetto In questo
esempio viene creato un Ole run-time includendo un foglio
excel.
- sub
cmdCrea_click()
- ole1.class =
"ExcelWorkSheet"
- ole1.SourceDoc
= "PROVA.XLS"
- ole1.SourceItem
= "R6C5"
- ole1.Action
= OLE_CREATE_LINK 'é una costante
- end sub
Posso cambiare il sourceItem per
accedere a nuovi dati ma devo però ricreare un nuovo link: con
i dati dell'esempio precedente, per cambiare le celle di excel le
istruzioni sono:
- sub
cmdCambia_click()
- ole1.SourceItem
= "R6C5:R9C14" 'ho
usato un range di celle
- ole1.Action =
OLE_CREATE_LINK
- end
sub
OLE
AUTOMATION
Ole automation permette a Visual
Basic di usare i comandi e le funzioni di un'altra applicazione: in
pratica é possibile programmare Excel o WinWord da Visual
Basic. Per farlo bisogna conoscere però gli oggetti ed i
metodi dell'applicazione chiamata e quin di richiede un certo studio
e conoscenza dell'applicazione che s'intende utilizzare. In pratica
Ole Automation funziona così: si prende il control OLE2 e lo
piazza in un form run-time si crea un oggetto per l'applicazione
voluta si usa l'oggetto create per le operazioni da compiere Esempio:
come utilizzare l'applicazione calculator che supporta OLE in Visual
Basic per compiere delle semplici operazioni 'da inserire nelle
declaration de l form dim calc as object
- sub
cmd1_click()
- set calc =
CreateObject("dispcalc.ccalc") 'attiva
oggetto calcolatrice
- end sub
-
cmd
calcola_click()
- calc.op =
cboOperazione.listindex + 1 '
scelta del tipo di operazione tra quelli presenti nella
combo
- calc.accum =
val(txt1.Text) '
copia valore del primo numero
- calc.Opnd =
val(txt2.Text) '
copia valore del secondo numero
- calc.eval '
calcola
- calc.display
' mostra risultato
- lblResult.caption
= calc.Accum '
copia risultato nella label
end sub
DataRegion
|