#!/usr/bin/perl sub dd_fileset{ ($prjcode,$grpcode0,$filecode0,$keycode0) = @_; #print "DEBUG 10dd30 sub dd_fileset 11 - $keycode0
\n"; # 基礎データファイル、代表プロジェクト(初期ファイル指定用) $prjdata = $prjcode; $prjdata =~ s/_/\-/; $dd_data00file = "../cntrl/".substr($prjdata,0,5)."aadata00.txt"; if(-e $dd_data00file){;} else{ $errmsg = $dd_data00file.":基礎データファイルがありません。\n"; &io_errexit($errmsg,$errref1,$g_manager);exit; } &fl_fileformat($dd_data00file); &dd0_fileset1($prjcode,$grpcode0,$filecode0,$keycode0); #print "DEBUG 10dd30 sub dd_fileset 21 - $grpcode - $adjdir - $prjcode
\n"; if($grpcode ne "list"){ &dd0_fileset2($adjdir,$prjcode); } #print "DEBUG 10dd30 sub dd_fileset 31 - $dd_data00file - $data00file1
\n"; &dd0_fileset3($adjdir,$prjcode); if($reffile eq ""){$reffile = $dd_datafile;} # dd_viecheck if($refcode eq ""){$refcode = $keycode0;} #print "DEBUG 10dd30 sub dd_fileset 41 - $dd_data00file - $data00file1
\n"; } sub dd0_fileset1{ ($prjcode,$grpcode0,$filecode0,$keycode0) = @_; $errref1 = "プログラムエラー:".$prjcode." - ".$work." - ".$prgname." - dd_fileset1"; #print "DEBUG 10dd30 sub dd_fileset1 00- $keycode0
\n"; if($operator ne "manager" && $operator ne "outside" && $operator ne "keitai"){ $errmsg = "operator = ".$operator." の指定が不適当です。"; &io_errexit($errmsg,$errref1,$g_manager);exit; } if($rcrdkey eq ""){$rcrdkey = "all";} if($prjcode eq ""){ $errmsg = "prjcode = ".$prjcode.":プロジェクトコードがブランクです。\n"; &io_errexit($errmsg,$errref1,$g_manager); exit; } if($grpcode0 eq ""){$grpcode = substr($prjcode0,5,2);} elsif(substr($grpcode0,0,4) eq "list"){ if($rcrdkey ne "and" && $rcrdkey ne "or"){ $errmsg = "rcrdkey = ".$rcrdkey.":grpcode =:".$grpcode0.":グループコード指定相違です\n"; &io_errexit($errmsg,$errref1,$g_manager); exit; } @grpcodelist = split("_SP_",$grpcode0); $grpcode = shift @grpcodelist; $grpcodenmbr = @grpcodelist; substr($prjcode,5,2) = "aa"; } else{ $grpcode = $grpcode0; substr($prjcode0,5,2) = $prjcode0; } #print "DEBUG 10dd30 sub dd_fileset1 11 - $filecode0
\n"; if($filecode0 eq ""){$filecode = "all";} if(substr($filecode0,0,4) eq "list" || substr($filecode0,0,5) eq "range"){ if($rcrdkey ne "and" && $rcrdkey ne "or"){ $errmsg = "rcrdkey = ".$rcrdkey.":filecode0 =:".$filecode0.":ファイルコード指定相違です\n"; &io_errexit($errmsg,$errref1,$g_manager); exit; } else{ @filecodelist = split("_SP_",$filecode0); $filecode = shift @filecodelist; $filecodenmbr = @filecodelist; } } else{$filecode = $filecode0;} #print "DEBUG 10dd30 sub dd_fileset1 12 - $filecode - $filecodenmbr
@filecodelist
\n"; $keycode0 = &st_hankakuform($keycode0); #print "DEBUG 10dd30 sub dd_fileset1 21 - $keycode0
\n"; if($keycode0 eq ""){ if($rcrdkey eq "one" || (($f1_order eq "inc" || $f1_order eq "dec") && $rcrdkey eq "new")){ $errmsg = "rcrdkey = ".$rcrdkey.":keycode0 =:".$keycode0.":指定相違です(2)\n"; &io_errexit($errmsg,$errref1,$g_manager); exit; } else{ $f1_keycode = ""; $f1_keylist[0] = ""; $f1_keynmbr = 0; } } else{ if($rcrdkey eq "one" || $rcrdkey eq "confirm" || $rcrdkey eq "new" && ($f1_order eq "inc" || $f1_order eq "dec")){ $keycode = $keycode0; $f1_keylist[0] = $keycode0; $f1_keynmbr = 1; } elsif($rcrdkey eq "all" || $rcrdkey eq "new" && ($f1_order eq "lst" || $f1_order eq "fst")){ $keycode = ""; $f1_keylist[0] = ""; $f1_keynmbr = 0; } elsif($rcrdkey eq "and" || $rcrdkey eq "or"){ $keycode = "list"; @f1_keylist = split("_SP_",$keycode0); $f1_keynmbr = @f1_keylist; } else{ $errmsg = "rcrdkey = ".$rcrdkey.":keycode0 =:".$keycode0.":指定相違です(1)\n"; &io_errexit($errmsg,$errref1,$g_manager); exit; } } } sub dd0_fileset2{ my ($adjdir,$prjcode) = @_; #print "DEBUG 10dd30 sub dd_fileset2 10 - $adjdir - $prjcode
\n"; $prjdata = $prjcode; $prjdata =~ s/_/\-/; #print "DEBUG 10dd30 sub dd_fileset2 11 - $dd_data00file - $data00file1
\n"; if($directory eq ""){$directory = "data";} $dd_dir = "../".$adjdir.$prjcode.$directory."/"; $dd_datadir = "../".$adjdir.$prjcode."data/"; $dd_backupdir = "../".$adjdir.$prjcode."backup/"; $dd_htmldir = "../".$adjdir.$prjcode."html/"; $dd_upfiledir = "../".$adjdir.$prjcode."upfile/"; $dd_upexceldir = "../".$adjdir.$prjcode."upexcel/"; $dd_dnexceldir = "../".$adjdir.$prjcode."dnexcel/"; # 対象データファイル(繰越の場合) # $dd_currentfile = $dd_datadir.$prjdata."current.txt"; #print "DEBUG 10dd30 sub dd_fileset2 21 - $dd_htmldir
\n"; $dirslist[0] = $dd_datadir; $f2_filenmbr = &io_dirsfilelist(@dirslist); $dd_currentfile = $f2_filelist[$f2_filenmbr-1]; $dd_recentfile = $f2_filelist[$f2_filenmbr-2]; #print "DEBUG 10dd30 sub dd_fileset2 31 - $dd_data00file - $data00file1
\n"; if($filecode eq "current"){ $dd_datafile = $dd_currentfile; $filecode = &dd_filecode($dd_currentfile); } elsif($filecode eq "recent"){ $dd_datafile = $dd_recentfile; $filecode = &dd_filecode($dd_recentfile); } else{ $dd_datafile = $dd_datadir.$prjdata.$filecode.".txt"; } # エクセル用データファイル $dd_upexcel = $dd_upexceldir.$prjdata.$filecode."up.txt"; $dd_dnexcel = $dd_dnexceldir.$prjdata.$filecode."dn.txt"; } sub dd0_fileset3{ ($adjdir,$prjcode) = @_; $errref1 = "プログラムエラー:".$prjcode." - ".$work." - ".$prgname." - dd_fileset3"; $cntrldir = "../".$adjdir."cntrl/"; if($f1_title[26] =~ m/none/ || $f1_title[26] eq ""){ $dd_upcol = 0; } elsif($f1_title[26] =~ m/_SPU_/i){ @upfld = split("_SPU_",$f1_title[26]); $dd_upcol = @upfld; } else{ $dd_upcol=1; } # 表示用HTML初期ファイル、代表プロジェクト(初期ファイル指定用) my $dsp00html = $cntrldir.substr($prjcode,0,5)."aadsp00.html"; my $ipt00html = $cntrldir.substr($prjcode,0,5)."aaipt00.html"; my $brd00html = $cntrldir.substr($prjcode,0,5)."aabrd00.html"; if(-e $ipt00html){$dd_ipt00html = $ipt00html;} else{$dd_ipt00html = $dsp00html;} if(-e $brd00html){$dd_brd00html = $brd00html;} else{$dd_brd00html = $dsp00html;} } sub dd_filecode{ (my $datafile) = @_; my @fld = split("/",$datafile); my $file1 = pop @fld; (my $file2,$msc) = split(".txt",$file1); my $prjdata = substr($file2,0,7); my $filecode = substr($file2,7); return($filecode); } # ******** レコード検索(単複ファイル) *********  sub dd_rcrdselect{ my ($rcrdkey,$rcrdorder,$prjcode,$grpcode,$filecode) = @_; &dd0_fileselect($prjcode,$grpcode,$filecode); @inkey = split("_",$f1_keylist[0]); if($f1_keynmbr == 1 && $inkey[2] eq ""){$f1_keynmbr = 0;} #print "DEBUG dd_rcrdselect 12 - $fileorder - $f1_filenmbr - @f1_filelist
$f1_keynmbr - @f1_keylist
\n"; if($rcrdorder eq ""){$rcrdorder = "0_straight";} @rcrdorder1 = split("_",$rcrdorder); $ordercol = $rcrdorder1[0] + 0; #print "DEBUG dd_rcrdselect 14 - $rcrdkey - $ordercol - $rcrdorder1[1]
$f1_filenmbr - @f1_filelist
$f1_keynmbr - @f1_keylist
\n"; $f2_rcrdnmbr=0; splice @f2_rcrdlist; for(my $f=0;$f<$f1_filenmbr;$f++){ if($f1_filelist[$f] eq ""){next;} $file1 = $f1_filelist[$f]; $size = &io_fileread("",$file1,""); if($size =~ m/Error/){ $f8_filelist[$f8_filenmbr] = $file1.$errmsg; $f8_filenmbr++; next; } $f1_rcrdnmbr=0; splice @f1_rcrdlist; #print "DEBUG dd_rcrdselect 15 - $rcrdkey - $f1_filenmbr - $f - $size - $f1_keynmbr
@f1_keylist

\n"; for(my $m=2;$m<$size;$m++){ # *5 # $line = &st_hankakuform($f2_LINES[$m]); # @fld0 = split("_SP_",$line); # &jcode'convert(*line, 'euc'); $line = $f2_LINES[$m]; @fld = split("_SP_",$line); if($f1_keynmbr==0){$check = 1;} elsif($rcrdkey eq "and"){$check = &dd0_selectand($line,@fld);} elsif($rcrdkey eq "or"){$check = &dd0_selector($line,@fld);} #print "DEBUG dd_rcrdselect 17 - $m - $check - $rcrdkey
\n"; if($check == 1){ $m1 = &st_strform(6,"0","head",$m); $f1_rcrdlist[$f1_rcrdnmbr] = $fld[$ordercol]."_SPS_".$file1."_SPS_".$m1."_SPS_".$line; $f1_rcrdnmbr++; } #print "DEBUG dd_rcrdselect 17 - $m - $check - $f1_rcrdnmbr
\n"; } #print "DEBUG dd_rcrdselect 18 - $fileorder - $rcrdorder
$f1_filenmbr - @f1_filelist
$f1_rcrdnmbr
\n"; if($f1_filenmbr == 1 || $fileorder ne "record"){ if($rcrdorder1[1] eq "reverse"){ @f1_rcrdlist = sort { $b cmp $a } @f1_rcrdlist; } else{ @f1_rcrdlist = sort { $a cmp $b } @f1_rcrdlist;} } $f2_rcrdnmbr = push @f2_rcrdlist, @f1_rcrdlist; #print "DEBUG dd_rcrdselect 18a - $fileorder - $rcrdorder
$f1_filenmbr - @f1_filelist
$f2_rcrdnmbr - @f2_rcrdlist
\n"; } if($f1_filenmbr>1 && $fileorder eq "record"){ if($rcrdorder1[1] eq "reverse"){ @f2_rcrdlist = sort { $b cmp $a } @f2_rcrdlist; } else{ @f2_rcrdlist = sort { $a cmp $b } @f2_rcrdlist;} } #print "DEBUG dd_rcrdselect 19 - $rcrdorder - $f2_rcrdnmbr
@f2_rcrdlist
\n"; } sub dd0_fileselect{ ($prjcode,$grpcode,$filecode) = @_; if($grpcode eq "list"){ if($grpcodenmbr == 0){ $errmsg="$grpcode == 'list':グループコードの指定がありません。\n"; $errref2 = "操作エラー:".$prjcode." - ".$work." - ".$prgname." - dd_filelist"; &io_errexit($errmsg,$errref2,$g_manager); exit; } for($i=0;$i<$grpcodenmbr;$i++){ my $prjcode1 = $prjcode; substr($prjcode1,5,2) = $grpcodelist[$i]; # $prjgrp =~ s/_/\-/; my $datadir = "../".$adjdir.$prjcode."data/"; &dd0_fileselect1($datadir,$prjcode1,$filecode0); $f1_filenmbr = push @f1_filelist, @f3_filelist; } } else{ #print "DEBUG dd_filelist 18 - $rcrdkey - $prjcode - $filecode - $dd_datadir
\n"; $datadir = $dd_datadir; # $prjgrp =~ s/_/\-/; &dd0_fileselect1($datadir,$prjcode,$filecode); $f1_filenmbr = $f3_filenmbr; @f1_filelist = @f3_filelist; } if($fileorder eq "reverse"){ @f1_filelist = sort { $b cmp $a } @f1_filelist; } #print "DEBUG dd_filelist 19 - $rcrdkey - $prjcoder - $datadir - $filecode - $fileorde
$f1_filenmbr - @f1_filelist
\n"; } sub dd0_fileselect1{ ($datadir,$prjcode,$filecode) = @_; $prjdata = $prjcode; $prjdata =~ s/_/\-/; $errref2 = "操作エラー:".$prjcode." - ".$work." - ".$prgname." - dd_filelist1"; if($filecode eq "all"){ $f2_filenmbr = &io_dirsfilelist($datadir); $f3_filenmbr = $f2_filenmbr; @f3_filelist = @f2_filelist; #print "DEBUG dd0_filelist1 10 - $rcrdkey - $prjcode - $filecode - $datadir
$f3_filenmbr - @f3_filelist
\n"; } elsif($filecode eq "range"){ if($filecodenmbr == 0){ $errmsg = "ファイルコード == 'range':範囲値の指定がありません。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } $fromfile = $datadir.$prjdata.$filecodelist[0].".txt"; $tillfile = $datadir.$prjdata.$filecodelist[1].".txt"; &io_dirsfilelist($datadir); $f3_filenmbr = 0; for($i=0;$i<$f2_filenmbr;$i++){ if($f2_filelist[$i] ge $fromfile && $f2_filelist[$i] le $tillfile){ $f3_filelist[$f3_filenmbr] = $f2_filelist[$i]; $f3_filenmbr++; } } } elsif($filecode eq "list"){ if($filecodenmbr == 0){ $errmsg="$filecode == 'list':ファイルコードの指定がありません。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } $f3_filenmbr=0; for($i=0;$i<$filecodenmbr;$i++){ if($filecodelist[$i] ne ""){ $f3_filelist[$f3_filenmbr] = $datadir.$prjdata.$filecodelist[$i].".txt"; $f3_filenmbr++; $note1 = $note1.$filecodelist[$i]."、"; } } } else{ $f3_filenmbr = 1; $f3_filelist[0] = $dd_datafile; } } sub dd0_selectand{ # 範囲の中で and 検索(各項--全文含む--で or 検索) (my $line, my @fld) = @_; #print "DEBUG dd_selectand 11 - $f1_keynmbr - @f1_keylist
$line
\n"; $check = 1; for(my $k=0;$k<$f1_keynmbr;$k++){ @keyor = split("_",$f1_keylist[$k]); if($f1_keylist[$k] eq "" || $keyor[2] eq ""){next;} my $ornmbr = @keyor; my $keyor0 = $keyor[0]; my $colnmbr = "".$f1_colnmbr; if($keyor0 eq ""){$chkfld = $line;} elsif($keyor0 ge "0" && $keyor0 lt $colnmbr){$chkfld = $fld[$keyor0+0];} else{$chkfld = $line;} #print "DEBUG dd_selectand 12 - $keyor0 - $keyor[1] - $keyor[2] - $f1_colnmbr
$chkfld
\n"; if($keyor[1] eq "strict"){ $check = 0; for(my $k1=2;$k1<$ornmbr;$k1++){ if($chkfld eq $keyor[$k1]){$check = 1;last;} } if($check == 0){last;} } elsif($keyor[1] eq "range"){ if($chkfld lt $keyor[2] || $chkfld gt $keyor[3]){$check = 0;last;} } else{ $chkfld = &st_hankakuform($chkfld); # &jcode'convert(*chkfld, 'euc'); $check = 0; for(my $k1=2;$k1<$ornmbr;$k1++){ $inkey = $keyor[$k1]; # $inkey = &st_hankakuform($keyor[$k1]); # &jcode'convert(*inkey, 'euc'); #print "DEBUG dd_selectand 14 - $check - $rcrdkey - $f1_keynmbr - @f1_keylist - $inkey - $chkfld
\n"; # if($chkfld =~ m/\Q$inkey\E/i){$check = 1;last;} if($chkfld =~ m/$inkey/i){$check = 1;last;} } #print "DEBUG dd_selectand 15 - $check - $rcrdkey - $f1_keynmbr - @f1_keylist - $inkey - $chkfld
\n"; if($check == 0){last;} } } #print "DEBUG dd_selectand 18 - $check - $rcrdkey - $f1_keynmbr - @f1_keylist - $inkey - $chkfld
\n"; return $check; } sub dd0_selector{ # 範囲の中で or 検索(各項--全文含む--で and 検索) (my $line,my @fld) = @_; $check = 0; #print "Content-type: text/html\n\n
\n"; #print "DEBUG dd_selector 13 - $f2_rcrdnmbr - $f1_keynmbr
@f1_keylist
$line
\n"; for($k=0;$k<$f1_keynmbr;$k++){ #print "DEBUG dd_selector 14 - $f1_keynmbr - $k - $f1_keylist[$k]
\n"; my @keyand = split("_",$f1_keylist[$k]); if($f1_keylist[$k] eq "" || $keyand[2] eq ""){next;} my $andnmbr = @keyand; my $keyand0 = $keyand[0]+0; if($keyand0 >= 0 && $keyand0 <= $f1_colnmbr){$chkfld = $fld[$keyand0];} # if($keyand[0] ge "0" && $keyand[0] le "".$f1_colnmbr){$chkfld = $fld[$keyand[0]+0];} else{$chkfld = $line;} #print "DEBUG dd_selector 15 - $f1_keynmbr - $k - $f1_keylist[$k]
$chkfld\n"; if($keyand[1] eq "strict"){ $check = 1; for(my $k1=2;$k1<$andnmbr;$k1++){ if($chkfld ne $keyor[$k1]){$check = 0;last;} } if($check == 1){last;} } elsif($keyand[1] eq "range"){ if($chkfld ge $keyand[2] && $chkfld le $keyand[3]){$check = 1;last;} } else{ $chkfld = &st_hankakuform($chkfld); $chkfld = $chkfld->utf8; # &jcode'convert(*chkfld, 'euc'); $check = 1; for(my $k1=2;$k1<$andnmbr;$k1++){ $inkey = $keyand[$k1]; # $inkey = &st_hankakuform($keyand[$k1]); # &jcode'convert(*inkey, 'euc'); if($chkfld !~ m/$inkey/i){$check = 0;last;} # if($chkfld !~ m/\Q$inkey\E/i){$check = 0;last;} } if($check == 1){last;} } #print "DEBUG dd_selector 17 - $check - $k - $f1_keylist[$k]
$chkfld
\n"; } #print "DEBUG dd_selector 18 - $check - $k - $f1_keylist[$k]
$chkfld
\n"; return $check; } # ******** レコード選択(単一ファイル) ******** sub dd_rcrdset{ my ($datafile,$rcrdkey,$addnmbr) = @_; splice @f2_rcrdlist; if($rcrdkey eq "one"){ &fl_rcrdsearch($datafile,"err"); if($f2_rcrdnmbr ==0){ $errmsg = $f1_keylist[0].":このコードは存在しません。\n"; $errref2 = "操作エラー:".$prjcode." - ".$work." - ".$prgname." - dd_rcrdset"; &io_errexit($errmsg,$errref2,$g_manager); } $f2_rcrdlist[0] = "--_SPS_".$datafile."_SPS__SPS_".$f2_rcrdlist[0]; #print "DEBUG sub dd_input 13 - $rcrdkey - $f1_leylist[0]
$f2_rcrdlist[0]
\n"; } else{ for($j=0;$j<$f1_colnmbr-1;$j++){$line1[$j] ="";} if($dd_upcol>1){ for($k=0;$k<$dd_upcol;$k++){$line2[$k] ="";} $upline = join("_SPU_",@line2); $line1[26] = $upline; $line1[27] = $upline; } $blankrcrd = join("_SP_",@line1); $blankrcrd = $blankrcrd."_SP_END\n"; if($rcrdkey eq "new"){ $f2_rcrdnmbr=1; $f2_rcrdlist[0] = "--_SPS_".$datafile."_SPS__SPS_".$blankrcrd; } elsif($rcrdkey eq "all"){ $addnmbr = $third; $f2_SIZE = &io_fileread("",$datafile,"err"); $f2_rcrdnmbr = $f2_SIZE-2; for($i=0;$i<$f2_rcrdnmbr;$i++){ $f2_rcrdlist[$i]="--_SPS_".$datafile."_SPS__SPS_".$f2_LINES[$i+2]; } if($work eq "display"){ if($rcrdorder eq "0_reverse"){ @f2_rcrdlist = sort { $b cmp $a } @f2_rcrdlist; } } else{ # $work eq "inputform" for($i=0;$i<$addnmbr;$i++){ $f2_rcrdlist[$f2_rcrdnmbr+$i] = "--_SPS_".$datafile."_SPS__SPS_".$blankrcrd; } $f2_rcrdnmbr = $f2_rcrdnmbr+$addnmbr; } } } } # ******** ******** 検索結果画面出力(入力・表示) ******** sub dd_display{ my ($dsp00file,$work,$rcrdkey,$htmladd) = @_; #print "DEBUG 00dd00 sub dd_display 10 - $work - $dsphtml - $htmllist
\n"; # if($prtlimit eq "" || $prtlimit == 0 || $prtlimit > $f2_rcrdnmbr){ # $prtlimit = $f2_rcrdnmbr; # } if($work eq "display" && $dsphtml =~ m/html/){ $f2_filenmbr=&io_dirsfilelist($dd_htmldir); $htmllist = join("_SP_",@f2_filelist); } elsif($work eq "inputform" && $dsphtml =~ m/html/){ $htmllist = $dsphtml; } #print "DEBUG 00dd00 sub dd_display 20 - $dsp00file - $work - $htmllist
\n"; $f2_SIZE = &io_fileread("",$dsp00file,"err"); # for($i= 53;$i<63;$i++){ # $line1 = $f2_LINES[$i]; #print "DEBUG sub dd_display 22 - $i - $dsp00file - $line1
\n"; # } $f2_LINES[21] = "var work = '".$work."';\n"; $f2_LINES[22] = "var operator = '".$operator."';\n"; $f2_LINES[23] = "var name1 = '".$name1."';\n"; $f2_LINES[24] = "var adjdir = '".$adjdir."';\n"; $f2_LINES[25] = "var rcrdkey = '".$rcrdkey."';\n"; $f2_LINES[26] = "var prjcode = '".$prjcode."';\n"; $f2_LINES[27] = "var grpcode = '".$grpcode0."';\n"; $f2_LINES[28] = "var filecode = '".$filecode0."';\n"; $f2_LINES[29] = "var keycode = '".$keycode0."';\n"; $f2_LINES[30] = "var fileorder = '".$fileorder."';\n"; $f2_LINES[31] = "var rcrdorder = '".$rcrdorder."';\n"; $f2_LINES[32] = "var note1 = '".$note1."';\n"; $f2_LINES[33] = "var note2 = '".$note2."';\n"; chomp($f1_line0); $f2_LINES[34] = "var f1_line0 = '".$f1_line0."';\n"; $f2_LINES[35] = "var htmllist = '".$htmllist."';\n"; $f2_LINES[36] = "var datanmbr = ".$f2_rcrdnmbr.";\n"; $f2_LINES[37] = "var extra37 = '".$extra37."';\n"; $f2_LINES[38] = "var extra38 = '".$extra38."';\n"; if($htmladd ne "display"){ #print "DEBUG sub dd_display 41 - $dsphtml
\n"; &io_filewrite("0",$htmladd,"err"); } else{ print "Content-type: text/html\n\n"; } for(my $i=0;$i<=40;$i++){ if($htmladd ne "display"){print f1_FILE $f2_LINES[$i];} else{print $f2_LINES[$i];} } for(my $i=0;$i<$f2_rcrdnmbr;$i++){ $line2 = $f2_rcrdlist[$i]; chomp($line2); $line2 =~ s/\n/
/g; $line2 = "'".$line2."',\n"; if($htmladd ne "display"){print f1_FILE $line2;} else{print $line2;} } for(my $i=50;$i<$f2_SIZE;$i++){ if($htmladd ne "display"){print f1_FILE $f2_LINES[$i];} else{print $f2_LINES[$i];} } if($htmladd ne "dispaly"){ close(f1_FILE); } #print "DEBUG sub dd_display 69 - $f2_rcrdnmbr - $line2
$f2_LINES[57]
\n"; } # ********* 外部閲覧者チェック ******** sub dd_viewcheck{ # 表示条件チェック($operator != "manager" 参照ファイル) (my $checkfld) = @_; $errref2 = "操作エラー:".$prjcode." - ".$work." - ".$prgname." - dd_viewcheck"; my $f1a_keynmbr = $f1_keynmbr; my @f1a_keylist = @f1_keylist; $f1_keynmbr = 1; $f1_keylist[0] = $refcode; &fl_rcrdsearch($reffile); # レコード検索(参照ファイル) $f1_keynmbr = $f1a_keynmbr; @f1_keylist = @f1a_keylist; @f2_data = split("_SP_",$f2_rcrdlist[0]); if($f2_rcrdnmbr == 0){ $errmsg = $refcode.":該当のレコードは登録されていません。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/2/ && $f2_data[2] ne $name1){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$name1." のタイトル・お名前は違います。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/9/ && $f2_data[9] ne "0000-00-00" && $f2_data[9] ne ""){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$f2_data[9]." 登録取消となっております。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/7/ && ($f2_data[7] eq "0000-00-00" || $f2_data[7] eq "")){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$f2_data[7]." 登録手続終了のご通知を差し上げるまでお待ちください。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/5/ && $f2_data[5] ne $pswd){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$pswd." のパスワードは違います。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/1/ && $f2_data[1] ne $code1){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$code1." のデータコードは違います。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } elsif($checkfld =~ m/4/ && $f2_data[4] ne $email){ $errmsg = $f2_data[2]." 様(".$keycode.")
".$email." のE-Mailアドレスは違います。\n"; &io_errexit($errmsg,$errref2,$g_manager); exit; } } # ********* Thread キー操作 ******** sub dd_threadnew{ ($keycode) = @_; if(substr($keycode,0,4) eq "0000"){ &io_fileread("3",$dd_datafile,"err"); if($f2_LINES[2] eq ""){ my $newmain="9998"; } else{ $line2 = $f2_LINES[2]; @fld = split("_SP_",$line2); $mainkey = substr($fld[0],0,4); $subkey = substr($fld[0],4,3); $newmain = $mainkey-1; $newmain = &st_strform(4,"0","head",$newmain); } $keycode = $newmain."_000"; } else{ $mainkey = substr($keycode,0,4); $f1_keynmbr = 1; $f1_keylist[0] = $mainkey; &fl_rcrdsearch($dd_datafile); if($f2_rcrdnmbr==0){ $errmsg="主題番号:".$keycode."のレコードは存在しません。\n"; $errref2 = "操作エラー:".$prjcode." - ".$work." - ".$prgname." - dd_threadnew"; &io_errexit($errmsg,$errref2,$g_manager); exit; } @fld = split("_SP_",$f2_rcrdlist[$f2_rcrdnmbr-1]); $mainkey = substr($fld[0],0,4); $subkey = substr($fld[0],5,3); $newsub = $subkey + 1; $newsub = &st_strform(3,"0","head",$newsub); $keycode = $mainkey."_".$newsub; } return($keycode); } sub dd_threadselect{ #print "Content-type: text/html\n\n"; $mainkeyprv = ""; $f1_keynmbr=0; splice @f1_keylist; for($i=0;$i<$f2_rcrdnmbr;$i++){ ($msc,$msc2,$msc3,$rcrd1)=split("_SPS_",$f2_rcrdlist[$i]); @fld = split("_SP_",$rcrd1); $mainkey = substr($fld[0],0,4); if($mainkey ne $mainkeyprv){ $f1_keylist[$f1_keynmbr] = "0_part_".$mainkey; $f1_keynmbr++; $mainkeyprv = $mainkey; } } $rcrdkey = "or"; $f2_rcrdnmbr=0; splice @f2_rcrdlist; &dd_rcrdselect($rcrdkey,$rcrdorder,$prjcode,$grpcode,$filecode); #print "DEBUG dd_threadselect 16 - $work - $rcrdkey - $f2_rcrdnmbr
$f2_rcrdlist[0]

\n"; } 1