PHP实现展开BOM物料清单中父阶和子阶关系[代码收藏]

本文提供了一段PHP代码,用于连接数据库并处理物料清单(BOM)中的父阶和子阶关系。代码包括了展开所有子阶、只展开第一阶子阶、展开最后一阶子阶、显示最上层父阶和第一层父阶的功能。通过示例展示了如何使用此代码进行BOM查询,并包含了与数据库交互的部分。
摘要由CSDN通过智能技术生成

 

说明:在库存管理系统(HPE)中,不可避免会遇到料号,BOM(Bill Of Material) ,即物料清单表。在表中有父料号(父阶)和子料号(子阶)的关系,一个父阶可以包含多个子阶,而子阶又包含若干个子阶。物料中有成品、半成品、原材料等,无论是成品、半成品或是原材料,它们都属一种料号。一个成品可包含若干个成品或半成品,一个半成品可包含若干个原材料乃至成品。在BOM表中有bom_parent,bom_part...以下代码是我从项目中摘录出来的展开BOM表的算法,其中包括如何展开所有子阶,只展开第一阶子阶,展开最后一阶子阶,显示最上层父阶,显示第一层父阶。

举例

bom_parent   bom_part

A0001   B0001

A0001   B0002

A0001   B0003

B0001  C0001

B0001  C0002

B0002  C0001

B0003  C0003......

代码:

//Author: lucas Date:2007.11.12

<?php
//funtion: connect to database
//database: Name:inv ,User:root,Password:831025

function db_link()
{
 $access_id  = "root";
 $access_pwd = "831025";
 $db_name    = "inv";
   
 @ $db = mysql_connect('localhost', $access_id, $access_pwd) or
  die("Could not connect to database. Please contact with IT supporting team ASAP.");
 mysql_query("SET NAMES 'GBK'");
 mysql_select_db($db_name);
 return $db;
}
$link=db_link();

//function: get part information
//Table name: Part   field:pt_part,pt_desc,pt_act.

function get_part_info($part, $part_field)
{
 $pt_sql = "SELECT ".$part_field." FROM part WHERE pt_part = '$part' ";
 $pt_res = mysql_query($pt_sql);
 $pt_num = mysql_num_rows($pt_res);
 if ($pt_num > 0) {
  $pt_row = mysql_fetch_array($pt_res);
  return $pt_row[0];
 }
 else
  return "";
}

//function:select plant
//Table name:Plant field:plant_id,plant_desc,plant_act

function select_bom_plant($name, $default, $allow_all)
{
 $plant_sql = "SELECT plant_id, plant_desc FROM plant WHERE plant_act = '1' ";
 $plant_res = mysql_query($plant_sql);
 $plant_num = mysql_num_rows($plant_res);

 echo '<select name="'.$name.'">';
 if ($allow_all == "Y") {
  if ($default == "*")
   echo '<option value="*" selected> - All Plants - </option>';
  else
   echo '<option value="*"> - All Plants - </option>';
 }

 if ($default == "GLOB")
  echo '<option value="GLOB" selected> GLOB - Global BOM </option>';
 else
  echo '<option value="GLOB"> GLOB - Global BOM </option>';

 for ($i = 0; $i < $plant_num; $i++){
        $plant_row = mysql_fetch_array($plant_res);
  if ($default == $plant_row['plant_id'])
   echo '<option value="'.$plant_row['plant_id'].'" selected > '.$plant_row['plant_id'].' - '.$plant_row['plant_desc'];
  else
   echo '<option value="'.$plant_row['plant_id'].'" > '.$plant_row['plant_id'].' - '.$plant_row['plant_desc'];
 }
 echo '</select>';
}

//inquiry table bom[Bill Of Material] 物料清单
//Table Name: bom
//Field:bom_parent,bom_part,bom_act,bom_um,bom_qty,bom_eff_date,bom_ineff_date,bom_type,bom_sts,bom_plant...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值