Ver Mensaje Individual
  #3  
Antiguo 15-01-2010
elarys elarys is offline
Miembro
 
Registrado: abr 2007
Posts: 94
Reputación: 17
elarys Va por buen camino
Mi funcion para mostrar el reporte
Suprimido el reporte tiene 10 veces mas datos, solo muestro pocos datos aca, asi se entiende


Código Delphi [-]
procedure PrintDailyStatement(number:string;filter:string);
var
  sql:string;
  MyReport:TfrxReport;
  RptFr3:string;
  QryAux1:TADOQuery;
  DsrAux1:TDataSource;
  QryAux2:TADOQuery;
  DsrAux2:TDataSource;
  QryAux3:TADOQuery;
  DsrAux3:TDataSource;
begin
  QryAux1:=tadoquery.Create(nil);
  DsrAux1:=TDataSource.Create(nil);
  QryAux2:=tadoquery.Create(nil);
  DsrAux2:=TDataSource.Create(nil);
  QryAux3:=tadoquery.Create(nil);
  DsrAux3:=TDataSource.Create(nil);

  sql:= ' SELECT D.Number, D.PrintDate, D.TotDuty, D.TotTax,'+
        ' S.Importer, S.Broker, S.EstDuty, S.EstiTax'+
        ' FROM DailyStatements D'+
        ' LEFT JOIN Shipment_ABI S ON (D.Number = S.Number)'+
        ' WHERE D.Number <> '+QuotedStr('');

  if filter = '' then
    sql:= sql +
        ' AND D.Number='+QuotedStr(number)+
        ' ORDER BY D.Number'
  else
    sql:= sql + filter + ' ORDER BY D.Number';

  dressqueries(QryAux1,sql,Datafiles.dbBROKERAGE);
  DsrAux1.DataSet:=QryAux1;
  Datafiles.frxDBDataset1.DataSource := DsrAux1;

  sql:= ' SELECT SUM(FeeAmount) Total, C.Description,'+
        ' D.Number, D.PrintDate, D.TotDuty, D.TotTax'+
        ' FROM DailyStatements D'+
        ' LEFT JOIN Shipment_ABIFees F ON (D.Number = F.Number)'+
        ' LEFT JOIN BASICO.dbo.Codes C ON (C.Code=F.FeeCode)'+
        ' WHERE D.Number <> '+QuotedStr('');

  if filter = '' then
    sql:= sql +
        ' AND D.Number='+QuotedStr(number)+
        ' GROUP BY F.FeeCode, C.Description,'+
        ' D.Number, D.PrintDate, D.TotDuty, D.TotTax'+
        ' ORDER BY D.Number'
  else
    sql:= sql + filter +
        ' GROUP BY F.FeeCode, C.Description,'+
        ' D.Number, D.PrintDate, D.TotDuty, D.TotTax'+
        ' ORDER BY D.StatementNumber';

  dressqueries(QryAux2,sql,Datafiles.dbBROKERAGE);
  DsrAux2.DataSet:=QryAux2;
  Datafiles.frxDBDataset2.DataSource := DsrAux2;

  sql:= ' SELECT'+
        ' D.Number, D.PrintDate, D.TotDuty, D.TotTax,'+
        ' M.Entry, M.Source'+
        ' FROM DailyStatements D'+
        ' LEFT JOIN ABI_STMT_MSG M ON (D.Number = M.Number)'+
        ' WHERE M.Entry <> '+QuotedStr('');

  if filter = '' then
    sql:= sql +
        ' AND D.Number='+QuotedStr(number)+
        ' ORDER BY D.Number'
  else
    sql:= sql + filter + ' ORDER BY D.Number';

  dressqueries(QryAux3,sql,Datafiles.dbBROKERAGE);
  DsrAux3.DataSet:=QryAux3;
  Datafiles.frxDBDataset3.DataSource := DsrAux3;

  RptFr3 := Datafiles.StrPath+Datafiles.dbbasico.DLLCommon_Path + 'reports\DailyStatement.fr3';

  MyReport := Datafiles.Report;
  MyReport.LoadFromFile(RptFr3);
  MyReport.PreviewOptions.Modal := true;
  MyReport.PreviewOptions.AllowEdit := false;
  MyReport.PreviewOptions.OutlineVisible := false;
  MyReport.PrintOptions.ShowDialog := false;
  MyReport.ReportOptions.Compressed := true;

  frmPreviewer := TfrmPreviewer.Create(nil);
  frmPreviewer.form_name:='Daily Statement';
  MyReport.PrepareReport;
  MyReport.Preview := frmPreviewer.Preview;
  frmPreviewer.ShowModal;
end;

Me lei la ayuda de Fast Report 4 y solo tiene explicado un informe con Group Header y un Master Data al estilo de una factura.

Última edición por elarys fecha: 15-01-2010 a las 21:52:51.
Responder Con Cita