'--------------------------------------------------------------------------------
' Macro: winwordtrans.EBM
'
' Description: This macro retrieves a filename from the edit / browse screen
' and then transfers the file to the PC. After the transfer Microsoft Word
' is opened with the transfered file.
'
Global g_HostSettleTime%
Sub Main()
'--------------------------------------------------------------------------------
' Get the main system object
Dim Sessions As Object
Dim System As Object
Set System = CreateObject("EXTRA.System") ' Gets the system object
If (System is Nothing) Then
Msgbox "Could not create the EXTRA System object. Stopping macro playback."
STOP
End If
Set Sessions = System.Sessions
If (Sessions is Nothing) Then
Msgbox "Could not create the Sessions collection object. Stopping macro playback."
STOP
End If
'--------------------------------------------------------------------------------
' Set the default wait timeout value
g_HostSettleTime = 1500 ' milliseconds
OldSystemTimeout& = System.TimeoutValue
If (g_HostSettleTime > OldSystemTimeout) Then
System.TimeoutValue = g_HostSettleTime
End If
' Get the necessary Session Object
Dim Sess0 As Object
Set Sess0 = System.ActiveSession
If (Sess0 is Nothing) Then
Msgbox "Could not create the Session object. Stopping macro playback."
STOP
End If
If Not Sess0.Visible Then Sess0.Visible = TRUE
' Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
' This section will check if the screen is locked and ask for a password
szString = Sess0.Screen.GetString(8,26,15)
if (szString = "TERMINAL LOCKED") Then
Dim szPassword
szPassword=PasswordBox("Enter your TPX password:","Your terminal is locked")
Sess0.Screen.Sendkeys("<Home>" szPassword "<Enter>")
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
End If
Dim MyArea As Object, MyArea2 As Object
' Check if the USER made a selection
szString = Sess0.Screen.Selection
szString = Trim(szString)
If (szString <> "") Then
GoTo Transfer:
End If
Sess0.Screen.MoveTo 1, 1
Set MyArea = Sess0.Screen.Search("Command ===>")
If (MyArea.Top = -1) Then
msgbox("Could not find Command ===>")
exit sub
End If
Sess0.Screen.MoveTo MyArea.Bottom - 1, MyArea.Left
szString = Sess0.Screen.GetString(Sess0.Screen.Row,Sess0.Screen.Col,10)
szString = Trim(szString)
Select Case szString
Case "SDSF BROWS"
msgbox("This script does not support SDSF BROWSE, yet.")
exit sub
Case "SDSF EDIT"
msgbox("This script does not support SDSF EDIT, yet.")
exit sub
Case "BROWSE"
spos = 10
Case "EDIT"
spos = 11
Case "VIEW"
spos = 11
Case Else
leftString = Left(szString,4)
If (leftString = "EDIT") Then
spos = 09
Else
msgbox("This script does not support this screen.")
exit sub
End If
End Select
Sess0.Screen.MoveTo Sess0.Screen.Row, Sess0.Screen.Col spos
Set MyArea = Sess0.Screen.Search(" ",Sess0.Screen.Row,Sess0.Screen.Col)
If (MyArea.Top = -1) Then
msgbox("Could not find the end of the filename")
exit sub
End If
szString = Sess0.Screen.GetString(Sess0.Screen.Row,Sess0.Screen.Col,MyArea.Left - Sess0.Screen.Col)
szString = Trim(szString)
pcfString = "c:\text.txt"
Transfer:
Sess0.Screen.Sendkeys("<Home><EraseEOF>tsocmd<Enter>")
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
Sess0.FileTransferScheme = "Text Default"
Sess0.FileTransferScheme = "C:\Program Files\E!PC\schemes\Text Default.eis"
Sess0.FileTransferHostOS = 1
Recv = Sess0.ReceiveFile(pcfString,"'" szString "'")
If Recv Then
hWndCalc% = Shell("C:\Program Files\Microsoft Office 2003\OFFICE11\WINWORD.EXE " pcfString, 1)
Else
MsgBox ("Transfer failure. Check that you don't have " pcfString " open in another application. If that is not the case close and reopen extra")
End If
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
Sess0.Screen.Sendkeys("end<Enter>")
System.TimeoutValue = OldSystemTimeout
End Sub
Attachmate Extra Macro to transfer a PDS member to Microsoft Word.
If you are in editing, browsing or viewing a file in ISPF you can transfer the contents of the member to Windows with an Attachmate Extra macro.
