Asai のすべての投稿

【活動報告】講義に行ってきました

久しぶりの投稿になります。(ネタができたので)
大寒波のため、体調管理にはお気を付け下さい。

先日とある大学で講義のお願いがありましたので、
1コマ分、講義を行ってきました。

テーマは
[仕事について、学生時代について、就職活動について]・・・などなど。

学生の方々はなかなか熱心で、
就職活動を控えているということもあり、就職活動についての話では、
特に興味深く聞いて下さりました。

世間では売り手市場などと謳われてますが、
学生の方々にとっては、初めての就職活動を経験するわけなので、
良い意味で、学生の方々の緊張感を感じることが出来ました。

もちろん、講義の中で弊社の紹介も行ってまいりましたので、
またこうゆう機会があれば、弊社を知ってもらうため、どんどんアピールしていきます。

講義風景

【Asai’s memo】PCセットアップ編(入力履歴の削除)

夏風邪が流行っております。
皆様、体調にはお気を付け下さいね。

最新、PCのセットアップを行う機会が増えました。

第三者にPCを利用してもらうときに、
セットアップ時に入力していた情報が消えないまま勝手に保存されていた。なんてことがあります。
削除方法をメモとして記載しておきますので参考になればと。

入力した履歴を消す設定(windows7)

①スタートメニューより[コントロールパネル]を開く。
②デスクトップのカスタマイズをクリックする。
 20150630_1
③タスクバーと[スタート]メニューをクリックする。
 20150630_2
④[スタート]メニュータブを選択し、プライバシー欄の最近開いたプログラムを[スタート]メニューに保存し表示する(P)のチェックを外す。
 20150630_3
④適用ボタンを押して完了。

上記を行うと、勝手に保存されるスタートメニューで入力した情報を削除してくれますよー。

【WebPerformer】明細に行挿入機能②

拡張で使用する JavaScriptのコードなどは、製品サポートの対象外となるので、充分注意して下さい。

さっそく行挿入機能(オリジナル)ソースコードを記載します。
実際の動作としては、行挿入のボタン押下以下の行を1行下にずらす処理を行っています。
理由としては、[+]ボタンのID名称はマニュアルに記載されておらず、今後のバージョンアップ等々で変更される可能性が有る為です。
行追加の動きは見送り、下にずらす形で今回は補います。

function Insert_Rows(){

	//ボタンが押下された行数を取得。
	var currentIndex = disp.get__SRC_EVENT_ROWS();

	//空行挿入用に変数にセットしておく。
	var empty_rows = currentIndex;

	//全行カウント
	var all = disp.get_TEST1_count();
	var SURYO	= [];
	var TANI	= [];
	var TANKA	= [];
	var KINGAKU	= [];
	//行のステータス
	var STATUS	= [];

	//最終行をカレント行とし、空行挿入が行えるかをチェックする。
	disp.setCur_index(all-1);

			//押下行より配列へ値をセット
			for( i = currentIndex; i < all; i++ ){
				//カレント行の指定
				disp.setCur_index(i);
				//添字の初期化
				var ln = i;

				//ボタン押下行の値を変数にセットしておく。※次下行にセットする。
				SURYO[ln]	= disp.get_SURYO();
				TANI[ln]	= disp.get_TANI();
				TANKA[ln]	= disp.get_TANKA();
				KINGAKU[ln]	= disp.get_KINGAKU();

				//行のステータス
				STATUS[ln]	= disp.get__Status_TEST1();
			}

			//行に値をセット
			for( i = currentIndex; i < all; i++ ){

				//カレント行の指定
				disp.setCur_index(i);

				//添字の初期化
				var ln = i;
				if( i == empty_rows ){

					//挿入行を空白にする。(挿入されたかのような動作にしている。)
					disp.set_SURYO(String(""));
					disp.set_TANI(String(""));
					disp.set_TANKA(String(""));
					disp.set_KINGAKU(String(""));

					//行のステータス
					disp.set__Status_TEST1("INSERT");
				}
				else{

					//挿入行以外は値を画面にセット。
					disp.set_SURYO(String(SURYO[ln-1]));
					disp.set_TANI(String(TANI[ln-1]));
					disp.set_TANKA(String(TANKA[ln-1]));
					disp.set_KINGAKU(String(KINGAKU[ln-1]));

					//行のステータス
					disp.set__Status_TEST1(String(STATUS[ln-1]));
				}
			}
		}
	return true;
   }

基本的なコードですので、エラーチェック等々は必要です。
例えば、最終行の項目に入力値が無い状態の場合のみ行挿入を行う場合、最終行をカレント行とし、入力チェックを入れる必要があります。

//最終行をカレント行
disp.setCur_index(all-1);
if(入力チェック){
       正常処理
}
else{ 
       alert("最終行に行追加が必要");
}

ではこの辺で・・・。

【WebPerformer】明細に行挿入機能①

4月も最終日という事で、、、
天候が安定しない日々が続いておりますが、この時期の体調管理には気を付けて下さい。

今回もWebPerformerのユーザ定義実装についての記事になります。
意外にもWebPerformer関連の地味なユーザ定義の情報は評判が良いらしく、引き続き投稿していこうかと思います。

WebPerformerの標準機能だと、明細に行の追加を行う際、最終行に追加されます。
ですが、システムをご利用になるお客様の中では、[途中行に新規行を追加したい]と考えておられる方も多いのではないでしょうか。

javascriptをカスタマイズし、オリジナルの途中行挿入機能を実装してみることにします。
WebPerformerが標準で実装している行追加・削除の[+][-]ボタンの機能は特に変更せず、
アクションボタン押下時にjavascriptをコールし、新規行を挿入するイメージになります。

後程説明しますが、行挿入と記載しておりますが実際には[行が下に1段ズレる動作]を利用しています。
イメージは下図のようになります。

①行挿入前
001
②行挿入後
002

【WebPerformer】明細行のカスタム(上下切り替え②)

①画面上で、下図のように値が入力されます。
20150227_02

②明細行右端の下矢印ボタンを押下します。押下時に、
下記SUMMARY_CUSTOM.jsに記述した内容がコールされます。
今回、function:Change_Rows_Downを作成します。

  function Change_Rows_Down(){
	//ボタンが押下された行数を取得。
	var currentIndex = disp.get__SRC_EVENT_ROWS();
	//全行カウント
	var all = disp.get_SUMMARY_count();
	//最終行の挿入ボタンを押下時は、確認ダイアログを表示する。
	if(parseInt(currentIndex) + 1 == parseInt(all)){ 
		alert("最終行では下行の切り替えができません。"); 
	}
	else{
		var COL1	= [];
		var COL2	= [];
		var COL3	= [];
		var COL4	= [];
		var COL5	= [];
		//行のステータス
		var STATUS	= [];
		//下行からループを開始するためのセット用変数
		var currentIndex_add = parseInt(currentIndex) + 1;
		//添字の初期化
		var ln = currentIndex;
		//押下行とその下行のみ、配列へ値をセット
		for( i = currentIndex_add; i >= currentIndex; i-- ){

			//カレント行の指定
			disp.setCur_index(i);
			//ボタン押下行の値を変数にセットしておく。※次下行にセットする。
			COL1[ln]	= disp.get_COL1();
			COL2[ln]	= disp.get_COL2();
			COL3[ln]	= disp.get_COL3();
			COL4[ln]	= disp.get_COL4();
			COL5[ln]	= disp.get_COL5();
			//行のステータス
			STATUS[ln]	= disp.get__Status_SUMMARY();
			//添字はカウントアップする。
			ln++;
		}
		//行に値をセット
		for( i = currentIndex; i <= currentIndex_add; i++ ){
			//カレント行の指定
			disp.setCur_index(i);
			//添字の初期化
			var ln = i;
			//挿入行以外は値を画面にセット。
			disp.set_COL1(String(COL1[ln]));
			disp.set_COL2(String(COL2[ln]));
			disp.set_COL3(String(COL3[ln]));
			disp.set_COL4(String(COL4[ln]));
			disp.set_COL5(String(COL5[ln]));
			//行のステータス
			disp.set__Status_SUMMARY(String(STATUS[ln]));
		}
	}
	return true;
    }

③functionコール後、明細の入力値が入れ替わります。
下図のように切替われば、正常に処理が実装されています。
20150227_03
同様に上矢印のボタン押下の処理も記述することで、上下の切替が可能になります。

【WebPerformer】明細行のカスタム(上下切り替え①)

WebPerformerが生成する明細一覧は非常に便利です。
一覧件数に合わせてページの切替を自動的に生成してくれます。
([次へ][前へ]などの一覧切替処理は手動で実装する場合、少し時間がかかります。)

その明細行のカスタムについて紹介します。
前記事でも記載しました通り、ユーザ独自でカスタムを行いたい場合は、
各画面ごとのJavascriptファイルに処理を記述する必要があります。

今回はサンプルとして、IOのSUMMARY_CUSTOMを作成し、javascriptファイルのSUMMARY_CUSTOM.jsに処理を記述します。
明細の上下行切替の機能を記述します。

例えば何かのシステムでINPUT作業中、
1行目と2行目に入力した値を上下入れ替えたいなぁ。と思う場面があるのではないでしょうか。
少ない項目数でしたら手動で入れ替えることも可能ですが、項目数が増えてくると煩わしい作業になります。
今回は明細行に取り付けたボタンを押下することで入力した値を上下入れ替えます。

画面イメージは下図の通りです。
20150227_01

明細行ごとに配置した上下ボタンを押下することで、
入力した内容が上下反転します。

次回の投稿へ続く。

WebPerformerについて

弊社ではWebPerformerという開発ツールを使用し、Webアプリケーションの開発を行っております。

キヤノンソフトウェア株式会社が提供しているもので、
[Webアプリケーション100%自動生成]を謳ってるようです。
↓WebPerformerのツール説明のリンク
http://www.canon-soft.co.jp/product/web_performer/

小~中規模のWEBシステム案件の開発に適しているツールかと思われますが、
基本のフレーム作成が不要な点はスピード開発に向いていますが、
応用を利かした画面を作る際は、色々と工夫が必要なツールかと思います。

画面をカスタマイズする際、
独自で定義するjavascriptなど、ある程度は必須となっておりますので、
実際に弊社で独自に作成したjavascriptの参考例を紹介したいと思います。

Team Developer開発手順

総合開発ツールのTeamDeveloperは、
大人数でのシステム開発に力を発揮致します。

とあるプロジェクトでシステムの開発を行う場合、
各プログラマーはどのようにして、
「プログラムソースのファイルを管理するのか?
-手順をご紹介。(※手段は色々ですが一般的手法を紹介)

TeamDeveloperの開発ツールで作成したファイルは基本的に
下記の3つで保存する形になります。
①アプリケーションファイル
②アプリケーションライブラリファイル
③テキストファイル

01

①のアプリケーションファイルはシステムの共通画面を作成したソースが保存されています。
(例:ログイン、メニュー画面)

②のアプリケーションライブラリファイルでは、
各プログラマーが担当するフェーズ(発注処理など)を作成したソースが保存されます。
システムのフェーズ毎に
②のアプリケーションライブラリはファイルが保持されるイメージです。

③のテキストファイルでの保存はあまり行うことがありませんが、、、
他ツールでのソースの改変やバージョンの差異を確認する場合に
テキストファイルに落とすことがよくあります。

①のアプリケーションファイル内で
②の各アプリケーションライブラリファイルをインクルードすることにより、
システムが統合されたひとつのアプリケーションファイルが作成されます。
その後コンパイル⇒完了 といった流れです。
共通フレーム等も②のファイルで管理することにより、
担当のプログラマーは
他担当者のソースファイルを改変することなく安全にバージョンアップを行えます。

バージョン管理はSVN等を使用しましょうね。
次は実際にツールを使います。

オブジェクト指向型の開発言語「Centura」について

弊社でシステム開発を行っている言語のひとつである「Centura」について、少し説明しようかと思います。
あまり聞きなれないオブジェクト指向言語のCenturaですが、
システム開発時において生産性が高いことで知られています。
またどちらかというとニッチな言語ということで、
弊社の開発メンバーによるCenturaでのシステム開発レベルは
府内でも数本の指に入るかと思われます。

Centura言語での開発が行える開発ツールは
現在、TeamDeveloper6.2のバージョンが最新です。※2014/10/14現在
このTeamDeveloperはいくつかの特徴を持っています。

1.優れた互換性
2.高い生産効率
3.高速AP開発
4.拡張性の自由度

などが挙げられます。

詳しい説明についてはまたの機会に。(宣伝みたいになってしまうので)
私個人は、このCentura言語の開発に、1プロジェクトのみ携わっただけですが、
初めて言語を触りだしてから、ある程度使えるようになるまで時間はかからなかったように思います。
完全な個人的使用感で申し訳ないですが、VBよりもとっつきやすい気がしました。
(自由度で言えばVBの方が上かと感じますが・・・。)

次回は、個人の勉強・復習の意を込めて、ツールの使い方などを説明します。
あまり、Team Developerについての技術的なサイト・ブログ等は見受けられないので
微力ながら情報発信の場となれば幸いです。