public bool ShowScreenCPApproval() { string opt = ehllapi.ReadScreen("5,3", 25).Trim(); if (opt.Equals("1. Posición de cliente")) { Methods.LogProceso("El menú inicial es el definido: MGCIA2"); } else { Methods.LogProceso("El menú inicial no es el definido, se aborta el RPA"); return(false); } EhllapiWrapper.Wait(); Methods.GetMenuProgram("15,24"); EhllapiWrapper.Wait(); if (!ehllapi.ReadScreen("2,23", 32).Contains("Aprobación de Cambio de Producto")) { Methods.LogProceso("No se abrió correctamente la opción 'Aprobación de Cambio de Producto'"); return(false); } return(true); }
public void SetApprovalPass(string pass) { ehllapi.SetCursorPos("3,14"); EhllapiWrapper.Wait(); ehllapi.SendStr(pass); EhllapiWrapper.Wait(); }
public void BackToMainMenu() { ehllapi.SendStr("@7"); EhllapiWrapper.Wait(); ehllapi.SendStr("@3"); EhllapiWrapper.Wait(); }
public ProductChange GetProductChange(string plot, int yCoordenates) { //ContractNumberDue or Funding? ProductChange e = ProductChanges.FirstOrDefault(x => plot.Substring(3, 12).Trim() == x.FundingNumber); if (e != null) { e.State = "AUTORIZADO"; ehllapi.SetCursorPos(yCoordenates + ",2"); EhllapiWrapper.Wait(); ehllapi.SendStr("X"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@1"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); } e.Plot = plot; return(e); }
//public string ReadScreen(int position, int lenght) //{ // var outParam= ""; // EhllapiWrapper.ReadScreen(position, lenght, out outParam); // EhllapiWrapper.Wait(); // return outParam.Substring(0,lenght); //} public string ReadScreen(string position, int lenght) { var Spliteo = position.Split(','); int x, y; Int32.TryParse(Spliteo[0], out x); Int32.TryParse(Spliteo[1], out y); var outParam = ""; EhllapiWrapper.ReadScreen(Methods.GetWSPosition(x, y), lenght, out outParam); Methods.LogProceso("Se leyó la posición \t\t [" + x + "/" + y + "]"); EhllapiWrapper.Wait(); return(outParam.Substring(0, lenght)); }
public static void GetMenuProgram(String Menu) { var options = Menu.Split(','); LogProceso("Invocando el programa del menú: " + Menu); foreach (var option in options) { EhllapiWrapper.SetCursorPos(GetWSPosition(22, 7)); EhllapiWrapper.Wait(); EhllapiWrapper.SendStr(option); EhllapiWrapper.Wait(); EhllapiWrapper.SendStr("@E"); EhllapiWrapper.Wait(); } }
public RelationshipOwed GetRelationshipOwed(string plot, int yCoordenates) { //me aseguro de que no tendré un fuera de rango... . //plot = plot.PadRight(80 * rowsByItem); //TODO: manejo de nulos //if (plot.Substring(20, 10) //ContractNumberDue or Funding? RelationshipOwed e = RelationshipOweds.FirstOrDefault(x => plot.Substring(3, 12).Trim() == x.ContractNumberDue); if (e != null) { e.State = "AUTORIZADO"; ehllapi.SetCursorPos(yCoordenates + ",2"); EhllapiWrapper.Wait(); ehllapi.SendStr("I"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SetCursorPos(yCoordenates + ",2"); EhllapiWrapper.Wait(); ehllapi.SendStr("Y"); EhllapiWrapper.Wait(); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); } e.Plot = plot; return(e); }
//public void SetCursorPos(int position) //{ // EhllapiWrapper.SetCursorPos(position); // EhllapiWrapper.Wait(); //} public void SetCursorPos(string position) { String ReadyKey = ConfigurationManager.AppSettings["ReadKey"].ToString().Trim(); var Spliteo = position.Split(','); int x, y; Int32.TryParse(Spliteo[0], out x); Int32.TryParse(Spliteo[1], out y); EhllapiWrapper.SetCursorPos(Methods.GetWSPosition(x, y)); Methods.LogProceso("Situado en la posición \t [" + x + "/" + y + "]"); EhllapiWrapper.Wait(); if (ReadyKey.Equals("SI") == true) { Console.ReadKey(); } }
public bool ShowScreenClientPosition() { //#if DEBUG // EhllapiWrapper.Wait(); // ehllapi.SetCursorPos("20,7"); // EhllapiWrapper.Wait(); // ehllapi.SendStr("GO MGCIA2"); // EhllapiWrapper.Wait(); // ehllapi.SendStr("@E"); // EhllapiWrapper.Wait(); //#endif string opt = ehllapi.ReadScreen("5,3", 25).Trim(); if (opt.Equals("1. Posición de cliente")) { Methods.LogProceso("El menú inicial es el definido: MGCIA2"); } else { Methods.LogProceso("El menú inicial no es el definido, se aborta el RPA"); return(false); } EhllapiWrapper.Wait(); Methods.GetMenuProgram("1"); EhllapiWrapper.Wait(); if (!ehllapi.ReadScreen("3,23", 35).Contains("Centro de Información de Clientes")) { Methods.LogProceso("No se abrió correctamente la opción 'Centro de Información de Clientes - Posición de Cliente'"); return(false); } return(true); }
public bool ShowScreenRATransactionsApproval() { //#if DEBUG // EhllapiWrapper.Wait(); // ehllapi.SetCursorPos("20,7"); // EhllapiWrapper.Wait(); // ehllapi.SendStr("GO MGCIA2"); // EhllapiWrapper.Wait(); // ehllapi.SendStr("@E"); // EhllapiWrapper.Wait(); //#endif string opt = ehllapi.ReadScreen("5,3", 25).Trim(); if (opt.Equals("1. Posición de cliente")) { Methods.LogProceso("El menú inicial es el definido: MGCIA2"); } else { Methods.LogProceso("El menú inicial no es el definido, se aborta el RPA"); return(false); } EhllapiWrapper.Wait(); Methods.GetMenuProgram("15,1"); EhllapiWrapper.Wait(); if (!ehllapi.ReadScreen("2,20", 41).Contains("Aprobacion de Contratos y Transacciones")) { Methods.LogProceso("No se abrió correctamente la opción 'Aprobacion de Contratos y Transacciones'"); return(false); } return(true); }
public void SendStr(string param) { String ReadyKey = ConfigurationManager.AppSettings["ReadKey"].ToString().Trim(); if (ReadyKey.Equals("SI") == true) { Console.ReadKey(); } var LogStr = param; switch (param) { case "@A": LogStr = "Alt"; break; case "@$": LogStr = "Alt Cursor"; break; case "@A@Q": LogStr = "AEhllapiFuncntion"; break; case "@<": LogStr = "Backspace"; break; case "@B": LogStr = "Backtab(Left Tab)"; break; case "@C": LogStr = "Clear"; break; case "@A@Y": LogStr = "Cmd(function) Key"; break; case "@V": LogStr = "Cursor Down"; break; case "@L": LogStr = "Cursor Left"; break; case "@Z": LogStr = "Cursor Right"; break; case "@A@J": LogStr = "Cursor Select"; break; case "@U": LogStr = "Cursor Up"; break; case "@D": LogStr = "Delete"; break; case "@S@x": LogStr = "Dup "; break; case "@q": LogStr = " End"; break; case "@E": LogStr = " Enter"; break; case "@F": LogStr = " Erase EOF"; break; case "@A@F": LogStr = " Erase Input"; break; case "@A@E": LogStr = " Field Exit"; break; case "@S@y": LogStr = " Field Mark"; break; case "@A@-": LogStr = " Field -"; break; case "@A@+": LogStr = " Field +"; break; case "@H": LogStr = " Help"; break; case "@A@X": LogStr = " Hexadecimal"; break; case "@0": LogStr = " Home"; break; case "@I": LogStr = " Insert"; break; case "@A@I": LogStr = " Insert Toggle"; break; case "@P": LogStr = " Local Print"; break; case "@N": LogStr = " New Line"; break; case "@u": LogStr = " Page Up"; break; case "@v": LogStr = " Page Down"; break; case "@A@t": LogStr = " Print(PC)"; break; case "@A@T": LogStr = " Print Screen"; break; case "@A@<": LogStr = " Record Backspace"; break; case "@R": LogStr = " Reset"; break; case "@S": LogStr = " Shift"; break; case "@A@H": LogStr = " Sys Request"; break; case "@T": LogStr = " Tab(Right Tab)"; break; case "@A@C": LogStr = " Test"; break; case "@x": LogStr = " PA1 "; break; case "@y": LogStr = " PA2 "; break; case "@z": LogStr = " PA3"; break; case "@+": LogStr = " PA4"; break; case "@%": LogStr = " PA5 "; break; case "@&": LogStr = " PA6 "; break; case "@'": LogStr = " PA7 "; break; case "@(": LogStr = " PA8 "; break; case "@)": LogStr = " PA9 "; break; case "@*": LogStr = " PA10 "; break; case "@1": LogStr = " PF1 / F1"; break; case "@2": LogStr = " PF2 / F2"; break; case "@3": LogStr = " PF3 / F3"; break; case "@4": LogStr = " PF4 / F4"; break; case "@5": LogStr = " PF5 / F5"; break; case "@6": LogStr = " PF6 / F6"; break; case "@7": LogStr = " PF7 / F7"; break; case "@8": LogStr = " PF8 / F8"; break; case "@9": LogStr = " PF9 / F9"; break; case "@a": LogStr = " PF10 / F10"; break; case "@b": LogStr = " PF11 / F11"; break; case "@c": LogStr = " PF12 / F12"; break; case "@d": LogStr = " PF13 / F13"; break; case "@e": LogStr = " PF14 / F14"; break; case "@f": LogStr = " PF15 / F15"; break; case "@g": LogStr = " PF16 / F16"; break; case "@h": LogStr = " PF17 / F17"; break; case "@i": LogStr = " PF18 / F18"; break; case "@j": LogStr = " PF19 / F19"; break; case "@k": LogStr = " PF20 / F20"; break; case "@l": LogStr = " PF21 / F21"; break; case "@m": LogStr = " PF22 / F22"; break; case "@n": LogStr = " PF23 / F23"; break; case "@o": LogStr = " PF24 / F24"; break; default: LogStr = param; break; } EhllapiWrapper.SendStr(param); Methods.LogProceso("Se envió el parámetro:\t " + param); EhllapiWrapper.Wait(); }
public void Connect(string id) { EhllapiWrapper.Connect(id); EhllapiWrapper.Wait(); }
public static Boolean OpenWS(string EmulatorURL, string SessionId, string Username, string Password, out int Id) { Console.Write("Inicializando IBS... "); string IsShowWindow = ConfigurationManager.AppSettings["ShowWindow"].ToString().Trim(); string Session = ConfigurationManager.AppSettings["SessionId"].ToString().Trim(); Process[] pcscmProcesses = Process.GetProcessesByName("pcsws"); if (pcscmProcesses.Length == 0) { Process.Start("taskkill", "/F /IM [pcsws].exe"); Process.Start("taskkill", "/F /IM [pcscm].exe"); } //Funciona correcto Process px = Process.Start(EmulatorURL); //Process px = new Process(); //try //{ // px.StartInfo = new ProcessStartInfo(EmulatorURL); // px.StartInfo.CreateNoWindow = true; // px.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; // px.Start(); //} catch (Exception e) //{ // LogProceso(e.ToString()); //} //Thread.Sleep(4000); int _i = 0; Id = 0; do { try { pcscmProcesses = Process.GetProcessesByName("pcsws"); Id = pcscmProcesses.ToList().Find(x => x.MainWindowTitle.Contains(Session)).Id; _i = 1; if (IsShowWindow.Equals("SI")) { ShowWindow(Process.GetProcessById(Id).MainWindowHandle, 2); } } #pragma warning disable CS0168 // La variable 'e' se ha declarado pero nunca se usa catch (Exception e) #pragma warning restore CS0168 // La variable 'e' se ha declarado pero nunca se usa { //throw new Exception("No se inició correctamente la sesión B"); Thread.Sleep(1000); } } while (_i == 0); Boolean isOpenWS = false; string validationPass; int i = 0; do { try { AutomationElement _0 = AutomationElement.FromHandle(px.MainWindowHandle); AutomationElementCollection _0_Descendants_1 = _0.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "ID de usuario:")); ValuePattern etb = _0_Descendants_1[1].GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; etb.SetValue(Username); AutomationElementCollection _0_Descendants_2 = _0.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "Contraseña:")); ValuePattern etb2 = _0_Descendants_2[1].GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; etb2.SetValue(Password); AutomationElementCollection _0_Descendants_3 = _0.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "Aceptar")); var invokePattern = _0_Descendants_3[0].GetCurrentPattern(InvokePattern.Pattern) as InvokePattern; invokePattern.Invoke(); } #pragma warning disable CS0168 // La variable 'e' se ha declarado pero nunca se usa catch (Exception e) #pragma warning restore CS0168 // La variable 'e' se ha declarado pero nunca se usa { } EhllapiWrapper.Connect(SessionId); EhllapiWrapper.Wait(); EhllapiWrapper.SetCursorPos(GetWSPosition(6, 17)); EhllapiWrapper.Wait(); EhllapiWrapper.ReadScreen(GetWSPosition(6, 17), 7, out validationPass); EhllapiWrapper.Wait(); try { if (validationPass.Substring(0, 7) == "Usuario") { var ValidationMsg = ""; EhllapiWrapper.Wait(); EhllapiWrapper.Connect(SessionId); EhllapiWrapper.Wait(); EhllapiWrapper.SetCursorPos(GetWSPosition(6, 53)); EhllapiWrapper.Wait(); EhllapiWrapper.SendStr(Username); EhllapiWrapper.Wait(); EhllapiWrapper.SetCursorPos(GetWSPosition(7, 53)); EhllapiWrapper.Wait(); EhllapiWrapper.SendStr(Password); EhllapiWrapper.Wait(); EhllapiWrapper.SendStr("@E"); EhllapiWrapper.Wait(); ValidationMsg = ""; EhllapiWrapper.SetCursorPos(GetWSPosition(1, 26)); EhllapiWrapper.Wait(); EhllapiWrapper.ReadScreen(GetWSPosition(1, 26), 31, out ValidationMsg); EhllapiWrapper.Wait(); if (ValidationMsg.Substring(0, 31).Equals("Visualizar Mensajes de Programa")) { EhllapiWrapper.SendStr("@E"); EhllapiWrapper.Wait(); isOpenWS = true; } else { Console.Write("OK\n"); isOpenWS = true; } i = 1; } } #pragma warning disable CS0168 // La variable 'e' se ha declarado pero nunca se usa catch (Exception e) #pragma warning restore CS0168 // La variable 'e' se ha declarado pero nunca se usa { } } while (i == 0); return(isOpenWS); }
public void PrestamoAutorizacion(string MFTemplateAprobacion) { Methods.LogProceso("Menú principal de IBS.."); ehllapi.SendStr("@7"); Methods.GetMenuProgram("12"); FileInfo existingFile = new FileInfo(MFTemplateAprobacion); using (ExcelPackage package = new ExcelPackage(existingFile)) { int rowLoad = 0; string NroFinanciamiento = "", SiZeCustomer, TypeProduct = ""; ExcelWorksheet worksheetAutoriza_load = package.Workbook.Worksheets[2]; int rowCount = worksheetAutoriza_load.Dimension.End.Row; Methods.LogProceso("INICIA PROCESO DE DESCARGA DE FINANCIAMIENTOS" + "\n " + "con lecctura de excel.... " + TemplateLoad); string patron = @"[^\d+]"; Regex regex = new Regex(patron); for (rowLoad = 2; rowLoad <= rowCount; rowLoad++) { try { NroFinanciamiento = worksheetAutoriza_load.Cells["A" + rowLoad].Value == null ? "" : worksheetAutoriza_load.Cells["A" + rowLoad].Value.ToString().Trim(); NroFinanciamiento = regex.Replace(NroFinanciamiento, ""); if (NroFinanciamiento.Equals("")) { break; } SiZeCustomer = worksheetAutoriza_load.Cells["B" + rowLoad].Value == null ? "" : worksheetAutoriza_load.Cells["B" + rowLoad].Value.ToString().Trim(); TypeProduct = worksheetAutoriza_load.Cells["C" + rowLoad].Value == null ? "" : worksheetAutoriza_load.Cells["C" + rowLoad].Value.ToString().Trim(); Console.WriteLine("+++++++++ NroFinanciamiento+++:: " + NroFinanciamiento); Console.WriteLine("+++++++++ ZiseCustomer+++:: " + SiZeCustomer); Console.WriteLine("+++++++++ TypeProduct+++:: " + TypeProduct); ehllapi.SetCursorPos("9,51"); ehllapi.SendStr("@F"); ehllapi.SendStr(NroFinanciamiento.Trim()); //ehllapi.SendStr("@A@+"); //ehllapi.SendStr("@E"); //EhllapiWrapper.Wait(); ehllapi.SetCursorPos("15,51"); ehllapi.SendStr("@F"); ehllapi.SendStr("01"); // SubProducto var emp = ""; ExcelManagament excel = new ExcelManagament(); config = excel.GetDataConfig(MFTemplateAprobacion); config.ListConfigCatalog.ForEach(delegate(ByProduct pr) { if (SiZeCustomer.Equals(pr.SizeCustomerType.ToString().Trim())) { if (TypeProduct.Equals(EnumTipoProducto._FEXP)) { emp = pr.Product_Type_Fexp.ToString().Trim(); } else if (TypeProduct.Equals(EnumTipoProducto._FIMP)) { emp = pr.Product_Type_Fimp.ToString().Trim(); } } }); if (!emp.Equals("")) { worksheetAutoriza_load.Cells["D" + rowLoad].Value = emp; ehllapi.SetCursorPos("17,51"); ehllapi.SendStr("@F"); ehllapi.SendStr(emp); ehllapi.SendStr("@E"); // EhllapiWrapper.Wait(); worksheetAutoriza_load.Cells["E" + rowLoad].Value = "CARGADO"; } else { worksheetAutoriza_load.Cells["E" + rowLoad].Value = "NO CARGADO_ " + "Código de Sub Producto incorrecto"; } ehllapi.SendStr("@1"); // F1 EhllapiWrapper.Wait(); #if DEBUG ehllapi.SendStr("@E"); // Intro EhllapiWrapper.Wait(); #endif ///************** // ehllapi.SendStr("@7"); // F7 // EhllapiWrapper.Wait(); ///************** NroFinanciamiento = ""; SiZeCustomer = ""; emp = ""; package.Save(); } catch (Exception ex) { Methods.LogProceso("ERROR: " + ex.Message); } } } // END for1 Methods.LogProceso("FINALIZÓ EL PROCESO, presionar INTRO para salir..."); } // End Using
public void PrestamoExteriorLoad(string TemplateLoad, string Paswrord_2) { #if DEBUG ehllapi.SendStr("@g"); ehllapi.SetCursorPos("20,7"); ehllapi.SendStr("GO MGCIA2"); ehllapi.SendStr("@E"); #endif Methods.LogProceso("Menú principal de IBS.."); Methods.GetMenuProgram("88"); Methods.GetMenuProgram("4"); Methods.GetMenuProgram("2"); FileInfo existingFile = new FileInfo(TemplateLoad); using (ExcelPackage package = new ExcelPackage(existingFile)) { int rowLoad = 0; string NroFinanciamiento = "", NroContratoAdeudado = "", msgErrorAdeudado = ""; ExcelWorksheet worksheet_load = package.Workbook.Worksheets[1]; int rowCount = worksheet_load.Dimension.End.Row; Methods.LogProceso("INICIA PROCESO DE DESCARGA DE FINANCIAMIENTOS" + "\n " + "con lecctura de excel.... " + TemplateLoad); string patron = @"[^\d+]"; Regex regex = new Regex(patron); for (rowLoad = 2; rowLoad <= rowCount; rowLoad++) { try { NroFinanciamiento = worksheet_load.Cells["A" + rowLoad].Value == null ? "" : worksheet_load.Cells["A" + rowLoad].Value.ToString().Trim(); NroFinanciamiento = regex.Replace(NroFinanciamiento, ""); if (NroFinanciamiento.Equals("")) { break; } NroContratoAdeudado = worksheet_load.Cells["B" + rowLoad].Value == null ? "" : worksheet_load.Cells["B" + rowLoad].Value.ToString().Trim(); NroContratoAdeudado = regex.Replace(NroContratoAdeudado, ""); Console.WriteLine("+++++++++ NroFinanciamiento+++:: " + NroFinanciamiento); Console.WriteLine("+++++++++ NroContratoAdeudado+++:: " + NroContratoAdeudado); ehllapi.SetCursorPos("15,47"); #if DEBUG //***** Para Desarrollo************************************** var subProducto = ""; subProducto = ehllapi.ReadScreen("6,47", 4).Trim(); if (subProducto.Equals("")) { ehllapi.SetCursorPos("6,47"); ehllapi.SendStr("@a"); EhllapiWrapper.Wait(); ehllapi.SetCursorPos("12,25"); ehllapi.SendStr("FEXP"); for (int i = 0; i < 11; i++) { ehllapi.SendStr("@v"); EhllapiWrapper.Wait(); } ehllapi.SetCursorPos("15,71"); ehllapi.SendStr("X"); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); //*********************************************************** } #endif ehllapi.SetCursorPos("15,47"); ehllapi.SendStr("@F"); ehllapi.SendStr(NroFinanciamiento.Trim()); ehllapi.SendStr("@A@+"); //ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); ehllapi.SetCursorPos("17,47"); ehllapi.SendStr(Paswrord_2.Trim()); ehllapi.SendStr("@E"); EhllapiWrapper.Wait(); // Nro de Contrato Adeudado ehllapi.SetCursorPos("20,68"); ehllapi.SendStr("@F"); ehllapi.SendStr(NroContratoAdeudado); ehllapi.SendStr("@E"); // Intro EhllapiWrapper.Wait(); msgErrorAdeudado = ehllapi.ReadScreen("5,7", 15).Trim(); if (msgErrorAdeudado.Trim().Equals("Dato no Valido")) { worksheet_load.Cells["C" + rowLoad].Value = "ERROR_" + msgErrorAdeudado.Trim(); ehllapi.SendStr("@E"); // Intro EhllapiWrapper.Wait(); } else { worksheet_load.Cells["C" + rowLoad].Value = "CARGADO"; } ehllapi.SendStr("@1"); // F1 EhllapiWrapper.Wait(); //************** //ehllapi.SendStr("@7"); // F7 //EhllapiWrapper.Wait(); //************** #if DEBUG // Esto se debe quitar es de prueba ehllapi.SendStr("@1"); // F1 EhllapiWrapper.Wait(); #endif ehllapi.SendStr("@6"); // F6 EhllapiWrapper.Wait(); ehllapi.SendStr("@3"); //F3 EhllapiWrapper.Wait(); NroFinanciamiento = ""; NroContratoAdeudado = ""; msgErrorAdeudado = ""; package.Save(); } catch (Exception ex) { Methods.LogProceso("ERROR: " + ex.Message); } } } // END for1 Methods.LogProceso("FINALIZÓ 1ER PROCESO DE CARGA DE FINANCIAMIENTOS."); Methods.LogProceso("Presionar INTRO para continuar con 2do PROCESO..."); } // End Using
private void Wait_Click(object sender, System.EventArgs e) { MessageBox.Show(EhllapiWrapper.Wait().ToString()); }
public List <T> SetDataFromScreenList <T>(Func <string, int, T> formatMethod, int startYCoordenates, int pageSize, int rowsByItem, Func <string, int, string> readData /*MyDelegateType<T> formatMethod, */) { //string temp = ehllapi.ReadScreen(startYCoordenates + ",1", ROW_LENGTH * rowsByItem); string temp = readData(startYCoordenates.ToString(), ROW_LENGTH * rowsByItem); EhllapiWrapper.Wait(); List <T> rows = new List <T>(); int iItems = 0; if (temp.Trim() != "") { var obj = formatMethod(temp, startYCoordenates); if (obj != null) { rows.Add(obj); iItems = rowsByItem; } } int i = rowsByItem; while (temp.Trim() != "") { if (i >= pageSize) { ehllapi.SendStr("@v"); //TODO: si hay error en IBS ahí queda( deberíamos ver como obtener el valor de la x) //temp = ehllapi.ReadScreen(startYCoordenates + ",1", ROW_LENGTH * rowsByItem); temp = readData(startYCoordenates.ToString(), ROW_LENGTH * rowsByItem); EhllapiWrapper.Wait(); Methods.LogProceso("last " + temp); Methods.LogProceso("last2 " + rows[rows.Count - iItems / rowsByItem].ToString()); if (temp == rows[rows.Count - iItems / rowsByItem].ToString()) { break; } else { var obj = formatMethod(temp, startYCoordenates); if (obj != null) { rows.Add(obj); } } i = rowsByItem; iItems = rowsByItem; } else { //TODO: depende de donde inicia la lista //temp = ehllapi.ReadScreen(startYCoordenates + i + ",1", ROW_LENGTH * rowsByItem); temp = readData((startYCoordenates + i).ToString(), ROW_LENGTH * rowsByItem); EhllapiWrapper.Wait(); if (temp.Trim() != "") { var obj = formatMethod(temp, (startYCoordenates + i)); if (obj != null) { rows.Add(obj); iItems += rowsByItem; } } i += rowsByItem; } } return(rows); }