首页 > 解决方案 > 如何在 Delphi 中以编程方式抑制 Crystal Viewer 中的组

问题描述

我有一个由 POS 系统创建的水晶报表(.RPT 文件),我需要将此报表中的所有记录导入数据库,以便在我的程序中使用它。问题是它是分组的并且有页眉和页脚,当像这样导出时,它会将很多废话导出到 ODBD 数据库。我想禁止所有组和标题,只导出详细信息。在水晶设计师中,我可以通过单击每个组并抑制它们来做到这一点。我需要在 Delphi 中执行此操作。查看我的工作代码以查看数据,当前将所有内容导出到 Excel。

`unit Unit2;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, 
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleServer,
CrystalActiveXReportViewerLib14_TLB, Vcl.OleCtrls, OleAuto,
CrystalReportViewerExportLib_TLB;

type
 TForm2 = class(TForm)
 CrystalRpt: TCrystalActiveXReportViewer;
 Button1: TButton;
 Button2: TButton;
 CrystalExport: TCrystalReportExport;
 Button3: TButton;
 procedure Button1Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 procedure Button3Click(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
oApp : variant ;

begin

  oApp := CreateOleObject('CrystalRuntime.Application')  ;
  crystalrpt.ReportSource :=  oApp.OpenReport('c:\guess.rpt',1);
  {crystalrpt.ShowGroup('Group Header #1') ;}
  crystalrpt.ViewReport ;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
 cry : TCrystalActiveXReportViewer;
 oRpt, oApp : variant;
 i : integer;
begin

//Export the report to a file
oApp := CreateOleObject('CrystalRuntime.Application');
oRpt := oApp.OpenReport('c:\guess.rpt',1);
oRpt.ExportOptions.FormatType := 29;  //excel 8
oRpt.ExportOptions.DiskFileName := 'c:\output.xls';
oRpt.ExportOptions.DestinationType := 1;  //file destination
oRpt.ExportOptions.
//Export(False) => do NOT prompt.
//Export(True) will give runtime prompts for export options.
oRpt.Export(false);
end;

end.`

标签: delphicrystal-reports

解决方案


推荐阅读