Beruflich Dokumente
Kultur Dokumente
As can be expected, there are many ways to input data in TM1. Just a few methods
are mentioned here:
inputing data manually in a Cube viewer, either in TM1 Client, Architect, Perspec
tives or Web
copying data to a Cube viewer (as above)
inputing data in a cell that holds a DBRW or DBR formula, either in MS Excel or i
n TM1 Web
using a Turbo Integrator process (could also be executed in TM1 Web using the nav
igation tree or with the help of an action button)
using DBSW-like formulas in MS Excel
using the VBA couterpart of the DBSW formula (this is exposed through the use of
tM1 Perspectives)
using the TM1 API in for instance VB, VBA or C++
using IBM Cognos Executive Viewer / Advisor
using SendKeys or the Clipboard in MS Excel VBA-code
and so on
VBA code
Here is an example of SendKeys to send Control + V (the Paste shortcut) to a Cub
e viewer. Open a view in a cube viewer (for instance using Architect) and put yo
ur cursor on a cell where you would want to copy a bunch of cells from Excel.
Sub CopyToTM1_1()
' Wim Gielis
' http://www.wimgielis.be
'''''
' SendKeys towards TM1 Cube viewer
' 11/07/09
'''''
'copy the desired range
[A1].Copy
'or: Selection.Copy,
'or: [B2].CurrentRegion.Copy,
'or: refer to another sheet,
'or: make it even more dynamic
'insert the window caption of your cube view
AppActivate "Cube Viewer: SERVER NAME->CUBE NAME->VIEW NAME"
'paste copied data (mimick Control + V)
Application.SendKeys "^v"
'go back
AppActivate Application.Caption
'remove the ants trace
Application.CutCopyMode = False
End Sub
Clipboard
If you prefer the Windows Clipboard, code is shown below. If you use the clipboa
rd in VBA, add a reference to Microsoft Forms 2.0 Object Library (see Tools > Re
ferences, it is on top of the list usually). For comments, see above.
Sub CopyToTM1_2()
' Wim Gielis
' http://www.wimgielis.be
'''''
' Send data to the Clipboard and paste in a TM1 Cube viewer
' 11/07/09
'''''
Dim DataObj As New MSForms.DataObject
DataObj.SetText 1000
DataObj.PutInClipboard
AppActivate "Cube Viewer: SERVER NAME->CUBE NAME->VIEW NAME"
Application.SendKeys "^v"
AppActivate Application.Caption
End Sub
You do not have to use a reference and so-called early binding. With late bindin
g, you can skip the reference. The same code would look like:
Sub CopyToTM1_2_Late_Binding()
' Wim Gielis
' http://www.wimgielis.be
'''''
' Send data to the Clipboard and paste in a TM1 Cube viewer
' 11/07/09
'''''
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText 1000
.PutInClipboard
End With
AppActivate "Cube Viewer: SERVER NAME->CUBE NAME->VIEW NAME"
Application.SendKeys "^v"
AppActivate Application.Caption
End Sub
'''''
AppActivate "Cube Viewer: SERVER NAME->CUBE NAME->VIEW NAME"
Application.SendKeys "1000"
AppActivate Application.Caption
End Sub