Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 22
Petolansa Va por buen camino
Buenas gente, yo de nuevo, disculpen, se que me ayudaron bastante, pero estoy haciendo lo mismo una y otra vez y no logro que me muestre en un reporte los datos que le pido, nada da error, que me puede estar faltando, existe algo mas por hacer para hacer funcionar un reporte, es la primera vez que hago una factura, hasta ahora vine haciendo listados simples sin consultas.


Gracias y disculpen si actualizo el hilo...
Responder Con Cita
  #2  
Antiguo 23-11-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Antes de seguir, asegúrate de que el select que has puesto devuelve valores.

Imagina que haces esto

Tabla facturas
Código:
Factura    campo1   campo2   campo3
     1      AAA      BBB      CCC
     2      AAA      BBB      DDD
     3      JJJ      KKK      LLL
     5      EEE      DDD      NNN
SELECT:
Código SQL [-]
select campo1,campo2,campo3 from facturas
where factura=:factura

Luego le dices que el parámetro factura = 4
Código Delphi [-]
 try
    ...
    qrfactura.Params.ParamByName('factura').Value := 4;
    qrfactura.Open;
    ...
 finally
    qrfactura.Free;
 end;

No te devuelve nada porque no hay ningún registro con factura=4

Última edición por duilioisola fecha: 23-11-2007 a las 18:49:12.
Responder Con Cita
  #3  
Antiguo 23-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cambia la línea:

qrfactura.preview;

por

qrfactura.previewModal;

Preview permite seguir ejecutando las líneas de código, por lo que ejecutará qrFactura.Free destruyendo el informe que quieres visualizar, por ello no ves nada en el informe.

Con PreviewModal, el código se queda parado hasta que se cierre la ventana de previsualizar, y después, se continúa el código.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 23-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 22
Petolansa Va por buen camino
Gracias por los consejos, pero al crear el reporte le pase los valres que necesito los de los dos parametros y si me sale, 11 y A que son el numero de factura y el tipo.

Lepe probe poniendo el previewmodal; en vez de .preview y nada!

aca pongo el codigo del boton en el que guardo y quiero imprimir la factura, disculpen si no esta bien programado, es que es mi primer sistemita de prueba.
Despues lo ordenare un poco, Lo que me interesa es que me guarda las en las tablas factura y facturadetalle...tambien me descuenta el stock.
Acepto criticas sobre tabulacion y en caso de que muy desordenado.

Código Delphi [-]
procedure TFrmfdepago.BitBtn1Click(Sender: TObject);
begin
If messagedlg('Los datos de la Factura son correctos?',MTwarning,mbOKCancel,0)<>
  mrok
then
exit
else //Aca gguardo el nro de factura y le incremento uno segun sea el tipo
    case frmtipofac.RadioGroup1.ItemIndex of
      0:begin
      frmtipofac.Query1.Close;
      frmtipofac.Query1.SQL.Clear;
      frmprincipal.Query1.SQL.Add('update contfaca');
      frmprincipal.Query1.SQL.Add('set numfaca='+inttostr(numfaca));
      frmprincipal.Query1.ExecSQL;
    end;
    1:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    2:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
      end;
    3:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    4:begin
      frmtipofac.Query2.Close;
      frmtipofac.Query2.SQL.Clear;
      frmtipofac.Query2.SQL.Add('update contfacb');
      frmtipofac.Query2.SQL.Add('set numfacb='+inttostr(numfacb));
      frmtipofac.Query2.ExecSQL;
    end;
    end;

//Guarda los datos en la tabla factura
with dmzingueria do begin
      factura.Insert;
      facturanumfactura.Value:=strtofloat(frmfactura.Label12.Caption);
      facturaclicod.Value:=strtofloat(frmfactura.DBText1.Caption);
      facturafecha.Value:=strtodate(fecha);
      facturadescuento.Value:=strtofloat(frmfactura.eddescmonto.Text);
      facturatipofac.Value:=frmfactura.Label9.Caption;
        //Pregunto la forma de pago
        if radiobutton1.Checked then begin
          facturactacte.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=false;
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text)
        end else if radiobutton2.Checked then begin
          facturaefectivo.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=true;
          facturatartipo.Value:='Ninguna';
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text)
        end else if radiobutton3.Checked then
          facturatarjeta.Value:=strtofloat(currencyedit2.Text);
          facturatartipo.Value:=edit3.Text;
          facturatarcupon.Value:=edit1.Text;
          facturaobservacion.Value:=edit2.Text;
          facturaimportetotal.Value:=strtofloat(currencyedit2.Text);
          facturapagado.Value:=true
         end;
      dmzingueria.Factura.Post;


//Guardo los datos en factura detalle
      dmzingueria.facdetalle.Insert;
      frmfactura.MDtemporal.Insert;
      frmfactura.MDtemporal.First;
      while not frmfactura.MDtemporal.Eof do
      begin
      dmzingueria.facdetalle.Append;
      dmzingueria.facdetalleNumfactura.Value:=strtofloat(frmfactura.Label12.Caption);
      dmzingueria.facdetalleTipofac.Value:= frmfactura.Label9.Caption;
      dmzingueria.facdetalleCantidad.Value:=frmfactura.MDtemporalCantidad.Value;
      dmzingueria.facdetalleCodipro.Value:=frmfactura.MDtemporalCodigo.Value;
      dmzingueria.facdetalleConcepto.Value:=frmfactura.MDtemporalDescripcion.Value;
      dmzingueria.facdetallePrecio.Value:=frmfactura.MDtemporalPreciou.Value;
      //dmzingueria.facdetallePrecioneto:=frmfactura.MDtemporal.fieldbyname('total').ascurrency;
      dmzingueria.facdetalle.Post;
      frmfactura.MDtemporal.Next;
      end;
//Actualizo el stock
  frmfactura.Query1.Close;
  frmfactura.Query1.SQL.Text:='Update stock set prostkact=prostkact-rcantidad where procod=rprocod';
  frmfactura.Query1.Prepare;
  frmfactura.MDtemporal.First;
  frmfactura.MDtemporal.DisableControls;
  try
    while not frmfactura.MDtemporal.Eof do
      begin
      frmfactura.Query1.ParamByName('prcantidad').AsFloat:=frmfactura.MDtemporal.fieldbyname('Cantidad').A  sFloat;
      frmfactura.Query1.ParamByName('prprocod').AsFloat:=frmfactura.MDtemporal.fieldbyname('codigo').AsFlo  at;
      frmfactura.Query1.ExecSQL;
      frmfactura.MDtemporal.Next;
    end;
      finally
      frmfactura.MDtemporal.First;
      frmfactura.MDtemporal.EnableControls;
       end;

//Aca despues de todo lo mando a imprimir
  try
    if query2.Active then close;
        quickrfactura:=tquickrfactura.Create(self);
       Query2.Params.ParamByName('Nrofact').Value := numfa;
        Query2.Params.ParamByName('Tipofact').Value := tipofa;
        quickrfactura.QRLabel1.Caption:=floattostr(numfa);//ACA LE PASO ESTAS VARIABLES Y ME LAS MUESTRA EN EL REPORT
        quickrfactura.QRLabel2.Caption:=(tipofa);         //COMPRUEBO QUE NO ESTAN VACIAS Y ME MUESTRA LA ULTIMA FACTURA QUE POSTIE ARRIBA
        Query2.Open;
        quickrfactura.PreviewModal;
    finally
        quickrfactura.Free;
    end;

Desde ya muchas gracias por su atencion.

Última edición por Petolansa fecha: 23-11-2007 a las 20:41:15.
Responder Con Cita
  #5  
Antiguo 23-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Para guardar se usa tabla.Post, pero tú has usado ¿tabla.Insert? ¿insertar un nuevo registro? ... eso provocará guardar el registro actual, pero no creo sea correcto.

El "case" ese grande, se resume en este:
Código Delphi [-]
const sqlU = 'update contfac%s set numfac%s = %d';
var strSQL :string;
begin

  case frmtipofac.RadioGroup1.ItemIndex of
      0: strSQL := Format(sqlU, ['a', 'a',numfaca]
      1,2,3,4: strSQL := Format(sqlU, ['b', 'b',numfacb];
  end;
  frmtipofac.Query1.Close;
  frmtipofac.Query1.SQL.Text := strSQL;
  frmprincipal.Query1.ExecSQL;

El fallo que comentas no lo veo, pero "numfa" no veo donde se le asigna el valor.

Además veo algunos .Insert innecesarios (ya que crea registros en blanco), como por ejemplo aquí:
Código Delphi [-]
//Guardo los datos en factura detalle
      dmzingueria.facdetalle.Insert; // <<<<<<<<<< ¿para qué? si más abajo usas Append
      frmfactura.MDtemporal.Insert; // <<<<<<<<<< ¿para qué? 
      frmfactura.MDtemporal.First;
      while not frmfactura.MDtemporal.Eof do
      begin
      dmzingueria.facdetalle.Append; // <<<<<<<< este si lo veo correcto.

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: 23-11-2007 a las 23:25:54.
Responder Con Cita
  #6  
Antiguo 23-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Una pregunta tonta, porque estos tipos de fallos suelen ser tan tontos que no los vemos. ¿En el quickreport tienes qrdbtext en la banda detalle con el nombre del campo y su dataset asignado? Porque si los qrLabels muestran los datos correctos, los qrdbtext también lo debería hacer.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 24-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 22
Petolansa Va por buen camino
Gracias lepe por tomarte el tiempo de leer el codigo, la erdad que me ahorre un monton de codigo con la sentencia que me pasaste para el nro de factura.
Respecto a lo que em decis de los qrdbtext, en la banda de detalle no los tenia. Los agregue y nada.
Las variables numfa y tipofa les asigno los valores en otro form que me lleva a este ultimo, por lo visto las variabls no estan vacias, porque en el reporte me aparece.
La verdad no se que puede ser.
Código SQL [-]

SELECT F.NumFactura, F.Fecha, F.Clicod, F.Efectivo, F.Ctacte, F.Tarjeta, F.Tipofac , F.Emplecod, F.SubTotal, F.Descuento, F.importetotal, 
C.Clinom, C.Clidom, C.Clicuit, C.Clitel,
FD.Codipro,  FD.Concepto, FD.Cantidad, FD.Precio
FROM Stock S
JOIN Facturadetalle FD ON S.Procod = FD.Codipro
JOIN Factura F ON (FD.Tipofac = F.Tipofac AND FD.Numfactura = F.Numfactura) 
JOIN Clientes C ON F.Clicod = C.Clicod
WHERE F.Numfactura= :Nrofact AND F.Tipofac= :TipoFact

Ese codigo me devuelve todos los campos bien y en el reporte lo que hice fue lo siguiente

Agregue un pageheader, Donde puse los datos de la fctura como, codigicliente(clicod), tipo de factura(tipofac), Cleinte telefono(clitel), numero de factura(numfactura), etc...
Luego un column header, con los nombres de la columna codipro, cantidad, concepto y precio.
Luego una banda de detalle, y como me dijiste le ingrese los mismos qrdbext de los de column header (no se si esta bien asi). Osea los copie y pegue
Y luego un summary con subtoal, importetotal, descuento, efectivo(monto en efectivo), ctacte (cuenta corriente).

Todos con el dataset apuntando al quey2. con su datafield correspondiente.
el dataset de quick report apuntando a al query 2.
El query dos esta en el form que detalle arriba,
Cuando hago click en params, aparecen nrocfact y tipofac, que son a los que luego le asigno numfa y tipofa en el codigo sql del reporte.


La verdad no entiendo que puede ser, como te dije es la primera vez que lo hag y no se que puede estar mal!

Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ordenar un query por parametros jzginez SQL 11 30-10-2007 00:18:02
query con parametros ayudenme? juangabriel1786 SQL 4 29-08-2007 14:48:49
Parámetros en los Query en Delphi for PHP mlara PHP 3 13-07-2007 06:56:36
Query y Parámetros gluglu SQL 3 31-01-2005 13:55:00
1 Query - 2 Parametros azaagh Conexión con bases de datos 3 13-06-2004 04:59:04


La franja horaria es GMT +2. Ahora son las 07:31:14.


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