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
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.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 contenidas en distintos campos de la pantalla con una llamada a uno de los
Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A
métodos oMicrosoft.HostIntegration.SNA.Session.SessionDisplay.GetFields%2A
, o laMicrosoft.HostIntegration.SNA.Session.SessionDisplay.CurrentField%2A
propiedad .Microsoft.HostIntegration.SNA.Session.SessionDisplay.GetField%2A
yMicrosoft.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.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