ブルーオーブのブログ

ブルーオーブのブログ

オカルト、スピリチュアル、トンデモネタ、なんでもあり!

C++Builder XE6 に付属しているレポート作成ツールにFastReportというのがあります。

 

大昔は、QuickReportというのが標準ツールだったのが、

 

途中で、C++Builder 2007くらいから、RaveReportというのが標準に変わり、

 

さらに、XEシリーズになった頃には、FastReportになったようです。

 

で、今回、初めて実戦的にFastReportを使ってみたんですが、

 

まずはちゃんと日本語化されていなくて、

 

プレビューウィンドウやプリンター設定ウィンドウが英語のままだったりして、

 

C++Builderがメジャーになれなかった理由は、

 

やっぱり、日本語化がちゃんとされていなかったからじゃないかなあ、

 

と思ったりします。

 

さて、今回発見したツボのようなところというのは、

 

FastReportに、C++Builderからデータを渡す方法によって、

 

ちょっとした癖があるというのがわかったことなんです。

 

まずは、C++BuilderのVCLウィンドウ画面の中に、

 

レポートコンポーネント frxReportを配置します。

 

一番簡単にデータを渡す方法は、

 

FastReportのデザインツールのテキスト部品(オレンジ色のAというアイコン)になりますが、

 

そのテキスト編集パレットの中で、

 

[変数名]という風に、[]カッコで囲んでやることです。

 

すると、C++Builder側から、

 

frxReport1->Script->Variables["変数名"] = Edit1->Text  ;

 

というような感じで、変数の値をFastReportに渡すことができます。

 

あとは、印刷を実行するボタンのclickのコード中に、

 

frxReport1 -> ShowReport();

 

と記述するだけで、

 

FastReportのデザインツールで作成したレポートのプレビュー画面が表示されます。

 

 

ただ、この方法は、実はあまりお勧めのやり方ではないのです。(理由は、あとで述べます。)

 

もう一つの方法は、frxReportコンポーネント以外に、

 

frxUserDatasetというデータセットコンポーネントを配置し、

 

そのプロパティにあるFieldsという項目(Listコンポーネントのitemsのような感じ)の欄に、

 

var1

var2

 

のように変数名を宣言しておいて、

 

FastReportの画面設計ツールのデータセット追加のウィンドウの中で、

 

自分がC++Builderの設計画面で追加した

 

frxUserDatasetを選んであげれば、

 

FastReportの画面ツールの右側のツールパレットのDataタブの中に、

 

追加したデータセットが表示され、そこに作成したフィールド名も追加されます。

 

FastReportの画面の中に、そのフィールドをドラッグして配置してあげればいいだけです。

 

そして、C++Builderの側からは、

 

frxUserDatasetのGetValuesイベントの中に、

 

その変数に値を渡すようにコードを書きます。

 

具体的には、GetValuesイベントのコードの中に、

 

if ( VarName == "var1") {

      Value = Edit1->Text;

}

else if( VarName == "var2") {

     Value = Edit2->Text;

}

のように記述すると、簡単にFastReportへの変数渡しができます。

 

データベースからDBコンポーネントに直接取得したデータをFastReportに渡す場合は、

 

 

こちらのページの動画が参考にした方がいいと思います。

 

さて、上の2つのデータ渡しの方法の最初の方法はお勧めしない理由をここから説明します。

 

最初の方法、つまり、C++Builder側でデータセットを作成しないで、

 

データを渡すやり方というのを実際に、コンパイル、リンクして、

 

プログラムの実行をし、プレビューするために配置した印刷ボタンをクリックしてみてください。

 

そして、プレビュー画面でプレビューしたあとに、

 

何か変数で渡した内容の不都合に気づいて、プレビューを閉じ、

 

いったんC++Builder側で実行中の、

 

Editなどが表示されている画面に戻り、Editに入力した値を変更してから、

 

再度、印刷ボタンをクリックして、プレビュー画面を開き直しても、

 

その変更した内容がプレビュー画面の内容に反映されないのです。

 

これはプログラム作成者にとっては、大問題です。

 

この点は、以前使用していたRaveReportとは大きく異なる点でした。

 

どうやら、FastReport側のスクリプト中で宣言されている変数に、

 

C++Builderから値をセットした場合に、プレビュー画面を閉じてから、

 

再度、C++Builder側のイベントで、変数を変更し、プレビュー画面を開き直しても、

 

FastReportのスクリプトにある変数の値は変更されないようなのです。

 

一方、frxUserDatasetコンポーネントの場合には、

 

プレビューを開くたびに、ちゃんとデータセットの内容を読み直してくれるようで、

 

ちゃんと変更した内容が反映されます。

 

ですので、C++BuilderでFastReportを使用する場合には、

 

frxUserDatasetコンポーネントを使って、FastReportにデータ渡しをした方が賢明です。

 

 

今朝、メイカさんがアップしたのですが、

 

nVidiaのCEOである黄仁勲という人がトランプ政権を裏切ったと、

 

米国戦争省の調査機関が調査に入っているそうです。

 

 

昨日、スーパーマイクロ社のサーバーに関しての記事を書いたばかりなのに、

 

今度は、ディスプレイカードやAI用半導体チップで有名なnVidia社のCEOが

 

米国からスパイ容疑で調査を受けているとの報道で、

 

これは、まあ、大騒ぎになるでしょうねえ。

 

この黄仁勲というのは、台湾系米国人なので、

 

中国にすり寄る必要はないはずなんだけど、

 

それがスパイの疑いをもたれている、ということは、

 

きっと何か裏の事情があるんでしょうねえ。

 

アリババのジャック・マーについては、中国本土の人間だし、

 

ブランドンが悪魔と取引していると名指ししてましたから、

 

まあ、そうかもなと思っておりましたが、

 

米国のお膝元にあるnVidia社のCEOにまさかのスパイ容疑って、

 

すごい展開ですよね。

 

なにしろ、日本には、田中角栄っていう超ビッグネームの前例があるだけに、

 

こうなると、ソフトバンクの孫さんあたりも、

 

露骨に中国メーカーに便宜を図っていると、

 

いつなんどきスパイ容疑がかけられるか、わからないよねえ。

 

 

 

株価は連日最高値を更新する中、

 

ちょっと前まで株価と連動していた仮想通貨業界全体が不振な状況で、

 

これまでずっとビットコインを大量に買い付け続けてきたマイケル・セイラーまで、

 

こっそり売却しているんじゃないかと噂されるほど、

 

ビットコインを始めとしたメジャーな仮想通貨が下落しているのに、

 

なぜかリップルの子分だったステラルーメンがどんどん上昇しちゃって・・・

 

もうすぐ日本市場でIPOをするかもしれないスペースXにちなんで、

 

イーロン・マスク一押しのドージコインが爆上げするんだったらわかるけど、

 

なんでステラルーメンが急に上昇し始めたのか、

 

まったく意味がわからない状況です。

 

実は、ちょっと前の大暴落のときに、

 

ステラが24円くらいまで下落していたので、

 

ほんの少しだけ仕込んでおいたんですよ。

 

昨日、28円を超えたくらいのときに、

 

この弱気市場のときに、さすがにこの勢いは続かないだろうという読みで、

 

ちょこちょこ利確し始め、お昼過ぎに32円を少し超えたところで、残弾なし・・・

 

ところが、ほかの仮想通貨がほぼ横ばいの中、

 

ステラはそこからさらに上昇して、

 

今朝は40円を超えて上昇を続けております。

 

ちと、早かったかあ(笑)

 

これを書いている間にも、さらに1円上昇して、

 

41円を突破しました。

 

いったい、ステラに何が起こっているのか・・・

 

いや、もうステラのことは忘れて、次のことを考えよう。

 

6月12日に、スペースXがNasdaq市場でIPOして、株価が爆上げしたら、

 

気をよくしたイーロンがドージコインに関して、

 

何かやってくれるんじゃないかと仮想通貨市場が勝手に期待して、

 

急にドージが爆上げを開始して、

 

サマンサの予言してきたサマードージになってくれることを祈ろう!

 

やはり、スペースXの上場への期待は相当に大きいようですねえ。

 

この動画によれば、イーロンは、今回の上場でいきなり、

 

2兆ドル規模の時価総額にしたいと思っているらしい・・・

 

2兆ドルって、今の仮想通貨市場全体の規模とほぼ同じレベルなんで、

 

すげーーーっていうしかないよねえ。