5

私は、ソフトウェア以外の職場に引っ越してきたプログラマー (主に C++) です。ただし、データベースに関する経験はまったくありません。

TL;DR: Crystal Reports を、SQL クエリを実行して結果を解析するスクリプトを書くだけの場合と比較すると、SQL クエリとスクリプトでは不可能で、CR でできることはありますか? 私は純粋にデータを抽出するという観点から話しています - きれいな文書を作るのではありません。


詳細:

私の職場では、一連の Crystal Reports を実行し、日付範囲を現在の月に変更し、それぞれを手動で Excel にエクスポートし、不要な行と列を削除してから、要約にカット アンド ペーストするプロセスがあります。経営陣が使用するエクセル文書。

私にとって、これはかなりクレイジーでばかげています。そのほとんどを自動化/スクリプト化したいと思います。

したがって、2つのオプションがあります。

  • Crystal Reports について学習し、既存のレポートをより自動化するように変更してみてください。
  • CR をダンプして SQL を学習し、CSV ファイルなどを操作するスクリプトを使用してプログラムですべてを実行します。

SQL の方が一般的で便利なので、むしろ SQL を学びたいと思っています。しかし、必要なデータ出力を取得できることを保証する必要があります (自分で CR を再現するために何百万行ものコードを書く必要はありません)。

ええ、私は次のような答えを探しています。「2つは同等です。CRでできることはすべて、スクリプトとSQLを介して簡単に実行できます」または「パラメーターに基づいてレコードをカテゴリにグループ化し、次に彼らのフィールドの1つを合計すると、CRは生のコードよりもはるかに簡単にそれを実行できます.

編集:いくつかの追加の詳細。現在、Crystal レポートはデータベース クエリを実行し、Crystal は「返されたレコードを表示せずに、フィールド A でレコードをグループ化し、各グループのレコード数を表示する」などのことを行います。

このような機能を SQL コーディングで再現するのは難しいですか? たとえば、プレーンテキストの CSV からデータを解析して操作するために、python (またはその他の) スクリプトを作成する必要はありません。

4

6 に答える 6

4

SQL と CR を単純に比較することはできません。目的が異なります。SQL (この文脈では) はデータ ソースであり、CR はプリティ出力フォーマッタです。Excelの場合、フォーマットされた出力ではなく、データが必要になります。Excel と SQL を組み合わせると、SQL データから直接取得できないすべての CR オプション (動的クロス集計レポート、グラフなど) を提供できます。ところで、CR の制限を克服するには、多くの場合、SQL ビューまたはプロシージャを作成する必要があります。この観点から、SQL には CR よりも多くのオプションがあります。

個人的には、SQL+Excel ルートを使用します。私たちの会社では、後処理なしで単純に SQL+CR を使用しており、場合によっては SQL+Excel を使用しています。お客様はさまざまなアプローチを使用しています。

しかし、他の人が言ったように、ツールの選択はより多くのことに依存します。誰がレポートを再設計する必要がありますか? 誰がこれらのレポートを維持しますか? 要件はどのくらいの頻度で変更されますか? Excel テーブルを調達する以外に、CR レポートの用途はありますか? レポートが機能しない場合、誰が夜中に起こされますか?

于 2013-10-04T08:52:46.683 に答える
2

SQL を記述して Crystal Report にドロップできます。両方の長所があり、ドラッグ アンド ドロップの Crystal 機能よりもパフォーマンスが速い可能性があります。レポートの実行時に、応答時間の遅延が発生します。

于 2013-10-16T17:24:28.187 に答える
2

管理者の視点: 多くの場合、ほとんどの場合、管理者は SQL を知りません。では、EgHR のマネージャーが何かについてステータスを知りたい場合、どうすればそのステータスを取得できるでしょうか?? これが、Crystal レポートの出番です。Crystal レポートを使用すると、SQL について心配する必要がなくなります。必要なフィールドに入力してデータを取得するだけです。

プログラマーの視点: SQL を使用して単純なデータ出力を実現できますが、要約だけでなく詳細を取得する必要があるシナリオを検討してください。SQL 経由で実行できることに同意しますが、SQL を使用してそのような出力を作成するために必要な時間と熟練度のオーバーヘッドを考慮してください。Crystalと比較して、SQLを使用してそのような出力を開発するのは簡単ではないでしょう。したがって、SQL と Crystal の両方を学習すると、要件に適用するツールを選択できるようになります。

于 2013-10-04T07:51:02.617 に答える
2

実際には、Crystal Reports は 1 つの式でデータセット全体にアクセスでき、実行時に処理を実行できるため、単純な SQL クエリを使用すると非常に扱いにくいことがいくつかあります。

ただし、非常に複雑な Crystal Reports がない限り、情報をクリックして新しいシートに直接表示できるツールを Excel で作成することをお勧めします。

私はこれを行い、冗談ではなく昇進しました:P

基本的にこれを行うコードを提供できるカスタム Excel アドインがあります。

  • 開くと、データベースに接続し、ビューとプロシージャに接続されたメニュー オプションのリストをダウンロードします
  • これらのメニュー オプションを Excel 内の新しいリボン タブに追加します
  • いずれかをクリックすると、ビューが実行され、データセット全体 (適切にフォーマットされた) が新しいシートにダンプされます

これの利点は、メイン メニュー リストとそれが参照する各ビューを、ファイルに変更を加えたり、全員に再発行したりすることなく更新できることです。

于 2013-10-16T17:38:30.533 に答える
0

Excel sql, Left(Column_maxLength, 250) を編集してこれを修正しました。左の 250 文字を読んでも十分な場合、これで問題が解決しました

于 2016-09-15T13:17:26.220 に答える