Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
Unhappy error en el report manager

hola a todos, si este no es el lugar correcto donde debi haber posteado mi duda me disculpo con ustedes, pero tengo el sgte. problema:

necesito imprimir una chequera de clientes, nada mas, no traigo nada de una base de datos ni nada... simplemente tengo una ventana hecha en delphi que trae un report al que se le pasa parametros como, nombre de cliente, monto a abonar, y el mes donde debe abonar, es todo, todo se llena en la interfaz y se pasa como parametro, esta todo hecho, el problema es que en mi informe me salta un error que dice, "indice de la lista fuera de rango (10)", no se que pueda ser, ni como corregir.

desde ya les cuento que no cree ninguna conexion a ninguna base de datos ni nada que se le paresca porque no era necesario, osea no existe una base de datos, solo parametros a imprimir.
Responder Con Cita
  #2  
Antiguo 27-11-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Por el mensaje de error, estás saliendote del rango de una lista o un arreglo. Esto es, tu aplicación está tratando de obtener un valor con índice 10 de alguna lista o arreglo, pero este no existe.

Si puedes el código donde te produce el error podríamos ayudarte un poco más.


Saludos...
Responder Con Cita
  #3  
Antiguo 27-11-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
no uso ningun arreglo en ninguna parte, esto es mi codigo en delphi:

Código Delphi [-]
unit chequera;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, rpcompobase, rpclxreport, Mask;

type
  Tf_chequera = class(TForm)
    TITULO: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    contrato: TEdit;
    codigo: TEdit;
    cuota: TEdit;
    titular: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    new: TBitBtn;
    print: TBitBtn;
    Shape1: TShape;
    report: TCLXReport;
    mes: TMaskEdit;
    exit: TBitBtn;
    procedure newClick(Sender: TObject);
    procedure printClick(Sender: TObject);
    procedure exitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  f_chequera: Tf_chequera;

implementation

{$R *.dfm}

procedure Tf_chequera.newClick(Sender: TObject);
begin
mes.Enabled:=true;
codigo.Enabled:=true;
contrato.Enabled:=true;
cuota.Enabled:=true;
titular.Enabled:=true;
Edit1.Enabled:=true;
Edit2.Enabled:=true;
Edit3.Enabled:=true;
Edit4.Enabled:=true;
print.Enabled:=true;
end;

procedure Tf_chequera.printClick(Sender: TObject);
var cont: Integer;
begin
mes.Enabled:=false;
codigo.Enabled:=false;
contrato.Enabled:=false;
cuota.Enabled:=false;
titular.Enabled:=false;
Edit1.Enabled:=false;
Edit2.Enabled:=false;
Edit3.Enabled:=false;
Edit4.Enabled:=false;
print.Enabled:=false;
report.Filename:=f_chequera.report.Filename;
report.Report.Params[0].Value:= titular.Text;
report.Report.Params[1].Value:= StrToInt(cuota.Text);
report.Report.Params[2].Value:= contrato.Text;
report.Report.Params[3].Value:= StrToInt(codigo.Text);
report.Report.Params[4].Value:=StrToDate(mes.Text);
report.Report.Params[5].Value:=StrToInt(Edit1.Text);
report.Report.Params[6].Value:=StrToInt(Edit2.Text);
report.Report.Params[7].Value:=StrToInt(Edit3.Text);
report.Report.Params[8].Value:=StrToInt(Edit4.Text);
report.Execute;
end;

procedure Tf_chequera.exitClick(Sender: TObject);
begin
Close;
end;

procedure Tf_chequera.FormCreate(Sender: TObject);
begin
mes.Text:=DateToStr(now);
end;

end.

como ven es algo estupido y simple, es una ventana donde deben llenar datos, estos se les pasa al report y deberia imprimir pero no pasa nada, ahora tengo otro error que me dice que no hay espacio para imprimir y no entiendo porque el tamaño de mi pagina es mas grande que el de mi informe, es para una hoja tamaño 2100*3100, es para una matricial epson lx-300 que utiliza aun el lpt1
Responder Con Cita
  #4  
Antiguo 27-11-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

A simple vista no se ve donde pueda estar el error. ¿En que línea te indica que ocurre el error?

Revisa la pila de ejecución de la aplicación al momento que ocurre el error, esto te puede dar una idea en que método se produce este.


Saludos...
Responder Con Cita
  #5  
Antiguo 27-11-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
prove mi ejecutable en otras maquinas, el error es en el informe no en mi codigo delphi es el informe, me dice que no hay espacio para imprimir, y no entiendo como, porque yo creo haber puesto la configuracion de la pagina e impresora correctamente
Responder Con Cita
  #6  
Antiguo 27-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo es que no entiendo esto:
Código Delphi [-]
report.Filename:=f_chequera.report.Filename;
report.Report.Params[0].Value:= titular.Text;

¿me puedes explicar qué es qué?
porque report es un TCLXReport, pero f_chequera.report ¿no es acaso el mismo? ¿usas varias instancia del mismo form con distinta variable?

Otro detalle: ¿estás programando en linux o pretendes que sea compatible? Al menos yo he usado el TVCLReport

¿donde has configurado el tamaño de página? ¿dentro de Report Designer?
Cita:
es para una hoja tamaño 2100*3100
pero ¿en qué unidades? porque Reportman usa twips y una pulgada son 1440 twips, por tanto 2100 vendría a ser 4 centímetros y pico, pero no sé si 2100 es el ancho o el alto.


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 27-11-2008 a las 22:05:25.
Responder Con Cita
  #7  
Antiguo 29-11-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
hola lepe:

eso de las medidas me intereso quizas este en eso mi problema, quisieras explicarme mejor por favor como es eso....

por ejemplo para un papel continuo de 23 cm (ancho) por 26 cm (largo) como seria en el repor manager?, porque en las propiedades de su ancho y alto le pngo asi nomas, tal cual
Responder Con Cita
  #8  
Antiguo 29-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
empieza por Archivo -> configurar impresión, ahí debe aparecer tu tamaño de página, si no aparece, tendrás que añadir uno en windows para que esté disponible ahí.

Te aconsejo que mires en Archivo -> configurar página ->configurar impresion -> configurar, ahí viene muchas opciones, igual tienes que especificar la impresora, en la mayoría solo cabe un folio A4, pero la tuya es distinta.

Aquí me parece que hay un error:
Código Delphi [-]
report.Filename:=f_chequera.report.Filename;

Por otra parte, si configuras en el Inspector de objetos el alto y ancho, estás haciéndolo para la banda detalle, no para el informe completo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 02-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
ya logre que aparesca, ahora solo debo ubicar bien los parametros para que imprima en el lugar correcto, el error estaba en que en el detalle de mi informe le ponia el mismo alto que mi hoja y eso no debe ser asi por lo que veo, me entero, y lo comento por si a alguien le alla pasado lo mismo, el detalle nunca debe ser del mismo tamaño que la hoja, debe ser menor al menos en el alto.

y la parte donde me dices que hubo un error, la verdad que a mi no me lanza ningun error el delphi, si no es de la forma en que lo he puesto, entonces como asigno a mi objeto del report el nombre del reporte que debe ejecutar?
Responder Con Cita
  #10  
Antiguo 02-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Dime como creas la ventana tf_chequera y depués te cuento.

¿usas Applicacion.CreateForm(f_chequera, tf_chequera)?
o
¿usas algo así Miform := Tf_chequera.Create(....)?

¿usas ambas formas? ¿cómo? pon algo de código

No digo que es un error, lo que digo es que puede ser un error, dependiendo de cómo lo uses, puedes tener Access violation al ejecutarlo.


saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 02-12-2008 a las 15:03:35.
Responder Con Cita
  #11  
Antiguo 02-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
este es el form create que utilizo
Código Delphi [-]procedure Tf_chequera.FormCreate(Sender: TObject); begin mes.Text:=DateToStr(now); end;

simplemente hago que la fecha sea por defecto la del dia, despues todos mis TEdit son Código Delphi [-]enable :=false

, y nada mas, mi TCLXReport se llama report, y la ruta del informe esta en la propiedad de filename por eso le pasaba de esta forma
Código Delphi [-]report.Filename:=f_chequera.report.Filename;


entiendes, me estas empezando a confundir jeje, porque es algo muy simple lo que estoy intentando hacer...

y la verdad que ya lo termine, funciona, el unico problema era como dije mas arriba, que el detalle del informe debe ser de menor tamaño que el tamaño de la pagina no el mismo.
Responder Con Cita
  #12  
Antiguo 02-12-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Algo me dice que creas todas las formas al iniciar tu aplicación. Es por eso que esa llamada no te produce ningún error de violación de acceso a memoria.


Saludos...
Responder Con Cita
  #13  
Antiguo 02-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
vale, entiendo. La solución es simple, elimina la linea:
Código Delphi [-]
report.Filename:=f_chequera.report.Filename;

porque realmente no hace nada. La propiedad report.Filename la tienes puesta en tiempo de diseño, así que no hace falta ponerla después.

esa línea viene a ser:
Código Delphi [-]
 a:= a


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 02-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
ah.... ok, gracias, la elimino entonces, saludos
Responder Con Cita
  #15  
Antiguo 02-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
si funciona igual, tenias razon, gracias.
tengo una consultita mas que hacerte, cuando envio los parametros a mi report los meto en un try en el caso de que carguen datos incorrectos como caracteres donde solo acepta enteros, asi me evito el tener que validarlos uno a uno ya que son TEdits nada mas, ya lo probe y funciona, es solo que me gustaria que en la ventanita de mi aviso aparesca un titulo como 'Atención', y el mensaje, como podria lograr eso con el showmensage?

Código Delphi [-]
ShowMessage('Verifique que los parámetros pasados sean los correctos');
Responder Con Cita
  #16  
Antiguo 02-12-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Tienes que usar un MessageBox. Busca en la ayuda de Delphi por TApplication.MessageBox.


Saludos...
Responder Con Cita
  #17  
Antiguo 02-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
si....!!! gracias, ya esta!, ahora me voy a entregar el trabajito, jajaja
gracias a todos muchachos, quedo chupete el trabajo jeje.
Responder Con Cita
  #18  
Antiguo 03-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
Hola lepe, veo que estas en linea, ayer tuve un problemita con el trabajo este que lleve, en mi computadora funciona el ejecutable pero haya no, me lanza un error que dice:

"Error al iniciar la aplicación porque no se encontró qtintf.dll. la reinstalación de la aplicación puede solucionar el problema."


una compañera me dijo que eso se debe a que existen ciertos paquetes que hay que instalar del borlan para que funcionen los ejecutables en otras maquinas que no tienen instalados el delphi, o quizas a mi se me este pasando alguna propiedad antes de compilarlo, no se, te agradeceria que me ayudaras, porque ayer quede con que se lo llevaba hoy, ensima es para una funeraria, tetrico....
Responder Con Cita
  #19  
Antiguo 03-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Parece que has incluido una unidad que no es para windows, por ejemplo, has puesto algo así como "uses QDialogs, Qprinters"... debes borrar la "Q" que tiene delante, ya que esas unidades están pensadas para aplicaciones CLX. Tú lo que estás usando es VCL.

Este fallo puede venir por usar un reportCLX (para linux) cuando en realidad debes usar reportVCL (para windows).

Ya que estás usando reportman, que no se olvide llevarte el archivo reportmanres.es (que lo tienes en la carpeta de instalación de reportman) y coloca ese archivo en la misma carpeta que tu ejecutable. De esa forma, si has usado el report.language := 1, te saldrán los mensajes en español, así como todos los mensajes de la vista preliminar.

Normalmente un programa hecho en delphi no necesita de nada más para ejecutarse, por ejemplo un form con TEdits, botones. Si incluyes Bases de datos ya es otro cantar, puedes necesitar algunas cosas más.

Estaba en linea, pero se vé que no actualicé los enlaces recientes, porque no ví este mensaje.


Para evitar todos estos inconvenientes, (faltan archivos para ejecutarse), te aconsejo usar virtualización (VirtualBox), básicamente es tener un windows dentro de otro, así puedes hacer las pruebas como si tuvieras un segundo ordenador sin delphi instalado, y ver todos esos errores que te pueden dar al ejecutar ese programa que estás haciendo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #20  
Antiguo 03-12-2008
Avatar de Anyu
Anyu Anyu is offline
Miembro
 
Registrado: jun 2008
Posts: 30
Poder: 0
Anyu Va por buen camino
este es mi codigo, la unica ventana que tengo:

Código Delphi [-]
unit chequera;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, rpcompobase, rpclxreport, Mask;

type
  Tf_chequera = class(TForm)
    TITULO: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    contrato: TEdit;
    codigo: TEdit;
    cuota: TEdit;
    titular: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    new: TBitBtn;
    print: TBitBtn;
    Shape1: TShape;
    report: TCLXReport;
    mes: TMaskEdit;
    exit: TBitBtn;
    procedure newClick(Sender: TObject);
    procedure printClick(Sender: TObject);
    procedure exitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  f_chequera: Tf_chequera;

implementation

{$R *.dfm}

procedure Tf_chequera.newClick(Sender: TObject);
begin
mes.Enabled:=true;
mes.Text:=DateToStr(now);
codigo.Enabled:=true;
codigo.Text:='0';
contrato.Enabled:=true;
contrato.Text:='0';
cuota.Enabled:=true;
cuota.Text:='0';
titular.Enabled:=true;
titular.Text:='';
Edit1.Enabled:=true;
Edit1.Text:='0';
Edit2.Enabled:=true;
Edit2.Text:='0';
Edit3.Enabled:=true;
Edit3.Text:='0';
Edit4.Enabled:=true;
Edit4.Text:='0';
print.Enabled:=true;
end;

procedure Tf_chequera.printClick(Sender: TObject);
var cont: Integer;
begin
mes.Enabled:=false;
codigo.Enabled:=false;
contrato.Enabled:=false;
cuota.Enabled:=false;
titular.Enabled:=false;
Edit1.Enabled:=false;
Edit2.Enabled:=false;
Edit3.Enabled:=false;
Edit4.Enabled:=false;
print.Enabled:=false;
try
report.Report.Params[0].Value:= titular.Text;
report.Report.Params[1].Value:= StrToInt(cuota.Text);
report.Report.Params[2].Value:= contrato.Text;
report.Report.Params[3].Value:= StrToInt(codigo.Text);
report.Report.Params[4].Value:=StrToDate(mes.Text);
report.Report.Params[5].Value:=StrToInt(Edit1.Text);
report.Report.Params[6].Value:=StrToInt(Edit2.Text);
report.Report.Params[7].Value:=StrToInt(Edit3.Text);
report.Report.Params[8].Value:=StrToInt(Edit4.Text);
report.Execute;
except
 with Application do
  begin
    NormalizeTopMosts;
    MessageBox('Verifique que los parámetros pasados sean los correctos', 'Atención', MB_OK);
    RestoreTopMosts;
  end;
end;
end;

procedure Tf_chequera.exitClick(Sender: TObject);
begin
Close;
end;

procedure Tf_chequera.FormCreate(Sender: TObject);
begin
mes.Text:=DateToStr(now);
end;

end.


como veras no uso ningun componente que tenga una Q en frente, sera que no hay algun paquete que deba llevar a instalar en la maquina del cliente?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al instalar Report manager Loarik Impresión 1 07-08-2008 12:57:30
Report Manager SSoft Impresión 1 26-01-2008 00:20:53
Instalacion Report Manager 2.6j en D6sp2 con error pbruccoleri Impresión 1 01-03-2007 00:04:39
Report Manager dvlt Impresión 8 17-11-2006 08:57:29
Error en Report Manager landro Impresión 7 13-07-2006 17:10:37


La franja horaria es GMT +2. Ahora son las 11:30:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi