#!/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