| ♥ 0 | Fechada. This question was closed because it isn't clear or needs more details. To improve it, please check our FAQs. Boa tarde a todos, Estou a utilizar os motores da V10, e pretendo imprimir para ficheiro um documento de contra tendo por base o id do mesmo. Estou a executar o seguinte codigo: public static RespIntPrint ImprimeDocs(string IdDoc, string Tdoc, string emp)
{
var res = new RespIntPrint();
var cam = @"C:\PrimaveraAPI\API\API\TempFiles\" + IdDoc + ".pdf";
try
{
PriEngine.CreatContext(emp, UserERP, Passerp, "Default");
if (PriEngine.EngineStatus)
{
StringBuilder status = new StringBuilder();
status.Append("Company: " + PriEngine.Platform.Contexto.Empresa.CodEmp + " | ");
status.Append("Company Name: " + PriEngine.Platform.Contexto.Empresa.IDNome + " | ");
status.Append("Currency: " + PriEngine.Platform.Contexto.Empresa.MoedaBase);
}
}
catch (Exception ex)
{
res.status = ex.Message;
return res;
}
bool okmapa = new bool();
if (PriEngine.Engine.Compras.TabCompras.Existe(Tdoc))
{
ICmpBEDocumentoCompra docfin = PriEngine.Engine.Compras.Documentos.EditaID(IdDoc);
okmapa = PriEngine.Engine.Compras.Documentos.ImprimeDocumento(docfin.Tipodoc, docfin.Serie, docfin.NumDoc, docfin.Filial, 0, "GCPILS02", false, cam);
}
if (okmapa)
{
res.status = "OK";
res.caminho = cam;
}
else
{
res.status = "Erro";
res.caminho = "Não foi possivel imprimir o documento pedido.";
}
return res;
}Passa bem pela abertura dos motores, valida que o Tdoc existe na tabela e quando tento abrir o documento pelo metodo editaid da o seguinte erro: Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException: ‘An unexpected exception occurred while binding a dynamic operation’ Já tentei passar o id desta forma: {E4882C04-AFE6-11EA-AE44-9C5A44262BFE} e E4882C04-AFE6-11EA-AE44-9C5A44262BFE O que será que estou a fazer de errado? Cumprimentos, LS Marcado como spam |
| Resposta privada Bom dia, Na continuação do mesmo post, no mesmo codigo tenho a impressão dos documentos de venda, que neste caso, vai buscar o documento de forma correta, no entanto ao imprimir retorna sempre falso. Vou colocar aqui todo o codigo. public static RespIntPrint ImprimeDocs(string IdDoc, string Tdoc, string emp) /* erro nos metodos de impressão. colocado no forum */
{
var res = new RespIntPrint();
var cam = @"C:Program Files (x86)PrimaveraV10SG100DadosLEANEXOS" + IdDoc + ".pdf";
try
{
PriEngine.CreatContext(emp, UserERP, Passerp, "Default");
if (PriEngine.EngineStatus)
{
StringBuilder status = new StringBuilder();
status.Append("Company: " + PriEngine.Platform.Contexto.Empresa.CodEmp + " | ");
status.Append("Company Name: " + PriEngine.Platform.Contexto.Empresa.IDNome + " | ");
status.Append("Currency: " + PriEngine.Platform.Contexto.Empresa.MoedaBase);
}
}
catch (Exception ex)
{
res.status = ex.Message;
return res;
}
bool okmapa = new bool();
if (PriEngine.Engine.Compras.TabCompras.Existe(Tdoc))
{
var docfin = PriEngine.Engine.Compras.Documentos.EditaID(IdDoc);
okmapa = PriEngine.Engine.Compras.Documentos.ImprimeDocumento(docfin.Tipodoc, docfin.Serie, docfin.NumDoc, docfin.Filial, 0, "GCPCLS02", false, cam);
}
else if (PriEngine.Engine.Vendas.TabVendas.Existe(Tdoc))
{
var docfin = PriEngine.Engine.Vendas.Documentos.EditaID(IdDoc);
okmapa = PriEngine.Engine.Vendas.Documentos.ImprimeDocumento(docfin.Tipodoc, docfin.Serie, docfin.NumDoc, docfin.Filial,1,"GCPVLS06",false,cam);
}
if (okmapa)
{
res.status = "OK";
res.caminho = cam;
}
else
{
res.status = "Erro";
res.caminho = "Não foi possivel imprimir o documento pedido.";
}
return res;
}Não estou a entender o que se passa. Na realidade estou a converter código de motores V9 para V10, toda esta função em VB net funciona bem para a V9. O que será que estou a fazer mal?! Agradeço o vosso feedback. Marcado como spam Comentários @luissoares A questão foi fechada porque viola regra do site. Uma questão deve ser só sobre um tema, respostas como questão também é uma pratica invalida. Se reformular as questões ela será reaberta e terá a ajuda. |