2 using System.Collections.Generic;
11 internal class EjecutarFormularioCommand : Command
15 public EjecutarFormularioCommand(IAddonsManager addons) : base(addons)
17 Name =
"EjecutarFormulario";
20 protected override void CommandModulo(
IModulo modulo, params
object[] parameters)
24 string tcFormularioFox = parameters[0].ToString();
25 Func<Dictionary<string, object>,
bool> ExisteFormNet = parameters[1] as Func<Dictionary<string, object>,
bool>;
26 Func<IFormBase, object[], bool> InitAccesoDirecto = parameters[2] as Func<IFormBase, object[], bool>;
27 object[] toParametros = parameters[3] as
object[];
28 bool tlAccesoDirecto = Convert.ToBoolean(parameters[4]);
29 bool tlTareaProgramada = Convert.ToBoolean(parameters[5]);
30 Dictionary<string, object> _dicFormNet =
new Dictionary<string, object>();
31 string lcLibreriaNet =
"", lcFormNet =
"";
32 bool llExisteFormNet =
false;
34 _dicFormNet = DB.SQLREGValor(
"FORMSNET",
"FORMVFP", tcFormularioFox, modulo.
_AliasDB);
35 if (_dicFormNet != null && _dicFormNet.Count > 0)
37 lcFormNet = Convert.ToString(_dicFormNet[
"formnet"]).Trim();
38 llExisteFormNet = ExisteFormNet(_dicFormNet);
42 int lnPos = lcFormNet.IndexOf(
'.', lcFormNet.IndexOf(
'.', lcFormNet.IndexOf(
'.') + 1) + 1);
44 lcLibreriaNet = lcFormNet.Substring(0, lnPos);
46 string lcType = lcFormNet +
"," + lcLibreriaNet;
47 Type ltType = Type.GetType(lcType);
49 dynamic loForm = Activator.CreateInstance(ltType);
57 if (toParametros != null && toParametros.Length > 0)
59 string lcParam0 = toParametros[0].ToString().Trim().ToUpper();
63 if ((ltType.GetMethod(
"_Init") != null) && (((lcParam0 !=
"AUTOMATICO") && (lcParam0 !=
"ACCESODIRECTO")) || tcFormularioFox ==
"ICLISPRO"))
65 llOk = loForm.
_Init(toParametros);
71 InitAccesoDirecto(loForm, toParametros);
77 ((Form)loForm).Close();
85 else if (tlAccesoDirecto && !tlTareaProgramada)
98 protected override ExpectedParameters GetExpectedParameters()
100 return new ExpectedParameters(
new Type[] { typeof(
string),
101 typeof(Func<Dictionary<string, object>,
bool>),
108 protected override object Return(params
object[] parameters)
112 protected override bool Exit()
PE-93426 Interficie para los módulos de la aplicación
string _NombreConexion
Nombre real de la base de datos
string _AliasDB
Alias de la Base de datos