| ♥ 0 | Como manipular um Editor de Vendas aberto (exemplo: adicionar uma linha) apartir de um Form: Abaixo o meu Codigo. public EditorVendas Editor { get; set; }
public void inserelinha(string item, double valor)
{
BasBEArtigo Artigo = new BasBEArtigo();
VndBELinhaDocumentoVenda linha = new VndBELinhaDocumentoVenda();
Artigo = BSO.Base.Artigos.Edita(item);
if (!BSO.Base.Artigos.Existe(Artigo.Artigo))
{
PSO.Dialogos.MostraMensagem(StdPlatBS100.StdBSTipos.TipoMsg.PRI_Detalhe, "O Artigo " + Artigo.Artigo + " Não Existe");
}
else
{
linha.Artigo = Artigo.Artigo;
linha.TipoLinha = "20";
linha.Descricao = Artigo.Descricao;
linha.Quantidade = 1;
linha.Unidade = "UN";
linha.PrecUnit = valor;
linha.CodIva = Artigo.IVA;
linha.TaxaIva = BSO.Base.Iva.DaValorAtributo(linha.CodIva, "taxa");
linha.PercIncidenciaIVA = Convert.ToSingle(Artigo.PercIncidenciaIVA);
linha.CodIva = BSO.Base.Artigos.Edita(linha.Artigo).IVA;
Editor .DocumentoVenda.Linhas.Insere(linha);
}
linha = null;
}
Marcado como spam |
| Resposta privada Problema resolvido. Na Classe: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Sales.Editors;
namespace EditorVendasEx.Sales
{
public class UiEditorVendas : EditorVendas
{
public override void ClienteIdentificado(string Cliente, ref bool Cancel, ExtensibilityEventArgs e)
{
using (var result = BSO.Extensibility.CreateCustomFormInstance(typeof(PriformContadores)))
{
var form = (result.Result as PriformContadores);
form._docVenda = this.DocumentoVenda;
form._erp = this.BSO;
form.ShowDialog();
}
base.ClienteIdentificado(Cliente, ref Cancel, e);
}
}
}No form Primavera: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.CustomForm;
namespace EditorVendasEx
{
public partial class PriformContadores : CustomForm
{
public VndBE100.VndBEDocumentoVenda _docVenda { get; set; }
public ErpBS100.ErpBS _erp { get; set; }
public PriformContadores()
{
InitializeComponent();
}
public PriformContadores(VndBE100.VndBEDocumentoVenda documentoVenda, ErpBS100.ErpBS erpBS)
{
_docVenda = documentoVenda;
_erp = erpBS;
InitializeComponent();
}
private void PriformContadores_Load(object sender, EventArgs e)
{
_erp.Vendas.Documentos.AdicionaLinha(_docVenda, "A0001");
}
}
}
Marcado como spam | |
| Resposta privada Podem fazer assim: Na classe de suporte ao evento: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Sales.Editors;
namespace ExtensibilityProject6.Sales
{
public class UiEditorVendas : EditorVendas
{
public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
{
Form1 f = new Form1(this.DocumentoVenda,this.BSO);
f.ShowDialog();
base.TeclaPressionada(KeyCode, Shift, e);
}
}
}No formulário using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ExtensibilityProject6.Sales
{
public partial class Form1 : Form
{
private VndBE100.VndBEDocumentoVenda _docVenda;
private ErpBS100.ErpBS _erp;
public Form1()
{
InitializeComponent();
}
public Form1(VndBE100.VndBEDocumentoVenda documentoVenda, ErpBS100.ErpBS erpBS )
{
_docVenda = documentoVenda;
_erp = erpBS;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
_erp.Vendas.Documentos.AdicionaLinha(_docVenda, "A0001");
}
}
}
O segredo está em chamar o formulário como showdialog para o evento internamente apenas seja chamado depois de se adicionar a linha. Marcado como spam | |
| Resposta privada Tentei contornar o problema mas não consegui! Muitos projectos de migração dependem desse problema, na V9 eu conseguia inserir no editor de vendas através de um form Marcado como spam Comentários Olá boa tarde Feliciano, ainda está com esse problema? Estou agora a passar pelo mesmo...alguma novidade sobre a forma de contornar? | |
| Resposta privada Sinta-se Comprimentado Como posso fazer para Inserir informação do Editor de Vendas através de um Form?
Marcado como spam | |
| Resposta privada Isso não podes fazer. Isto é não podes fazer com que o editor carregue um objeto a partir de uma classe externa. Marcado como spam Comentários Olá Sérgio boa tarde, tenho um problema similar, estou a migrar código para a V10 em que a partir do EditorDeVendas,(Tecla pressionada) abro um form , depois tenho um algoritmo para efetuar uns cálculos, e adiciono uma ou n linhas no editor resultado desses cálculos(e encerro o form), alguma dica para contornar esta diferença de comportamento? Obrigado. @paulosantos reposta adicionada |