"; if ($field[$idisp_fld]['number_set']==1) //AutoIncrement { echo ""; } $idisp_fld++; if ($idisp_fld>=count($result)) { break; //レコードが終了した場合、処理終了 } } $block=0; $ifld=$idisp_fld; //表示フィールドのレコード開始位置 $list_setval=array(); //リストボックス連動のメインリストの選択値用エリア //--------------------------------------------------------------// // ブロック()の処理 // //--------------------------------------------------------------// for($now_block=1;$now_block<=$max_block;$now_block++){ //最大ブロックまで if ($resultdisp[$block]['max_block']==$now_block) { $max_row=$resultdisp[$block]['max_row']; //最大行 $max_col=$resultdisp[$block]['max_col']; //最大列 $block++; } else { $max_row=0; //最大行 $max_col=0; //最大列 } $table_width="850"; //テーブル幅初期設定 $iwidth=$ifld; while ($field[$iwidth]['disp_block']==$now_block) //ブロックの表示幅 { if ($iwidth>=count($field)) //レコード終了 { break; //処理終了 } if ($field[$iwidth]['block_size']!="" && $field[$iwidth]['block_size']!=0) { $table_width=$field[$iwidth]['block_size']; //テーブル幅設定 break; //処理終了 } $iwidth++; } echo "
"; //--------------------------------------------------------------// // 行の処理 // //--------------------------------------------------------------// for($now_row=1;$now_row<=$max_row;$now_row++){ //最大行まで echo ""; //--------------------------------------------------------------// // 列の処理 // //--------------------------------------------------------------// for($now_col=1;$now_col<=$max_col;$now_col++) { //最大列まで if ($field[$ifld]['disp_row']!=$now_row || $field[$ifld]['disp_col']!=$now_col) //入力表示の無い行 { $class_cap=" class='".$dflt[$now_block]['caption_class']."'"; $class_inp=" class='".$dflt[$now_block]['input_class']."'"; echo ""; } $sel_idx=array_search($table_id.".".$item_name,$sel_item); //データ限定対象項目検索 if (is_numeric($sel_idx)) //データ限定対象 { if ($sel_fugo[$sel_idx]=="equal") //一致項目 { if ($field[$ifld][input_type]=="select" || $field[$ifld][input_type]=="radio" ) { $ar_sel_value=explode("#",$sel_value[$sel_idx]); //選択値を配列化 if (count($ar_sel_value)==1) //一つの値のみ { $field[$ifld][read_only]=1; //読み取り専用 $item[$item_name]=$sel_value[$sel_idx]; //限定データセット } else { $field[$ifld][choice]=implode(",",$ar_sel_value); //選択肢を限定 } } else { $field[$ifld][read_only]=1; //読み取り専用 $item[$item_name]=$sel_value[$sel_idx]; //限定データセット } } } $event=""; if (isset($func[$item_name])) //計算対象フィールド { $event=" onChange=\"".$func[$item_name]."\""; } dspInput($field[$ifld],$cmd,$item[$item_name],$hiduke[$item_name],$link,$list ,$table_id,$dflt[$now_block][input_class],$event); //入力フィールドの表示 if ($field[$ifld]['col_span']!="" && $field[$ifld]['col_span']!=0) { $col_span=$field[$ifld]['col_span']-1; } $ifld++; } echo ""; $now_col=$now_col+$col_span; } echo ""; } echo "
"; //空のセルを表示して、次のセルへ } //--------------------------------------------------------------// // セルの処理 // //--------------------------------------------------------------// $same_col="no"; //異なる位置への表示を初期設定 $col_span=0; while ($field[$ifld]['disp_block']==$now_block && $field[$ifld]['disp_row']==$now_row && $field[$ifld]['disp_col']==$now_col) //同じセルへの出力の間 { $item_name=$field[$ifld][name]; $class=$field[$ifld]['caption_class']; if (!strlen($class)) { $class=$dflt[$now_block]['caption_class']; } $class="class='".$class."'"; if ($same_col=="no") //列が異なる場合キャプション出力 { //項目名 //列が異なる場合キャプション出力 $notnull=""; if ($field[$ifld]['not_null']==1) //必須入力の場合 { $notnull="*"; } echo " ".$field[$ifld]['caption']."".$notnull."

"; } } //---------------------------------------------------------// // 入力フィールドの表示 //---------------------------------------------------------// function dspInput($field,$cmd,$dspdata,$hiduke,$link,$list,$table_id,$dflt_input_class,$calc_event) { global $same_col; global $nengo; global $class; global $list_setval; $session_index=$_SESSION['session_index']; $session_theme_link="../".$session_index."/images/".$_SESSION['session_theme']; $class=$field['input_class']; if (!strlen($class)) { $class=$dflt_input_class; } $class=" class='".$class."'"; $col_span=$field['col_span']; if ($col_span!=="") { $col_span=" colspan=".(1+($col_span-1)*2); } if ($same_col=="no") //同行出力NO { echo ""; //入力項目のTD } echo $field['l_caption']." "; $item_name=$field['name']; //項目名取得 $tab_idx=$field['tab_idx']; //タブ順取得 if ($tab_idx!="") { $tab_idx=" tabindex=".$tab_idx; } $readonly=""; if ($field['number_set']==1) //AutoIncrement { $readonly=" readonly"; echo ""; //AutoIncrement項目名を設定 } else { if ($field['read_only']==1) //表示のみ { $readonly=" readonly"; } } if ($field['comma_set']==1) //カンマ編集 { echo ""; //AutoIncrement項目名を設定 } if ($dspdata!="") //登録済みデータ { $readonly=" readonly"; } if ($readonly!="" && $field['input_type']=="select") //選択肢で読み取り専用の場合 { $field['input_type']="text"; //テキストタイプで表示 } switch ($field['input_type']) { case "select": $selectdata=",".$field['choice']; //選択値を取得 $select=explode(",",$selectdata); if ($action=="add" && $dspdata=="") //新規初期表示または複写新規で登録項目がない場合 2008.03.01 { $dspdata=$field['choice_dflt']; //初期選択値を設定 } if (isset($list[$item_name])) //連動するリストあり { $setlistbox_array=array_keys($list[$item_name]); $setlistbox=$setlistbox_array[0]; $event.=" onChange=\"valoption = new Array();"; $opt_array=$list[$item_name][$setlistbox]; while(list($optkey,$optvalue)=each($opt_array)) //未入力項目の初期化 { $event.="valoption['".$optkey."']='".$optvalue."';"; } $event.="cngOption(this.value,valoption,".$setlistbox.")\""; $list_setval[$item_name]=$dspdata; //親リストの選択値 } if ($field['mainlist']!="") //親リストあり { $mainlist=$field['mainlist']; $selectdata=",".$list[$mainlist][$item_name][$list_setval[$mainlist]]; //選択値を取得 $select=explode(",",$selectdata); } echo ""; break; case "checkbox": if ($dspdata==1) { $checked="checked"; } else{$checked="";} if ($field['key_set']!=1 && $readonly!="") { $readonly=" disabled"; } echo ""; break; case "radio": $select=explode(",",$field['choice']); if ($field['key_set']!=1 && $readonly!="") { $readonly=" disabled"; } for ($iopt=0;$iopt"; echo ""; } break; case "textarea": $style=" style='ime-mode:"; if ($field['ja_set']==1) { $style.="active;"; } else { $style.="disabled;"; } if ($readonly!="") { if ($item_name=='fukuin') // Add Start by S.Umitsuki 2011/7/6 { $style.=" background-color:#fee3ec;"; } else { if ($item_name=='sekkyou') { $style.=" background-color:#f0e68c;"; } else { $style.=" background-color:#ffffff;"; // Update by S.Umitsuki 2011/7/6 } } // Add end by S.Umitsuki 2011/7/6 } $style.="'"; echo ""; break; case "file": $dspfile=$dspdata; if (strlen($dspfile)) { $dspfile="../".$session_index."/img/".$table_id."/".$dspfile; } else { if (strlen($_POST[upl][$item_name])) { $dspfile=$_POST[upl][$item_name]; } else { $dspfile=$session_theme_link."/blank.gif"; } } $dspimg=$dspfile; $dspext=substr($dspimg,-3); if (getimagesize(strToJis($dspimg))==00) //画像ファイル以外 { switch ($dspext) { case "xls": $dspimg="excel.gif"; break; case "doc": $dspimg="word.gif"; break; case "pdf": $dspimg="pdf.gif"; break; default: $dspimg="file.gif"; break; } $dspimg=$session_theme_link."/".$dspimg; } $width=""; if (strlen($field['box_size'])) { $width=" width='".$field['box_size']."'"; } $height=""; if (strlen($field['box_rows'])) { $height=" height='".$field['box_rows']."'"; } echo ""; if (!strlen($readonly)) { echo ""; echo "
"; echo "
"; echo "
"; } echo ""; echo ""; break; default: switch ($field['type']) { case "西暦日付": case "西暦日付(年月)": case "和暦日付": case "和暦日付(年月)": $style="style='ime-mode:disabled; text-align:right;"; if ($readonly!="") { $style.=" background-color:#ffffff;"; // Update by S.Umitsuki 2011/7/6 } $style.="'"; if (strpos($field['type'],"和暦")!==false) { $wareki=1; } else { $wareki=0; } if ($cmd!="" || strlen($_GET[yoyaku_year])) //再表示または予約初期表示 { $ymd=$hiduke; } else { $ymd=YmdFromDate($dspdata,$wareki); } if ($wareki==1) //和暦 { //年号 if ($readonly!="") { echo " "; } else { echo " "; } //年 echo " 年 "; } else { //年 echo " 年 "; } //月 echo " 月 "; if (strpos($field['type'],"年月")!==false) { //日 echo ""; } else { //日 echo " 日"; } break; case "登録日付": case "更新日付": $style="style='text-align:center;"; $style.=" background-color:#dcdcdc;'"; $ymd=DateYmdHis($dspdata); //日付 echo ""; break; default: $maxlen=$field['input_size']; if ($maxlen!="") { $maxlen="maxlength=".$maxlen; } $style="style='ime-mode:"; if ($field['type']=="数値" || $field['type']=="明細件数") { $style.="disabled;"; $style.=" text-align:right;"; } else { if ($field['ja_set']==1) { $style.="active;"; } else { $style.="disabled;"; } } if ($readonly!="") { $style.=" background-color:#ffffff;"; // Update by S.Umitsuki 2011/7/6 } $style.="'"; $box_size=$field['box_size']; if ($box_size!="") { $box_size=" size=".$box_size; } $decimal_size=$field['decimal_size']; if ($decimal_size=="") { $decimal_size="0"; } $value=$dspdata; //設定値 $event=""; if ($field['comma_set']==1) //カンマ編集 { $value=str_replace(",","",$value); //ポストバック用にカンマを削除しておく $value=strlen($value==0) ? $value : number_format($value,$field['decimal_size']); $event=" onBlur='this.value=insertComma(this.value,$decimal_size)' onFocus='this.value=delComma(this.value);this.select()'"; } if ($field['link_table_id']!="" && $field['link_type']=="キー") //リンクキー { $link_key_item=""; $link_key_value=""; $link_item=""; $link_value=""; $link_key_column=""; // Add by S.Yamao 2008/10/10 $link_column=""; // Add by S.Yamao 2008/10/10 $link_table_id=$field['link_table_id']; $name=$field['name']; reset($link); while(list($ar_key,$ar_val)=each($link)) //リンクキー { if (in_array($name,$link[$ar_key][link_key_field])) //表示名に対象キーが含まれる場合 { $comma=""; reset($link[$ar_key][link_key_field]); foreach($link[$ar_key][link_key_field] as $linkvalue) //リンクキーの値 { $link_key_item.=$comma."'".$link[$linkvalue][link_field_id]."'"; $link_key_value.=$comma.$linkvalue; $link_key_column.=$comma."'".$linkvalue."'"; // Add by S.Yamao 2008/10/10 $comma=","; } break; //キー作成処理終了 } } reset($link); $comma=""; while(list($ar_key,$ar_val)=each($link)) //リンクキー { if (in_array($name,$link[$ar_key][link_key_field])) //表示名に対象キーが含まれる場合 { $link_item.=$comma."'".$link[$ar_key][link_field_id]."'"; $link_value.=$comma.$ar_key; $link_column.=$comma."'".$ar_key."'"; // Add by S.Yamao 2008/10/10 $comma=","; } } $link_key_item="Array(".$link_key_item.")"; $link_key_value="Array(".$link_key_value.")"; $link_item="Array(".$link_item.")"; $link_value="Array(".$link_value.")"; $link_key_column="Array(".$link_key_column.")"; // Add by S.Yamao 2008/10/10 $link_column="Array(".$link_column.")"; // Add by S.Yamao 2008/10/03 $event.=" onChange=\"dspName('".$link_table_id."',".$link_key_item; $event.=",".$link_key_value.",".$link_item.",".$link_value.",'".$session_index."')\""; //--------------------------- Add by S.Yamao 2008/10/03 Stat-> $event_click =" onClick=\"dspSelectItem('".$link_table_id."',".$link_key_item; $event_click.=",".$link_key_column.",".$link_item.",".$link_column.",'".$session_index."')\""; //--------------------------- Add by S.Yamao 2008/10/03 <- End } echo ""; //--------------------------- Add by S.Yamao 2008/10/03 Start -> if ($field['link_table_id']!="" && $field['link_type']=="キー") //リンクキー { echo ""; } //--------------------------- Add by S.Yamao 2008/10/03 <- End break; } break; } echo " ".$field['r_caption']; if ($field['cell_br']==1) { echo "
"; } $same_col="yes"; //while中は同じ位置への表示 } //--------------------------------------------------------------// // メイン処理 // //--------------------------------------------------------------// //--------------------------------------------------------------// // 画面表示処理 // //--------------------------------------------------------------// //登録テーブル情報の取得 getDbConnect(); // ヘッダ表示 dspRefHtmlHead($dbcon); // sys_htmlよりヘッダを表示 $dberror_msg="Error:sys_htmlテーブルの取得に失敗しました!!"; $sql="SELECT * FROM sys_html WHERE kbn='head' AND disp_no <> 0 AND html_id=".SetSqlVal($html_id)." ORDER BY disp_no"; $result=getDbSelect($dbcon,$sql,$dberror_msg); if (count($result)>0) { for($icnt=0;$icnt"; break; case 3: $menu_id = $result[$icnt][source]; ref_sql_data($dbcon, $menu_id); break; case 4: $menu_id = $result[$icnt][source]; ref_cond_data($dbcon, $menu_id); break; default: break; } } } } // 呼び出し元取得 $link=$_SERVER[HTTP_REFERER]; echo ""; echo ""; echo ""; echo ""; echo "
"; //--------------------------------------------------------------// // ヘッダ部表示処理 // //--------------------------------------------------------------// $dberror_msg="sys_tableテーブルの取得に失敗しました"; $sql="SELECT table_name FROM sys_table WHERE table_id='".$table_id."'"; $result=getDbSelect($dbcon,$sql,$dberror_msg); $table_name =$result[0]['table_name']; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $dberror_msg=$table_id."テーブルの取得に失敗しました"; //登録データの取得用Where $sqlwhere=""; while(list($key,$value)=each($_GET)){ if ($key!="action" && $key!="ptn_kbn" && $key!="ptn_no" && $key!="table_id" && $key!="main_id" && $key!="bunrui1" && $key!="bunrui2" && $key!="user_id" && $key!="html_id") { if ($sqlwhere != "") { $sqlwhere .= " AND "; } $sqlwhere .= sprintf("%s=%s",$key,SetSqlVal($value)); } } $sql="SELECT * "; //メインデータ取得 $sql.=" FROM ".$table_id; $sql.=" WHERE ".$sqlwhere; $result=getDbSelect($dbcon,$sql,$dberror_msg); $item=$result[0]; //取得したデータをセット //対象テーブルの最大ブロックを取得 $dberror_msg="sys_formテーブルの取得に失敗しました"; unset($ar_sql); $ar_sql[select]="SELECT IFNULL(MAX(disp_block),0) AS max_block FROM sys_form"; $ar_sql[where]="ptn_no=".SetSqlVal($ptn_no,"num"); $resultdisp=getDbSelect($dbcon,$ar_sql,$dberror_msg); $max_block=$resultdisp[0]['max_block']; //最大ブロック //対象テーブルのブロックごとの最大行、列を取得 $dberror_msg="sys_formテーブルの取得に失敗しました"; unset($ar_sql); $ar_sql[select]="SELECT IFNULL(MAX(disp_block),0) AS max_block,IFNULL(MAX(disp_row),0) AS max_row,IFNULL(MAX(disp_col),0) AS max_col"; $ar_sql[select].=" FROM sys_form"; $ar_sql[where]="ptn_no=".SetSqlVal($ptn_no,"num"); $ar_sql[where].=" AND IFNULL(disp_block,0)<>0 AND IFNULL(disp_row,0)<>0 AND IFNULL(disp_col,0)<>0 GROUP BY disp_block"; //表示行、列が指定されている項目 $resultdisp=getDbSelect($dbcon,$ar_sql,$dberror_msg); //対象テーブルの初期クラスを取得 $dberror_msg="sys_formテーブルの取得に失敗しました"; $sql="SELECT disp_block,caption_class,input_class"; $sql.=" FROM sys_form WHERE ptn_no=".SetSqlVal($ptn_no,"num"); $sql.=" AND dflt_class=1"; //初期クラスの取得 $resultclass=getDbSelect($dbcon,$sql,$dberror_msg); for ($icnt=0;$icnt''"; //計算式が指定されている項目 $ar_sql[where].=" AND ((IFNULL(sys_form.disp_block,0)<>0 AND IFNULL(sys_form.disp_row,0)<>0"; $ar_sql[where].=" AND IFNULL(sys_form.disp_col,0)<>0) OR key_set=1)"; //表示行、列が指定されている項目 $resultcalc=getDbSelect($dbcon,$ar_sql,$dberror_msg); //スクリプトの出力 for ($icnt=0;$icnt1) //項目あり { $calc_item[]=$wk_calc[1]; //[]に囲まれた文字列(項目名)の取得 } } $calc=str_replace("[","Number(delComma(",$calc); $calc=str_replace("]",".value))",$calc); $fnc_calc.= $name.".value=".$calc.";"; for ($icalc=0;$icalc0 AND IFNULL(sys_form.disp_row,0)<>0"; $ar_sql[where].=" AND IFNULL(sys_form.disp_col,0)<>0) OR key_set=1)"; //表示行、列が指定されている項目 $ar_sql[order]="IFNULL(sys_form.disp_block,0),IFNULL(sys_form.disp_row,0),IFNULL(sys_form.disp_col,0)"; $ar_sql[order].=",IFNULL(sys_form.cell_ord,0)"; $resultfield=getDbSelect($dbcon,$ar_sql,$dberror_msg); //--------------------------------------------------------------// // 明細部表示処理 // //--------------------------------------------------------------// echo ""; echo ""; echo ""; //ユーザーIDセット dspMain($resultfield,$resultdisp,$item,$hiduke,$max_block,$cmd,$link,$list,$table_id,$dflt,$func); echo "
"; // // フッター表示 // // sys_htmlよりフッタを表示 $dberror_msg="Error:sys_htmlテーブルの取得に失敗しました!!"; $sql="SELECT * FROM sys_html WHERE kbn='foot' AND disp_no <> 0 AND html_id=".SetSqlVal($html_id)." ORDER BY disp_no"; $result=getDbSelect($dbcon,$sql,$dberror_msg); if (count($result)>0) { for($icnt=0;$icnt"; break; case 3: $menu_id = $result[$icnt][source]; ref_sql_data($dbcon, $menu_id); break; case 4: $menu_id = $result[$icnt][source]; ref_cond_data($dbcon, $menu_id); break; default: break; } } } } getDbClose($dbcon); // フッタ表示 dspRefHtmlFoot(); ?>