给通达OA2008人事档案导入功能增加自定义字段
作者:小戒 日期:2009-08-13
终于加进去了。效果不错。嘿嘿。
function CSV2Array( $content, $title = array( ), $delimiter = ",", $enclosure = "\"", $optional = 1 )
{
$content = trim( $content );
$content = str_replace( "\r", "", $content );
$csv_array = array( );
$expr_line = "/\\n(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/";
$expr_field = "/".$delimiter."(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/";
$lines = preg_split( $expr_line, trim( $content ) );
foreach ( $lines as $line )
{
$fields = preg_split( $expr_field, trim( $line ) );
$csv_array[] = preg_replace( array( "/\"(.*)\"\$/s", "/\"\"/s" ), array( "\$1", "\"" ), $fields );
}
if ( !is_array( $title ) && count( $title ) == 0 || count( $csv_array ) == 0 )
{
return $csv_array;
}
$field_map = array( );
while ( list( $key, $value ) = each( &$title ) )
{
if ( ( $index = array_search( $key, $csv_array[0] ) ) !== FALSE )
{
$field_map[$value] = $index;
}
}
$lines = array( );
$i = 1;
for ( ; $i < count( $csv_array ); ++$i )
{
$line = array( );
reset( &$field_map );
while ( list( $key, $value ) = each( &$field_map ) )
{
$line[$key] = $csv_array[$i][$value];
}
$lines[] = $line;
}
return $lines;
}
function get_field_lines( $data, $TABLENAME )
{
$title = get_field_title( $TABLENAME );
if ( !empty( $title ) )
{
$lines = csv2array( $data, $title );
}
else
{
$lines = array(
array( )
);
}
$field = get_field_info( $TABLENAME );
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
while ( list( $key, $value ) = each( &$lines[$I] ) )
{
$value = str_replace( ",", ",", trim( $value ) );
if ( $field[$key]['STYPE'] == "R" || $field[$key]['STYPE'] == "D" )
{
$lines[$I][$key] = $field[$key]['CODE'][$value];
}
else
{
if ( !( $field[$key]['STYPE'] == "C" ) )
{
continue;
}
$lines[$I][$key] = "";
$name_array = explode( ",", $value );
$J = 0;
for ( ; $J < count( $name_array ); ++$J )
{
$name = $name_array[$J];
if ( !( $name == "" ) )
{
if ( $field[$key]['CODE'][$name] == "" )
{
break;
}
}
else
{
continue;
}
$lines[$I][$key] .= $field[$key]['CODE'][$name].",";
}
}
}
}
return $lines;
}
function get_field_title( $TABLENAME )
{
global $connection;
$USERDEF_FIELD = array( );
$query = "select * from FIELDSETTING where TABLENAME='".$TABLENAME."' order by orDERNO;";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$FIELDNO = $ROW['FIELDNO'];
$FIELDNAME = $ROW['FIELDNAME'];
$USERDEF_FIELD[trim( $FIELDNAME )] = $FIELDNO;
}
return $USERDEF_FIELD;
}
function get_field_info( $TABLENAME )
{
global $connection;
$USERDEF_FIELD = array( );
$query = "select * from FIELDSETTING where TABLENAME='".$TABLENAME."' order by orDERNO;";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$FIELDNO = $ROW['FIELDNO'];
$STYPE = $ROW['STYPE'];
$TYPENAME = $ROW['TYPENAME'];
$TYPEVALUE = $ROW['TYPEVALUE'];
$TYPECODE = $ROW['TYPECODE'];
$FIELD_INFO = array(
"STYPE" => $STYPE,
"CODE" => array( )
);
if ( $STYPE == "C" || $STYPE == "R" || $STYPE == "D" )
{
if ( $TYPECODE != "" )
{
$FIELD_INFO['CODE'] = get_code_array( $TYPECODE, TRUE );
}
else
{
$NAME_ARRAY = explode( ",", $TYPENAME );
$VALUE_ARRAY = explode( ",", $TYPEVALUE );
$I = 0;
for ( ; $I < count( $NAME_ARRAY ); ++$I )
{
if ( !( $NAME_ARRAY[$I] == "" ) )
{
$FIELD_INFO['CODE'][$NAME_ARRAY[$I]] = $VALUE_ARRAY[$I];
}
}
}
}
$USERDEF_FIELD[$FIELDNO] = $FIELD_INFO;
}
return $USERDEF_FIELD;
}
复制内容到剪贴板
程序代码
程序代码<?php
/*********************/
/* */
/* Version : 5.1.0 */
/* Author : RM */
/* Comment : 071223 */
/* */
/*********************/
include_once( "inc/auth.php" );
include_once( "inc/utility_all.php" );
?>
<html>
<head>
<title>导入数据</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
<?php
if ( $FILE_NAME == "" )
{
?>
<script Language="JavaScript">
function CheckForm()
{
if(document.form1.CSV_FILE.value=="")
{ alert("请选择要导入的文件!");
return (false);
}
if (document.form1.CSV_FILE.value!="")
{
var file_temp=document.form1.CSV_FILE.value,file_name;
var Pos;
Pos=file_temp.lastIndexOf("\\");
file_name=file_temp.substring(Pos+1,file_temp.length);
document.form1.FILE_NAME.value=file_name;
}
return (true);
}
</script>
<table border="0" width="100%" cellspacing="0" cellpadding="3" class="small">
<tr>
<td class="Big"><img src="/images/sys_config.gif" align="absmiddle"><span class="big3"> 导入人事数据</span><br>
</td>
</tr>
</table>
<br>
<br>
<div align="center" class="Big1">
<b>请指定用于导入的CSV文件:</b>
<form name="form1" method="post" action="import.php?FLOW_ID=<?php echo $FLOW_ID;?>" enctype="multipart/form-data" onSubmit="return CheckForm();">
<input type="file" name="CSV_FILE" class="BigInput" size="30">
<input type="hidden" name="FILE_NAME">
<input type="hidden" name="GROUP_ID" value="<?php echo $GROUP_ID;?>">
<input type="submit" value="导入" class="BigButton">
</form>
请使用人事档案模板导入数据!<a href="#" onClick="window.location='templet_export.php'">人事档案模板下载</a>
<br>
<?php
if ( $FILE_NAME == "" )
{
message( "说明", "1)EXECL的人事报表的第一列必须为姓名,余下的列名称必须与人员档案基本信息相对应;<BR>2)将改好的EXECL人员信息报表另存为CSV格式的文件;" );
}
?>
</div>
<?php
exit( );
}
if ( strtolower( substr( $FILE_NAME, -3 ) ) != "csv" )
{
message( "错误", "只能导入CSV文件!" );
button_back( );
exit( );
}
$title = array( "姓名" => "USER_NAME", "用户名" => "USER_ID", "部门" => "DEPT_NAME", "编号" => "NO", "身份证号码" => "CARD_NO", "婚姻状况" => "MARRY", "民族" => "NATION", "籍贯" => "NATIVE_PLACE", "户口所在地" => "HUKOU_PLACE", "参加工作时间" => "WORK_DATE", "加入本单位时间" => "JOIN_DATE", "学历" => "EDUCATION", "专业" => "SPECIALITY", "毕业院校" => "SCHOOL", "政治面貌" => "POLITICS", "职务" => "POST", "职称" => "TECH_POST", "家庭住址" => "HOME_ADDR", "家庭电话" => "HOME_TEL", "职务情况" => "CERTIFICATE", "奖惩记录" => "REWARD", "培训记录" => "TRAIN", "教育背景" => "EDU", "工作简历" => "WORK", "社会关系" => "SOCIATY", "岗位变动情况" => "POST_CHANGE", "担保记录" => "SURETY", "劳动合同签订情况" => "CONTRACT", "社保缴纳情况" => "INSURE", "体检记录" => "BODY_EXAMIM", "备注" => "RESUME", "出生日期" => "HR_BIRTHDAY", "用工类型" => "CONTRACTTYPE", "性别" => "SEX", "合同开始日期" => "CONTRACT_DATE1", "合同结束日期" => "CONTRACT_DATE2", "电子邮件" => "EMAIL" );
$ROW_COUNT = 0;
$SUCC_COUNT = 0;
$data = file_get_contents( $CSV_FILE );
if ( !$data )
{
message( "错误", "打开文件错误!" );
button_back( );
exit( );
}
$lines = csv2array( $data, $title );
$lines_field = get_field_lines( $data, "HRMS" );
if ( count( $lines ) != count( $lines_field ) )
{
message( "错误", "自定义字段数据不匹配" );
button_back( );
exit( );
}
$MSG_ERROR = array( );
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
$line = $lines[$I];
$DATA_NUM = count( $line );
$STR_VALUE = "";
$STR_Update = "";
$STR_KEY = "";
$STR_UpdateKEY = "";
$MSG_ERROR[$ROW_COUNT] = "成功";
$success = 1;
foreach ( $line as $key => $value )
{
$value = ltrim( $value );
if ($key != "DEPT_NAME" && $key != "USER_NAME" & $key != "USER_ID" )
{
$STR_KEY .= $key.",";
$STR_UpdateKEY .= $key.",";
}
else
{
if ( $key == "DEPT_NAME" )
{
$DEPT_NAME = $value;
}
if ( $key == "USER_ID" )
{
$USER_ID = $value;
if ( $value == "" )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>用户名为空,未导入</font>";
$success = 0;
}
}
else
{
if ( $key == "USER_NAME" )
{
$USER_NAME = $value;
if ( $value == "" )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>姓名为空,未导入</font>";
$success = 0;
}
}
}
}
if ( $key == "HR_BIRTHDAY" )
{
$BIRTHDAY = $value;
}
if ( $key == "SEX" )
{
if ( $value == "男" )
{
$SEX = "0";
}
else
{
$SEX = "1";
}
}
switch ( $value )
{
case "未婚" :
$value = "0";
break;
case "已婚" :
$value = "1";
break;
case "离异" :
$value = "2";
break;
case "丧偶" :
$value = "3";
break;
case "男" :
$value = "0";
break;
case "女" :
$value = "1";
}
if ( $key == "POLITICS" )
{
switch ( $value )
{
case "群众" :
$value = "1";
break;
case "团员" :
$value = "2";
break;
case "党员" :
$value = "3";
break;
case "预备党员" :
$value = "4";
}
}
if (( $key != "DEPT_NAME" ) && ( $key != "USER_NAME" ) && ( $key != "USER_ID" ) )
{
if ( $key == "NATIVE_PLACE" || $key == "TECH_POST" || $key == "CONTRACTTYPE" )
{
$query1 = "select CODE_NO from SYS_CODE where PARENT_NO='".$key."' and CODE_NAME='{$value}'";
if ( $key == "NATIVE_PLACE" )
{
$query1 = "select CODE_NO from SYS_CODE where PARENT_NO='AREA' and CODE_NAME='".$value."'";
}
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$value = $ROW['CODE_NO'];
}
}
$STR_VALUE .= "'".$value."',";
$STR_Update .= "{$key}='{$value}',";
}
}
if ( substr( $STR_KEY, -1 ) == "," )
{
$STR_KEY = substr( $STR_KEY, 0, -1 );
$STR_UpdateKEY = substr( $STR_UpdateKEY, 0, -1 );
}
if ( substr( $STR_VALUE, -1 ) == "," )
{
$STR_VALUE = substr( $STR_VALUE, 0, -1 );
$STR_Update = substr( $STR_Update, 0, -1 );
}
$query1 = "Select a.USER_ID,a.DEPT_ID from USER a left outer join DEPARTMENT b on a.DEPT_ID=b.DEPT_ID where a.USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$USER_ID = $ROW['USER_ID'];
$MSG_ERROR[$ROW_COUNT] = "<font color=green>已有用户,资料已更新</font>";
$query1 = "Select * from HRMS where USER_ID='".$USER_ID."'";
$cursor = exequery( $connection, $query1 );
if ( mysql_fetch_array( $cursor ) === FALSE )
{
$query = "insert into HRMS (USER_ID,".$STR_KEY.( ") values ('".$USER_ID."'," ).$STR_VALUE.")";
exequery( $connection, $query );
}
else
{
$query1 = "update HRMS SET ".$STR_Update." where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
$query1 = "update USER SET SEX='".$SEX."' where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
}
}
else
{
$USER_ID = $USER_ID;
$query1 = "select USER_ID from `USER` where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>用户已存在,未导入</font>";
++$ROW_COUNT;
$success = 0;
}
else
{
$query1 = "select USER_PRIV from USER_PRIV order by PRIV_NO DESC";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$USER_PRIV = $ROW['USER_PRIV'];
}
$query1 = "select DEPT_ID from DEPARTMENT where DEPT_NAME='".$DEPT_NAME."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$DEPT_ID = $ROW['DEPT_ID'];
}
else
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>部门不存在,未导入</font>";
++$ROW_COUNT;
$success = 0;
continue;
}
$PASSWORD = crypt( "" );
if ( $USER_NAME != "" && $USER_ID != "" )
{
$query1 = "insert into USER (USER_ID,USER_NAME,SEX,PASSWORD,USER_PRIV,POST_PRIV,POST_DEPT,CANBROADCAST,DEPT_ID,AVATAR,CALL_SOUND,DUTY_TYPE,SMS_ON,EMAIL_CAPACITY,FOLDER_CAPACITY,USER_PRIV_OTHER,USER_NO,NOT_LOGIN,NOT_VIEW_USER,NOT_VIEW_TABLE,BYNAME,BIRTHDAY,THEME,MOBIL_NO,MOBIL_NO_HIDDEN)
values ('".$USER_ID."','{$USER_NAME}','{$SEX}','{$PASSWORD}','{$USER_PRIV}','0','','0','{$DEPT_ID}','1','1','1','1',0,0,'','{$USER_NO}','1','1','1','','{$BIRTHDAY}','1','','')";
exequery( $connection, $query1 );
add_log( 6, $USER_ID, $LOGIN_USER_ID );
$query = "insert into HRMS (USER_ID,".$STR_KEY.( ") values ('".$USER_ID."'," ).$STR_VALUE.")";
exequery( $connection, $query );
}
}
}
if ( 0 < count( $lines_field[$I] ) )
{
save_field_data( "HRMS", $USER_ID, $lines_field[$I] );
}
++$ROW_COUNT;
if ( $success )
{
++$SUCC_COUNT;
}
}
if ( file_exists( $CSV_FILE ) )
{
@unlink( $CSV_FILE );
}
?>
<br>
<table class="TableList" width="100%" align="center">
<thead class="TableHeader">
<td nowrap align="center">姓名</td>
<td nowrap align="center">部门</td>
<td nowrap align="center">性别</td>
<td nowrap align="center">出生年月</td>
<td nowrap align="center">民族</td>
<td nowrap align="center">籍贯</td>
<td nowrap align="center">政治面貌</td>
<td nowrap align="center">身份证号码</td>
<td nowrap align="center">备注</td>
<td nowrap align="center">状态</td>
</thead>
<?php
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
?>
<tr align="center" style="<?php echo $TR_STYLE;?>" class="TableData">
<td><?php echo $lines[$I]['USER_NAME'];?>(<?php echo $lines[$I]['USER_ID'];?>)</td>
<td><?php echo $lines[$I]['DEPT_NAME'];?></td>
<td><?php echo $lines[$I]['SEX'];?></td>
<td><?php echo $lines[$I]['HR_BIRTHDAY'];?></td>
<td><?php echo $lines[$I]['NATION'];?></td>
<td><?php echo $lines[$I]['NATIVE_PLACE'];?></td>
<td><?php echo $lines[$I]['POLITICS'];?></td>
<td><?php echo $lines[$I]['CARD_NO'];?></td>
<td><?php echo $lines[$I]['RESUME'];?></td>
<td align="left"><?php echo $MSG_ERROR[$I];?></td>
</tr>
<?php
}
?>
</table>
<?php
message( "", "共".$SUCC_COUNT."条数据导入成功!" );
button_back( );
?>
</body>
</html>
/*********************/
/* */
/* Version : 5.1.0 */
/* Author : RM */
/* Comment : 071223 */
/* */
/*********************/
include_once( "inc/auth.php" );
include_once( "inc/utility_all.php" );
?>
<html>
<head>
<title>导入数据</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
<?php
if ( $FILE_NAME == "" )
{
?>
<script Language="JavaScript">
function CheckForm()
{
if(document.form1.CSV_FILE.value=="")
{ alert("请选择要导入的文件!");
return (false);
}
if (document.form1.CSV_FILE.value!="")
{
var file_temp=document.form1.CSV_FILE.value,file_name;
var Pos;
Pos=file_temp.lastIndexOf("\\");
file_name=file_temp.substring(Pos+1,file_temp.length);
document.form1.FILE_NAME.value=file_name;
}
return (true);
}
</script>
<table border="0" width="100%" cellspacing="0" cellpadding="3" class="small">
<tr>
<td class="Big"><img src="/images/sys_config.gif" align="absmiddle"><span class="big3"> 导入人事数据</span><br>
</td>
</tr>
</table>
<br>
<br>
<div align="center" class="Big1">
<b>请指定用于导入的CSV文件:</b>
<form name="form1" method="post" action="import.php?FLOW_ID=<?php echo $FLOW_ID;?>" enctype="multipart/form-data" onSubmit="return CheckForm();">
<input type="file" name="CSV_FILE" class="BigInput" size="30">
<input type="hidden" name="FILE_NAME">
<input type="hidden" name="GROUP_ID" value="<?php echo $GROUP_ID;?>">
<input type="submit" value="导入" class="BigButton">
</form>
请使用人事档案模板导入数据!<a href="#" onClick="window.location='templet_export.php'">人事档案模板下载</a>
<br>
<?php
if ( $FILE_NAME == "" )
{
message( "说明", "1)EXECL的人事报表的第一列必须为姓名,余下的列名称必须与人员档案基本信息相对应;<BR>2)将改好的EXECL人员信息报表另存为CSV格式的文件;" );
}
?>
</div>
<?php
exit( );
}
if ( strtolower( substr( $FILE_NAME, -3 ) ) != "csv" )
{
message( "错误", "只能导入CSV文件!" );
button_back( );
exit( );
}
$title = array( "姓名" => "USER_NAME", "用户名" => "USER_ID", "部门" => "DEPT_NAME", "编号" => "NO", "身份证号码" => "CARD_NO", "婚姻状况" => "MARRY", "民族" => "NATION", "籍贯" => "NATIVE_PLACE", "户口所在地" => "HUKOU_PLACE", "参加工作时间" => "WORK_DATE", "加入本单位时间" => "JOIN_DATE", "学历" => "EDUCATION", "专业" => "SPECIALITY", "毕业院校" => "SCHOOL", "政治面貌" => "POLITICS", "职务" => "POST", "职称" => "TECH_POST", "家庭住址" => "HOME_ADDR", "家庭电话" => "HOME_TEL", "职务情况" => "CERTIFICATE", "奖惩记录" => "REWARD", "培训记录" => "TRAIN", "教育背景" => "EDU", "工作简历" => "WORK", "社会关系" => "SOCIATY", "岗位变动情况" => "POST_CHANGE", "担保记录" => "SURETY", "劳动合同签订情况" => "CONTRACT", "社保缴纳情况" => "INSURE", "体检记录" => "BODY_EXAMIM", "备注" => "RESUME", "出生日期" => "HR_BIRTHDAY", "用工类型" => "CONTRACTTYPE", "性别" => "SEX", "合同开始日期" => "CONTRACT_DATE1", "合同结束日期" => "CONTRACT_DATE2", "电子邮件" => "EMAIL" );
$ROW_COUNT = 0;
$SUCC_COUNT = 0;
$data = file_get_contents( $CSV_FILE );
if ( !$data )
{
message( "错误", "打开文件错误!" );
button_back( );
exit( );
}
$lines = csv2array( $data, $title );
$lines_field = get_field_lines( $data, "HRMS" );
if ( count( $lines ) != count( $lines_field ) )
{
message( "错误", "自定义字段数据不匹配" );
button_back( );
exit( );
}
$MSG_ERROR = array( );
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
$line = $lines[$I];
$DATA_NUM = count( $line );
$STR_VALUE = "";
$STR_Update = "";
$STR_KEY = "";
$STR_UpdateKEY = "";
$MSG_ERROR[$ROW_COUNT] = "成功";
$success = 1;
foreach ( $line as $key => $value )
{
$value = ltrim( $value );
if ($key != "DEPT_NAME" && $key != "USER_NAME" & $key != "USER_ID" )
{
$STR_KEY .= $key.",";
$STR_UpdateKEY .= $key.",";
}
else
{
if ( $key == "DEPT_NAME" )
{
$DEPT_NAME = $value;
}
if ( $key == "USER_ID" )
{
$USER_ID = $value;
if ( $value == "" )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>用户名为空,未导入</font>";
$success = 0;
}
}
else
{
if ( $key == "USER_NAME" )
{
$USER_NAME = $value;
if ( $value == "" )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>姓名为空,未导入</font>";
$success = 0;
}
}
}
}
if ( $key == "HR_BIRTHDAY" )
{
$BIRTHDAY = $value;
}
if ( $key == "SEX" )
{
if ( $value == "男" )
{
$SEX = "0";
}
else
{
$SEX = "1";
}
}
switch ( $value )
{
case "未婚" :
$value = "0";
break;
case "已婚" :
$value = "1";
break;
case "离异" :
$value = "2";
break;
case "丧偶" :
$value = "3";
break;
case "男" :
$value = "0";
break;
case "女" :
$value = "1";
}
if ( $key == "POLITICS" )
{
switch ( $value )
{
case "群众" :
$value = "1";
break;
case "团员" :
$value = "2";
break;
case "党员" :
$value = "3";
break;
case "预备党员" :
$value = "4";
}
}
if (( $key != "DEPT_NAME" ) && ( $key != "USER_NAME" ) && ( $key != "USER_ID" ) )
{
if ( $key == "NATIVE_PLACE" || $key == "TECH_POST" || $key == "CONTRACTTYPE" )
{
$query1 = "select CODE_NO from SYS_CODE where PARENT_NO='".$key."' and CODE_NAME='{$value}'";
if ( $key == "NATIVE_PLACE" )
{
$query1 = "select CODE_NO from SYS_CODE where PARENT_NO='AREA' and CODE_NAME='".$value."'";
}
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$value = $ROW['CODE_NO'];
}
}
$STR_VALUE .= "'".$value."',";
$STR_Update .= "{$key}='{$value}',";
}
}
if ( substr( $STR_KEY, -1 ) == "," )
{
$STR_KEY = substr( $STR_KEY, 0, -1 );
$STR_UpdateKEY = substr( $STR_UpdateKEY, 0, -1 );
}
if ( substr( $STR_VALUE, -1 ) == "," )
{
$STR_VALUE = substr( $STR_VALUE, 0, -1 );
$STR_Update = substr( $STR_Update, 0, -1 );
}
$query1 = "Select a.USER_ID,a.DEPT_ID from USER a left outer join DEPARTMENT b on a.DEPT_ID=b.DEPT_ID where a.USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$USER_ID = $ROW['USER_ID'];
$MSG_ERROR[$ROW_COUNT] = "<font color=green>已有用户,资料已更新</font>";
$query1 = "Select * from HRMS where USER_ID='".$USER_ID."'";
$cursor = exequery( $connection, $query1 );
if ( mysql_fetch_array( $cursor ) === FALSE )
{
$query = "insert into HRMS (USER_ID,".$STR_KEY.( ") values ('".$USER_ID."'," ).$STR_VALUE.")";
exequery( $connection, $query );
}
else
{
$query1 = "update HRMS SET ".$STR_Update." where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
$query1 = "update USER SET SEX='".$SEX."' where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
}
}
else
{
$USER_ID = $USER_ID;
$query1 = "select USER_ID from `USER` where USER_ID='".$USER_ID."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>用户已存在,未导入</font>";
++$ROW_COUNT;
$success = 0;
}
else
{
$query1 = "select USER_PRIV from USER_PRIV order by PRIV_NO DESC";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$USER_PRIV = $ROW['USER_PRIV'];
}
$query1 = "select DEPT_ID from DEPARTMENT where DEPT_NAME='".$DEPT_NAME."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$DEPT_ID = $ROW['DEPT_ID'];
}
else
{
$MSG_ERROR[$ROW_COUNT] = "<font color=red>部门不存在,未导入</font>";
++$ROW_COUNT;
$success = 0;
continue;
}
$PASSWORD = crypt( "" );
if ( $USER_NAME != "" && $USER_ID != "" )
{
$query1 = "insert into USER (USER_ID,USER_NAME,SEX,PASSWORD,USER_PRIV,POST_PRIV,POST_DEPT,CANBROADCAST,DEPT_ID,AVATAR,CALL_SOUND,DUTY_TYPE,SMS_ON,EMAIL_CAPACITY,FOLDER_CAPACITY,USER_PRIV_OTHER,USER_NO,NOT_LOGIN,NOT_VIEW_USER,NOT_VIEW_TABLE,BYNAME,BIRTHDAY,THEME,MOBIL_NO,MOBIL_NO_HIDDEN)
values ('".$USER_ID."','{$USER_NAME}','{$SEX}','{$PASSWORD}','{$USER_PRIV}','0','','0','{$DEPT_ID}','1','1','1','1',0,0,'','{$USER_NO}','1','1','1','','{$BIRTHDAY}','1','','')";
exequery( $connection, $query1 );
add_log( 6, $USER_ID, $LOGIN_USER_ID );
$query = "insert into HRMS (USER_ID,".$STR_KEY.( ") values ('".$USER_ID."'," ).$STR_VALUE.")";
exequery( $connection, $query );
}
}
}
if ( 0 < count( $lines_field[$I] ) )
{
save_field_data( "HRMS", $USER_ID, $lines_field[$I] );
}
++$ROW_COUNT;
if ( $success )
{
++$SUCC_COUNT;
}
}
if ( file_exists( $CSV_FILE ) )
{
@unlink( $CSV_FILE );
}
?>
<br>
<table class="TableList" width="100%" align="center">
<thead class="TableHeader">
<td nowrap align="center">姓名</td>
<td nowrap align="center">部门</td>
<td nowrap align="center">性别</td>
<td nowrap align="center">出生年月</td>
<td nowrap align="center">民族</td>
<td nowrap align="center">籍贯</td>
<td nowrap align="center">政治面貌</td>
<td nowrap align="center">身份证号码</td>
<td nowrap align="center">备注</td>
<td nowrap align="center">状态</td>
</thead>
<?php
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
?>
<tr align="center" style="<?php echo $TR_STYLE;?>" class="TableData">
<td><?php echo $lines[$I]['USER_NAME'];?>(<?php echo $lines[$I]['USER_ID'];?>)</td>
<td><?php echo $lines[$I]['DEPT_NAME'];?></td>
<td><?php echo $lines[$I]['SEX'];?></td>
<td><?php echo $lines[$I]['HR_BIRTHDAY'];?></td>
<td><?php echo $lines[$I]['NATION'];?></td>
<td><?php echo $lines[$I]['NATIVE_PLACE'];?></td>
<td><?php echo $lines[$I]['POLITICS'];?></td>
<td><?php echo $lines[$I]['CARD_NO'];?></td>
<td><?php echo $lines[$I]['RESUME'];?></td>
<td align="left"><?php echo $MSG_ERROR[$I];?></td>
</tr>
<?php
}
?>
</table>
<?php
message( "", "共".$SUCC_COUNT."条数据导入成功!" );
button_back( );
?>
</body>
</html>
复制内容到剪贴板
程序代码
程序代码function CSV2Array( $content, $title = array( ), $delimiter = ",", $enclosure = "\"", $optional = 1 )
{
$content = trim( $content );
$content = str_replace( "\r", "", $content );
$csv_array = array( );
$expr_line = "/\\n(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/";
$expr_field = "/".$delimiter."(?=(?:[^".$enclosure."]*".$enclosure."[^".$enclosure."]*".$enclosure.")*(?![^".$enclosure."]*".$enclosure."))/";
$lines = preg_split( $expr_line, trim( $content ) );
foreach ( $lines as $line )
{
$fields = preg_split( $expr_field, trim( $line ) );
$csv_array[] = preg_replace( array( "/\"(.*)\"\$/s", "/\"\"/s" ), array( "\$1", "\"" ), $fields );
}
if ( !is_array( $title ) && count( $title ) == 0 || count( $csv_array ) == 0 )
{
return $csv_array;
}
$field_map = array( );
while ( list( $key, $value ) = each( &$title ) )
{
if ( ( $index = array_search( $key, $csv_array[0] ) ) !== FALSE )
{
$field_map[$value] = $index;
}
}
$lines = array( );
$i = 1;
for ( ; $i < count( $csv_array ); ++$i )
{
$line = array( );
reset( &$field_map );
while ( list( $key, $value ) = each( &$field_map ) )
{
$line[$key] = $csv_array[$i][$value];
}
$lines[] = $line;
}
return $lines;
}
function get_field_lines( $data, $TABLENAME )
{
$title = get_field_title( $TABLENAME );
if ( !empty( $title ) )
{
$lines = csv2array( $data, $title );
}
else
{
$lines = array(
array( )
);
}
$field = get_field_info( $TABLENAME );
$I = 0;
for ( ; $I < count( $lines ); ++$I )
{
while ( list( $key, $value ) = each( &$lines[$I] ) )
{
$value = str_replace( ",", ",", trim( $value ) );
if ( $field[$key]['STYPE'] == "R" || $field[$key]['STYPE'] == "D" )
{
$lines[$I][$key] = $field[$key]['CODE'][$value];
}
else
{
if ( !( $field[$key]['STYPE'] == "C" ) )
{
continue;
}
$lines[$I][$key] = "";
$name_array = explode( ",", $value );
$J = 0;
for ( ; $J < count( $name_array ); ++$J )
{
$name = $name_array[$J];
if ( !( $name == "" ) )
{
if ( $field[$key]['CODE'][$name] == "" )
{
break;
}
}
else
{
continue;
}
$lines[$I][$key] .= $field[$key]['CODE'][$name].",";
}
}
}
}
return $lines;
}
function get_field_title( $TABLENAME )
{
global $connection;
$USERDEF_FIELD = array( );
$query = "select * from FIELDSETTING where TABLENAME='".$TABLENAME."' order by orDERNO;";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$FIELDNO = $ROW['FIELDNO'];
$FIELDNAME = $ROW['FIELDNAME'];
$USERDEF_FIELD[trim( $FIELDNAME )] = $FIELDNO;
}
return $USERDEF_FIELD;
}
function get_field_info( $TABLENAME )
{
global $connection;
$USERDEF_FIELD = array( );
$query = "select * from FIELDSETTING where TABLENAME='".$TABLENAME."' order by orDERNO;";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$FIELDNO = $ROW['FIELDNO'];
$STYPE = $ROW['STYPE'];
$TYPENAME = $ROW['TYPENAME'];
$TYPEVALUE = $ROW['TYPEVALUE'];
$TYPECODE = $ROW['TYPECODE'];
$FIELD_INFO = array(
"STYPE" => $STYPE,
"CODE" => array( )
);
if ( $STYPE == "C" || $STYPE == "R" || $STYPE == "D" )
{
if ( $TYPECODE != "" )
{
$FIELD_INFO['CODE'] = get_code_array( $TYPECODE, TRUE );
}
else
{
$NAME_ARRAY = explode( ",", $TYPENAME );
$VALUE_ARRAY = explode( ",", $TYPEVALUE );
$I = 0;
for ( ; $I < count( $NAME_ARRAY ); ++$I )
{
if ( !( $NAME_ARRAY[$I] == "" ) )
{
$FIELD_INFO['CODE'][$NAME_ARRAY[$I]] = $VALUE_ARRAY[$I];
}
}
}
}
$USERDEF_FIELD[$FIELDNO] = $FIELD_INFO;
}
return $USERDEF_FIELD;
}
[本日志由 小戒 于 2009-08-13 05:40 PM 编辑]
上一篇: Alimama超强的Banner Maker
下一篇: 破解软件详细教程
文章来自: 本站原创
Tags: 通达 OA 人事 档案 导入 功能 增加 自定义 字段
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论

