private void ImprimeListagem() { lblOutput.Text = string.Empty; StringBuilder strF = new StringBuilder(); // Formula StringBuilder strP = new StringBuilder(); // Parametros StringBuilder strS = new StringBuilder(); // SelFormula try { Global.EstadoImpressao = $"A preparar impressão..."; PrintUpdate.Update(); int copias = 1; if (int.TryParse(txtCopies.Text, out copias)) { if (copias > 10) { copias = 10; Global.EstadoImpressao = "Número de cópias foi reduzido para 10!"; } else if (copias <= 0) { copias = 1; Global.EstadoImpressao = "Número de cópias foi alterado para 1!"; } } else { throw new Exception("Número de cópias inválido!"); } string sComp = txtEmpresa.Text; // para ter o intellisense, terão que ser adicionadas referências ao projecto (interops). plat_ = Activator.CreateInstance(Type.GetTypeFromProgID("StdPlatBS" + version + ".StdPlatBS", true)); conf_ = Activator.CreateInstance(Type.GetTypeFromProgID("StdPlatBS" + version + ".StdBSConfApl", true)); conf_.AbvtApl = "GCP"; conf_.Instancia = "default"; conf_.Utilizador = txtUtil.Text; conf_.PwdUtilizador = txtPassword.Text; conf_.LicVersaoMinima = ddlVersao.SelectedItem.Value; dynamic oTrans = null; // Abrir empresa de trabalho // Para utilizar este método é necessário ter licença de motores if (version == "900") { plat_.AbrePlataformaEmpresa(sComp, oTrans, conf_, 0, string.Empty); } else { plat_.AbrePlataformaEmpresaIntegrador(sComp, oTrans, conf_, 0); } for (int i = 0; i < copias; i++) { Global.EstadoImpressao = $"Impressão da cópia {i + 1}..."; // Tipo Documento/Série e Nº strS = new StringBuilder("{CabecDoc.TipoDoc}='" + txtDoc.Text + "' and {CabecDoc.Serie} = '" + txtSerie.Text + "' AND {CabecDoc.NumDoc}=" + txtNum.Text); // Inicialização do módulo ao qual corresponde o mapa plat_.Mapas.Inicializar("GCP"); strF.Append("StringVar Nome:='" + plat_.Contexto.Empresa.IDNome + "';"); strF.Append("StringVar Morada:='" + plat_.Contexto.Empresa.IDMorada + "';"); strF.Append("StringVar Localidade:='" + plat_.Contexto.Empresa.IDLocalidade + "';"); strF.Append("StringVar CodPostal:='" + plat_.Contexto.Empresa.IDCodPostal + " " + plat_.Contexto.Empresa.IDCodPostalLocal + "';"); strF.Append("StringVar Telefone:='" + plat_.Contexto.Empresa.IDTelefone + "';"); strF.Append("StringVar Fax:='" + plat_.Contexto.Empresa.IDFax + "';"); strF.Append("StringVar Contribuinte:='" + plat_.Contexto.Empresa.IFNIF + "';"); strF.Append("StringVar CapitalSocial:='" + plat_.Contexto.Empresa.ICCapitalSocial + "';"); strF.Append("StringVar Conservatoria:='" + plat_.Contexto.Empresa.ICConservatoria + "';"); strF.Append("StringVar Matricula:='" + plat_.Contexto.Empresa.ICMatricula + "';"); strF.Append("StringVar MoedaCapitalSocial:='" + plat_.Contexto.Empresa.ICMoedaCapSocial + "';"); plat_.Mapas.SetFormula("DadosEmpresa", strF.ToString()); strP.Append("NumberVar TipoDesc;"); strP.Append("NumberVar DecQde;"); strP.Append("NumberVar DecPrecUnit;"); strP.Append("BooleanVar UltimaPag;"); strP.Append("TipoDesc:= 0;"); strP.Append("DecQde:=3;"); strP.Append("UltimaPag:=False;"); plat_.Mapas.SetFormula("InicializaParametros", strP.ToString()); if (ckbImp.Checked) { plat_.Mapas.DefinicaoImpressoraIntegracao("CutePDF Writer", "CutePDF Writer", "CutePDF Writer", "CPW2:", 1, 600, 9, 27, 21, 1, 0, 1, 1, 1); } plat_.PrefUtilStd.UsaImpressoraMapas = 0; plat_.Mapas.Destino = 0; plat_.Mapas.SetFileProp(8, $"C:\\temp\\outputPrint{i + 1}.pdf"); plat_.Mapas.ImprimeListagem(txtReport.Text, "Factura", "P", 3, "N", strS.ToString(), 0, false, true); } plat_.FechaPlataformaEx(); } catch (Exception e) { lblOutput.Text = e.ToString(); } finally { Global.EstadoImpressao = "Impressão com sucesso!"; plat_ = null; conf_ = null; } }
protected void Timer1_Tick(object sender, EventArgs e) { this.lblOutput.Text = string.IsNullOrEmpty(Global.EstadoImpressao) ? "Em espera..." : Global.EstadoImpressao; PrintUpdate.Update(); Debug.Print("Updated!!"); }