Crystal Reports アプリケーションで、DatabaseTable オブジェクトの Fields プロパティにフィールドを取得できないという問題が発生しています。Fields.Count は、すべてのテーブルに対してゼロを返します。これは、ユーザーのコンピューターの 1 つでのみ発生しています。オフィスのすべての開発者にとって問題なく機能しています。違うものは何も見えません。また、根本的に間違ったことをしているのだろうかと思っています。ドキュメントには、Fields プロパティについて「レポートによってアクセスされるすべてのデータベース フィールドのコレクションに 1 つのオブジェクトが存在する」と記載されていますが、各テーブルのデータベースに存在するすべてのフィールドに対して 1 つのオブジェクトが表示されます。報告します (ところで、これは私たちが本当に望んでいるものです)。CR ランタイム バージョン 11.5 を使用しています。どんなアイデアでも大歓迎です。使用しているコードは次のとおりです (Delphi):
procedure TfrmPCMSCrystalReportViewer.BuildColumnList;
{ Populate slColumns with the list of column.
For each table in the report, add every column. }
var
I, J: Integer;
Tbl: DatabaseTable;
begin
slColumns.Clear;
with crReport1.Database do begin
for I := 1 to Tables.Count do begin
Tbl := Tables[I];
//process each column in table
for J := 1 to Tbl.Fields.Count do
//add column to list
slColumns.Add(Tbl.Fields[J].DatabaseFieldName);
end; //for
end; //with
end;