| ♥ 0 | Estou a efectuar um desenvolvimento que necessito de um form de apoio para apresentar alguns dados e estou a utilizar o código seguinte: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using ErpBS100;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Extensions;
using Primavera.Extensibility.POS.Editors;
using StdPlatBS100;
namespace POS.POS
{
public class UiEditorVendas : EditorVendas
{
public static StdBSInterfPub Plataforma;
public static ErpBS MotorLE = new ErpBS();
public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
{
if (KeyCode == Convert.ToInt32( Keys.F11.ToString()))
{
try
{
using (var instance = this.BSO.Extensibility.CreateCustomFormInstance(typeof(FichaDeArtigo)))
{
if (instance.IsSuccess())
{
FichaDeArtigo frm = new FichaDeArtigo();
FichaDeArtigo.Plataforma = PSO;
FichaDeArtigo.MotorLE = BSO;
(instance.Result as FichaDeArtigo).Show();
}
}
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
}
else
{
}
}
Mas nada funciona, nem sequer ao efetuar debug chega a entrar no evento de tecla pressionada. Marcado como spam |
Comentários A sua questão está confusa, qual é duvida em concreto, o que quer fazer? Sugiro que edite a sua questão e a melhore para ter possibildiade em obter ajuda.
Isto é uma extensão? No POS através do evento de tecla pressionada do editor de vendas quero abrir um custom form no entanto esse evento não é chamado. |
| Resposta privada Bem olhado ao seu código alguma coisa enão está bem, porque se quer o teclapressionada do editor do POS tem de extender essa classe,e pelo que vejo está a extender a plataforma. Para isso tem de extender a classe do POS. Não necessitas de criar instancias do ERPBS nem do StdPlatBS porque eles já estão prontos no contexto da aplicação. Tens também de registar a tua extensão no ERP, ve este artigo COMO REGISTAR PROJETOS DE EXTENSIBILIDADE using System;
using System.Windows.Forms;
using ErpBS100;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.POS.Editors;
using StdPlatBS100;
namespace POS.POS
{
public class UiEditorVendas : EditorVendas
{
public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
{
if (KeyCode == Convert.ToInt32(Keys.F11))
{
try
{
}
catch (Exception ex)
{
PSO.Dialogos.MostraMensagem(StdBSTipos.TipoMsg.PRI_SimplesOk, ex.Message.ToString());
}
}
else
{
}
}
}
}Recomendo para acelerar que instale a extensão para visual studio disponiel através da zona de ferramentas aqui do site ou directamente na galeria do VS aqui. Podes também ver aqui como fazer debug aqui neste artigo COMO FAZER DEBUG A PROJETOS DE EXTENSIBILIDADE COM VISUAL STUDIO Marcado como spam Comentários O código em cima não estava completo, agora sim já foi alterado.... Completei a minha resposta e usei o teu código e funcionou bem, vê agora as outras dicas que dei a ver se te ajuda. Detectei que apenas com combinação de teclas o evento é activado, por exemplo shift+F11, caso clique apenas F11 nada acontece. Estou com o mesmo problema em relação à combinação de teclas. Se fizer Shift ou Ctrl + F2 (neste caso) funciona. Se carregar apenas em F2 não funciona. É mesmo assim ? Na V9 não era. Se não era é uma situação a reportar a PRIMAVERA. |