Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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.SessionDisplaypara la mayoría de las aplicaciones.Obtenga la ubicación del cursor con una llamada a
Microsoft.HostIntegration.SNA.Session.ScreenCursor.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%2AoMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2Ao la propiedadMicrosoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A.Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2AyMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2Aambos 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%2Arepresenta solo el campo en el que se encuentra el cursor.Por último, puede recibir información de actualización de campo con una llamada a los distintos
SessionDisplay.Waitmé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