Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas con query y parametros (https://www.clubdelphi.com/foros/showthread.php?t=50561)

Petolansa 21-11-2007 21:10:32

Problemas con query y parametros
 
Buenas gente esto lo hice con las ayuda de los foros y seria lo que necesito para un query pata que me imprima.
Esto me dice Invalid parameter, me podrian decir a que se puede deber?

Código SQL [-]
SELECT Factura.NumFactura, Factura.Fecha, Factura.Clicod, Clientes.Clinom, 
Clientes.Clidom, Clientes.Clicuit, Clientes.Clitel, Factura.Emplecod, Facdetalle.Codipro,
 Facdetalle.Concepto, Facdetalle.Cantidad, Facdetalle.Precio, Factura.SubTotal,
 Factura.Descuento, Factura.importetotal
FROM Stock RIGHT JOIN (Clientes RIGHT JOIN (Factura LEFT JOIN Facturadetalle 
ON (Factura.Tipofac = Facdetalle.Tipofac) AND (Factura.Numfactura = Facdetalle.Numfactura)) 
ON Clientes.Clicod = Factura.Clicod) ON Stock.Procod = Facdetalle.Codipro;

En ese codigo nececitaria realizar una operacion y mostarla, nesecitaria calcular los campos de la tabla
facdetalle CANTIDAD* PRECIO, como precioneto, lei que se pone AS PRECIO NETO, pero no se como definir cantidad y precio


Todas esas condiciones quiero que se cumplan segun mi el form que trabaje antes que seria el que llama
al query, donde tengo las variables tipofac y numfac que serian los que tienen guardado el ultimo nro de factura
y el tipo que fue el ultimo que postie.

como ahria esa condicon, tendria que definir parametros no? el tema es que no puedo porque lo de arriba me da error.


Código SQL [-]
WHERE Factura.Numfactura=Nrofact AND Factura.Tipofac=TipoFact


Desde ya muchas gracias.

ContraVeneno 21-11-2007 21:35:49

Código Delphi [-]
with TuQuery do begin
 if active then close;
 sql.clear;
 SQL.Add('SELECT F.NumFactura, F.Fecha, F.Clicod, F.Emplecod, F.SubTotal, F.Descuento, F.importetotal, ');
 SQL.Add('C.Clinom, C.Clidom, C.Clicuit, C.Clitel,');
 SQL.Add('FD.Codipro,  FD.Concepto, FD.Cantidad, FD.Precio');
 SQL.Add('FROM Stock S ');
 SQL.Add('JOIN Facturadetalle FD ON S.Procod = FD.Codipro');
 SQL.Add('JOIN Factura F ON (FD.Tipofac = F.Tipofac AND FD.Numfactura = F.Numfactura) ');
 SQL.Add('JOIN Clientes C ON F.Clicod = C.Clicod');
 SQL.Add('WHERE F.Numfactura= :Nrofact AND F.Tipofac= :TipoFact ');
 ParamByName('NroFact').AsString := NumFact;
 ParamByName('TipoFact').AsInteger := TipoFact;
 Open;
end; //with

duilioisola 21-11-2007 21:38:20

Primero y principal:
Creo que está mal hecho el sql.
La forma correcta de hacerlo debería ser así:

Código SQL [-]
select a.campo1,a.campo2,a.campo3,
         b.campo1,b.campo2,b.campo3,
         c.campo1,c.campo2,c.campo3
from tabla1 a
[left/right] join tabla2 b
on (a.campo1=b.campo1)
[left/right] join tabla3 c
on (b.campo1=c.campo1) and (b.campo2=c.campo2)
where
a.campo1=1234
Código SQL [-]
SELECT Factura.NumFactura, Factura.Fecha, Factura.Clicod, Clientes.Clinom, 
Clientes.Clidom, Clientes.Clicuit, Clientes.Clitel, Factura.Emplecod, Facdetalle.Codipro,
 Facdetalle.Concepto, Facdetalle.Cantidad, Facdetalle.Precio, Factura.SubTotal,
 Factura.Descuento, Factura.importetotal
FROM Stock 

RIGHT JOIN Clientes 
ON Stock.Procod = Facdetalle.Codipro;

RIGHT JOIN Factura 
ON Clientes.Clicod = Factura.Clicod) 

LEFT JOIN Facturadetalle 
ON (Factura.Tipofac = Facdetalle.Tipofac) AND (Factura.Numfactura = Facdetalle.Numfactura)) 

WHERE Factura.Numfactura=:Nrofact AND Factura.Tipofac=:TipoFact

Tambien deberías tener en cuenta el orden en que haces los joins. Sobre todo si son left o right join.
En este caso deberías poner primero From Facturas (porque filtras por su número y tipo) y esta factura unirla al resto de tablas (detalle,cliente,stock)
Tambien veo que no utilizas la tabla stock. Quizás no debas meterla en este select.

Código SQL [-]
SELECT Factura.NumFactura, Factura.Fecha, Factura.Clicod, Clientes.Clinom, 
Clientes.Clidom, Clientes.Clicuit, Clientes.Clitel, Factura.Emplecod, Facdetalle.Codipro,
 Facdetalle.Concepto, Facdetalle.Cantidad, Facdetalle.Precio, Factura.SubTotal,
 Factura.Descuento, Factura.importetotal
FROM Factura 

LEFT JOIN Facturadetalle 
ON (Factura.Tipofac = Facdetalle.Tipofac) AND (Factura.Numfactura = Facdetalle.Numfactura)) 

RIGHT JOIN Clientes 
ON Clientes.Clicod = Factura.Clicod) 

JOIN Stock
ON Stock.Procod = Facdetalle.Codipro;

WHERE Factura.Numfactura=:Nrofact AND Factura.Tipofac=:TipoFact

Petolansa 21-11-2007 23:24:09

Muchas gracias
 
Gracias gente, pongo en un boton de imprimir la sentencias que me dieron y funciona de 10, evidentemente tenia un problema con la comprension de la sintaxis, a paesar que medio cerca estuve :D. Todo esto es nuevo para mi.

Una cosa mas les queria pedir, Como relaciono estoo para que me lo muestre en un quick report?

Lo que hice gue agregar en la propiedad las sentencias que me dieron, entonces, al cativar el query se me agregaron todos los campos.

Hice el diseño, Puse un Page header, y puse los campos de la factura, que serian los fijos, una banda de detal, en dodne puse los encabezados de Codigo, cantidad, precio, precio neto. Y un page footer donde van los detalles de la factura.

EL query puse que se abra el query con los aprametros, pero no me aparece nada.

COmo se haria?

Desde ya muchas gracias

ContraVeneno 21-11-2007 23:39:26

Enlaces el QuickReport al query que estas abriendo con la propiedad "Dataset" del quickreport.

Luego, enlazas cada uno de los QRDBText que tengas a su campo correspondiente, utilizando las propiedades "Dataset"y "DataField"

Petolansa 22-11-2007 00:37:51

Gracias contarveneno
 
Sabes eso, lo tengo bien conectado, tanto los campos como con los dbtext y el dataset del qreport vinculado a al quety1.

Pero no logro que funcione. Seguro que no hago bien cuando lo muestro, aqui explico, el codigo que me corregiste, lo puse en la propiedad sql del query, de esta manera

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


Los parametros Nrofact y tipo fact los defini en la propiedad params del query.

Código Delphi [-]
  try
     qrfactura:=tqrfactura.Create(self);
        qrfactura.Query1.Open;
        qrfactura.preview;
    finally
        qrfactura.Free;
    end;

y Luego en el boton en el que posteo y actualizo el stock al final le ingrese el codigo de arriba.

Que me esta faltando, lo unico que veo son 3 campos currency, de descuento, total, y subtotal, con el text en 0,00.

Desde ya muchas gracias

ContraVeneno 22-11-2007 00:47:12

qrfactura.Query1.Open;
Esa línea no se para que sirve,
el query1 no esta en el qrFactura, esa línea me tiene confundido.

Deberías de abrir primero el Query1 y despues hacer el preview, bueno, sí lo estas haciendo, pero el Query1 no es parte de qrFactura... solo que qrFactura sea el formulario....

no se

supongo que debería ser:
Código Delphi [-]
  try
     qrfactura:=tqrfactura.Create(self);
        Query1.Open;
        qrfactura.preview;
    finally
        qrfactura.Free;
    end;

Petolansa 22-11-2007 01:17:55

Gracias por responder, el query1 lo tengo en el quick repor que se llama qrfactura.
Lo que me estaba fijando que en eso me falto asignarle el valor a los dos parametros,

ParamByName('NroFact').AsString := NumFac;
ParamByName('TipoFact').AsInteger := TipoFac;

Le agregue las dos lineas que me habias puesto antes, y aun asi n anda.

Sera porque el query1 lo tengo que poner en el formulario y no en un for con el reporte?

Numfac y tipo fac las tengo como variables globales que tienen guardada la ultima factura.

ContraVeneno 22-11-2007 01:41:45

no pongas el query con el quickreport
ponlo en el formulario principal o puedes usar un módulo de datos

Petolansa 22-11-2007 04:22:24

Buenas gente aca de nuevo, realmente no se que es lo que puede estar pasando, las sentencias sql estan bien y uso el siguiente codigo para asignarle valores a los parametros y no me da error, ni nada, asigne a todos los dbtext el query2 que es el que corresponde y al reporte le asigno el dataset que es el query2.
Que mas puede ser, porque lo unico que hace es mostrarme el form del reporte pero no aparece nada!

uso este codigo, realmente no le encuentro error, como me dijo contraveneno, y tampoco veo nada raro, cuando me fijo en las propiedades del query me aparecen lo dos parametros 0-nrofact y 1-tipofact

este es el codigo sql

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

este es el codigo para acceder al reporte


Código Delphi [-]
    
    try
    qrfactura:=tqrfactura.Create(self);
    Query2.Params.ParamByName('Nrofact').Value := numfa;
    Query2.Params.ParamByName('Tipofact').Value := tipofa;
    Query2.Open;
    qrfactura.preview;
    finally
    qrfactura.Free;
    end;

Lo que hice es convertir las variables numfa y tipofa y
mostrarlas en dos qrlabel para comprobar que si tiene los
valos que quiero
y si los tienen.

Que se puede estar escapando?

Gracias, disculpen la molestia.

Petolansa 23-11-2007 17:56:53

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...

duilioisola 23-11-2007 18:46:38

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

Lepe 23-11-2007 19:49:38

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

Petolansa 23-11-2007 20:38:22

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-:prcantidad where procod=:prprocod';
  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.

Lepe 23-11-2007 23:22:55

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

Lepe 23-11-2007 23:31:27

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

Petolansa 24-11-2007 00:03:20

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

Petolansa 24-11-2007 01:54:10

Me acabo de dar cuenta que no estan establecidos campos claves en las tabla factura y ningun indice con facdetalle, para realizr esta operacion puede ser que tenga que ver algo con los indices o con una relacion maestro detalle o no?

Dsculpen si nada que ver

Saludos

Lepe 24-11-2007 11:13:10

La falta de índices y claves primarias tendrá consecuencias de lentitud al realizar las consultas sobre esas tablas. En toda Base de Datos, es necesario sus claves primarias y algunos índices por los campos más buscados.

Cuando dices que no te aparece nada en el Preview, exactamente ¿qué ves?, es decir, verás el folio, los qrlabels, los campos de suma, ¿te aparecen con un cero?, ¿no aparecen? ¿te aparece algún texto que diga "Unknown"?

Siento marearte, pero lo tienes perfecto!!

Saludos

Petolansa 24-11-2007 15:58:41

Gracias! :D, Te comento, llamo al preview del reporte, no me aparece absolutamente nada, la pagina en blanco.
Solamente, me aparecen los qrlabel que son dos, que son los cuales muestro los valores para ver si contienen datos, y efectivamente me aparecen los dos datos.
Ante de crear este reporte habia creado otro, en el cual me aparecian con ceros el monto del subtotal, importe total y descuento.
Pero luego al hacerlo todo de nuevo, no me aparece absolutamente nada.

Yo dudaba de las variables numfa y tipofa, pero me doy cuenta que sí contienen datos...la verdad no se, hasta el momento haciendo este proyectito me costo pero anduvo todo, y esto realmente me esta trabandod e una manera impresionante.

Que queda por comprobar!!

Gracias por el tiempo. Agradecido


Gracias


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

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