Compartir a través de


Recepción de mensajes con el integrador de sesiones para LU2

Después de crear una sesión LU2, puede recuperar información y mensajes de la consola 3270 a través de los objetos Microsoft.HostIntegration.SNA.Session.ScreenData y Microsoft.HostIntegration.SNA.Session.SessionDisplay.

Recepción de información a través de una conexión LU2

  1. Si es necesario, recupere toda la pantalla como captura de pantalla mediante Microsoft.HostIntegration.SNA.Session.ScreenData.

    En la mayoría de las circunstancias, no es necesario recuperar toda la información de la pantalla. En su lugar, puede usar el objeto Microsoft.HostIntegration.SNA.Session.SessionDisplay para la mayoría de las aplicaciones.

  2. Obtenga la ubicación del cursor con una llamada a Microsoft.HostIntegration.SNA.Session.ScreenCursor.

  3. Opcionalmente, puede obtener la ubicación y la información contenida en distintos campos de la pantalla con una llamada a uno de los métodos Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A o Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A o la propiedad Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A.

    Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A y Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A ambos contienen varias sobrecargas, lo que le permite recuperar información de campo de la pantalla, en función de la información que proporcione. En cambio, Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A representa solo el campo en el que se encuentra el cursor.

  4. Por último, puede recibir información de actualización de campo con una llamada a los distintos SessionDisplay.Wait métodos.

Ejemplo

El código siguiente procede de la aplicación 3270 en el SDK de Host Integration Server. En el ejemplo se usa SessionDisplay.CurrentField.Data para acceder a los datos de la pantalla.

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);  
            }  
        }  

Véase también

Integrador de sesiones para LU2
Integrador de sesiones para LU0