Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nachdem Sie eine LU2-Sitzung erstellt haben, können Sie Informationen und Nachrichten über die 3270-Konsole und die Microsoft.HostIntegration.SNA.Session.ScreenDataMicrosoft.HostIntegration.SNA.Session.SessionDisplay Objekte abrufen.
Empfangen von Informationen über eine LU2-Verbindung
Rufen Sie bei Bedarf den gesamten Bildschirm als Bildschirmabbild ab.
Microsoft.HostIntegration.SNA.Session.ScreenDataFür die meisten Umstände ist das Abrufen aller Informationen auf dem Bildschirm nicht erforderlich. Stattdessen können Sie das
Microsoft.HostIntegration.SNA.Session.SessionDisplayObjekt für die meisten Anwendungen verwenden.Erhalten Sie die Cursorposition mit einem Aufruf von
Microsoft.HostIntegration.SNA.Session.ScreenCursor.Optionalerweise können Sie die Position und Informationen, die in verschiedenen Feldern auf dem Bildschirm enthalten sind, durch einen Aufruf einer der
Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A-Methoden,Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A-Methoden oder derMicrosoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A-Eigenschaft abrufen.Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2AundMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2Abeide enthalten mehrere Überladungen, sodass Sie Feldinformationen vom Bildschirm abrufen können, je nachdem, welche Informationen Sie bereitstellen. Im Gegensatz dazu stelltMicrosoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2Anur das Feld dar, in dem sich der Cursor gerade befindet.Schließlich können Sie Feldaktualisierungsinformationen mit einem Aufruf der verschiedenen
SessionDisplay.WaitMethoden empfangen.
Beispiel
Der folgende Code stammt aus der 3270-Anwendung im Host Integration Server SDK. Das Beispiel verwendet SessionDisplay.CurrentField.Data, um auf die Bildschirmdaten zuzugreifen.
private void PerformTX_Click(object sender, EventArgs e)
{
try
{
// Disable every button and text box.
DisableEverything();
m_Handler.SendKey("@E");
TraceScreen();
// Wait for screen to calm down.
m_Handler.WaitForSession(SessionDisplayWaitType.NotBusy, 5000);
TraceScreen();
// See if the Balance Field is filled out.
m_Handler.Cursor.Row = m_row;
m_Handler.Cursor.Column = m_column;
TraceScreen();
// Tab to the Account Number field.
m_Handler.SendKey("@T");
TraceScreen();
// Move to the Next Field (Empty Stuff after 123456).
m_Handler.MoveNextField();
TraceScreen();
// Move to the Next Field (Title, Account Balance).
m_Handler.MoveNextField();
TraceScreen();
// Move to the Next Field (Account Balance).
m_Handler.MoveNextField();
TraceScreen();
// Extract Data from this field.
string accountBalance = m_Handler.CurrentField.Data;
// Trim the string.
accountBalance = accountBalance.Trim();
// Only things to do now are clear screen or disconnect.
EnableClearScreen();
// If we failed (not Abended) then this field will be blank.
if (accountBalance.Length == 0)
throw new Exception("Failed to get Account Balance");
else
MessageBox.Show(accountBalance, "Account Balance");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}