|
http://lightbox.on.coocan.jp/php/flex2/req.swf
| <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
creationComplete="initApp()"
paddingTop="25"
viewSourceURL="http://winofsql.jp/VA003334/flex2071129234745.htm"
>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.events.*;
import flash.net.*;
import flash.display.*;
import PNGEncoder;
import mx.utils.Base64Encoder;
private var post:URLLoader;
// *****************************************************
// 初期化
// *****************************************************
private function initApp():void {
post = new URLLoader();
// IO エラー
post.addEventListener(IOErrorEvent.IO_ERROR, systemError);
// 処理終了
post.addEventListener(Event.COMPLETE, completeUpload);
// 右クリックメニュー
var cMenu:ContextMenu = new ContextMenu();
cMenu.hideBuiltInItems();
var cMenuItem:ContextMenuItem =
new ContextMenuItem("保存された画像の表示");
cMenuItem.addEventListener(
ContextMenuEvent.MENU_ITEM_SELECT, dispImage
);
cMenu.customItems.push(cMenuItem);
var cMenuItem2:ContextMenuItem =
new ContextMenuItem("ソースコード");
cMenuItem2.addEventListener(
ContextMenuEvent.MENU_ITEM_SELECT, dispSource
);
cMenu.customItems.push(cMenuItem2);
this.contextMenu = cMenu;
}
// *************************************************
// 保存された画像の表示
// *************************************************
private function dispImage(event:ContextMenuEvent):void {
var req:URLRequest = new URLRequest("./upload.png");
navigateToURL(req, "_blank");
}
// *************************************************
// ソースの表示
// *************************************************
private function dispSource(event:ContextMenuEvent):void {
var req:URLRequest = new URLRequest(
"http://winofsql.jp/VA003334/flex2071129234745.htm"
);
navigateToURL(req, "_blank");
}
// *****************************************************
// HTTPServiceを使用してHTTPリクエスト(GET)を行う
// *****************************************************
private function getXML(
httpSrv:HTTPService,
targetURL:String,
test:Number=-1
):void {
// リクエストするURLをセット
httpSrv.url = targetURL;
httpSrv.request.test = test;
httpSrv.request.name = "";
if ( sname.text != "" ) {
httpSrv.request.name = sname.text;
}
// レスポンス結果のデータフォーマット
httpSrv.resultFormat = "e4x";
httpSrv.method = "GET";
// リクエストを実行
var at:AsyncToken = httpSrv.send();
at.reqId = test;
}
// *****************************************************
// HTTPServiceが成功
// *****************************************************
private function resultHandler(e:ResultEvent):void
{
var dataSet:Object = null;
dataSet = e.result.row;
dg1.dataProvider = dataSet;
rid.text = e.token.reqId;
dg1.selectedIndex = 0;
}
// *****************************************************
// HTTPServiceでエラーが発生した
// *****************************************************
private function faultHandler(e:FaultEvent):void
{
Alert.show("HTTPService失敗\n\n理由 : " + e.fault.message);
}
// *****************************************************
// メニュー処理
// *****************************************************
private function menuHandler(event:MenuEvent):void {
if ( event.item.@data == "req_1" ) {
getXML(srv, './data.php');
}
if ( event.item.@data == "req_2" ) {
getXML(srv, './data.php', 0);
}
if ( event.item.@data == "req_3" ) {
getXML(srv, './data.php', 1);
}
if ( event.item.@data == "act_1" ) {
dg1.dataProvider = new ArrayCollection();
}
if ( event.item.@data == "act_2" ) {
var e:ContextMenuEvent =
new ContextMenuEvent(
ContextMenuEvent.MENU_ITEM_SELECT
);
dispImage( e );
}
if ( event.item.@data == "act_3" ) {
var e2:ContextMenuEvent =
new ContextMenuEvent(
ContextMenuEvent.MENU_ITEM_SELECT
);
dispSource( e2 );
}
}
// *****************************************************
// Panel を画像化してアップロード
// Windows 2000 の IIS では応答が帰らず、IE 死亡
// AN ATTPD では、データが渡らない
// *****************************************************
private function uploadImage(target:DisplayObject):void
{
var bmp:BitmapData = new BitmapData(target.width, target.height);
bmp.draw(target);
var png:ByteArray = PNGEncoder.encode(bmp);
var req:URLRequest = new URLRequest("./savePng.php");
req.data = png;
req.method = URLRequestMethod.POST;
post.load(req);
bmp.dispose();
}
// *************************************************
// 処理終了
// *************************************************
private function completeUpload(event:Event):void {
Alert.show(post.data);
}
// *************************************************
// IO エラー
// *************************************************
private function systemError(event:IOErrorEvent):void{
Alert.show("IOError:" + event.text);
}
]]>
</mx:Script>
<mx:HTTPService id="srv" showBusyCursor="true"
result="resultHandler(event)"
fault="faultHandler(event)" />
<mx:XML format="e4x" id="myMenuModel">
<root label="Menu">
<menuitem label="問合せ">
<menuitem label="ロード" data="req_1"/>
<menuitem label="男性" data="req_2"/>
<menuitem label="女性" data="req_3"/>
</menuitem>
<menuitem label="処理">
<menuitem label="クリアデータ" data="act_1"/>
<menuitem type="separator"/>
<menuitem label="保存された画像の表示" data="act_2"/>
<menuitem label="ソースコード" data="act_3"/>
</menuitem>
</root>
</mx:XML>
<mx:Panel
id="panel"
title="社員問合せ" width="660" height="550"
paddingTop="10"
paddingBottom="10"
paddingLeft="10"
paddingRight="10"
>
<mx:MenuBar
id="myMenu"
labelField="@label"
showRoot="false"
itemClick="menuHandler(event);"
width="100%"
fontWeight="bold"
>
<mx:dataProvider>
{myMenuModel}
</mx:dataProvider>
</mx:MenuBar>
<mx:HBox>
<mx:Label text="氏 名"/>
<mx:TextInput id="sname" text=""/>
<mx:Button label="ロード" click="getXML(srv, './data.php')" />
<mx:Button label="男性" click="getXML(srv, './data.php', 0)" />
<mx:Button label="女性" click="getXML(srv, './data.php', 1)" />
<mx:Button
label="クリアデータ"
click="dg1.dataProvider = new ArrayCollection()"
/>
<mx:Button
label="現在の状態を画像化"
click="uploadImage(panel)"
/>
</mx:HBox>
<mx:DataGrid id="dg1" height="400">
<mx:columns>
<mx:DataGridColumn headerText="CD" dataField="COL_1" width="46"/>
<mx:DataGridColumn headerText="氏名" dataField="COL_2" width="70"/>
<mx:DataGridColumn headerText="フリガナ" dataField="COL_3" width="100"/>
<mx:DataGridColumn headerText="所属" dataField="COL_4" width="46"/>
<mx:DataGridColumn headerText="性別" dataField="COL_5" width="40"/>
<mx:DataGridColumn headerText="作成日" dataField="COL_6" width="70"/>
<mx:DataGridColumn headerText="更新日" dataField="COL_7" width="70"/>
<mx:DataGridColumn
headerText="給与"
dataField="COL_8"
width="60"
textAlign="right"
/>
<mx:DataGridColumn
headerText="手当"
dataField="COL_9"
width="60"
textAlign="right"
/>
<mx:DataGridColumn headerText="管理者" dataField="COL_10" width="46"/>
</mx:columns>
</mx:DataGrid>
<mx:HBox>
<mx:Label text="Request ID => "/>
<mx:Label id="rid" text=""/>
</mx:HBox>
</mx:Panel>
</mx:Application>
| |
|
|
|
| <?
ini_set( 'display_errors', "1" );
$conf_client_charset = "utf-8";
$conf_db_charset = "euc-jp";
$conf_db_type = 1;
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Content-Type: text/xml; Charset=$conf_client_charset" );
mb_language( "ja" );
mb_internal_encoding("utf-8");
print "<?xml version=\"1.0\" encoding=\"$conf_client_charset\"?>";
print "<data>";
# **********************************************************
# 外部ファイル
# **********************************************************
inc( "http://homepage2.nifty.com/lightbox/gen/db.php" );
$SQL = new DB( "localhost", "lightbox", "root", "" );
$Cond = "";
$str='';
$str.="select 社員コード \n ,氏名 \n ,フリガナ \n ,所属 ";
$str.="\n ,case 性別 \n when 1 then '女性' \n when ";
$str.="0 then '男性' \n end as 性別 \n ,作成日 \n ,更新日 ";
$str.="\n ,case \n when 給与 < 1000 then \n 給与 ";
$str.="\n when 給与 < 1000000 then \n concat( \n";
$str.="truncate(給与/1000,0),',',right(給与,3) ";
$str.="\n ) \n when 給与 < 1000000000 then \n concat( ";
$str.="\n truncate(給与/1000000,0),',' \n";
$str.=", right(concat('00',mod(truncate(給与/1000,0),1000)),3) ";
$str.=",',' \n ,right(給与,3) \n ) \n end as 給与 ";
$str.="\n ,手当 \n ,管理者 \n from 社員マスタ ";
$Query .= $str;
if ( $_GET['test'] == 1 ) {
$Cond .= " where 性別 = 1";
}
if ( $_GET['test'] == 0 ) {
$Cond .= " where 性別 = 0";
}
if ( $_GET['name'] != "" ) {
if ( $Cond != "" ) {
$Cond .= " and ";
}
else {
$Cond .= " where ";
}
$Cond .= " 氏名 like '%{$_GET['name']}%'";
}
$Column = $SQL->QueryEx( $Query . $Cond );
while( $Column ) {
print el(0,"row");
for( $i = 0; $i < 11; $i++ ) {
print elset(1,"COL_" . ($i+1), $Column[$i] );
}
print el(0,"/row");
print "\n";
$Column = $SQL->QueryEx( );
}
# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();
print "</data>";
# **********************************************************
# URL によるコード取得
# **********************************************************
function inc( $path ) {
$inc = @file( $path );
array_shift($inc);
array_pop($inc);
$GLOBALS['inc_eval_txt'] = implode( "", $inc );
eval($GLOBALS['inc_eval_txt']);
}
# **********************************************************
# 要素
# **********************************************************
function el( $lv, $ename ) {
$tab = "";
for( $i = 0; $i < $lv; $i++ ) {
$tab .= "\t";
}
return "$tab<$ename>\n";
}
# **********************************************************
# 要素とデータ
# **********************************************************
function elset( $lv, $ename, $edata ) {
$tab = "";
for( $i = 0; $i < $lv; $i++ ) {
$tab .= "\t";
}
return "$tab<$ename>$edata</$ename>\n";
}
?>
| |
|
|
|