Partager via


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

  1. 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.

  2. Obtenez l’emplacement du curseur avec un appel à Microsoft.HostIntegration.SNA.Session.ScreenCursor.

  3. 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 ou Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A , ou à la Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A propriété .

    Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A les Microsoft.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.

  4. 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