日付を取得する
date +"%Y/%m/%d %p %I:%M:%S"
日付をsh内で使う
echo `date +"%Y/%m/%d %p %I:%M:%S"`
echo `date +"%Y%m%d%I%M%S"`
bashで使う比較演算子 (IBM)
http://www.ibm.com/developerworks/jp/linux/library/l-bash2.html
or xor
&& ||
if [ a = "1" ] && [ b = "2" ] ; then
fi
一から作るなんてあまりやらないのでこんなもの。
今後は増えるかな・・・・・ぁ
2016年4月12日火曜日
2016年4月8日金曜日
iReportのドキュメントを読んでみました
今回本格的にiReportを利用する機会が出てきたので、ドキュメントを探してみたところ、公式サイトに諸々のドキュメントがありました。
http://community.jaspersoft.com/documentation?version=29351
iReport Designer
iReport Ultimate Guide (Updated Jan 15, 2013)
・目次
気になるキーワードがあれば頑張って読みましょう。
(表とか箇条書きとかサンプルコードとか)
主だったところ
⇒3.5.1 The Type of an Expression
Expressionは、データを表示するときに使うプロパティです。
JasperがJavaで動いていることもあり、型を適切に処理するためには意識が必要です。
⇒3.5.2 Expression Operators and Object Methods
⇒3.10 A Simple Program
Javaで諸々制御ができるということが想像できます。今回はやらないので詳しく読みませんでした。
⇒5.1.3 Basic Element Attributes
今回メインで扱う、プロパティについての説明がありました。
ページ番号などもここの情報に書いてあります。
テーブルは、グラフとかにも関係していそうです
http://community.jaspersoft.com/documentation?version=29351
すべて英語ですが、無償でたくさんの情報が提供されています。そのなかで私が参照したのは、以下ドキュメントです。
iReport Ultimate Guide (Updated Jan 15, 2013)
なお、有償ですが、日本語のドキュメントも提供されています。
http://jaspersoft.biz/document/product-manual
【ドキュメントサマリー】
総364ページ。もあり、私自身、英語読解力があるわけではないので、今回主に読んだのはプロパティ類です。それ以外の部分についても時間があれば読んでみようと思いますが、現状としては一般的なレポーティングツールの機能は備えているという前提として考えています。
【まずここは見たほうが良い】
・目次
気になるキーワードがあれば頑張って読みましょう。
・CHAPTER3 BASIC NOTIONS OF JASPERREPORTS
この項を流し読みするだけでも、何ができるのかが想像できそうです。(表とか箇条書きとかサンプルコードとか)
主だったところ
⇒3.5.1 The Type of an Expression
Expressionは、データを表示するときに使うプロパティです。
JasperがJavaで動いていることもあり、型を適切に処理するためには意識が必要です。
⇒3.5.2 Expression Operators and Object Methods
演算子ですね。Expressionにて対応している演算子が列挙されています。
また、Expressionに定義するための記述例も書かれています。⇒3.10 A Simple Program
Javaで諸々制御ができるということが想像できます。今回はやらないので詳しく読みませんでした。
・CHAPTER5 REPORT ELEMENTS
レポートで使う要素ですね。⇒5.1.3 Basic Element Attributes
今回メインで扱う、プロパティについての説明がありました。
・CHAPTER6 FIELDS, PARAMETERS, AND VARIABLES
項目の構成要素である、フィールド(値項目)、パラメータ(引数?)、値(変数)の情報です。データでとってきた値の扱い、集計値の扱いなどはこのあたりの情報で行います。ページ番号などもここの情報に書いてあります。
・CHAPTER 13 LISTS, TABLES, AND BARCODES
さらっと見たところ独自機能な気もしますが、簡単な操作で、表形式の帳票ができそう。テーブルは、グラフとかにも関係していそうです
・CHAPTER 15 CROSSTABS
見慣れない単語でしたが、内容見る限り、クロス集計のようでした。【主なプロパティについて】
CHAPTER5に、プロパティに対する説明がありました。
「共通」のもの、「テキスト」に関するもの、「テキストフィールド」に関するものとわかれています。
【本記事のまとめ】
一つの記事で全部を書くのは難しいので今回はこれくらいです。
JasperReportはオープンソースであり、他の帳票ツールで有する機能はあったり、または
なくても有志により実装されるなどされています。
無償ドキュメントが英語なので敷居は上がりますが、ぜひ利用していきたいツールの1つかと思いました。
ラベル:
iReports,
JasperReports
2016年4月6日水曜日
MySQLの接続状況の確認
運用中のMySQLに過去データを大量投入する必要があったため、接続状況を確認する方法を調べたのでメモ。
1) \s にて、MySQLの稼働状況をチェックできる。 (今回の件とは直接関係なし)
2) show processlistにて、接続プロセス数、接続時間などを確認できる。
接続時間(下記でいうところのTime)は、最終応答からの経過時間。
概略
1) \s にて、MySQLの稼働状況をチェックできる。 (今回の件とは直接関係なし)
2) show processlistにて、接続プロセス数、接続時間などを確認できる。
接続時間(下記でいうところのTime)は、最終応答からの経過時間。
サンプル
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
Connection id: 132877
Current database: sampledb
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.73 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 61 days 17 hours 51 min 29 sec
Threads: 19 Questions: 99114337 Slow queries: 531 Opens: 2600916 Flush tables: 1 Open tables: 64 Queries per second avg: 18.579
--------------
mysql> show processlist;
+--------+-------+----------------------------+-----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+------+-----------------------------+-----------+---------+------+-------+------------------+
| 132709 | app | location.domain.ne.jp:10486 | sampledb | Sleep | 7045 | | NULL |
| 132710 | app | location.domain.ne.jp:10588 | sampledb | Sleep | 6952 | | NULL |
| 132711 | app | location.domain.ne.jp:10625 | sampledb | Sleep | 6717 | | NULL |
| 132712 | app | location.domain.ne.jp:10840 | sampledb | Sleep | 5968 | | NULL |
| 132713 | app | location.domain.ne.jp:10841 | sampledb | Sleep | 6169 | | NULL |
| 132714 | app | location.domain.ne.jp:10915 | sampledb | Sleep | 6395 | | NULL |
| 132715 | app | location.domain.ne.jp:10006 | sampledb | Sleep | 5986 | | NULL |
| 132716 | app | location.domain.ne.jp:10062 | sampledb | Sleep | 5666 | | NULL |
| 132717 | app | location.domain.ne.jp:10168 | sampledb | Sleep | 5666 | | NULL |
| 132718 | app | location.domain.ne.jp:10429 | sampledb | Sleep | 5583 | | NULL |
| 132719 | app | location.domain.ne.jp:10464 | sampledb | Sleep | 5577 | | NULL |
| 132870 | app | remote.domain.ne.jp:33063 | NULL | Sleep | 475 | | NULL |
| 132871 | app | remote.domain.ne.jp:41295 | sampledb | Sleep | 396 | | NULL |
| 132872 | app | remote.domain.ne.jp:38509 | sampledb | Sleep | 470 | | NULL |
| 132873 | app | remote.domain.ne.jp:37658 | sampledb | Sleep | 420 | | NULL |
| 132874 | app | remote.domain.ne.jp:39027 | sampledb | Sleep | 370 | | NULL |
| 132875 | app | location.domain.ne.jp:10031 | sampledb | Sleep | 165 | | NULL |
| 132876 | app | location.domain.ne.jp:10032 | sampledb | Sleep | 203 | | NULL |
| 132877 | root | localhost | sampledb | Query | 0 | NULL | show processlist |
+--------+-------+----------------------------+-----------+---------+------+-------+------------------+
19 rows in set (0.00 sec)
mysql>
ラベル:
MySQL
2016年4月5日火曜日
Microsoft AccessのモジュールをVSS管理している場合のTips
VBA系のプログラムを利用して開発する場合、ソース資産等の管理にひと手間必要ですが
Accessの場合、追加ソフトを入れることでVisualSourceSafeへの接続ができるのでメモ。
今回は、Access2010です。Access2007でもできるようです。
Microsoft Access 2010 ソースコード管理 をインストールするとリボンに機能が現れます
https://www.microsoft.com/ja-jp/download/details.aspx?id=6840
2) 「ソース管理」リボンにある「SourceSafeから作成」を選択するとVSSが起動する
3) VSSにてパスを指定すると、関連ファイルおよびデータベースファイルが作成される
1) リボン「ファイル」を選択「情報」から、「データベースの最適化/修復」を選択
2) 「最適化したデータベースをSource Code Controlから削除しますか?」と聞かれたら「はい」を選択
Accessの場合、追加ソフトを入れることでVisualSourceSafeへの接続ができるのでメモ。
今回は、Access2010です。Access2007でもできるようです。
【Access2010で使う場合に必要なソフトのインストール】
Microsoft Access 2010 ソースコード管理 をインストールするとリボンに機能が現れます
https://www.microsoft.com/ja-jp/download/details.aspx?id=6840
【VSSからデータを取得する場合】
1) Accessを起動2) 「ソース管理」リボンにある「SourceSafeから作成」を選択するとVSSが起動する
3) VSSにてパスを指定すると、関連ファイルおよびデータベースファイルが作成される
【データをVSSから切り離す場合】
1) リボン「ファイル」を選択「情報」から、「データベースの最適化/修復」を選択
2) 「最適化したデータベースをSource Code Controlから削除しますか?」と聞かれたら「はい」を選択
ラベル:
Access,
VisualSourceSafe
2016年4月4日月曜日
Win+MySQL5.1環境にMySQL5.7を共存させる方法
MySQL5.1で運用しているシステムがあり、検証評価のために5.7系を利用したいと思い
とりあえずとして自分で使えるWin+MySQL5.1の環境に対してMySQL5.7を導入した時のメモです。
・MySQL5.7は公式サイトよりZipで取得
・ダウンロードしてきたzipファイルを展開。パスは任意でよいと思いますが、私の場合ProgramFilesの中に直接ディレクトリを作って展開しました。
C:\Program Files\MySQL57
・my.iniを作成
・初期化を実施
mysqld --initialize
・コンソールにて起動
・別コンソールにてmysqlクライアントを起動
・パスワードを変更
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaaaaaaa';
・mysqld.logに記載
・コンソールの終了
・サービスとしてインストール
mysqld --install MySQL57
※サービスの削除は、mysqld --remove MySQL57
・サービスの起動
net start mysql
ひとまず起動したので、別途、マイグレーションの手順をメモしたいと思います。
とりあえずとして自分で使えるWin+MySQL5.1の環境に対してMySQL5.7を導入した時のメモです。
【環境】
・Windows8 Pro(x64) + MySQL5.1(インストーラにてインストール)の環境・MySQL5.7は公式サイトよりZipで取得
【手順】
・ダウンロードしてきたzipファイルを展開。パスは任意でよいと思いますが、私の場合ProgramFilesの中に直接ディレクトリを作って展開しました。C:\Program Files\MySQL57
・my.iniを作成
・初期化を実施
mysqld --initialize
・コンソールにて起動
・別コンソールにてmysqlクライアントを起動
・パスワードを変更
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaaaaaaa';
・mysqld.logに記載
・コンソールの終了
・サービスとしてインストール
mysqld --install MySQL57
※サービスの削除は、mysqld --remove MySQL57
・サービスの起動
net start mysql
ひとまず起動したので、別途、マイグレーションの手順をメモしたいと思います。
ラベル:
MySQL
2016年3月23日水曜日
MySQL 4.x系ではCREATE USERの構文が違う
ついつい忘れてしまうMySQLのCREATE USERですが、今回改めて実施したところ
はまってしまったので備忘録です。
結果としては、CREATE USER は、MySQL 5.x系からであり、MySQL4.xで実施する際には
構文が違うということでした。
はまってしまったので備忘録です。
結果としては、CREATE USER は、MySQL 5.x系からであり、MySQL4.xで実施する際には
構文が違うということでした。
NGケース
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'USER'test1'@'%' IDENTIFIED BY 'test12345'' at line 1
というわけでOKケース
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
ラベル:
MySQL
2016年3月20日日曜日
iReportsで、グループ毎の集計値を合算して合計として表示する方法
見出しだけだとわかりづらいので例とともに。
伝票A 合計100円 , 明細 20円 30円 50円
伝票B 合計250円 , 明細 80円 170円
ここで、100円と250円を合算したい。
明細だと、一部計算がずれる場合があるので明細からの合計は行わない。
・伝票毎で、グループが切ってある。
1) Variablesを作成
V_DENPYO_GOUKEI (名前は何でもよい) を作成、以下プロパティを設定。
・Cauculation : Sum
・Reset type : Report (これ重要)
・Increment Type : Group
・Increment group : DenpyoのGrou
・Variable Expression : $F{DENPYO_GOUKEI}.equals(null)? 0 : new Double($F{DENPYO_GOUKEI})
ResetTypeをReport以外に指定すると、想定値と異なる値を取得してきてしまいました。
解消できるまでに小2時間。
レポーティングツール類はプロパティの使い方が肝となることが多いと感じました。
設定するフィールド側
text field expression : $V{V_DENPYO_GOUKEI}
Evaluation Time : Report
データ例
伝票A 合計100円 , 明細 20円 30円 50円
伝票B 合計250円 , 明細 80円 170円
ここで、100円と250円を合算したい。
明細だと、一部計算がずれる場合があるので明細からの合計は行わない。
その他要件
・伝票毎で、グループが切ってある。手順
1) Variablesを作成
V_DENPYO_GOUKEI (名前は何でもよい) を作成、以下プロパティを設定。
・Cauculation : Sum
・Reset type : Report (これ重要)
・Increment Type : Group
・Increment group : DenpyoのGrou
・Variable Expression : $F{DENPYO_GOUKEI}.equals(null)? 0 : new Double($F{DENPYO_GOUKEI})
ResetTypeをReport以外に指定すると、想定値と異なる値を取得してきてしまいました。
解消できるまでに小2時間。
レポーティングツール類はプロパティの使い方が肝となることが多いと感じました。
追伸:
設定するフィールド側text field expression : $V{V_DENPYO_GOUKEI}
Evaluation Time : Report
ラベル:
iReports
2016年2月22日月曜日
iReportで固定行数明細を作成する
iReportで、明細帳票を作成したい場合、シンプルにやろうとした場合にはDetailの各オブジェクトに罫線を引いて作成することが多いかと思いますが、ページの下段まで計算を引きたい場合などにはこの方法は利用できません。
Backgroundオブジェクトを利用すると、固定行数の表を持つ帳票を作ることが可能です。
自動でBackground用のレイアウト領域が表示されます。
その後、必要に応じてオブジェクトを配置します。
これだけで、実際のデータと関係なく、Backgroundに配置した情報が表示されるようになります。
もしかしたらもっと良い方法があるかもしれません。が、現状やった方法
1) 必要行数分の、横罫線をコピーペーストなどで作成する。
2) 一番上と、一番下に罫線を正規の位置(Topプロパティできっちり調整)に配置し、あとは適当においておく。
3) 全部の罫線を選択し、メニューバーの「Format」->「Vertical Spacing」->「Equal Vert Space」を選択すると、均等に配置される。
あまりたくさんあると大変かもしれませんが、以下のような設定で可能です。
1) 両方のオブジェクトを貼っておく。
2) Print When Expressinonに評価式を設定
例) ($V{PAGE_NUMBER}.toString()).equals("1") ? Boolean.FALSE : Boolean.TRUE
⇒TRUEまたはFALSEを返す条件式が必要です。
この式を設定した場合、2ページ目以降にしか出ないオブジェクトとなります。
Variablesを作成。
例) 数量計
Variable名:SURYO_TOTAL
Variable Expression:$F{SURYO}.equals(null)?0:new Double($F{SURYO})
Calculation:Sum
Reset Type:Page
あとは未指定
Page Footerに、テキストを配置し、Text Field Expressionに、上記名前を割当
Text Field Expression:$V{SURYO_TOTAL}
Backgroundオブジェクトを利用すると、固定行数の表を持つ帳票を作ることが可能です。
【Backgroundオブジェクトの利用方法】
・Report Inspectorから、「BackGround」を選択して、「Maximize Background」をクリック自動でBackground用のレイアウト領域が表示されます。
その後、必要に応じてオブジェクトを配置します。
これだけで、実際のデータと関係なく、Backgroundに配置した情報が表示されるようになります。
【罫線の引き方】
もしかしたらもっと良い方法があるかもしれません。が、現状やった方法
1) 必要行数分の、横罫線をコピーペーストなどで作成する。
2) 一番上と、一番下に罫線を正規の位置(Topプロパティできっちり調整)に配置し、あとは適当においておく。
3) 全部の罫線を選択し、メニューバーの「Format」->「Vertical Spacing」->「Equal Vert Space」を選択すると、均等に配置される。
ページごとに【Background】を変える。
あまりたくさんあると大変かもしれませんが、以下のような設定で可能です。
1) 両方のオブジェクトを貼っておく。
2) Print When Expressinonに評価式を設定
例) ($V{PAGE_NUMBER}.toString()).equals("1") ? Boolean.FALSE : Boolean.TRUE
⇒TRUEまたはFALSEを返す条件式が必要です。
この式を設定した場合、2ページ目以降にしか出ないオブジェクトとなります。
【その他】
・ページ計を出したい場合Variablesを作成。
例) 数量計
Variable名:SURYO_TOTAL
Variable Expression:$F{SURYO}.equals(null)?0:new Double($F{SURYO})
Calculation:Sum
Reset Type:Page
あとは未指定
Page Footerに、テキストを配置し、Text Field Expressionに、上記名前を割当
Text Field Expression:$V{SURYO_TOTAL}
ラベル:
iReports
2016年2月4日木曜日
ActiveReportsにてDistinctFieldプロパティを活用する。
【事例】
・伝票をまとめた、請求書のようなものがある。
・出力情報としては、
・伝票明細の情報を一覧として
・日毎で集計行を出力
・最後に、合計行を出力
・データとしては、単価金額は明細に持っていて、消費税は伝票毎に持っている。
・データ抽出処理で、伝票情報と明細情報を一緒に持ってきている。
⇒そのため、各明細に伝票の情報もついてくる
起きたこと
・日毎の集計行には税込みを出す必要があったので、税込みの項目をSumするのだけども
当然ながら、複数行明細の場合にはそのままSumすると倍々になってしまう。
【対処】
・グループヘッダのプロパティにて「日」を条件とした枠を作る。
⇒これはまぁ普通の処理
・税込み金額を出すテキストのDistinctFieldプロパティに、「伝票番号」を指定
SummaryFunc : DSum ←SumではなくDSum
SummaryGroup:GroupHeaderxx
SummaryRunning:Group
SummaryType:SubTotal
伝票番号でDistinctしてくれて、Sumしてくれるようになりました。
ヘルプ
http://docs.grapecity.com/help/activereports-9/GrapeCity.ActiveReports.v9~GrapeCity.ActiveReports.SectionReportModel.TextBox~DistinctField.html
・伝票をまとめた、請求書のようなものがある。
・出力情報としては、
・伝票明細の情報を一覧として
・日毎で集計行を出力
・最後に、合計行を出力
・データとしては、単価金額は明細に持っていて、消費税は伝票毎に持っている。
・データ抽出処理で、伝票情報と明細情報を一緒に持ってきている。
⇒そのため、各明細に伝票の情報もついてくる
起きたこと
・日毎の集計行には税込みを出す必要があったので、税込みの項目をSumするのだけども
当然ながら、複数行明細の場合にはそのままSumすると倍々になってしまう。
【対処】
・グループヘッダのプロパティにて「日」を条件とした枠を作る。
⇒これはまぁ普通の処理
・税込み金額を出すテキストのDistinctFieldプロパティに、「伝票番号」を指定
SummaryFunc : DSum ←SumではなくDSum
SummaryGroup:GroupHeaderxx
SummaryRunning:Group
SummaryType:SubTotal
伝票番号でDistinctしてくれて、Sumしてくれるようになりました。
ヘルプ
http://docs.grapecity.com/help/activereports-9/GrapeCity.ActiveReports.v9~GrapeCity.ActiveReports.SectionReportModel.TextBox~DistinctField.html
ラベル:
ActiveReports
2016年2月1日月曜日
iReport DesignerからJaspersoft Studioへ移行が推奨されています
掲題の件
しばらく情報を追っていなかったら、iReport DesignerはJaspersoft Studioへの
移行を推奨していました。
【iReport Designer サイト】
http://community.jaspersoft.com/project/ireport-designer
英文サイトだったのでスルーしてましたが、きっちりわかりやすく書いてあります。
【JasperSoft Studio サイト】
http://community.jaspersoft.com/project/jaspersoft-studio
iReportのサイトからもリンクで飛ぶことができます。
現在の手持ち資産がiReport Designer 4.0.2で作成したころのデザイナファイルなので
そのまま移行できるかがまだわかりませんが、
なぜやろうとしたかというと、別件の技術調査でJasperReports Serverを利用する検討を
始めたからです。
JasperReports Serverに上記4.0.2のデザイナを読み込ませてみたところ、
一覧表形式でよくあるような、表のヘッダ部分に定義してあるタイトル文字が出てこなかったため
バージョンの問題だろうかと思った次第です。

この辺はJasperReports Server側の話題になるので本資料では割愛しますが
別途まとめておきたいと思います。
しばらく情報を追っていなかったら、iReport DesignerはJaspersoft Studioへの
移行を推奨していました。
【iReport Designer サイト】
http://community.jaspersoft.com/project/ireport-designer
英文サイトだったのでスルーしてましたが、きっちりわかりやすく書いてあります。
【JasperSoft Studio サイト】
http://community.jaspersoft.com/project/jaspersoft-studio
iReportのサイトからもリンクで飛ぶことができます。
現在の手持ち資産がiReport Designer 4.0.2で作成したころのデザイナファイルなので
そのまま移行できるかがまだわかりませんが、
なぜやろうとしたかというと、別件の技術調査でJasperReports Serverを利用する検討を
始めたからです。
JasperReports Serverに上記4.0.2のデザイナを読み込ませてみたところ、
一覧表形式でよくあるような、表のヘッダ部分に定義してあるタイトル文字が出てこなかったため
バージョンの問題だろうかと思った次第です。

この辺はJasperReports Server側の話題になるので本資料では割愛しますが
別途まとめておきたいと思います。
ラベル:
iReports,
JasperReports
登録:
投稿 (Atom)