![]() |
Pq no sigue la eejcucion de código? Hola Llevo 3 días con esto y no hay manera... a ver si sabési decirme pq. pasa y solucionarlo. Tengo un form que cobra por servicaixa y muestra un pdf con un report(active report) del cobro. De esta manera: --------------------------- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If AltaRealizada Then ImpresiónServiCaixa() Me.Cobrar.Enabled = False Me.imgLogo.Visible = True Me.Button2.Text = "Cerrar sesión" else:end if End sub ------------------------------- Private Sub ImpresiónServiCaixa() Dim dt As New DataTable Dim dr As DataRow 'Formato datatable listado dt.Columns.Add("PeriodoPago", GetType(String)) dt.Columns.Add("Emisora", GetType(String)) dt.Columns.Add("NumeroReferencia", GetType(String)) dt.Columns.Add("Identificacion", GetType(String)) dt.Columns.Add("Importe", GetType(Decimal)) dt.Columns.Add("BarCode", GetType(String)) dt.Columns.Add("Nombre", GetType(String)) dt.Columns.Add("Direccion", GetType(String)) dt.Columns.Add("Poblacion", GetType(String)) dr = dt.NewRow Dim sEmisora As String = "05645656" Dim sSufijo As String = "566" Dim sReferencia As String = "999" & Format(CInt(Me.numMACodMat.Value), "00000000") Dim sIdentificacion As String = "645645" Dim sImporte As String = Format((numMAPreMat.Value * 100), "0000000000") Dim sParidad As String = "0" '----- 'Cálculo 2 Dígitos de Control del Nºde Referencia Dim Cálculo As Double = CDbl(sEmisora) Cálculo += CDbl(sSufijo) Cálculo += CDbl(sReferencia) Cálculo += CDbl(sIdentificacion) Cálculo += CDbl(sImporte) Cálculo = (Cálculo / 97) - Int((Cálculo / 97)) Cálculo = Int(Cálculo * 100) Cálculo = 100 - Cálculo '----- 'Agregamos los 2 dígitos de control sReferencia &= Format(Cálculo, "00") dr("PeriodoPago") = "" 'Now dr("Emisora") = sEmisora & sSufijo dr("NumeroReferencia") = sReferencia dr("Identificacion") = sIdentificacion dr("Importe") = numMAPreMat.Value dr("BarCode") = "6756757" & sEmisora & sSufijo & sReferencia & sIdentificacion & sImporte & sParidad dr("Nombre") = "Nom: " dr("Nombre") &= Trim(Me.txtMANomCog.Text) dr("Direccion") = "Direccion" dr("Poblacion") = "CP -- Población" dt.Rows.Add(dr) Dim r As New rptServiCaixa r.DataSource = dt Try r.Run(False) Catch eRunReport As DataDynamics.ActiveReports.ReportException Response.Clear() Response.Write("<h1>Error report:</h1>") Response.Write(eRunReport.ToString()) Return End Try 'Se borran las cabeceras actuales de HTTP Response.ClearContent() Response.ClearHeaders() 'Abrir en la misma ventana 'Response.AddHeader("content-disposition", "inline") 'Abrir en nueva ventana Response.AddHeader("content-disposition", "attachment; filename=ServiCaixa.pdf") Response.ContentType = "application/pdf" Dim pdf As New PdfExport Dim memStream As New System.IO.MemoryStream pdf.Export(r.Document, memStream) Response.BinaryWrite(memStream.ToArray()) Response.End() End If -------------------------------- Abre el pdf bien pero el código Me.Cobrar.Enabled = False Me.imgLogo.Visible = True Me.Button2.Text = "Cerrar sesión" no lo ejecuta y no se pq. SI le quito el Sub Servicaixa si lo hace así que debe ser algo en el Sub servicaixa que he de cambiar... pero el que? Lo de response.end lo probé de quitar pero nada Gracias |
Re: Pq no sigue la eejcucion de código? ya intentaste poniendo Me.Cobrar.Enabled = False Me.imgLogo.Visible = True Me.Button2.Text = "Cerrar sesión" anest de la llamada al otro sub? |
Re: Pq no sigue la eejcucion de código? si ya lo intenté |
Re: Pq no sigue la eejcucion de código? Si quitas Response.End(); en realidad se ejecuta la porción de código que resta, pero de nada te va a servir eso, porque supuestamente tu método ServiCaixa envía un documento PDF al navegador y ya no la típica página que contiene tus controles y demás cosas. Saludos |
Re: Pq no sigue la eejcucion de código? ya quite el response.end y pasa lo mismo... "de nada te va a servir eso, porque supuestamente tu método ServiCaixa envía un documento PDF al navegador"... cierto "y ya no la típica página que contiene tus controles y demás cosas."... ya pero eso no debería interrumpir la ejeccución de código de la primera página..no? |
Re: Pq no sigue la eejcucion de código? Cita:
Vuelvo a repetir, si es otro documento el que envías al cliente, el código que intentas ejecutar no va a tener ningún efecto para esa petición en particular (puesto que ahí ya no existen los controles que has definido...). Por otro lado, no deberías quitar Response.End(), porque posiblemente el documento que descargues estará corrupto. Te sugiero que hagas unas pruebas básicas para que entiendas como funcionan las cosas. Saludos |
Re: Pq no sigue la eejcucion de código? Lo del response.end ok "si es otro documento el que envías al cliente, ".. te refieres a la nueva ventana que se abre con el pdf para descargar? "el código que intentas ejecutar no va a tener ningún efecto para esa petición en particular (puesto que ahí ya no existen los controles que has definido...). "...??? quieres decir que: Me.Cobrar.Enabled = False Me.imgLogo.Visible = True Me.Button2.Text = "Cerrar sesión" lo está intentando ejecutar en la nueva página del pdf? Y como lo hago para que lo ejecute en la original? |
Re: Pq no sigue la eejcucion de código? Cita:
Cita:
Código: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickSaludos |
Re: Pq no sigue la eejcucion de código? ummm gracias...lo probaré mañana a ver: Puedes explicarme esto un poco mas sobre esto?: ClientScript.RegisterClientScriptBlock(me.gettype( ), "foo", "window.open('tupagina.aspx?descargar=1')", true) He buscado un poco por google (lo prometo!) y no encuentro nada claro... para que sirve clientscript.registerclientscriptblock?me.gettype( )?"foo" es un nombre cualquiera?tupagina.aspx es la página "padre"? Y el interrogante en tupagina.aspx? porque? descargar = 1? Y el último true? de javascript poquito la verdad... perdon |
Re: Pq no sigue la eejcucion de código? Revisa la documentación de ClientScriptManager Con respecto a "tupagina.aspx?descargar=1", se supone que esa página corresponde a aquella desde la que envías el documento PDF (no tengo idea como se llama), por otro lado, si esa página realiza más de una acción, el parámetro "descarga" te serviría para identificar que quieren descargar, para lo cual en el evento Page_Load debería haber algo como: if (!string.IsNullOrEmpty(request.Params["descarga"])) ImpresiónServiCaixa(); Saludos |
Re: Pq no sigue la eejcucion de código? Al final me di por vencido.. no he conseguido que continúe la ejecución de código pq. tampoco entiendo muy bien como ejecutar lo de : ClientScript.RegisterClientScriptBlock(me.gettype( ), "foo", "window.open('tupagina.aspx?descargar=1')", true).. gracias de todas maneras |
| La zona horaria es GMT -6. Ahora son las 10:02. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.