私の質問を読んでくれてありがとう。私の仕事では、1 つのレポート ツールを探しています。これまでのところ、Crystal Reports が選択されています。その理由は、簡単で迅速な開発です。Central Reports のような独自のアプリを作成したいと考えています。グループ化ジェネリック クラスを作成できるかどうかを知る必要があります。Crystal Reports がグループ化の選択肢を提供していることは知っていますが、一度に 1 つのレポートに対してのみです。多くのクライアント (平均 80) と多くのレポート (クライアントあたり 20 ~ 30) があります。つまり、2 人だけで約 1600 ~ 2400 件のレポートを管理するのは困難です。
背後にある概念は次のとおりです。データベース内にテキストがあるクライアントごとに、このテキストはレポートに必要な情報を含むビューです。したがって、クライアントごとに異なる情報を表示する 1 つのレポートを作成できます。複数のクライアント用の 1 つのレイアウト。これは新しいプロジェクトの一部であり、複数のレイアウトの必要性をなくし、それらすべてを 1 つのアプリケーションに集約できる方法です。
このクラスは何をしますか?
テキストを取得し、フィールドを分析し、この分析に基づいて、グループ化の可能性を示すウィンドウ フォームを送信します。Crystal Reports では既にこれが行われていますが、各レポートのグループ化と式のオプションを手動で設定する必要があります。この仕事を自動的に行うクラスを作成できますか?
アップデート:
動的な列の選択のために、私はこの解決策を得ました:
if (chbCode.Checked)
{
columnNo++;
query = query.Insert(query.Length, "Codinome as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Codinome";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbFirstName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "NomeEmpresa as Column" +
columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Nome da Empresa";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
したがって、テスト用にこの初期フォームがあります。その醜い、私は知っています; D. 左側にはチェックボックスがあります。チェックボックスごとに、レポートにパラメータ フィールドがあります。ここに私がアイデアを得たリンクがあります:http://www.codeproject.com/Articles/20670/Dynamic-Crystal-Report-with-C?fid=466537&tid=3776908
この素晴らしいコミュニティに所属しているすべての人に感謝したいと思います。よろしくお願いします、ディエゴ。