Réception de Messages avec l’intégrateur de sessions pour LU2
Après avoir créé une session LU2, vous pouvez récupérer des informations et des messages à partir de la console 3270 via les Microsoft.HostIntegration.SNA.Session.ScreenData
objets et Microsoft.HostIntegration.SNA.Session.SessionDisplay
.
Recevoir des informations via une connexion LU2
Si nécessaire, récupérez l’intégralité de l’écran en tant que vidage d’écran à l’aide de
Microsoft.HostIntegration.SNA.Session.ScreenData
.Dans la plupart des cas, il n’est pas nécessaire de récupérer toutes les informations à l’écran. Au lieu de cela, vous pouvez utiliser l’objet pour la
Microsoft.HostIntegration.SNA.Session.SessionDisplay
plupart des applications.Obtenez l’emplacement du curseur avec un appel à
Microsoft.HostIntegration.SNA.Session.ScreenCursor
.Si vous le souhaitez, vous pouvez obtenir l’emplacement et les informations contenues dans différents champs à l’écran avec un appel à l’une
Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A
des méthodes ouMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A
, ou à laMicrosoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A
propriété .Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A
lesMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A
deux contiennent plusieurs surcharges, ce qui vous permet de récupérer des informations de champ à partir de l’écran, en fonction des informations que vous fournissez. En revanche,Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A
représente uniquement le champ dans lequel se trouve actuellement le curseur.Enfin, vous pouvez recevoir des informations de mise à jour de champ avec un appel aux différentes
SessionDisplay.Wait
méthodes.
Exemple
Le code suivant provient de l’application 3270 dans le Kit de développement logiciel (SDK) Host Integration Server. L’exemple utilise SessionDisplay.CurrentField.Data
pour accéder aux données de l’écran.
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);
}
}
Voir aussi
Intégrateur de sessions pour LU2
Intégrateur de sessions pour LU0