Fórum
Ver pergunta

Evento ValidaLinha V9-V10 C#   

142 visualizações
-1
0

Estou a começar a fazer a migração da v9 para a v10, como tal, tenho que configurar novas funções de extensibilidade.
O código anterior era VBA, mas pretendo fazê-lo em C#, no entanto, estou com algumas dificuldades em perceber como é que no evento ValidaLinha consigo aceder aos campos de utilizador que estão na tabela dos artigos. A seguir o codigo:

V9- VBA
 strSql = vbNullString
            
 strSql = strSql & "SELECT * FROM Artigo "
            
 strSql = strSql & "WHERE Artigo = '" & Me.DocumentoVenda.Linhas(NumLinha).Artigo & "'"
               
Set objLista = Aplicacao.BSO.Consulta(strSql)
            
DblArtigoEncargos = Conversion.CDbl(PlataformaPRIMAVERA.Utils.FDbl#(objLista("CDU_encargos")))

Me.DocumentoVenda.Linhas(NumLinha).CamposUtil.Item("CDU_encargos2").Valor = 1 * DblArtigoEncargos
DblEncargos2 = Conversion.CDbl(Me.DocumentoVenda.Linhas(NumLinha).CamposUtil.Item("CDU_encargos2").Valor)


V10-C#

string query = string.Format("select * from artigo, LinhasDoc where artigo.artigo=LinhasDoc.artigo");
            
 StdBE100.StdBELista ArtigoList;

ArtigoList=BSO.Consulta(query);

DblArtigoEncargos = PSO.Utils.FInt(ArtigoList("CDU_encargos"));

Desde já, agradeço o vosso auxilio na explicação deste detalhe. Já tentei verificar algumas situações mas sem sucesso.

 

Faça login para poder traduzir
V10
Marcado como spam
Comentários
@lucndriodelurdesftquinhentos Não estou a entender o que queres fazer com esse codigo. queres validar linha onde? em que contexto.... O select também não está bem.... Se mais concreto para poder ajudar. Porque não usas a API dos artigos ?
5 anos e 9 meses
sergiosereno
    @sereno O que pretendo fazer é que no evento do Primavera ValidaLinha eu consiga ir buscar campos de utilizador que estão na tabela dos artigos e assim conseguir fazer cálculos entre o conteúdo por defeito do evento ValidaLinha e os campos de utilizador que estão na tabela artigo.
    5 anos e 9 meses
    lucndriodelurdesftquinhentos
      2 respostas
      0
      Resposta privada

      Obrigado pelas recomendações.
      Mas acabo me deparando com o erro em anexo.

      Faça login para poder traduzir
      Anexos:
      Marcado como spam
        0
        Resposta privada

        A melhor de fazer isso é evitar o uso do SQL, para além "SELECT* FROM" é de evitar por motivos de performance.

        Recomendo algo tipo isto para fazer o que queres.

            public class UiEditorVendas : EditorVendas
            {
                public override void ValidaLinha(int NumLinha, ExtensibilityEventArgs e)
                {
        
                    var campos = this.BSO.Base.Artigos.DaValorAtributos(this.DocumentoVenda.Linhas.GetEdita(NumLinha).Artigo, "CDU_Campovar1");
        
                }
            }

         

        Faça login para poder traduzir
        Marcado como spam
        Criado há 5 anos e 9 meses sergiosereno
        sergiosereno Most Valuable Professional