Que tal amigos del club, hoy recurro a ustedes ya que se me partio la cabeza con un reporte el cual tengo 3 opciones de sacarlo
1) general (Suma las Ventas de Rest y Fruteria)
2) Solo Restaurant (Aqui tengo los numeros de grupos definidos son 23)
3) Solo Fruteria. (Aqui le digo que me de las ventas diferentes a los otros 23)
El Sistema usa 6 series y se identifican con el 1 digito del documento y debo ignorar una serie paso a mostrar como lo hago
Uso MySql, componentes de conexion MyDAC lo cual tengo 3 query los cuales en la propiedad sql les coloque la consulta con parametros de la siguiente manera
sqgeneral
Código SQL
[-]
SELECT
opermv.documento,
left (opermv.documento,1) as nserie,
opermv.grupo,
opermv.nombre,
opermv.preciounit,
opermv.cantidad,
opermv.cntdevuelt,
opermv.cntdevuelt * opermv.preciounit as totaldev,
opermv.fechadoc,
opermv.montoneto,
operti_diferencial.factorcambiario,
(opermv.cntdevuelt * opermv.preciounit) / operti_diferencial.factorcambiario as devcambio,
opermv.montoneto / operti_diferencial.factorcambiario as totcambio
from
opermv
INNER JOIN operti_diferencial ON (opermv.documento = operti_diferencial.documento)
WHERE opermv.fechadoc BETWEEN :fecha1 and :fecha2 and
left (opermv.documento,1) <> :nroserie
sqrestaurant
Código SQL
[-]opermv.documento,
left (opermv.documento,1) as nserie,
opermv.grupo,
opermv.nombre,
opermv.preciounit,
opermv.cantidad,
opermv.cntdevuelt,
opermv.cntdevuelt * opermv.preciounit as totaldev,
opermv.fechadoc,
opermv.montoneto,
operti_diferencial.factorcambiario,
(opermv.cntdevuelt * opermv.preciounit) / operti_diferencial.factorcambiario as devcambio,
opermv.montoneto / operti_diferencial.factorcambiario as totcambio
from
opermv
INNER JOIN operti_diferencial ON (opermv.documento = operti_diferencial.documento)
WHERE opermv.grupo = :grupo1 or
opermv.grupo = :grupo2 or
opermv.grupo = :grupo3 or
opermv.grupo = :grupo4 or
opermv.grupo = :grupo5 or
opermv.grupo = :grupo6 or
opermv.grupo = :grupo7 or
opermv.grupo = :grupo8 or
opermv.grupo = :grupo9 or
opermv.grupo = :grupo10 or
opermv.grupo = :grupo11 or
opermv.grupo = :grupo12 or
opermv.grupo = :grupo13 or
opermv.grupo = :grupo14 or
opermv.grupo = :grupo15 or
opermv.grupo = :grupo16 or
opermv.grupo = :grupo17 or
opermv.grupo = :grupo18 or
opermv.grupo = :grupo19 or
opermv.grupo = :grupo20 or
opermv.grupo = :grupo21 or
opermv.grupo = :grupo22 or
opermv.grupo = :grupo23 and
opermv.fechadoc BETWEEN :fecha1 and :fecha2 and
left (opermv.documento,1) <> :nroserie
sqfruteria
Código SQL
[-]SELECT
opermv.documento,
left (opermv.documento,1) as nserie,
opermv.grupo,
opermv.nombre,
opermv.preciounit,
opermv.cantidad,
opermv.cntdevuelt,
opermv.cntdevuelt * opermv.preciounit as totaldev,
opermv.fechadoc,
opermv.montoneto,
operti_diferencial.factorcambiario,
(opermv.cntdevuelt * opermv.preciounit) / operti_diferencial.factorcambiario as devcambio,
opermv.montoneto / operti_diferencial.factorcambiario as totcambio
from
opermv
INNER JOIN operti_diferencial ON (opermv.documento = operti_diferencial.documento)
WHERE opermv.grupo <> :grupo1 or
opermv.grupo <> :grupo2 or
opermv.grupo <> :grupo3 or
opermv.grupo <> :grupo4 or
opermv.grupo <> :grupo5 or
opermv.grupo <> :grupo6 or
opermv.grupo <> :grupo7 or
opermv.grupo <> :grupo8 or
opermv.grupo <> :grupo9 or
opermv.grupo <> :grupo10 or
opermv.grupo <> :grupo11 or
opermv.grupo <> :grupo12 or
opermv.grupo <> :grupo13 or
opermv.grupo <> :grupo14 or
opermv.grupo <> :grupo15 or
opermv.grupo <> :grupo16 or
opermv.grupo <> :grupo17 or
opermv.grupo <> :grupo18 or
opermv.grupo <> :grupo19 or
opermv.grupo <> :grupo20 or
opermv.grupo <> :grupo21 or
opermv.grupo <> :grupo22 or
opermv.grupo <> :grupo23 and
opermv.fechadoc BETWEEN :fecha1 and :fecha2 and
left (opermv.documento,1) <> :nroserie
en el boton imprimir tengo el siguiente codigo
Código Delphi
[-]case rgserie.ItemIndex of
0: begin
with sqgeneral do
begin
ParamByName('fecha1').AsDate:= Trunc(dtfecha1.Date);
ParamByName('fecha2').AsDate:= Trunc(dtfecha2.Date);
ParamByName('nroserie').AsString:=UnitVariables.serie_consumo;
ExecSQL;
totventas:=0;
totventas_us:=0;
totdev:=0;
totdev_us:=0;
sqgeneral.First;
while not sqgeneral.Eof do
begin
totventas:=totventas + sqgeneral.FieldByName('montoneto').AsCurrency;
totventas_us:=totventas_us + sqgeneral.FieldByName('totcambio').AsCurrency;
totdev:=totdev + sqgeneral.FieldByName('totaldev').AsCurrency;
totdev_us:=totdev_us + sqgeneral.FieldByName('devcambio').AsCurrency;
sqgeneral.Next;
end;
end;
case rgimpresion.ItemIndex of
0: begin
if sqgeneral.IsEmpty then
begin
MessageDlg('No hay Datos Que Mostrar', mtWarning, [mbOK], 0);
end
else
begin
resumen.Variables.variables['finicio']:=Trunc(dtfecha1.Date);
resumen.Variables.variables['ffinal']:=dtfecha2.Date;
resumen.Variables.variables['ventas']:=totventas;
resumen.Variables.variables['ventasus']:=totventas_us;
resumen.Variables.variables['devoluciones']:=totdev;
resumen.Variables.variables['devolucionesus']:=totdev_us;
resumen.Variables.variables['empresa']:=UnitVariables.empresa;
resumen.Variables.variables['titulo']:='GENERAL';
resumen.ShowReport;
end;
end;
1: begin
MessageDlg('Esta Opcion esta en Desarrollo', mtWarning, [mbOK], 0);
end;
end;
end;
1: begin
grupo1:='1002';
grupo2:='1003';
grupo3:='1004';
grupo4:='1005';
grupo5:='1006';
grupo6:='1007';
grupo7:='1008';
grupo8:='1009';
grupo9:='1010';
grupo10:='1011';
grupo11:='1012';
grupo12:='1013';
grupo13:='1014';
grupo14:='1015';
grupo15:='1016';
grupo16:='1017';
grupo17:='1018';
grupo18:='1019';
grupo19:='1020';
grupo20:='1021';
grupo21:='1022';
grupo22:='1023';
grupo23:='1001';
with sqrestaurant do
begin
ParamByName('fecha1').AsDate:= Trunc(dtfecha1.Date);
ParamByName('fecha2').AsDate:= Trunc(dtfecha2.Date);
ParamByName('nroserie').AsString:=UnitVariables.serie_consumo;
ParamByName('grupo1').AsString:=grupo1;
ParamByName('grupo2').AsString:=grupo2;
ParamByName('grupo3').AsString:=grupo3;
ParamByName('grupo4').AsString:=grupo4;
ParamByName('grupo5').AsString:=grupo5;
ParamByName('grupo6').AsString:=grupo6;
ParamByName('grupo7').AsString:=grupo7;
ParamByName('grupo8').AsString:=grupo8;
ParamByName('grupo9').AsString:=grupo9;
ParamByName('grupo10').AsString:=grupo10;
ParamByName('grupo11').AsString:=grupo11;
ParamByName('grupo12').AsString:=grupo12;
ParamByName('grupo13').AsString:=grupo13;
ParamByName('grupo14').AsString:=grupo14;
ParamByName('grupo15').AsString:=grupo15;
ParamByName('grupo16').AsString:=grupo16;
ParamByName('grupo17').AsString:=grupo17;
ParamByName('grupo18').AsString:=grupo18;
ParamByName('grupo19').AsString:=grupo19;
ParamByName('grupo20').AsString:=grupo20;
ParamByName('grupo21').AsString:=grupo21;
ParamByName('grupo22').AsString:=grupo22;
ParamByName('grupo23').AsString:=grupo23;
ExecSQL;
totventas:=0;
totventas_us:=0;
totdev:=0;
totdev_us:=0;
sqrestaurant.First;
while not sqrestaurant.Eof do
begin
totventas:=totventas + sqrestaurant.FieldByName('montoneto').AsCurrency;
totventas_us:=totventas_us + sqrestaurant.FieldByName('totcambio').AsCurrency;
totdev:=totdev + sqrestaurant.FieldByName('totaldev').AsCurrency;
totdev_us:=totdev_us + sqrestaurant.FieldByName('devcambio').AsCurrency;
sqrestaurant.Next;
end;
end;
case rgimpresion.ItemIndex of
0: begin
if sqrestaurant.IsEmpty then
begin
MessageDlg('No hay Datos Que Mostrar', mtWarning, [mbOK], 0);
end
else
begin
resumen.Variables.variables['finicio']:=Trunc(dtfecha1.Date);
resumen.Variables.variables['ffinal']:=dtfecha2.Date;
resumen.Variables.variables['ventas']:=totventas;
resumen.Variables.variables['ventasus']:=totventas_us;
resumen.Variables.variables['devoluciones']:=totdev;
resumen.Variables.variables['devolucionesus']:=totdev_us;
resumen.Variables.variables['empresa']:=UnitVariables.empresa;
resumen.Variables.variables['titulo']:='RESTAURANT';
resumen.ShowReport;
end;
end;
1: begin
MessageDlg('Esta Opcion esta en Desarrollo', mtWarning, [mbOK], 0);
end;
end;
end;
2: begin
grupo1:='1002';
grupo2:='1003';
grupo3:='1004';
grupo4:='1005';
grupo5:='1006';
grupo6:='1007';
grupo7:='1008';
grupo8:='1009';
grupo9:='1010';
grupo10:='1011';
grupo11:='1012';
grupo12:='1013';
grupo13:='1014';
grupo14:='1015';
grupo15:='1016';
grupo16:='1017';
grupo17:='1018';
grupo18:='1019';
grupo19:='1020';
grupo20:='1021';
grupo21:='1022';
grupo22:='1023';
grupo23:='1001';
with sqpisodeventa do
begin
ParamByName('fecha1').AsDate:= Trunc(dtfecha1.Date);
ParamByName('fecha2').AsDate:= Trunc(dtfecha2.Date);
ParamByName('nroserie').AsString:=UnitVariables.serie_consumo;
ParamByName('grupo1').AsString:=grupo1;
ParamByName('grupo2').AsString:=grupo2;
ParamByName('grupo3').AsString:=grupo3;
ParamByName('grupo4').AsString:=grupo4;
ParamByName('grupo5').AsString:=grupo5;
ParamByName('grupo6').AsString:=grupo6;
ParamByName('grupo7').AsString:=grupo7;
ParamByName('grupo8').AsString:=grupo8;
ParamByName('grupo9').AsString:=grupo9;
ParamByName('grupo10').AsString:=grupo10;
ParamByName('grupo11').AsString:=grupo11;
ParamByName('grupo12').AsString:=grupo12;
ParamByName('grupo13').AsString:=grupo13;
ParamByName('grupo14').AsString:=grupo14;
ParamByName('grupo15').AsString:=grupo15;
ParamByName('grupo16').AsString:=grupo16;
ParamByName('grupo17').AsString:=grupo17;
ParamByName('grupo18').AsString:=grupo18;
ParamByName('grupo19').AsString:=grupo19;
ParamByName('grupo20').AsString:=grupo20;
ParamByName('grupo21').AsString:=grupo21;
ParamByName('grupo22').AsString:=grupo22;
ParamByName('grupo23').AsString:=grupo23;
ExecSQL;
totventas:=0;
totventas_us:=0;
totdev:=0;
totdev_us:=0;
sqpisodeventa.First;
while not sqpisodeventa.Eof do
begin
totventas:=totventas + sqpisodeventa.FieldByName('montoneto').AsCurrency;
totventas_us:=totventas_us + sqpisodeventa.FieldByName('totcambio').AsCurrency;
totdev:=totdev + sqpisodeventa.FieldByName('totaldev').AsCurrency;
totdev_us:=totdev_us + sqpisodeventa.FieldByName('devcambio').AsCurrency;
sqpisodeventa.Next;
end;
end;
case rgimpresion.ItemIndex of
0: begin
if sqpisodeventa.IsEmpty then
begin
MessageDlg('No hay Datos Que Mostrar', mtWarning, [mbOK], 0);
end
else
begin
resumen.Variables.variables['finicio']:=Trunc(dtfecha1.Date);
resumen.Variables.variables['ffinal']:=dtfecha2.Date;
resumen.Variables.variables['ventas']:=totventas;
resumen.Variables.variables['ventasus']:=totventas_us;
resumen.Variables.variables['devoluciones']:=totdev;
resumen.Variables.variables['devolucionesus']:=totdev_us;
resumen.Variables.variables['empresa']:=UnitVariables.empresa;
resumen.ShowReport;
end;
end;
1: begin
MessageDlg('Esta Opcion esta en Desarrollo', mtWarning, [mbOK], 0);
end;
end;
end;
end;