SQLの窓

2011年06月30日


PHP : ImageMagick : 背景が透過する画像を作成

▼ クリック


色指定で 'none' を指定してみて下さい。ネタ元は、PHP マニュアルの テキスト描画ページの投稿データです





posted by lightbox at 2011-06-30 23:59 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする

2011年06月26日


IE 専用 : 「信頼済みサイト」でのみ行う、InternetExplorer.Application オブジェクト

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript">

var ie

window.onunload = quitIe;

function openIe() {

	if ( !ie ) {
		ie = new ActiveXObject("InternetExplorer.Application");
		ie.Width = 800;
		ie.Height = 600;
		ie.Left = 100;
		ie.Top = 100;
		ie.Visible = true;
	}

}
function quitIe() {

	if ( ie ) {
		ie.Quit();
		ie = null;
	}
}

function naviIe( str ) {

	if ( ie ) {
		ie.Navigate( str )
	}

}

function checkIe( ) {

	var result;

	if ( ie ) {
		result = ie.Document.getElementsByTagName("img")(0).src
		alert(result)
	}

}


</script>
</head>
<body>
<pre>
<input type="button" value="IEを開始する" onclick='openIe()'>
<input type="button" value="IEを終了する" onclick='quitIe()'>
<input type="button" value="SQLの窓へ" onclick='naviIe("http://winofsql.jp/")'>
<input type="button" value="処理" onclick='checkIe()'>

</pre>
</body>
</html>


Excel の操作とは違い、呼び出したページの操作を行うので、都合のよい JavaScript でオブジェクト操作を行っています。Navigate2 という POST できるメソッドがあるのでプログラムからの投稿も一応は可能だと思います



posted by lightbox at 2011-06-26 13:52 | IE | このブログの読者になる | 更新情報をチェックする

IE 専用 : 「信頼済みサイト」でのみ行う、WEBページのデータの Excel への転送

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<?// IE 専用 ?>
<script FOR="window" EVENT="onunload" language="VBScript">

	if IsObject( WSH ) then
		Set WSH = Nothing
	end if

</script>
<script language="VBScript">

Dim WSH
Dim ExcelApp

' ******************************************************
' Excel 実行
' ******************************************************
Function LoadExcel(strPath)

	If Not IsObject(WSH) Then
		Set WSH = CreateObject("WScript.Shell")
	End If

	Call WSH.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
		strPath )

End Function

' ******************************************************
' Excel 処理
' ******************************************************
Function ExcelActiont()

	Dim ExcelApp
	Dim MyBook
	Dim Sheet

	Set ExcelApp = CreateObject("Excel.Application")

	' 表示状態にする( 非表示にしても良いが、
	' 処理が長い場合は表示しておいたほうが良い
	ExcelApp.Visible = True
	' 確認ダイアログを出さない
	ExcelApp.DisplayAlerts = False

	' ブックを読み込む
	Set MyBook = ExcelApp.Workbooks.Open("C:\Book1.xlsx")

	' シート
	Set Sheet = MyBook.Sheets("Sheet2")

	' そのシートを選択状態にする
	Sheet.select

	' セルにデータをセット
	' 5行目 2列

	Dim tbl,rows,I,cols

	' テーブルオブジェクトを取得
	' ※ 配列は、() で参照する
	Set tbl = document.getElementsByTagName("table")(0)

	' 行のコレクション
	Set rows = tbl.getElementsByTagName("tr")

	' TH は読み飛ばす
	For I = 1 to ( rows.length - 1 )
		' 列のコレクション
		Set cols = rows(I).getElementsByTagName("td")
		' 2番目( 名前 )
		Sheet.Cells(I+5, 2) = cols(1).innerText
	Next

	MyBook.SaveAs "C:\Book_test.xlsx"

	' Excel を終了
	ExcelApp.Quit

	' Excel 解放
	Set ExcelApp = Nothing

	' 保存したブックを Excel で実行
	Call LoadExcel( "C:\Book_test.xlsx" )

End Function


</script>
</head>
<body>
<input type="button" value="Excel起動" language="VBScript" onclick='Call ExcelActiont()'>



<STYLE type=text/css>
#lboxtable * {
	font-family: 'MS Pゴシック';
	font-size: 12px;
}
#lboxtable table {
	border-collapse: collapse;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: #FFFFFF;
}
#lboxtable td {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	/* white-space: nowrap; */
}
#lboxtable th {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: silver;
	/* white-space: nowrap; */
}
</STYLE>
<DIV id="lboxtable">
<table><TBODY>
<TR class=LboxTr>
<TH class=LboxTh  noWrap>社員コード</TH>
<TH class=LboxTh  noWrap>氏名</TH>
<TH class=LboxTh  noWrap>フリガナ</TH>
<TH class=LboxTh  noWrap>所属</TH>
<TH class=LboxTh  noWrap>性別</TH>
<TH class=LboxTh  noWrap>給与</TH></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0001</TD>
<TD class=LboxTd  noWrap>浦岡 友也</TD>
<TD class=LboxTd  noWrap>ウラオカ トモヤ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>270000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>山村 洋代</TD>
<TD class=LboxTd  noWrap>ヤマムラ ヒロヨ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>300000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>多岡 冬行</TD>
<TD class=LboxTd  noWrap>タオカ フユユキ</TD>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0004</TD>
<TD class=LboxTd  noWrap>高田 冬美</TD>
<TD class=LboxTd  noWrap>タカタ フユミ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
</TBODY></table></DIV>

</body>
</html>

IE 専用なので、スクリプトは VBScript を使用しています。Windows のオブジェクトなので、VBScript で使うほうがいろいろ都合が良く、VB や VBA の情報が参考にできます

元になるブックは、C:\Book1.xlsx としていますが、場所に制限はありません
転送後、別のブックに保存してから、再度 Excel を普通に呼び出して開いています
元になるブックを書式として完成させておいて、データのみ転送します
Excel に対する操作はもっといろいろ可能です

※ 元のフォーマットのシートを元に、個人単位の単票をシートに氏名を付けて複数シート
※ を収めたブックを作成するのが一般的です


タグ:VBScript excle IE
posted by lightbox at 2011-06-26 13:32 | IE | このブログの読者になる | 更新情報をチェックする

PHP雛型(2会話DB更新処理) : MySQL、XMLHttpRequest、XML、JSON、Canvas





位置指定は、全て position:absolute です
  ( プレースホルダは、position:relative )

データ参照に XMLHttpRequest を使用しています

main.php の data_format 変数に "xml" をセットすると、xml で呼び出します

xml の Content-Type は application/xml です
  ( デバッグ時はブラウザで直接確認します )

json の Content-Type は text/plain です
  ( デバッグ時にブラウザで直接確認する為です )

mysql のデータは mysql_fetch_array で取り出しています

入力エリアの枠は canvas を使用しています

更新は form で IFRAME に対して送信しています
  ( IFRAME 内に書き出された JavaScript で元の画面操作を行います )



posted by lightbox at 2011-06-26 13:01 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする

2011年06月24日


りそな銀行が、平成23年5月25日から「Visaデビットカード」を取り扱います

「りそなVisaデビットカード<JMB>」の取扱開始について(PDF : 956KB)

今日りそな銀行に行くと、でっかいポスターがところ狭しと貼ってあるのでびっくりしました。Visa デビットは、つい一年前まで、日本国内で、楽天銀行、スルガ銀行、日興コーディアル証券の3つしか無かったとてもレアなカードです。

Visa Worldwide Tokyo | Visaデビットカード

現在は、りそなを加えて以下のような銀行が発行しています。

 楽天銀行:楽天銀行デビットカード
 スルガ銀行:SURUGA Visaデビットカード
 ジャパンネット銀行:JNBカードレスVisaデビット(ワンタイムデビット)
 りそな銀行:りそなVisaデビットカード
 あおぞら銀行:あおぞらキャッシュカード・プラス
 埼玉りそな銀行:りそなVisaデビットカード
 近畿大阪銀行:近畿大阪デビットカード
 三菱東京UFJ銀行:三菱東京UFJ-VISAデビット

そもそも、どんなカードかはあまり一般的では無く、Visa のマークのある店でショッピングに使えるのですが、クレジットカードのような信用取引による「後払い」では無く、その場で引き落とされるものです。

りそなは、パンフレットで「第三のカード」と言い、クレジットカードでも電子マネーでもないと大きくタイトルに書いていますが、今日受付の人に専門的な事を聞いてみると、頭の上に「?」が3つぐらい出てたので、

「あ、べつにいいです」

と言うと、ほっとした表情で笑ってあやまっていました。無理の無い事です。ですが、Visa デビットは、ネットショッピングでも使えたりするので注意が必要です。

「二重引き落とし」が発生する可能性があります

原因としては、ネットショッピングで、決済したあと訂正、変更処理をしようとするとその場で引き落とされている為、すぐに元に戻す事ができません。ですから、最初の商品をやめて、次の商品に変えたつもりでも、ある期間は両方の代金が引き落とされてしまいます。

これは、店側としては仕方の無い事で、クレジットカードのシステムでデビットを使っているため、店側として別々の対処は不可能です。ですから、最近では店側が「デビットカードをできるだけ使わないようにお願いします」と、理由を説明してお願いする文章が「支払い方法」のページにあったりします。

そもそも、クレジットカードは店側がクレジットカード会社に「売上票」を送付するまで「売上」になっていないので、書類上の変更で済みますが、デビットカードの場合は、返金処理が月毎の締め処理に行われる為、「二重引き落とし状態」が起こります。

これは、店頭で使った場合でも、お店の処理に間違いがあると( 人間ですからあります )同様の「二重引き落とし状態」が発生する可能性があります。

さらに、Visa デビットではないですが、日本国内で使える各銀行のキャッシュカードで決済できる j-Debit にも同様の問題は発生すると思いますので、使う側がきっちりその特性を把握しておく必要があります。

最近は、代金引換の運送業者が専用端末で j-Debit を利用できるようにしている場合もあるので、「クレジットカード」とは違った意味での注意と、さらに、暗証番号を使う場合は、セキュリティにも気をつけましょう。( j-Debit )

関連する記事

VISA認証サービスとパーソナル・メッセージ



タグ:debit visa
posted by lightbox at 2011-06-24 13:42 | 記録 | このブログの読者になる | 更新情報をチェックする

2011年06月22日


IE8とIE9のconsoleコマンドの大きな違いとIE9のcd()コマンド

IE8 の開発者ツールドキュメント

開発者ツールを使用したスクリプトのデバッグ

IE9 の開発者ツールドキュメント

F12 ツールのコンソールを使ったエラーおよびステータスの表示 (Windows)

以下は、IE9 で使える console コマンドですが、IE8 では、
console.log、console.info、console.warn、console.error、console.assert
しか使えませんでした。

IE9 で注目は、console.dir です。( プロパティを JSON 表現しますが一階層 )
コマンド説明
log(message)
window.console.log("This is a logging message");   
"message" を、先頭に "LOG:" を付けてコンソールに出力します。"window.alert()" の代わりに使用します。
warn(message)
window.console.warn("This is a warning message");
警告の "message" をコンソールに出力します。メッセージの先頭には、警告アイコンが表示されます。"window.alert()" の代わりに使用します。
error(message)
window.console.error("This is an error message");  
エラーの "message" をコンソールに出力します。メッセージ テキストの色は赤色で、先頭にエラー アイコンが表示されます。"window.alert()" の代わりに使用します。
info(message)
window.console.info("This is an info message");
情報の "message" をコンソールに出力します。メッセージの先頭には、情報アイコンが表示されます。"window.alert()" の代わりに使用します。
clear()
window.console.clear();
コンソールのメッセージを消去します。スクリプトのエラー メッセージや [コンソール] のコマンド ラインに入力したスクリプト コードは消去されません。[コンソール] ウィンドウを右クリックし、[コンソールのクリア] オプションをクリックすると、メッセージがすべて消去されます。
dir(object)
window.console.dir(oExample);   
"object" のプロパティをコンソールに出力します。
assert(expression, message)
window.console.assert((x == 1),
 "assert message: x != 1"); 
"expression" の結果が false の場合に "message" を出力します。
profile(report)
window.console.profile("My profile report");
"report" というタイトルで、プロファイル情報の記録を開始します。このコマンドは、[プロファイル] タブで [プロファイリングの開始] ボタンをクリックしたときと同じ処理を実行します。
profileEnd()
window.console.profileEnd();
最後のレポートタイトルでのプロファイル情報の記録を停止します。このコマンドは、[プロファイル] タブで [プロファイリングの停止] ボタンをクリックしたときと同じ処理を実行します。 "Report" は、[プロファイル] タブで表示できます。
さらに、cd() コマンドで、トップレベルウインドウの参照で( デフォルト )
cd( フレームのid ) で、そのウインドウ内がカレントになります


関連する記事

IE8 : 開発者ツール(デベロッパーツールズ) の console API の正しい詳細


posted by lightbox at 2011-06-22 01:26 | IE開発者ツール | このブログの読者になる | 更新情報をチェックする

2011年06月21日


「Control Userpasswords2」による自動ログオン

「自動ログオン」で検索するとたくさんヒットしますが、それだけに確かな
「裏付け」が欲しかったので、MSDN で検索しました。

その結果ヒットした Microsoft 文書が以下のページです。

Windows XP、Windows Vista、および Windows 7 にログオンするための
 Ctrl + Alt + Del キー シーケンスを有効または無効にする方法

内容は「自動ログオン」ではありませんが、「自動ログオン」設定する為の
ダイアログを表示する方法は同じです。にも、かかわらず、

1) [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、
「Control Userpasswords2」と入力して Enter キーを押します。

とありました。やはり、このダイアログは「Control Userpasswords2」でし
か出せないようです。


関連する記事

Windows7 の control.exe の引数



posted by lightbox at 2011-06-21 22:38 | Windows7 | このブログの読者になる | 更新情報をチェックする

2011年06月20日


Flex4 : ローカルPCデータをテキストエリアにロード、テキストエリアの内容をローカルPC に保存



サンプルでは、Flex 内部のテキストエリアを使用していますが、Flex より
外部の JavaScript にアクセスする事によって、HTML 上にローカル PC の
ファイルの内容を利用する事ができます( 保存も同様です )

新規でテキストエリアに入力すると、改行コードが CR でした。HTML 側の
データを使う場合は、変換は必要無いと思います。

▼ クリックすると、実行ページが開きます

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	xmlns:s="library://ns.adobe.com/flex/spark"
	initialize="initData()"
	usePreloader="false"
>
<!--
***************************************************
 Flex4 における 絶対位置指定
*********************************************** -->
<s:layout>
	<s:BasicLayout />
</s:layout>

<!--
***************************************************
 現在のクラスの非デフォルト、非ビジュアルプロパ
 ティ を宣言します。例えば、効果、バリデーター、
 およびフォ ーマッターを定義します。
*********************************************** -->
<fx:Declarations>
</fx:Declarations>

<!--
***************************************************
 名前空間が必要になっています
 #id で個別設定が可能です
*********************************************** -->
<fx:Style>
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace s "library://ns.adobe.com/flex/spark";

s|Button {
	color : #990000;
	font-size : 12;
}

</fx:Style>

<fx:Script>
<![CDATA[

	import mx.formatters.*;

	// HTTPService のイベント用
//	import mx.rpc.events.*;
	// Alert 用
	import mx.controls.*;

	// テキストファイルを読み込む為のオブジェクト
	private var fr:FileReference;

	// ファイル名をパネルのタイトルに表示する為の変数
	[Bindable]
	private var fname:String = "";

	// データ保存用
	import mx.graphics.codec.*;
	private	var png_enc:PNGEncoder;
	private var ba_data:ByteArray;
	private	var text_data:String;
	private var ctype:String = "utf-8";


	// *********************************************************
	// ログ表示
	// *********************************************************
	private function log(data:Object):void {

		// 日付編集用
		var fmt:DateFormatter = new DateFormatter();

		fmt.formatString = "YYYY/MM/DD HH:NN:SS";
		var logdt:String = fmt.format( new Date );

		// JavaScript の呼び出し
		ExternalInterface.call(
			"console.log", logdt,
			" "+data
		);

	}

	// *********************************************************
	// アプリケーションの初期化
	// *********************************************************
	private function initData():void {

		// メッセージ
		log("initData() が実行されました" );

		Security.allowDomain("*");

		// ファイル読み込み用
		fr = new FileReference();
		// PNG 画像作成用
		png_enc = new PNGEncoder();


		// IO エラー
		fr.addEventListener(IOErrorEvent.IO_ERROR, 
			function (event:IOErrorEvent):void {
				Alert.show("IOError:" + event.text );
			}
		);

		// キャンセル
		fr.addEventListener(Event.CANCEL, 
			function (event:Event):void {
				Alert.show( "ファイル選択をキャンセルしました" );
			}
		);

		// ファイルが選択された
		fr.addEventListener(Event.SELECT,
			function (event:Event):void {
				log("ファイルが選択されました" );
				var file:FileReference = FileReference(event.target);
				fname = file.name;
				log("name : " + file.name );
				// 読み込み開始
				fr.load();
			}
		);

		// バイナリロード完了
		fr.addEventListener(Event.COMPLETE,
			function(event:Event):void {

				// ByteArray(バイナリ) を作成
				ba_data = ByteArray(fr.data);

				// ボタンによって、キャラクタセットを変更
				// ( バイナリより、テキストを読み込む )
				text_data = ba_data.readMultiByte(ba_data.length, ctype);

				// CRLF の場合、LF に変更
				var myPattern:RegExp = /\r\n/g;
				text_data = text_data.replace(myPattern,"\n");
				textCheck.text = text_data;

			}
		);

	}

	// *********************************************************
	// ファイル参照ダイアログを開く
	// *********************************************************
	private function selectFile():void {

		try {
			fr.browse();
		}
		catch (e:Error) {
			log(e);
		}

	}

	// *********************************************************
	// 保存
	// ※ テキストエリア内のテキストの直接保存
	// *********************************************************
	private function saveText():void {


		ba_data = new ByteArray();

		// テキストエリア内の文字列
		text_data = textCheck.text;

		// CR を CRLF に変更
		// デフォルト状態で入力すると、改行が \r になるようなので
		// どんな場合もいったん \r に変換してから、\r\n に再変換
		var myPattern:RegExp = /\r\n/g;
		text_data = text_data.replace(myPattern,"\r");
		myPattern = /\n/g;
		text_data = text_data.replace(myPattern,"\r");
		myPattern = /\r/g;
		text_data = text_data.replace(myPattern,"\r\n");

		ba_data.writeMultiByte( text_data, ctype );

		try {
			fr.save( ba_data, "save_data.txt" );
		}
		catch( e:Error ) {
			log( e );
		}

	}

	// *********************************************************
	// 保存
	// ※ Panel オブジェクト全体を画像として保存
	// *********************************************************
	public function saveImage2():void {

		// パネルサイズのビットマップデータを作成
		var bitmapData:BitmapData = new BitmapData(imagePanel.width, imagePanel.height);

		// 用意したビットマップデータにパネルを描画
		bitmapData.draw(imagePanel);

		// ビットマップデータを PNG に変換
		ba_data = png_enc.encode(bitmapData);

		// PNG バイナリ(ByteArray) を保存
		fr.save( ba_data, "save_panel.png" );

	}

]]>
</fx:Script>

<!--
***************************************************
 Flex4 における 絶対位置指定の画面定義
*********************************************** -->

<s:Button 
	id="loadButton1"
	x="10" y="10"
	width="140"
	label="UTF8N テキスト選択"
	click="ctype = 'utf-8';selectFile();"
/>

<s:Button 
	id="loadButton2"
	x="160" y="10"
	width="140"
	label="SJIS テキスト選択"
	click="ctype = 'shift_jis';selectFile();"
/>

<s:Button 
	id="saveButton"
	x="310" y="10"
	width="140"
	label="テキストファイル保存"
	click="saveText();"
/>

<s:Button 
	id="savePanelButton"
	x="460" y="10"
	width="120"
	label="Panel 保存"
	click="saveImage2();"
/>

<mx:Panel
	id="imagePanel"
	title="{fname}"
	x="10" y="40"
	paddingLeft="0"
	paddingRight="0"
	layout="absolute"
>
	<mx:TextArea
		x="0" y="0"
		id="textCheck"
		width="650"
		height="500"
	
	/>
</mx:Panel>

</s:Application>



posted by lightbox at 2011-06-20 02:48 | Flex | このブログの読者になる | 更新情報をチェックする

Flex4 : ローカルPC画像を Image オブジェクトにロード、Image オブジェクトに表示されている画像をローカルPC に保存



Image は、Panel 内に設置しているので、Panel ごと保存する方法も実装しています。

▼ クリックすると、実行ページが開きます

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	xmlns:s="library://ns.adobe.com/flex/spark"
	initialize="initData()"
	usePreloader="false"
>
<!--
***************************************************
 Flex4 における 絶対位置指定
*********************************************** -->
<s:layout>
	<s:BasicLayout />
</s:layout>

<!--
***************************************************
 現在のクラスの非デフォルト、非ビジュアルプロパ
 ティ を宣言します。例えば、効果、バリデーター、
 およびフォ ーマッターを定義します。
*********************************************** -->
<fx:Declarations>
</fx:Declarations>

<!--
***************************************************
 名前空間が必要になっています
 #id で個別設定が可能です
*********************************************** -->
<fx:Style>
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace s "library://ns.adobe.com/flex/spark";

s|Button {
	color : #990000;
	font-size : 16;
}

</fx:Style>

<fx:Script>
<![CDATA[

	import mx.formatters.*;

	// HTTPService のイベント用
//	import mx.rpc.events.*;
	// Alert 用
	import mx.controls.*;

	// 画像ファイルを読み込む為の二つのオブジェクト
	private var fr:FileReference;
	private	var loader:Loader

	// 画像名をパネルのタイトルに表示する為の変数
	[Bindable]
	private var fname:String = "";

	// PNG 画像保存用
	import mx.graphics.codec.*;
	private	var png_enc:PNGEncoder;
	private var ba_data:ByteArray;


	// *********************************************************
	// ログ表示
	// *********************************************************
	private function log(data:Object):void {

		// 日付編集用
		var fmt:DateFormatter = new DateFormatter();

		fmt.formatString = "YYYY/MM/DD HH:NN:SS";
		var logdt:String = fmt.format( new Date );

		// JavaScript の呼び出し
		ExternalInterface.call(
			"console.log", logdt,
			" "+data
		);

	}

	// *********************************************************
	// アプリケーションの初期化
	// *********************************************************
	private function initData():void {

		// メッセージ
		log("initData() が実行されました" );

		Security.allowDomain("*");

		// ファイル読み込み用
		fr = new FileReference();
		// Bitmap 変換用
		loader = new Loader();
		// PNG 画像作成用
		png_enc = new PNGEncoder();


		// IO エラー
		fr.addEventListener(IOErrorEvent.IO_ERROR, 
			function (event:IOErrorEvent):void {
				Alert.show("IOError:" + event.text );
			}
		);

		// キャンセル
		fr.addEventListener(Event.CANCEL, 
			function (event:Event):void {
				Alert.show( "ファイル選択をキャンセルしました" );
			}
		);

		// ファイルが選択された
		fr.addEventListener(Event.SELECT,
			function (event:Event):void {
				log("ファイルが選択されました" );
				var file:FileReference = FileReference(event.target);
				fname = file.name;
				log("name : " + file.name );
				// 読み込み開始
				fr.load();
			}
		);

		// バイナリロード完了
		fr.addEventListener(Event.COMPLETE,
			function(event:Event):void {
				// この時点ではまだ ByteArray なので、
				// Bitmap に変換する為に
				//  Loader オブジェクトで再度ロード
				log( "ByteArray ロード完了" );
				loader.loadBytes(fr.data);
			}
		);

		// 画像ロード完了
		loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
			function(event:Event):void {
				log( "画像ロード完了" );
				// Image コントロールに Bitmap をセットして表示
				imageCheck.source = Bitmap(event.target.content);
			}
		);

	}

	// *********************************************************
	// ファイル参照ダイアログを開く
	// *********************************************************
	private function selectFile():void {

		try {
			fr.browse();
		}
		catch (e:Error) {
			log(e);
		}

	}

	// *********************************************************
	// 保存
	// ※ Image オブジェクトに格納された画像の直接保存
	// *********************************************************
	private function saveImage1():void {


		try {
			// ビットマップデータを PNG に変換
			ba_data = png_enc.encode( Bitmap(imageCheck.content).bitmapData );
		}
		catch( e:Error ) {
			log( e );
		}

		// PNG バイナリ(ByteArray) を保存
		fr.save( ba_data, "save_1.png" );

	}

	// *********************************************************
	// 保存
	// ※ Panel オブジェクト全体を画像として保存
	// ※ Image オブシェクトに適宜縮小されている画像イメージ
	//    を保存したい場合は、imagePanel のかわりに imageCheck
	//    を使用します
	// *********************************************************
	public function saveImage2():void {

		// パネルサイズのビットマップデータを作成
		var bitmapData:BitmapData = new BitmapData(imagePanel.width, imagePanel.height);

		// 用意したビットマップデータにパネルを描画
		bitmapData.draw(imagePanel);

		// ビットマップデータを PNG に変換
		ba_data = png_enc.encode(bitmapData);

		// PNG バイナリ(ByteArray) を保存
		fr.save( ba_data, "save_2.png" );

	}

]]>
</fx:Script>

<!--
***************************************************
 Flex4 における 絶対位置指定の画面定義
*********************************************** -->

<s:Button 
	id="loadButton"
	x="10" y="10"
	width="120"
	label="画像選択"
	click="selectFile();"
/>

<s:Button 
	id="saveButton"
	x="140" y="10"
	width="120"
	label="画像保存"
	click="saveImage1();"
/>

<s:Button 
	id="savePanelButton"
	x="270" y="10"
	width="120"
	label="Panel保存"
	click="saveImage2();"
/>

<mx:Panel
	id="imagePanel"
	title="{fname}"
	x="10" y="40"
	paddingLeft="0"
	paddingRight="0"
	layout="absolute"
>
	<mx:Image
		x="0" y="0"
		id="imageCheck"
		width="650"
		height="500"
	
	/>
</mx:Panel>

</s:Application>



posted by lightbox at 2011-06-20 01:58 | Flex | このブログの読者になる | 更新情報をチェックする

Excel(Word)上のテーブル情報(HTML)の再利用

テーブル情報の再利用



複雑なテーブル作成なら、Excel で作るのが簡単ですが、そのままの HTML だと
やたらとExcel専用の無駄な情報が付加されてしまうので結構再利用がしづらい
ですが、単純な TABLE を作成する事ができます

■ width や align は残ります。





真ん中のテキストエリアに CSS と HTML が取り出されます。再度 TABLE や
TD( TH ) に対してスタイルを設定したい場合は、id 内要素指定で一括指定
します。

■ TABLE 要素そのものは <table> のみになります
■ TABLE 内にある bgcolor や TD 内の FONT 要素は削除されます
( もしうまく削除されない場合は、ソースを表示して元へ戻してから実行して下さい )
■ TABLE 内の全ての class と style 記述は削除されます


関連する記事

WEB上のテーブル情報(HTML)の再利用


posted by lightbox at 2011-06-20 01:02 | WEBサービス | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Windows
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり