日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

タイトル

執筆:2023.08.30
編集:2023.08.30


標準ツール(インストールが必要)

WinForms ReportViewer コントロール

インストール方法
(1) Visual Studio Community 2022の更新をインストール
(2) メニュー : 拡張機能 : 拡張機能の管理
オンライン : 検索 : Report
[Microsoft] Microsoft RDLC Report Designer 2022
手順: ダウンロード : 保存 : インストール(保存したファイルを実行する)

サードパーティーライブラリ

PDFがいい場合はサードパーティーライブラリ
  • iTextSharp
  • QuestPDF
など


Microsoft RDLC Report Designer 2022インストール失敗

(1) Visual Studio Community 2022の更新をインストール

ヘルプ : 更新プログラムの確認

先にIDEを更新しておかないとインストールに失敗することがあります。

Microsoft.RdlcDesigner.vsixを実行
Visual Studio Community 2022
- 拡張機能の Visual Studio Community 2022 へのインストールを開始しています...
- Package 'Microsoft.VisualStudio.WorkflowManagerTools.Msi,version=17.3.32708.82,chip=x64,language=ja-JP' failed to install. MSI: C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.WorkflowManagerTools.Msi,version=17.3.32708.82,chip=x64,language=ja-JP\WorkflowManagerTools_x64.msi, Properties: REBOOT=ReallySuppress ARPSYSTEMCOMPONENT=1 , Return code: 1603, Details: インストール中に致命的なエラーが発生しました。, Signature: PackageId=Microsoft.VisualStudio.WorkflowManagerTools.Msi;PackageAction=install;ReturnCode=1603
- インストール エラー : System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.VisualStudio.Setup.PackageFailureException: Package 'Microsoft.VisualStudio.WorkflowManagerTools.Msi' failed to install
失敗した場合は、内部的にインストール済みフラグがたっているので、拡張機能を開きアンインストールする。

原因がわからないので Visual Studio Community 2022の更新をインストール
現在のバージョン: 17.7.1
更新プログラムのバージョン: 17.7.3

再度 Microsoft.RdlcDesigner.vsixを実行
失敗
Visual Studio Community では利用できないのかもしれない。
2023.08.30

タイトル

執筆:2023.08.30
編集:2023.08.30


Lazarus lazreport の 超絶シンプルサンプル1 です。


Delphi11を起動して パレットにreport検索してもでてこないですね。現行バージョンはレポート付属していないのでしょうか?
ということでレポートが付属されているLazarusへ 全部もしきはレポート部分だけDLLで移行しないといけないケースが発生しないとは限らないため使い方を確認することにしました。

Delphiからの移行でlazreportの使い方がわからないであきらめたというページを目にしたので
lazreportの超絶シンプルなサンプルを紹介します。

テンプレート形式でファイルを保存するようなので Raveレポート に似ていますね。

以下は超シンプルなサンプルです。

(1) 新規プロジェクトを作成してください
※事前にlazreportを有効にしてパレットにインストールしておいてください。

(2) TButton 2個, TfrReport をフォームに配置します。

(3)フォームに配置した frReport1 を右クリックして「デザインレポート」を呼び出してください。

テンプレートをフォームに埋め込む場合は、 frReport1.StoreInForm をtrueにしてから次の作業をしましょう。
その場合は、コードのfrReport1.LoadFromFileの読み込み部分は必要ありません。

(3-1) オブジェクトインスペクタを表示します。
[レポート編集画面です]
Tools : Toolbars : Object inspector をチェックして表示させます。
オブジェクトを右クリックしてもこの項目はでてこないため、これがないと話になりません。
使い方がわからないという記事を見かけたので多分これが原因でしょう。

(3-2) 左の縦ツールバーの「矢印のすぐ下」の 「rectangle object」挿入をクリックして右の画面に配置します。

(3-3) Closeを選択して、テンプレートを保存してください。
そのまま保存すると'Untitled.lrf'という名前になります。

(4) フォームのボタンをクリックします。コードを書き込んでください。

(5) frReport1のイベントOnBeginDocをクリックします。コードを書き込んでください。

procedure TForm1.Button1Click(Sender: TObject);
begin // プレビュー
frReport1.LoadFromFile(ExtractFileDir(Application.ExeName)
+ DirectorySeparator + 'Untitled.lrf');
frReport1.ShowReport;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin // 印刷
frReport1.LoadFromFile(ExtractFileDir(Application.ExeName)
+ DirectorySeparator + 'Untitled.lrf');
// プリンタの設定を開きたい場合はここに処理を加える
if frReport1.PrepareReport() then
frReport1.PrintPreparedReport('1', 1); // ページ範囲, 印刷数
end;

procedure TForm1.frReport1BeginDoc;
var
AfrObject : TfrObject;
begin
AfrObject := frReport1.Pages[0].FindObject('Memo1');
if Assigned(AfrObject) then
AfrObject.Memo.Text := 'こんにちは';
end;

準備完了です。

実行してボタンをクリックしてください。
レポートの出来上がりです。

簡単でしたね!

テンプレートを埋め込む場合は
・frReport1.StoreInForm をtrue
・リソースとして保存してStreamからロード
などの方法があります。

組み込みのプレビューが 英語表記なので、
lazreport\source\languages\に日本語に該当するlr_const.ja.poがないためです。
いつの間にか数年前?数十年前?から「プチモンテ Delphi・Lazarusの掲示板」がIDEの翻訳担当しているそうなので
日本語のLazarus掲示板に注文出せばだれか暇人が翻訳してコミットすると思います

組み込みのプレビュー
・英語表記
・文字サイズとアイコンがかなり小さい
・デザインが古臭い 時代を感じる
ので自分でプレビューフォーム作ったほうがいいような気もします。
2023.08.30



PR

[PR]