Foros del Web » Programando para Internet » ASPX (.net) »

Pq no sigue la eejcucion de código?

Estas en el tema de Pq no sigue la eejcucion de código? en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/04/2008, 03:26
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 07/04/2008, 00:23
Avatar de Fann_Lavigne  
Fecha de Ingreso: diciembre-2004
Mensajes: 622
Antigüedad: 19 años, 4 meses
Puntos: 12
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?
__________________
"Entre Mas Brillante Es Una Mente, Tiene Que Luchar Contra Demonios Internos Mas Poderosos"
[email protected]
  #3 (permalink)  
Antiguo 07/04/2008, 00:49
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Pq no sigue la eejcucion de código?

si ya lo intenté
  #4 (permalink)  
Antiguo 07/04/2008, 08:46
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
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
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 07/04/2008, 09:02
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
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?
  #6 (permalink)  
Antiguo 07/04/2008, 10:01
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Pq no sigue la eejcucion de código?

Cita:
Iniciado por chascos69 Ver Mensaje
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?
¿Por qué no?

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
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 07/04/2008, 11:43
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
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?
  #8 (permalink)  
Antiguo 07/04/2008, 13:28
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Pq no sigue la eejcucion de código?

Cita:
Iniciado por chascos69 Ver Mensaje
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?
Efectivamente.
Cita:
Y como lo hago para que lo ejecute en la original?
Lo que se me ocurre en este momento es que desde el manejador del evento Click de Boton2 generes un frame interno o abras una ventana nueva (window.open) que permita descargar el documento pedido. Ejm (en este caso el parámetro descargar indicaría que sólo se debe escribir los contenidos del pdf en la respuesta):

Código:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If AltaRealizada Then
ClientScript.RegisterClientScriptBlock(me.gettype(), "foo", "window.open('tupagina.aspx?descargar=1')", true)

Me.Cobrar.Enabled = False
Me.imgLogo.Visible = True
Me.Button2.Text = "Cerrar sesión"
else:end if
End sub
El código naturalemente no está probado, pero con algo parecido debería funcionar.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 07/04/2008, 14:24
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
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
  #10 (permalink)  
Antiguo 07/04/2008, 16:13
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
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
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #11 (permalink)  
Antiguo 11/04/2008, 00:12
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:50.