Fórum
Ver pergunta

Como instanciar um customform a partir do evento teclaprecionada das compras.   

99 visualizações
0
0

Bom dia,

Tenho um customform criado e o pretendido é passar informação entre as linhas do editor de compra e o pricustomform para podermos preencher os campos e utilizador.

No entanto, ao chamar o pricustomform  está a dar o seguinte erro:

A referência de objecto não foi definida como uma instância de um objecto.

O código que tenho no editor de compras é o seguinte:

if (KeyCode == 72)

{

PriCustomForm1 frm = new PriCustomForm1(this.DocumentoCompra);

frm.Show();

}

no costumform tenho o seguinte código:




namespace ExtMGVsiCONTACTOS.Base

{

public partial class PriCustomForm1 : CustomForm

{

private CmpBE100.CmpBEDocumentoCompra documentoCompra { get; set; }

public PriCustomForm1(CmpBE100.CmpBEDocumentoCompra documento)

{

InitializeComponent();

documentoCompra = documento;

}

private void CmdSair_Click(object sender, EventArgs e)

{

this.Close();

}

}

 

Faça login para poder traduzir
V10
Marcado como spam
Criado há 4 anos e 1 semana vitormonteiro
v
vitormonteiro Iniciante
4 respostas
1
Resposta privada

Boas

Eu sugeria o seguinte codigo (pegando no codigo enviado e juntando o do Sergio)

using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Extensions;
using Primavera.Extensibility.Purchases.Editors;

namespace ExtensibilityProject3.Purchases
{
    public class UiEditorCompras : EditorCompras
    {
        public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
        {
 	    if (Keycode == 72
	    {
                using (var result = BSO.Extensibility.CreateCustomFormInstance(typeof(PriCustomForm1)))
                {
                    if (result.IsSuccess())
                    {
                        (result.Result as PriCustomForm1).DocumentoCompra = this.DocumentoCompra;
                        (result.Result as PriCustomForm1).ShowDialog();
                    }
                }
	    }		
        }
    }
}


No CustomForm
namespace ExtMGVsiCONTACTOS.Base
{
	public partial class PriCustomForm1 : CustomForm
	  {
		internal CmpBE100.CmpBEDocumentoCompra documentoCompra { get; set; }
		
		public PriCustomForm1()
	 	 {
		    InitializeComponent();
		 }

	        private void CmdSair_Click(object sender, EventArgs e)
		 {
		    this.Close();
		  }
	}
}

 

Faça login para poder traduzir
Marcado como spam
Criado há 4 anos e 4 dias antniomdias
a
antniomdias Responsiveness Member
    0
    Resposta privada

    Olá Sereno, vocês não têm este código em VB.Net, estou a tentar converter o mesmo, mas estou com problemas.

    Quero abrir um formulário (FDU) ao clicar uma combinação de teclas no editor de vendas, e quero que esse formulário me devolva um double que se encontra num campo de números, depois de este ser preenchido e o usuário clicar o OK. Tens aí algum exemplo disso? Obrigado.

    Faça login para poder traduzir
    Marcado como spam
    Criado há 3 anos e 7 meses clovisribeiro
    c
    clovisribeiro Iniciante
      0
      Resposta privada

      Bom dia Sereno,

      Agradeço a resposta, já estou a usar como me sugeriu, no entanto, não estou a conseguir passar informação de um lado para outro

      como por exemplo: passar para o customform o artigo que está na linha do editor de compras

      em sentido contrario, gravar na linha um campo de utilizador com informação que está no customform

      como é que consigo fazer?

      Faça login para poder traduzir
      Marcado como spam
      Criado há 4 anos e 6 dias vitormonteiro
      v
      vitormonteiro Iniciante
        0
        Resposta privada

        Olá Vitor, tens de fazer assim. Um CustomForm herda de um tipo diferente do Form, por isso não podes instanciar dessa forma.

        using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
        using Primavera.Extensibility.Extensions;
        using Primavera.Extensibility.Purchases.Editors;
        
        namespace ExtensibilityProject3.Purchases
        {
            public class UiEditorCompras : EditorCompras
            {
                public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
                {
                    using (var result = BSO.Extensibility.CreateCustomFormInstance(typeof(PriCustomForm1)))
                    {
                        if (result.IsSuccess())
                        {
                            (result.Result as PriCustomForm1).ShowDialog();
                        }
                    }
                }
            }
        }
        

         

        Faça login para poder traduzir
        Marcado como spam
        Criado há 4 anos e 1 semana sergiosereno
        sergiosereno Most Valuable Professional