Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Descargar Formulario (https://www.clubdelphi.com/foros/showthread.php?t=86)

monicasierrar 05-05-2003 19:54:09

Descargar Formulario
 
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

Código:


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

TForm dinamico
 
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:

Código Delphi [-]
  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í:

Código Delphi [-]
 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"?


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

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