Este es un proyecto muy especial porque esta aplicación desarrollada en Access / Visual Basic, interacciona con el host del banco a través de ciertas librerías que los conectan y es capaz de interactuar. Ahorra mucho tiempo de navegación por el host para hacer operaciones repetitivas como por ejemplo bloquear clientes de países en especial vigilancia.
Todo el valor añadido está en el código escrito en Visual Basic que expongo a continuación para que se vea mi estilo programando:
Option Compare Database
‘Option Explicit
Dim con As AutConnMgr
Dim emu As AutSess
‘****************************************************
‘* *
‘* FUNCIONES DE RECUPERACIÓN DE DATOS DEL HOST *
‘* *
‘****************************************************
‘FUNCIÓN QUE RECUPERA DATOS DE DE PERSONAS FÍSICAS DE LA BASE DE CLIENTES
Function ejecutar_bloqueos_PF_PJ() As Boolean
If MsgBox(«HA DE TENER ABIERTA SESIÓN HOST TPX SANTANDER EN MENÚ PRINCIPAL», vbOKCancel) = vbOK Then
‘DEFINICION Y APERTURA DE BASE DE DATOS DONDE EL USUARIO ALMACENA LOS CLIENTES A ANALIZAR
Dim MYWS As Workspace
Dim MYDB As Database
Dim X_CLIENTES As Recordset
Dim estoy_en
Dim xsigno As String
Dim xnumero As String
Dim xpantalla As String
Dim xtipocliente As String
Dim xcodigocliente As String
Dim xnombrecliente As String
Dim xcontador As Double
Dim xmotivo As String
Dim xflag As String
Set MYWS = DBEngine.Workspaces(0)
Set MYDB = MYWS.Databases(0)
Set X_CLIENTES = MYDB.OpenRecordset(«CLIENTES»)
‘APERTURA SESION HOST
Set con = New AutConnMgr
Set emu = New AutSess
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
host
menu_principal
host
punto_16_16_2
Do While Not X_CLIENTES.EOF
xtipocliente = X_CLIENTES.Fields(«COD_TIPOCLIENTE»).Value
xcodigocliente = X_CLIENTES.Fields(«COD_CLIENTE»).Value
xmotivo = X_CLIENTES.Fields(«MOTIVO»).Value
‘CLEAR SCREEN CON PF2
emu.autECLPS.SendKeys («[pf2]»)
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
emu.autECLPS.autECLFieldList(34).SetText xtipocliente
emu.autECLPS.autECLFieldList(36).SetText xcodigocliente
emu.autECLPS.autECLFieldList(43).SetText «A»
emu.autECLPS.SendKeys («[enter]»)
emu.autECLPS.WaitForAttrib 8, 1, «00», «3c», 3, 100
emu.autECLPS.WaitForCursor 10, 2, 100
host
If Trim(emu.autECLPS.autECLFieldList(1).GetText) = «I7PP10» Then
xflag = emu.autECLPS.autECLFieldList(1).GetText
X_CLIENTES.Edit
X_CLIENTES.Fields(«FLAG»).Value = xflag
X_CLIENTES.Update
host
emu.autECLPS.autECLFieldList(53).SetText «S»
emu.autECLPS.SendKeys («[enter]»)
emu.autECLPS.WaitForAttrib 8, 1, «00», «3c», 3, 100
emu.autECLPS.WaitForCursor 10, 2, 100
host
If Trim(emu.autECLPS.autECLFieldList(1).GetText) = «I7PPC1» Then
xflag = xflag & emu.autECLPS.autECLFieldList(1).GetText
X_CLIENTES.Edit
X_CLIENTES.Fields(«FLAG»).Value = xflag
X_CLIENTES.Update
host
emu.autECLPS.SendKeys («[enter]»)
emu.autECLPS.WaitForAttrib 8, 1, «00», «3c», 3, 100
emu.autECLPS.WaitForCursor 10, 2, 100
host
If Trim(emu.autECLPS.autECLFieldList(1).GetText) = «I7PP40» Then
xflag = xflag & emu.autECLPS.autECLFieldList(1).GetText
X_CLIENTES.Edit
X_CLIENTES.Fields(«FLAG»).Value = xflag
X_CLIENTES.Update
host
emu.autECLPS.autECLFieldList(38).SetText «16»
emu.autECLPS.autECLFieldList(45).SetText xmotivo
emu.autECLPS.SendKeys («[enter]»)
emu.autECLPS.WaitForAttrib 8, 1, «00», «3c», 3, 100
emu.autECLPS.WaitForCursor 10, 2, 100
host
X_CLIENTES.Edit
X_CLIENTES.Fields(«FLAG»).Value = xflag & Trim(emu.autECLPS.autECLFieldList(1).GetText)
X_CLIENTES.Update
If Trim(emu.autECLPS.autECLFieldList(1).GetText) = «I7PP41» Then
X_CLIENTES.Edit
X_CLIENTES.Fields(«FLAG»).Value = xflag & Trim(emu.autECLPS.autECLFieldList(1).GetText)
X_CLIENTES.Update
PF5
‘PF3
End If
PF3
End If
PF3
End If
PF3
End If
‘PF3
X_CLIENTES.MoveNext
Loop
host
menu_principal
‘CIERRE SESION HOST
Set emu = Nothing
Set con = Nothing
‘CIERRE HANDLE BASE DE DATOS
X_CLIENTES.Close
MYDB.Close
MYWS.Close
End If
MsgBox «PROCESO TERMINADO EXITOSAMENTE»
End Function
Function comprobar_bloqueos_PF_PJ() As Boolean
If MsgBox(«HA DE TENER ABIERTA SESIÓN HOST TPX SANTANDER EN MENÚ PRINCIPAL», vbOKCancel) = vbOK Then
‘DEFINICION Y APERTURA DE BASE DE DATOS DONDE EL USUARIO ALMACENA LOS CLIENTES A ANALIZAR
Dim MYWS As Workspace
Dim MYDB As Database
Dim X_CLIENTES As Recordset
Dim X_CLIENTES_VARIAS_ORDENES As Recordset
Dim X_CLIENTES_VARIAS_ORDENES2 As Recordset
Dim xtipocliente As String
Dim xcodigocliente As String
Dim xproblema As String
Dim xfinish As String
Dim varBookmark As Variant
‘APERTURA SESION HOST
Set con = New AutConnMgr
Set emu = New AutSess
Set MYWS = DBEngine.Workspaces(0)
Set MYDB = MYWS.Databases(0)
Set X_CLIENTES = MYDB.OpenRecordset(«COMPROBACION_SIMPLIFICADA»)
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
host
menu_principal
host
punto_16_16_2
X_CLIENTES.MoveFirst
Do While Not X_CLIENTES.EOF
xtipocliente = X_CLIENTES.Fields(«COD_TIPOCLIENTE»).Value
xcodigocliente = X_CLIENTES.Fields(«COD_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 34, xtipocliente
texto 36, xcodigocliente
texto 43, «M»
Intro
host
Select Case leer(1)
Case «I7PP51»
X_CLIENTES.Edit
X_CLIENTES.Fields(«CENTRO_GESTOR»).Value = leer(39)
X_CLIENTES.Fields(«LINEA1»).Value = leer(43)
X_CLIENTES.Fields(«LINEA2»).Value = leer(45)
X_CLIENTES.Update
PF3
Case «I7PP52»
X_CLIENTES.Edit
X_CLIENTES.Fields(«CENTRO_GESTOR»).Value = leer(32)
X_CLIENTES.Fields(«LINEA1»).Value = leer(36)
X_CLIENTES.Fields(«LINEA2»).Value = leer(38)
X_CLIENTES.Update
PF3
Case «I7PP50»
X_CLIENTES.Edit
X_CLIENTES.Fields(«PROBLEMA»).Value = «VARIAS ÓRDENES»
X_CLIENTES.Update
PF3
Case Else
X_CLIENTES.Edit
X_CLIENTES.Fields(«PROBLEMA»).Value = leer(57)
X_CLIENTES.Update
End Select
X_CLIENTES.MoveNext
Loop
End If
host
menu_principal
host
punto_16_16_2
X_CLIENTES.MoveFirst
Do While Not X_CLIENTES.EOF
If X_CLIENTES.Fields(«PROBLEMA»).Value = «NO EXISTEN AVISOS GESTIONABLES POR EL CENTRO» Then
xtipocliente = X_CLIENTES.Fields(«COD_TIPOCLIENTE»).Value
xcodigocliente = X_CLIENTES.Fields(«COD_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 34, xtipocliente
texto 36, xcodigocliente
texto 43, «M»
Intro
host
End If
X_CLIENTES.MoveNext
Loop
host
menu_principal
On Error Resume Next
Set X_CLIENTES_VARIAS_ORDENES = MYDB.OpenRecordset(«VARIAS», dbOpenDynaset)
X_CLIENTES_VARIAS_ORDENES.MoveLast
If Not X_CLIENTES_VARIAS_ORDENES.EOF Then
Set X_CLIENTES_VARIAS_ORDENES2 = MYDB.OpenRecordset(«CLIENTES_VARIAS_ORDENES»)
X_CLIENTES_VARIAS_ORDENES.MoveFirst
host
punto_16_16_2
Do While Not X_CLIENTES_VARIAS_ORDENES.EOF
xtipocliente = X_CLIENTES_VARIAS_ORDENES.Fields(«COD_TIPOCLIENTE»).Value
xcodigocliente = X_CLIENTES_VARIAS_ORDENES.Fields(«COD_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 34, xtipocliente
texto 36, xcodigocliente
texto 43, «M»
Intro
host
Select Case leer(1)
Case «I7PP50»
i = 1
For i = 0 To 7
If leer(29 + (9 * i)) <> «» Then
X_CLIENTES_VARIAS_ORDENES2.AddNew
X_CLIENTES_VARIAS_ORDENES2.Fields(«COD_TIPOCLIENTE»).Value = X_CLIENTES_VARIAS_ORDENES.Fields(«COD_TIPOCLIENTE»).Value
X_CLIENTES_VARIAS_ORDENES2.Fields(«COD_CLIENTE»).Value = X_CLIENTES_VARIAS_ORDENES.Fields(«COD_CLIENTE»).Value
X_CLIENTES_VARIAS_ORDENES2.Fields(«ID_CLIENTE»).Value = X_CLIENTES_VARIAS_ORDENES.Fields(«ID_CLIENTE»).Value
X_CLIENTES_VARIAS_ORDENES2.Fields(«PROBLEMA»).Value = X_CLIENTES_VARIAS_ORDENES.Fields(«PROBLEMA»).Value
X_CLIENTES_VARIAS_ORDENES2.Fields(«FECHA_ALTA»).Value = leer(29 + (9 * i))
X_CLIENTES_VARIAS_ORDENES2.Fields(«FECHA_VIGOR»).Value = leer(30 + (9 * i))
X_CLIENTES_VARIAS_ORDENES2.Fields(«ACCION»).Value = leer(31 + (9 * i))
X_CLIENTES_VARIAS_ORDENES2.Fields(«CENTRO»).Value = leer(32 + (9 * i)) & «-» & leer(33 + (9 * i))
X_CLIENTES_VARIAS_ORDENES2.Fields(«VENCIMIENTO»).Value = leer(34 + (9 * i))
X_CLIENTES_VARIAS_ORDENES2.Fields(«ESTADO»).Value = leer(36 + (9 * i))
texto 28 + (9 * i), «S»
Intro
host
Select Case leer(1)
Case «I7PP51»
X_CLIENTES_VARIAS_ORDENES2.Fields(«CENTRO_GESTOR»).Value = leer(39)
X_CLIENTES_VARIAS_ORDENES2.Fields(«LINEA1»).Value = leer(43)
X_CLIENTES_VARIAS_ORDENES2.Fields(«LINEA2»).Value = leer(45)
PF3
Case «I7PP52»
X_CLIENTES_VARIAS_ORDENES2.Fields(«CENTRO_GESTOR»).Value = leer(32)
X_CLIENTES_VARIAS_ORDENES2.Fields(«LINEA1»).Value = leer(36)
X_CLIENTES_VARIAS_ORDENES2.Fields(«LINEA2»).Value = leer(38)
PF3
End Select
X_CLIENTES_VARIAS_ORDENES2.Update
Else
PF3
Exit For
End If
Next i
Case Else
X_CLIENTES_VARIAS_ORDENES2.Edit
X_CLIENTES_VARIAS_ORDENES2.Fields(«PROBLEMA»).Value = leer(57)
X_CLIENTES_VARIAS_ORDENES2.Update
End Select
X_CLIENTES_VARIAS_ORDENES.MoveNext
Loop
End If
On Error GoTo 0
host
menu_principal
‘CIERRE SESION HOST
Set emu = Nothing
Set con = Nothing
‘CIERRE HANDLE BASE DE DATOS
X_CLIENTES.Close
MYDB.Close
MYWS.Close
End Function
Function comprobar_bloqueos_CONTRATO() As Boolean
If MsgBox(«HA DE TENER ABIERTA SESIÓN HOST TPX SANTANDER EN MENÚ PRINCIPAL», vbOKCancel) = vbOK Then
‘DEFINICION Y APERTURA DE BASE DE DATOS DONDE EL USUARIO ALMACENA LOS CLIENTES A ANALIZAR
Dim MYWS As Workspace
Dim MYDB As Database
Dim X_CONTRATOS As Recordset
Dim X_CLIENTES_CONTRATOS As Recordset
Dim xtipocliente As String
Dim xcodigocliente As String
Dim xproblema As String
Dim xfinish As String
Dim xcontrato As String
‘APERTURA SESION HOST
Set con = New AutConnMgr
Set emu = New AutSess
Set MYWS = DBEngine.Workspaces(0)
Set MYDB = MYWS.Databases(0)
Set X_CLIENTES_CONTRATOS = MYDB.OpenRecordset(«CLIENTES_CONTRATOS»)
Set X_CONTRATOS = MYDB.OpenRecordset(«CONTRATOS», dbOpenDynaset)
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
host
menu_principal
host
punto_16_16_2
X_CONTRATOS.MoveLast
If Not X_CONTRATOS.EOF Then
X_CONTRATOS.MoveFirst
host
punto_16_16_2
Do While Not X_CONTRATOS.EOF
xcontrato = X_CONTRATOS.Fields(«CCC»).Value
xtipocliente = X_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value
xcodcliente = X_CONTRATOS.Fields(«COD_CLIENTE»).Value
xidcliente = X_CONTRATOS.Fields(«ID_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 18, Left(xcontrato, 4)
texto 19, Mid(xcontrato, 6, 4)
texto 20, Mid(xcontrato, 11, 2)
texto 21, Right(xcontrato, 10)
texto 28, «M»
Intro
host
Select Case leer(1)
Case «I7P301»
i = 0
For i = 0 To 9
If leer(45 + (9 * i)) <> «» Then
X_CLIENTES_CONTRATOS.AddNew
X_CLIENTES_CONTRATOS.Fields(«CONTRATO»).Value = xcontrato
X_CLIENTES_CONTRATOS.Fields(«PROBLEMA»).Value = «VARIAS ÓRDENES»
X_CLIENTES_CONTRATOS.Fields(«FECHA_ALTA»).Value = leer(45 + IIf(i <= 1, (9 * i), (8 * i) + 1))
X_CLIENTES_CONTRATOS.Fields(«FECHA_VIGOR»).Value = leer(46 + IIf(i <= 1, (9 * i), (8 * i) + 1))
X_CLIENTES_CONTRATOS.Fields(«ACCION»).Value = leer(47 + IIf(i <= 1, (9 * i), (8 * i) + 1))
X_CLIENTES_CONTRATOS.Fields(«CENTRO»).Value = leer(48 + IIf(i <= 1, (9 * i), (8 * i) + 1)) & «-» & leer(49 + IIf(i <= 1, (9 * i), (8 * i) + 1))
X_CLIENTES_CONTRATOS.Fields(«VENCIMIENTO»).Value = leer(50 + IIf(i <= 1, (9 * i), (8 * i) + 1))
X_CLIENTES_CONTRATOS.Fields(«ESTADO»).Value = leer(52 + (8 * i))
texto 44 + IIf(i <= 1, (9 * i), (8 * i) + 1), «S»
Intro
host
Select Case leer(1)
Case «I7P307»
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«NOMBRE»).Value = leer(26)
X_CLIENTES_CONTRATOS.Fields(«CENTRO_GESTOR»).Value = leer(28)
X_CLIENTES_CONTRATOS.Fields(«LINEA1″).Value = leer(32) & » » & leer(34) & » » & leer(36) & » » & leer(38)
X_CLIENTES_CONTRATOS.Fields(«LINEA2″).Value = leer(40) & » » & leer(42) & » » & leer(44) & » » & leer(46)
PF3
Case «I7P308»
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«NOMBRE»).Value = leer(26)
X_CLIENTES_CONTRATOS.Fields(«CENTRO_GESTOR»).Value = leer(47)
X_CLIENTES_CONTRATOS.Fields(«LINEA1″).Value = leer(51) & » » & leer(53) & » » & leer(55) & » » & leer(57)
X_CLIENTES_CONTRATOS.Fields(«LINEA2″).Value = leer(59) & » » & leer(61) & » » & leer(63) & » » & leer(65)
PF3
Case «I7P309»
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«NOMBRE»).Value = leer(26)
X_CLIENTES_CONTRATOS.Fields(«CENTRO_GESTOR»).Value = leer(49)
X_CLIENTES_CONTRATOS.Fields(«LINEA1″).Value = leer(53) & » » & leer(55) & » » & leer(57) & » » & leer(59)
X_CLIENTES_CONTRATOS.Fields(«LINEA2″).Value = leer(61) & » » & leer(63) & » » & leer(65) & » » & leer(67)
PF3
Case Else
X_CLIENTES_CONTRATOS.Fields(«PROBLEMA»).Value = leer(132)
End Select
X_CLIENTES_CONTRATOS.Update
Else
PF3
Exit For
End If
Next i
Case «I7P109»
X_CLIENTES_CONTRATOS.AddNew
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«PROBLEMA»).Value = «ÓRDEN ÚNICA»
X_CLIENTES_CONTRATOS.Fields(«CONTRATO»).Value = xcontrato
X_CLIENTES_CONTRATOS.Fields(«NOMBRE»).Value = leer(37)
X_CLIENTES_CONTRATOS.Fields(«CENTRO_GESTOR»).Value = leer(56)
X_CLIENTES_CONTRATOS.Fields(«LINEA1″).Value = leer(60) & » » & leer(62) & » » & leer(64) & » » & leer(66)
X_CLIENTES_CONTRATOS.Fields(«LINEA2″).Value = leer(68) & » » & leer(70) & » » & leer(72) & » » & leer(74)
X_CLIENTES_CONTRATOS.Update
PF3
Case «I7P308»
X_CLIENTES_CONTRATOS.AddNew
X_CLIENTES_CONTRATOS.Fields(«CONTRATO»).Value = xcontrato
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«PROBLEMA»).Value = «ÓRDEN ÚNICA»
X_CLIENTES_CONTRATOS.Fields(«NOMBRE»).Value = leer(26)
X_CLIENTES_CONTRATOS.Fields(«CENTRO_GESTOR»).Value = leer(47)
X_CLIENTES_CONTRATOS.Fields(«LINEA1″).Value = leer(51) & » » & leer(53) & » » & leer(55) & » » & leer(57)
X_CLIENTES_CONTRATOS.Fields(«LINEA2″).Value = leer(59) & » » & leer(61) & » » & leer(63) & » » & leer(65)
X_CLIENTES_CONTRATOS.Update
PF3
Case Else
X_CLIENTES_CONTRATOS.AddNew
X_CLIENTES_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_CLIENTES_CONTRATOS.Fields(«COD_CLIENTE»).Value = xcodcliente
X_CLIENTES_CONTRATOS.Fields(«ID_CLIENTE»).Value = xidcliente
X_CLIENTES_CONTRATOS.Fields(«CONTRATO»).Value = xcontrato
X_CLIENTES_CONTRATOS.Fields(«PROBLEMA»).Value = leer(57)
X_CLIENTES_CONTRATOS.Update
End Select
X_CONTRATOS.MoveNext
Loop
End If
End If
host
menu_principal
‘CIERRE SESION HOST
Set emu = Nothing
Set con = Nothing
‘CIERRE HANDLE BASE DE DATOS
X_CONTRATOS.Close
X_CLIENTES_CONTRATOS.Close
MYDB.Close
MYWS.Close
End Function
Function recupera_productos() As Boolean
On Error Resume Next
If MsgBox(«HA DE TENER ABIERTA SESIÓN HOST EN PANTALLA 16.7.1 DEL BANCO DE DONDE QUIERA EXTRAER PRODUCTOS DEL CLIENTE. PULSE OK PARA PROCEDER A INTRODUCIR EL NÚMERO DE PERSONA DEL CLIENTE O BIEN CANCELAR PARA REGRESAR AL MENÚ PRINCIPAL», vbOKCancel) = vbOK Then
DoCmd.RunSQL «DELETE * FROM PRODUCTOS_INTERVINIENTES;»
‘DEFINICION Y APERTURA DE BASE DE DATOS DONDE EL USUARIO ALMACENA LOS CLIENTES A ANALIZAR
Dim MYWS As Workspace
Dim MYDB As Database
Dim X_PRODUCTOS As Recordset
Dim X_CLIENTES As Recordset
Dim i, j As Integer
Dim k1 As Integer
Dim k2 As Integer
Dim k3 As Integer
Dim xccc As String
Dim estoy_en
Dim xsigno As String
Dim xnumero As String
Dim efe_ocho, efe_ocho1 As String
Dim xtipocliente As String
Dim xcodigocliente As String
Dim xnombrecliente As String
Dim xbanco As String
Set MYWS = DBEngine.Workspaces(0)
Set MYDB = MYWS.Databases(0)
Set X_PRODUCTOS = MYDB.OpenRecordset(«PRODUCTOS_INTERVINIENTES»)
Set X_CLIENTES = MYDB.OpenRecordset(«HISTORICO_BLOQUEOS»)
Let k1 = 7
Let k2 = 3
Let k3 = 5
‘APERTURA SESION HOST
Set con = New AutConnMgr
Set emu = New AutSess
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
host
menu_principal
host
punto_16_7_1
host
Do While Not X_CLIENTES.EOF
xtipocliente = X_CLIENTES.Fields(«COD_TIPOCLIENTE»).Value
xcodigocliente = X_CLIENTES.Fields(«COD_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 20, xtipocliente
texto 21, xcodigocliente
Intro
If leer(1) = «KPP705» Then
xnombrecliente = leer(23)
Do Until leer(113) = «XX0056» Or leer(113) = «KP3113»
For i = 0 To 9
X_PRODUCTOS.AddNew
If leer(1) = «KPP705» Then
X_PRODUCTOS.Fields(«COD_TIPOCLIENTE»).Value = xtipocliente
X_PRODUCTOS.Fields(«COD_CLIENTE»).Value = xcodigocliente
X_PRODUCTOS.Fields(«NOMBRE_CLIENTE»).Value = xnombrecliente
X_PRODUCTOS.Fields(«CCC»).Value = leer(32 + (i * k1))
X_PRODUCTOS.Fields(«INTERVENCION»).Value = leer(33 + (i * k1))
X_PRODUCTOS.Fields(«SALDO_PRINCIPAL»).Value = Val(leer(34 + (i * k1)))
X_PRODUCTOS.Fields(«MONEDA»).Value = leer(35 + (i * k1))
PF11
End If
If leer(1) = «KPP702» Then
X_PRODUCTOS.Fields(«FECHA_SALDO_PRINCIPAL»).Value = leer(27 + (i * k2))
X_PRODUCTOS.Fields(«PRODUCTO»).Value = leer(28 + (i * k2))
X_PRODUCTOS.Fields(«DESCRIPCION_TIPO_PRODUCTO»).Value = leer(29 + (i * k2))
PF11
End If
If leer(1) = «KPP701» Then
X_PRODUCTOS.Fields(«TIPO_SUBTIPO»).Value = leer(26 + (i * k3)) & leer(27 + (i * k3)) & leer(28 + (i * k3))
X_PRODUCTOS.Fields(«DESCRIPCION_SUBTIPO_PRODUCTO»).Value = leer(i * k3)
PF10
PF10
End If
X_PRODUCTOS.Update
Next i
PF8
Loop
PF3
End If
X_CLIENTES.MoveNext
Loop
End If
‘CIERRE SESION HOST
host
menu_principal
Set emu = Nothing
Set con = Nothing
‘CIERRE HANDLE BASE DE DATOS
X_PRODUCTOS.Close
X_CLIENTES.Close
MYDB.Close
MYWS.Close
DoCmd.RunSQL «DELETE * FROM PRODUCTOS_INTERVINIENTES WHERE CCC=»;»
On Error GoTo 0
End Function
Function ejecutar_bloqueos_CONTRATO() As Boolean
If MsgBox(«HA DE TENER ABIERTA SESIÓN HOST TPX SANTANDER EN MENÚ PRINCIPAL», vbOKCancel) = vbOK Then
‘DEFINICION Y APERTURA DE BASE DE DATOS DONDE EL USUARIO ALMACENA LOS CLIENTES A ANALIZAR
Dim MYWS As Workspace
Dim MYDB As Database
Dim X_CONTRATOS As Recordset
Dim xtipocliente As String
Dim xcodigocliente As String
Dim xproblema As String
Dim xfinish As String
Dim xcontrato As String
Dim xmotivo As String
‘APERTURA SESION HOST
Set con = New AutConnMgr
Set emu = New AutSess
Set MYWS = DBEngine.Workspaces(0)
Set MYDB = MYWS.Databases(0)
DoCmd.OpenQuery «CONTRATOSX»
Set X_MOTIVO = MYDB.OpenRecordset(«MOTIVO»)
Set X_CONTRATOS = MYDB.OpenRecordset(«CONTRATOS_X»)
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
host
menu_principal
host
punto_16_16_2
X_MOTIVO.MoveFirst
xmotivo = X_MOTIVO.Fields(«TEXTO_MOTIVO»).Value
X_CONTRATOS.MoveLast
If Not X_CONTRATOS.EOF Then
X_CONTRATOS.MoveFirst
host
punto_16_16_2
Do While Not X_CONTRATOS.EOF
xcontrato = X_CONTRATOS.Fields(«CCC»).Value
xtipocliente = X_CONTRATOS.Fields(«COD_TIPOCLIENTE»).Value
xcodcliente = X_CONTRATOS.Fields(«COD_CLIENTE»).Value
xidcliente = X_CONTRATOS.Fields(«ID_CLIENTE»).Value
‘CLEAR SCREEN CON PF2
PF2
‘RELLENAR CON DATOS PANTALLA PRINCIPAL DE EMULADOR
host
texto 18, Left(xcontrato, 4)
texto 19, Mid(xcontrato, 6, 4)
texto 20, Mid(xcontrato, 11, 2)
texto 21, Right(xcontrato, 10)
texto 28, «A»
Intro
host
Select Case leer(1)
Case «I7P120»
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«SECUENCIA»).Value = X_CONTRATOS.Fields(«SECUENCIA»).Value & » » & leer(1)
X_CONTRATOS.Update
texto 58, «S»
Intro
host
Select Case leer(1)
Case «I7P150»
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«SECUENCIA»).Value = X_CONTRATOS.Fields(«SECUENCIA»).Value & » » & leer(1)
X_CONTRATOS.Update
texto 43, «16»
texto 50, xmotivo
Intro
host
Select Case leer(1)
Case «I7P151»
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«SECUENCIA»).Value = X_CONTRATOS.Fields(«SECUENCIA»).Value & » » & leer(1)
X_CONTRATOS.Fields(«MOTIVO»).Value = xmotivo
X_CONTRATOS.Update
PF5
PF3
PF3
PF3
Case Else
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«PROBLEMA»).Value = leer(57)
X_CONTRATOS.Update
End Select
Case Else
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«PROBLEMA»).Value = leer(57)
X_CONTRATOS.Update
End Select
Case Else
X_CONTRATOS.Edit
X_CONTRATOS.Fields(«PROBLEMA»).Value = leer(57)
X_CONTRATOS.Update
End Select
X_CONTRATOS.MoveNext
Loop
End If
End If
host
menu_principal
‘CIERRE SESION HOST
Set emu = Nothing
Set con = Nothing
‘CIERRE HANDLE BASE DE DATOS
X_CONTRATOS.Close
MYDB.Close
MYWS.Close
End Function
‘****************************
‘* *
‘* FUNCIONES AUXILIARES *
‘* *
‘****************************
Function host()
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function menu_principal()
Do While True
PF3
If Left(leer(12), 17) = «REDB APLICACIONES» Then
Exit Do
End If
Loop
End Function
Function punto_16_16_2()
If Left(leer(12), 17) = «REDB APLICACIONES» Then
host
texto 118, «16»
Intro
host
texto 118, «16»
Intro
host
texto 118, «2»
Intro
host
End If
End Function
Function punto_16_7_3()
If Left(leer(12), 17) = «REDB APLICACIONES» Then
host
texto 118, «16»
Intro
host
texto 118, «7»
Intro
host
texto 118, «3»
Intro
host
End If
End Function
End Function
Function punto_16_7_1()
If Left(leer(12), 17) = «REDB APLICACIONES» Then
host
texto 118, «16»
Intro
host
texto 118, «7»
Intro
host
texto 118, «1»
Intro
host
End If
End Function
Function punto_6_1_11()
If Left(leer(12), 17) = «REDB APLICACIONES» Then
host
texto 118, «6»
Intro
host
texto 118, «1»
Intro
host
texto 118, «11»
Intro
host
End If
End Function
Function texto(xposicion As Long, xtexto As String)
emu.autECLPS.autECLFieldList(xposicion).SetText xtexto
End Function
Function leer(xposicion As Long) As String
leer = Trim(LTrim((emu.autECLPS.autECLFieldList(xposicion).GetText)))
End Function
Function abrir_host()
Set con = New AutConnMgr
Set emu = New AutSess
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
End Function
Function PF10()
‘PULSO F10 Y VAMOS A LA PANTALLA IZQUIERDA
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf10]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function PF8()
‘PULSO F8 Y VAMOS ABAJO
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf8]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function PF11()
‘PULSO F11 Y VAMOS A LA PANTALLA DERECHA
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf11]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function PF3()
‘PULSO F3 Y VAMOS ATRAS
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf3]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function PF5()
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf5]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function PF2()
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.SendKeys («[pf2]»)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
End Function
Function Intro()
host
emu.autECLPS.SendKeys («[enter]»)
emu.autECLPS.WaitForAttrib 8, 1, «00», «3c», 3, 100
emu.autECLPS.WaitForCursor 10, 2, 100
host
End Function
Function pruebas() As Boolean
Set con = New AutConnMgr
Set emu = New AutSess
con.autECLConnList.Refresh
emu.SetConnectionByHandle (con.autECLConnList(1).Handle)
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
emu.autECLOIA.WaitForAppAvailable
emu.autECLOIA.WaitForInputReady
emu.autECLPS.autECLFieldList.Refresh
Dim xlabel As String
Dim i
On Error Resume Next
For i = 0 To 187
xlabel = «Label» + Trim(LTrim(CStr(211 + i)))
Forms(«PRUEBAS»).Controls(xlabel).Caption = «(» & Trim(LTrim(Str(i + 1))) & «)» & Trim(emu.autECLPS.autECLFieldList(i + 1).GetText)
Next
For i = 0 To 107
xlabel = «Etiqueta» + Trim(LTrim(CStr(426 + i)))
Forms(«PRUEBAS»).Controls(xlabel).Caption = «(» & Trim(LTrim(Str(i + 188 + 1))) & «)» & Trim(emu.autECLPS.autECLFieldList(i + 188 + 1).GetText)
Next
On Error GoTo 0
End Function