7.スケジュール調整

参照 URL http://horiuchi.akira.ne.jp/cgi/rei-07.html
■概要  各学校に点在する人達と定例会を開くのに、そのスケジュール調整をするのはいつも難航します。 お互い仕事をかかえている中で、次の予定を決めるのは誰かが犠牲にならないとなかなか決まらない ものです。また、野球、テニスといったスポーツの練習や、釣り、旅行などといった計画を立てる 場合でもいつも誰かが犠牲になります。特にこのスケジュール調整をする幹事の人はとても大変 なので、こういったネット上でのスケジュール表を利用するとリアルタイムでお互いの情報が分かり 便利だと思います。ある程度日にちが決まったら、メールで決定通知を出せばよいでしょう。 一覧表画面 ■データファイルの変化 * 書面の都合上改行されていますが、実際は1行のデータです。 rei-07-yotei.txt
青山 霞, , , , , , , , , ;小川 橙, , , , , , , , , ;
白瀬 藍, , , , , , , , , ;滄海 澪, , , , , , , , , ;
柿木 薊, , , , , , , , , ;栗田 柚, , , , , , , , , ;
杉浦 楓, , , , , , , , , ;檜山 緑 , , , , , , , , ,
  ・
  ・
  ・
青山 霞, , , , , , , , , ;小川 橙,○, ,◎, , , ,○,×, ;
白瀬 藍, ,◎,○,△,×, ,○,○, ;滄海 澪, , , , , , , , , ;
柿木 薊, , ,○, ,×, ,○, , ;栗田 柚, , , , , , , , , ;
杉浦 楓, , , , , , , , , ;檜山 緑 ,△, ,◎,×, , , , ,未定
外枠を構成する HTML rei-07.html
<HTML>
<HEAD>
<meta http-equiv="Content-Type" Content="text/html; charset=SHIFT_JIS">
<TITLE>Rei 07</TITLE>
</HEAD>
<BODY BGCOLOR="#7ffffe">
<BR>
<CENTER>
<H2>スケジュール調整</H2>
<H4>異なる場所にいる人達の会合、定例会調整</H4>
<P>
<iFRAME SRC="rei-07.cgi" NAME="chosei" WIDTH="620" HEIGHT="325"></iFRAME>

<FORM ACTION="rei-07.cgi" TARGET="chosei">
<PRE>
 <SELECT NAME="namae">
<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>
<OPTION VALUE="7">檜山</OPTION>
</SELECT> 1. <SELECT NAME="1">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>

</SELECT> 2. <SELECT NAME="2">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 3. <SELECT NAME="3">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 4. <SELECT NAME="4">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 5. <SELECT NAME="5">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT>

 6. <SELECT NAME="6">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 7. <SELECT NAME="7">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 8. <SELECT NAME="8">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT> 9. <SELECT NAME="9">
<OPTION VALUE="">▼予定</OPTION>
<OPTION>◎</OPTION>
<OPTION>○</OPTION>
<OPTION>△</OPTION>
<OPTION>×</OPTION>
<OPTION>未定</OPTION>
</SELECT>  <INPUT TYPE="submit" VALUE="送信">  <INPUT TYPE="reset" VALUE="リセット">
</H5></PRE>
</FORM>
</BODY>
</HTML>
スタート時のフレーム CGI / 現在の状況を表示 rei-07.cgi
#!/usr/local/bin/perl

require 'cgi-lib.pl';
&ReadParse(\%moji);

# 日付定義 9 日分
  @day9 = (' ',1..9);
  @hizuke = qw (氏名/日付 10/04 10/11 10/18 10/25 11/01 11/08 11/15 11/22 11/29);

# 予定データの読み込み
  open F,"+<rei-07-yotei.txt";
  @data = split ";", <F>;

# 予定データの更新
  @koshin = split /,/, $data[$moji{namae}];
  for (1..9) {$koshin[$_] = $moji{$_} if $moji{$_} ne ""}

# 予定データの書き込み
  $data[$moji{namae}] = join ",", @koshin;
  $data2 = join ";", @data;
  seek F,0,0;
  print F "$data2";
  close F;

# 出力リストの作成
  for (0..9) {$row1 .= "<TH>$day9[$_]</TH>"; $row2 .= "<TH>$hizuke[$_]</TH>"}
  $yotei[0] = qq |<TR BGCOLOR="#ffc0c0">$row1</TR>\n|;
  $yotei[1] = qq |<TR BGCOLOR="#ffc0c0">$row2</TR>\n|;
  for (@data) {
    undef $row;
    @temp = split /,/;
    $row = "<TD>$temp[0]</TD>";
    for (1..9) {$row .= "<TD>$temp[$_]</TD>"}
    push @yotei,"<TR>$row</TR>\n"}

# 本文
print &PrintHeader;
print <<EOH;
<HTML>
<HEAD>
<meta http-equiv="Content-Type" Content="text/html; charset=SHIFT_JIS">
<TITLE>Rei 07</TITLE>
</HEAD>
<BODY BGCOLOR="#00ff00">
<CENTER>
<TABLE BORDER CELLSPACING="0" CELLPADDING="6" BORDERCOLOR="#0a0c5e" 
 STYLE="font-family:'MS ゴシック'; font-size:10.pt">

<COLGROUP  SPAN="10" ALIGN="center">
<COL ALIGN="left" BGCOLOR="#ff8080"><COL SPAN="9" BGCOLOR="#e7e896">
</COLGROUP>

@yotei
</TABLE>
</CENTER>
EOH
print &HtmlBot;