PDA

Ver la Versión Completa : Descargar Formulario


monicasierrar
05-05-2003, 19:54:09
Tengo un formulario donde se carga inicialmente la información disponible de la base de datos para que el usuario seleccione los tipos de datos a consultar. Cuando presiona el botón ok, se demora al rededor de 2 minutos o más para descargarlo.
¿Cómo puedo resolver esto?

Adjunto el código donde realizo esta operación

Gracias



procedure Tfrm_ppal.ac_CuentaAgregadaExecute(Sender: TObject);
var
qry : TQuery;
begin
// Crea el módulo de datos de ImpoExpo
md_impoexpo := Tmd_impoexpo.Create(Self);

try
Screen.Cursor := crHourGlass;
hc.MousePointer := F1HourGlass;

Proceso := tpReportesCN;

frm_Consulta := Tfrm_Consulta.Create(Self);

frm_Consulta.Caption := 'Generar Cuentas Agregadas';
frm_Consulta.Procesamiento := Procesamiento;
frm_Consulta.Periodo := Op_Periodo;
frm_Consulta.Trimestre := Op_Trim;
frm_Consulta.Tipo := 2;

frm_Consulta.rg_Periodicidad.ItemIndex := Op_TipoPeriodo;

frm_Consulta.ShowModal;

Refresh;

if frm_Consulta.ModalResult = mrOk then
begin
Periodo.NumPer := frm_Consulta.Periodo;
Periodo.Trimestre := frm_Consulta.Trimestre;

if frm_Consulta.rg_Periodicidad.ItemIndex = 0 then
Periodo.Periodicidad := 2
else
Periodo.Periodicidad := 1;

// Abrir Formato en Excel
try
qry := md_ImpoExpo.qry_Formato;

qry.Close;
qry.ParamByName('Id').AsString := '0001';
qry.Open;

AbrirXls(hc,Ruta_Modelo + '\' +
qry.FieldByName('Archivo').AsString + '.XLS');

// Genera la estructura del formato
GenerarFormato;

// Llenar formato
Entidad.Id := '';
Entidad.Nombre := frm_Consulta.ed_Titulo.Text;

LlenarFormato(0);

GenerarAjusteCN;
except
Showmessage('Error: Leyendo la información del formato...');
end;
end;
finally
// Restaura valores, cierra las querys y el módulo de datos
Screen.Cursor := crDefault;
hc.MousePointer := F1Default;

// Borra los catálogos creados
BorrarCatalogos;

frm_Consulta.free;

md_impoexpo.free;
end;
end; {ac_CuentaAgregadaExecute}

__marcsc
05-05-2003, 20:05:45
Pero exactamente en qué operación del códigop se demora?

Al ejecutar el query? Si es así,qué tipo de query se trata? Devuelve muchos registros?

Tal vez es al abrir el XLS? En ese caso, cual es el código de esa función? La hija excel es muy grande?

monicasierrar
05-05-2003, 20:12:38
Entre las dos líneas siguientes:

frm_Consulta.ShowModal;

Refresh;

__marcsc
05-05-2003, 20:16:48
Entonces sería interesante saber qué se hace dentro de ese form que se crea en tiempo de ejecución. Posiblemente el problema sea que en el OnShow de ese formulario se abre una consulta SQL que devuelve un montón de registros.

Deberías especificar el el código y la sentencia SQL del otro form :)

Un saludo.

monicasierrar
05-05-2003, 23:34:34
Hola marcsc, te envié un correo electrónico con el formulario y las qrys, lo recibiste?.

Te lo envié porque no me quiso cargar el archivo de texto, decía que era mayor a 1024 k y solo era de 21.1 k. Tan raro cierto?

Gracias

__marcsc
05-05-2003, 23:46:30
Hola Monica :)

Efectivamente he recibido tu correo, mañana cuando tenga un momento le doy un vistazo. Respecto al límite de carácteres supongo que es normal, no te prepcupes :)

Hasta pronto.

monicasierrar
07-05-2003, 00:04:14
Hola marcsc, cómo has estado?

Será que tú has podido mirar mi problema de descarga del formulario?

Saludos, Mónica

gush_bellino
29-09-2005, 17:01:02
buenas, como les va? creo que este seria el hilo para mi problema

necesito hacer una clase que herede (TForm), es decir que sea un formulario
pero dentro de esa clase necesito crear TLabels, es decir un arreglo de TLabels dinamico
la idea es:


CError=class(TForm) //esta clase muestra un error

mens:array of TLabel;//arreglo de labels <---------
boton:TButton; //boton aceptar
procedure FormCreate(Sender: TObject);
procedure botonClick(Sender:TObject);
{mostrar mensaje y error reciben un arreglo dinamico
ya que no es fija la cantidad de mensajes a mostrar}
procedure mostrar_mensaje(cad:array of string);
procedure mostrar_error(cad:array of string);
private
{sentences}
public
{sentences}
end;

pero se me complica, no acepta un arreglo dinamico, ni tampoco estatico
no se si me estoy ahogando en un baso de agua, si lo sacan por favor mandenme la respuesta

creo que monica podria saber algo de esto, ya que vi en su codigo que maneja una clase en la que crea un formulario

desde ya muchas gracias :D

dec
29-09-2005, 18:25:25
Hola,

gush_bellino, realmente podrías haber iniciado un nuevo Hilo en los Foros. ¿Te diste cuenta de que este Hilo es del año 2003? Tratando de responder, sin embargo, a tu pregunta, no encuentro problemas al hacer algo así:


type
TMiForm = class(TForm)
private
FLabels: array of TLabel;
end;

¿Seguro que añadiste en la cláusula "Uses" la unidad "StdCtrls" que es donde se encuentra declarada la clase "TLabel"?