Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   No puedo imprimir datos de un listbox (https://www.clubdelphi.com/foros/showthread.php?t=60632)

rufo 08-10-2008 15:55:08

No puedo imprimir datos de un listbox
 
Hola amigos aqui estoy consultando a ustedes, me encuentro con un dilema de la cual es lo siguiente, resulta que tengo un programa en el cual hago una consulta de datos para asi mandarlo a imprimir en los datos todos salen al hacer la consulta pero resulta que tengo un listbox en el cual hay datos y al darle la orden de imprimir me visualiza el ultimo valor osea que no me muestra todos los datos generales que visualiza en el listbox, bueno les pongo el codigo de tanto el boton consultar que ahi donde tengo problemas ya que en el otro boton solo tiene el codigo de enlazar al qreport

Codigo:
if edit1.Text<>'' then
begin
with dm1.Q_conformato do
begin
active:=false;
sql.clear;
sql.Add('select * from con_formato');
sql.Add('where id_afiliado='+edit1.text);
active:=true;
begin
label57.Caption:=fieldbyname('nombre').asstring;
label58.Caption:=fieldbyname('a_paterno').asstring;
label59.Caption:=fieldbyname('a_materno').asstring;
label65.Caption:=fieldbyname('sexo').asstring;
label63.Caption:=fieldbyname('curp').asstring;
label60.Caption:=datetostr(fieldbyname('f_nacimiento').asdatetime);
label62.Caption:=datetostr(fieldbyname('f_afiliacion').asdatetime);
label61.Caption:=fieldbyname('edo_civil').asstring;
label64.Caption:=fieldbyname('tipo_sangre').asstring;
label66.Caption:=fieldbyname('calle_numero_df').asstring;
label67.Caption:=fieldbyname('Colonia').asstring;
label68.Caption:=fieldbyname('cp_df').asstring;
label69.Caption:=fieldbyname('Municipio').asstring;
label70.Caption:=fieldbyname('referencia_df').asstring;
label71.Caption:=fieldbyname('telefono_df').asstring;
label72.Caption:=fieldbyname('movil').asstring;
label73.Caption:=fieldbyname('tel_trabajo').asstring;
label74.Caption:=fieldbyname('E_mail').asstring;
label81.Caption:=fieldbyname('N_estudios').asstring;
label82.Caption:=fieldbyname('rama').asstring;
label83.Caption:=fieldbyname('especialidad').asstring;
label84.Caption:=fieldbyname('ocupacion').asstring;
label85.Caption:=fieldbyname('descripcion_ocupacion').asstring;
label110.Caption:=fieldbyname('religion').asstring;
label111.Caption:=fieldbyname('partido').asstring;
combobox1.text:=fieldbyname('habitantes').asstring;
end;
with dm1.Q_conformatogro do
begin
active:=false;
sql.clear;
sql.Add('select * from con_formatogro');
sql.Add('where id_afiliado='+edit1.text);
active:=true;
begin
label75.Caption:=fieldbyname('calle_numero_gro').asstring;
label76.Caption:=fieldbyname('Colonia').asstring;
label77.Caption:=fieldbyname('Municipio').asstring;
label78.Caption:=fieldbyname('referencia_gro').asstring;
label79.Caption:=fieldbyname('telefono_gro').asstring;
label80.Caption:=fieldbyname('cp_gro').asstring;
end;
end;
with dm1.Q_depenformato do
begin
active:=false;
sql.clear;
sql.add('select * from Dependientes');
sql.add('where id_dependiente ='+edit1.text);
active:=true;
if recordcount=0 then
//messagedlg('No se encontro el dependiente, intente de nuevo',mtinformation,[mbok],0);
end;
with dm1.Q_depenformato do
begin
active:=false;
sql.clear;
sql.add('select * from dependientes');
sql.add('where id_dependiente in (select id_dependiente from dependientes');
sql.add(' where id_afiliado ='+edit1.text+')');
active:=true;
first;
if recordcount<>0 then
begin
listbox3.Items.Clear;
listbox2.Items.Clear;
listbox1.Items.Clear;
while not(eof) do
begin
listbox1.Items.add(fieldbyname('nombre_dependiente').asstring);
listbox2.Items.add(fieldbyname('f_nacimiento_dependiente').asstring);
listbox3.Items.Add(fieldbyname('lugar_residencia').asstring);
next;
end;
end;
end;
with fr_formato do
begin
qrdbtext6.DataField:='f_nacimiento';
qrdbtext8.DataField:='f_afiliacion';
qrdbtext11.DataField:='edo_civil';
qrdbtext13.DataField:='colonia';
qrdbtext15.DataField:='municipio';
qrdbtext27.DataField:='N_estudios';
qrdbtext28.DataField:='rama';
qrdbtext29.DataField:='especialidad';
qrdbtext30.DataField:='ocupacion';
qrdbtext31.DataField:='descripcion_ocupacion';
qrdbtext32.Datafield:='religion';
qrdbtext33.Datafield:='partido';
qrdbtext58.DataField:='afiliado';
qrdbtext2.DataField:='descendiente_gro';
qrdbtext2.DataField:='prestador';
end;
begin
with dm1.Q_conformatogro do
with fr_formato do
begin
qrdbtext22.datafield:='colonia';
qrdbtext24.DataField:='municipio';
end;
end;
begin
dm1.Q_depenformato.Active:=true;
begin
with fr_formato do
begin
qrdbtext34.datafield:='Nombre_dependiente';
qrdbtext35.datafield:='F_nacimiento_dependiente';
qrdbtext36.DataField:='lugar_residencia';
qrdbtext37.datafield:='Nombre_dependiente';
qrdbtext38.datafield:='F_nacimiento_dependiente';
qrdbtext39.DataField:='lugar_residencia';
end;
end;
end;
end;
end;
end;

bueno espero que me ayuden y gracias

Caro 08-10-2008 16:23:21

Hola rufo, utiliza etiquetas cuando pongas codigo, sobre tu pregunta, el QuickReport solo puede estar asociado a un DataSet, tu estas utilizando varios, los datos del DataSet asociado al QuickReport te saldran bien pero de los demas solo te va ha mostrar el primer registro, en tu caso el ultimo porque en esta parte estas recorriendo y se queda apuntando al ultimo registro.

Código Delphi [-]
with dm1.Q_depenformato do
 begin
   active:=false;
   sql.clear;
   sql.add('select * from dependientes');
   sql.add('where id_dependiente in (select id_dependiente from dependientes');
   sql.add(' where id_afiliado ='+edit1.text+')');
   active:=true;
   first;
   if recordcount<>0 then
    begin
      listbox3.Items.Clear;
      listbox2.Items.Clear;
      listbox1.Items.Clear;
      while not(eof) do
        begin
          listbox1.Items.add(fieldbyname('nombre_dependiente').asstring);
          listbox2.Items.add(fieldbyname('f_nacimiento_dependiente').asstring);
          listbox3.Items.Add(fieldbyname('lugar_residencia').asstring);
          next;
        end;
    end;
 end;

Si quieres pasar lo que tienes en los ListBox que llenas, puedes utilizar un QrMemo y haces lo siguiente:

Código Delphi [-]
  fr_formato.QRMemo1.Lines := ListBox1.Items;

O hacer una relación maestro detalle, todo dependiendo como quieres mostrar los datos.

Saluditos

rufo 08-10-2008 17:29:25

ok gracias puse tu linea de codigo pero resulta que solo me visualiza solo un dato y en el listbox hay mas... a lo mejor estoy haciendo algo mal o que onda

Caro 08-10-2008 17:36:57

Cita:

Empezado por rufo (Mensaje 318935)
.....puse tu linea de codigo pero resulta que solo me visualiza solo un dato y en el listbox hay mas...

Has crecer el alto de tu QrMemo.

Saluditos


La franja horaria es GMT +2. Ahora son las 14:35:22.

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