Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Como Generar Dos Ordenes automaticamente segun la cantidad de lineas (https://www.clubdelphi.com/foros/showthread.php?t=85599)

ecfisa 15-05-2014 13:32:12

Cita:

Empezado por webmasterplc (Mensaje 476442)
Buenas estoy realizando una consulta para traer registros de 11 en 11 para eso tenego un contador pero cuando ejecuto la consulta me da un error que adjuntare en el mensaje, el codigo para realizarlo es el siguiente.
Código Delphi [-]
var
 Count: Integer;

procedure Tformfacturar.BringEleven(var Count: Integer);
begin
  Count:=0;   <<== AQUI !
  ...
end;
el procedimiento lo llamo desde un boton
Código Delphi [-]
if Count <> -1 then
  begin
    BringEleven(Count);
  end;
end;

Hola webmasterplc.

Mas allá de la sentecia SQL, en la que no te puedo ayudar por mi desconocimiento en MySQL, inicializando la variable Count al inicio del procedimiento BringEleven siempre te devolverá los primeros 11 registros.

Fijate que en el mensaje #8 la inicializo en su declaración:
Código Delphi [-]
implementation

var
  Count: Integer = 0;
...

También aprovecho a aclarar, que mi sugerencia fué que preguntaras en el foro MySQL solamente sobre como usar LIMIT en la función SQL para que devuelva de a once registros, pero no que replantearas toda la problemática expuesta en este hilo.

Saludos :)

webmasterplc 16-05-2014 03:08:07

Ok ho Gracias y disculpa el mal entendido voy a seguir tratando

webmasterplc 16-05-2014 04:57:28

Y se paso los registros de la consulta a un array y luego los voy incluyedo en la tabla en memoria de 11 en 11 seria posible?

webmasterplc 16-05-2014 05:11:27

Bueno le sumo 11 al count y si funciona no se si sea lo mas opcitmo pero el codigo lo deje asi
Código Delphi [-]
procedure Tformfacturar.BringEleven(var Count: Integer);
begin

  datos.sqfacturas.Close;
  datos.sqfacturas.SQL.Text:='SELECT * FROM dhistoria WHERE nhistoria = :historia LIMIT :NUM , 11';
  datos.sqfacturas.ParamByName('NUM').AsInteger:=Count;
  datos.sqfacturas.ParamByName('historia').AsInteger:=StrToInt(ethistoria.Caption);
  datos.sqfacturas.Open;
  if not datos.sqfacturas.IsEmpty then
  begin
    // :: Aqui lo que quieras hacer con los 11 registros obtenidos
    while not datos.sqfacturas.Eof do
    begin
      Lst1.Items.Add(datos.sqfacturas.FieldByName('codigo').AsString);
      datos.sqfacturas.Next;
    end;
    // ::
    Count:=Count + 11;
  end
  else Count:= -1


La franja horaria es GMT +2. Ahora son las 09:06:55.

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