Desde Ahora 5 es posible agregar las referencias externas que queramos al código generado por Ctrl + F10, tanto en ejecución de pantalla como ejecución de scripts individuales.
Para ello deben acceder desde el nodo padre al nodo "Mantenimiento Referencias Externas" que encontrarán dentro del menú Administración :
Desde la pantalla siguiente simplemente añadan las referencias que necesiten:
Código C#:
El siguiente código es de un script que sirve para enviar un correo electrónico mediante la librería referenciada "System.Net.Mail" y todas las librerías satélite que necesita para su correcto funcionamiento:
using AhoraCore; using AhoraOCX; using AhoraSistema; using static AhoraCore.VBA.Interaction; using static AhoraCore.VbMsgBoxResult; using static AhoraCore.VbMsgBoxStyle; using System; using System.Security; using System.Net; using System.Net.Mail; namespace AhoraScriptsVacia { public class Script_18 : AhoraOCX.AhoraBaseScript { public void Main() { // Configurar la información del correo electrónico string fromEmail = "elquesea@gmail.com"; string toEmail = "elquesea@gmail.com"; string subject = "Prueba de correo electrónico"; string body = "Este es un correo de prueba enviado desde C# con System.Net.Mail"; // Configurar el cliente SMTP (en este caso, Gmail) SmtpClient smtpClient = new SmtpClient("smtp.gmail.com") { Port = 587, Credentials = new NetworkCredential("elquesea@gmail.com", "PasswordDeElquesea"), EnableSsl = true, }; // Crear el mensaje MailMessage mailMessage = new MailMessage(fromEmail, toEmail) { Subject = subject, Body = body, }; try { // Enviar el correo electrónico smtpClient.Send(mailMessage); MsgBox("Correo electrónico enviado con éxito."); } catch (Exception ex) { MsgBox($"Error al enviar el correo electrónico: {ex.Message}"); } } } }
Este código funciona únicamente si las librerías referenciadas están en el mantenimiento correspondiente.
Errores conocidos provocados por referencias faltantes:
Procedemos a listar algunos de los errores que devuelve el sistema cuando se intentan usar algunas funcionalidades no disponibles con las referencias estándar y las librerías necesarias a añadir:
Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'
Añadir las siguientes librerías:
- Microsoft.CSharp
- System.Runtime
- System.Linq.Expressions