6.おにぎりチェーン
参照 URL http://horiuchi.akira.ne.jp/cgi/rei-06.html
■概要 ここでは "おにぎり" 例にとっていますが、一般に複数の場所にある個別の売り上げや在庫状況を リアルタイムで知る1つの方法を示しています。1画面に表示できる個数には限界があるので、「ボ タン」によって、フレーム画面を切り換えるか、複数のアドレスに情報を割り振ればかなりの個数の 情報を一覧することができます。入力部分は簡略化できるので、携帯電話用に入力フォームをつくれ ば、全国どこにいても情報を発信することができます。新製品の売れ行き情報のチェックに利用して みるのもよいと思います。 一覧表画面■データファイルの変化 * 書面の都合上改行されていますが、実際は1行のデータです。 rei-06-shiten.txt
八重洲,0,0,0,0,0,0,0,0,0;新宿西,0,0,0,0,0,0,0,0,0;新宿東,0,0,0,0,0,0,0,0,0; 渋谷ハチ公,0,0,0,0,0,0,0,0,0;池袋西,0,0,0,0,0,0,0,0,0; サンシャイン,0,0,0,0,0,0,0,0,0;自由が丘,0,0,0,0,0,0,0,0,0 ・ ・ ・ 八重洲,15,12,18,14,8,16,4,21,108;新宿西,31,22,15,43,28,19,18,30,206;新宿東,28,19,17,34,31,23,12,35,199; 渋谷ハチ公,18,12,8,23,14,12,19,17,123;池袋西,14,19,12,24,16,7,3,18,113; サンシャイン,26,14,9,21,14,18,12,21,135;自由が丘,12,16,11,18,17,20,14,18,126 |
<HTML> <HEAD> <TITLE>Rei 06</TITLE> </HEAD> <BODY BGCOLOR="#7ffffe"> <BR> <CENTER> <H2> おにぎりチェーン ASUKA</H2> <H4>売り上げ一覧表 / 2003.4.1</H4> <P> <iFRAME SRC="rei-06.cgi" NAME="uriage" WIDTH="640" HEIGHT="250"></iFRAME> <FORM ACTION="rei-06.cgi" TARGET="uriage"> <PRE> <H5> <SELECT NAME="shiten"> <OPTION VALUE="">▼支店</OPTION> <OPTION VALUE="0">八重洲</OPTION> <OPTION VALUE="1">新宿西</OPTION> <OPTION VALUE="2">新宿東</OPTION> <OPTION VALUE="3">渋谷ハチ公</OPTION> <OPTION VALUE="4">池袋西</OPTION> <OPTION VALUE="5">サンシャイン</OPTION> <OPTION VALUE="6">自由が丘</OPTION> </SELECT> おかか <INPUT SIZE="5" NAME="okaka"> ツナ <INPUT SIZE="5" NAME="tuna"> 梅 <INPUT SIZE= "5" NAME="ume"> 鮭 <INPUT SIZE="5" NAME="sake"> イクラ <INPUT SIZE="5" NAME="ikura"> 明太子 <INPUT SIZE="5" NAME="mentai"> 鶏五目 <INPUT SIZE="5" NAME="tori"> カルビ <INPUT SIZE= "5" NAME="karubi"> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE= "リセット"> / 変更点を送信</H5></PRE> </FORM> </BODY> </HTML> |
#!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(\%moji); # 支店データの読み込み open F,"+<rei-06-shiten.txt"; @data = split ";", <F>; # 売り上げデータの更新 @koshin = split /,/, $data[$moji{shiten}]; @gu = qw (okaka tuna ume sake ikura mentai tori karubi); for (@gu) {$koshin[++$i] = $moji{$_} if $moji{$_} ne ""} # 横計の再計算 for (1..8) {$yoko += $koshin[$_]} $koshin[9] = $yoko; # 支店データの書き込み $data[$moji{shiten}] = join ",", @koshin; $data2 = join ";", @data; seek F,0,0; print F "$data2"; close F; # 縦計の計算 $tate[0] = '小 計'; for (@data) { @gyo = split /,/; for (1..9) {$tate[$_] += $gyo[$_]}} $data[7] = join ",",@tate; # 出力リストの作成 @top = split /, /, "支店 / 品目, おかか, ツナ, 梅, 鮭, イクラ, 明太子, 鶏五目, カルビ, 小 計"; for (@top) {$row .= "<TH>$_</TH>"} $uriage[0] = qq |<TR BGCOLOR="#8080ff">$row</TR>\n|; for (@data) { undef $row; @temp = split /,/; $row = "<TD>$temp[0]</TD>"; for (1..9) {$row .= "<TD>$temp[$_]</TD>"} push @uriage,"<TR>$row</TR>\n"} # 本文 print &PrintHeader; print <<EOH; <HTML> <HEAD> <meta http-equiv="Content-Type" Content="text/html; charset=SHIFT_JIS"> <TITLE>Rei 06</TITLE> </HEAD> <BODY BGCOLOR="#00ff00"> <CENTER> <TABLE FRAME="hsides" CELLSPACING="0" CELLPADDING="4" BORDERCOLOR="#0a0c5e" STYLE="font-family:'MS ゴシック'; font-size:9pt"> <COLGROUP SPAN="10" ALIGN="right" WIDTH="50"> <COL ALIGN="left" BGCOLOR="#ff8080" WIDTH="85"><COL SPAN="8" BGCOLOR="#e7e896"> <COL BGCOLOR="#ffc0c0" WIDTH="55"> </COLGROUP> @uriage </TABLE> </CENTER> EOH print &HtmlBot; |