♥ 0 | Num formulário de utilizador, como obter o Contexto( ErpBS100.ErpBS) para utilizar StdBELista? Marcado como spam |
2 respostas
Resposta privada Este código faz com que ao adicionar a extensão, e adicionar uma nova função de utilizador para ir buscar o formulário, ele nem aparece na lista desde que qualquer instrução que se relacione com o BSO esteja a ser invocada. public FrmVendasBetaoGuias() { Marcado como spam Comentários Dá uma vista de olhos neste artigo: https://developers.ila.cegid.com/v10/?cat=recursos&subcat=guias&pID=4718
Também podes ver este exemplo: https://github.com/PrimaverabssDeveloper/ERP10Extensibility/tree/master/Custom%20Form | |
Resposta privada Não estou a perceber bem a questão mas posso explicar que o StdBELista encontra-se na assmbly StdBE100 (StdBE100.StdBELista), que deve ser referenciada no projeto. Exemplo: StdBE100.StdBELista lista = BSO.Consulta("SELECT Artigo, Descricao, FROM Artigo"); Marcado como spam Comentários Num formulário activado dentro de um documento de venda tinha programado a passagem do contexto (ErpBS100.ErpBS appContext:) para dentro do formulário, para uma variável global. Depois executava as consultas com StdBELista lista = appContext.Consulta("SELECT " + docColumn + " , " + serColumn + " FROM " + defTable);
Passei o formulário para formulário de utlizador, deixei o código igual, só no construtor passei appContext=this.BSO e não funciona. Agora na V10 não necessitas de passar o ErpBS para dentro do formulário, uma vez que ele já tem isso de base. Mas como relaciono? Tenho um Formulário de utilizador. Adiciono a extensão onde está incluído. Adiciono uma nova função de utilizador para adicionar esse formulário e acontece que nem aparece para adicionar se tiver instruções do tipo: StdBELista lista; lista = BSO.Consulta("SELECT 1"); Toda a instrução que contem o BSO origina algum erro que não vejo e depois o formulário não aparece para ser adicionado na função de utilizador. Aparentemente o BSO deve ser nulo... Estou a utilizar o VS2019 projeto em C#. Acabei de criar um projecto de raiz inicio, o código do formulário (referenciei o que faltava ErpDS100 da mesma forma que os outros):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.CustomForm; namespace ExtensibilityProject6.Sales
{
public partial class PriCustomForm1 : CustomForm
{
public PriCustomForm1()
{
InitializeComponent();
MessageBox.Show(BSO.DSO.BDAPL.ConnectionString);
}
}
} 1- Faço o Build em modo Debug, tudo ok,
2- Adiciono a extensão, tudo ok.
3- Tento adicionar uma nova função de utilizador, escolho "formulário do utilizador" e no separador não aparece o formulário.
4- se retirar as funções do BSO aparece. O exemplo do GitHub funciona, o que significa que existe mais no projecto do que adicionar a frase: CustomForm na classe e os DLL que faltam no projecto....
Obrigado vou verificar mais a fundo. |