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 Microsoft.HostIntegration.SNA.Session.ScreenData objetos 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 volcado de pantalla mediante Microsoft.HostIntegration.SNA.Session.ScreenData.

    Para la mayoría de las circunstancias, no es necesario recuperar toda la información de la pantalla. En su lugar, puede usar el objeto para la Microsoft.HostIntegration.SNA.Session.SessionDisplay 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 contenidas en distintos campos de la pantalla con una llamada a uno de los Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A métodos o Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A , o la Microsoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A propiedad .

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

Consulte también

Integrador de sesiones para LU2
Integrador de sesiones para LU0