| ♥ 0 | Tenho este VBA que estou a tentar converter para C#, o objectivo é fazer a mesma validação na V10 ” Verificar se existe alguma linha com o preço unitário a zero, a validação terá de se feita antes de gravar e não linha a linha. Dim n As Long, strMsgDetalhe As String With Me.DocumentoVenda For n = 1 To.Linhas.NumItens If .Linhas(n).PrecUnit = 0 And Len(.Linhas(n).Artigo) <> 0 Then strMsgDetalhe = strMsgDetalhe & .Linhas(n).Artigo & "," End If Next n If strMsgDetalhe<> "" Then Aplicacao.PlataformaPRIMAVERA.Dialogos.MostraMensagem 2, "Foram movimentados artigos sem preço/quantidade unitário", 4, strMsgDetalhe, , True 'Cancel=True 'Para não deixar gravar End If End With
O novo código esta assim: namespace ExtensibilityProjectLinhas.Sales
{
public class UiEditorVendas : EditorVendas
{
public override void AntesDeGravar(ref bool Cancel, ExtensibilityEventArgs e)
{
for (int i = 0; i <= this.DocumentoVenda.Linhas.NumItens; i++)
if (this.DocumentoVenda.Linhas.GetEdita(i).PrecUnit == 0)
{
PSO.Dialogos.MostraAviso("ERRO!", StdPlatBS100.StdBSTipos.IconId.PRI_Exclama);
Cancel = true;Estou a obter o seguinte erro. Error CS0012: The type ‘BaseBE’ is defined in an assembly that is not referenced.You must add a reference to assembly ‘BasBE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=11cd844aca152173’. ExtensibilityProjectLinhas E:\V10\AMS\ExtensibilityProjectLinhas\ExtensibilityProjectLinhas\Sales\UiEditorVendas.cs 18 Active Já tentei adicionar a reference BasBE100 mas não a encontro, podem ajudar-me? Marcado como spam |
| Resposta privada Boas já obtive Ajuda e deixo aqui um exemplo funcional para quem precisar. using System; namespace ExtensibilityProject_ValidaLinhas.Sales for (int i=1; i<=this.DocumentoVenda.Linhas.NumItens; i++) if (linhas.Artigo != "" ) if (linhas.PrecUnit ==0 || linhas.Quantidade== 0) Marcado como spam | |
| Resposta privada Em relação a referencia que não conseguia adicionar já consegui AJUDA e fica aqui a informação para caso alguém necessite. A mesma esta na pasta de instalação do Primavera ...SG100\Apl\BasBE100.dll. A mesma só é necessária se porque usei o GetEdita()!! Marcado como spam Comentários É isso mesmo Marco, partilhar as dicas com o resto da comunidade. BOA
Quanto a duvida, todas as DLL's PRIMAVERA estão na pasta APL. | |
| Resposta privada Olá Marco. O melhor é mesmo começar por ler um pouco sobre o funcionamento da V10, recomendamos.
Recomendo também instalar a extensão Visual Studio para lhe adiconar automaticamente as referencias que necessita quando está a criar os seus projetos PEX. Por ultimo, se procurar no developer network tem muita informação sobre como usar a tecnologia, e no git vários exemplos de utilização. Marcado como spam Comentários Obrigado pela sugestão, têm sido mesmo esses os meus passos, já passei por todos eles e já vi imensos exemplos e não encontrei nada no sentido do que procuro. Mas é sempre bom ter quem nos apoie e nos incentive a não desistir obrigado pelo apoio. |