通达OA 二开常用代码整理(陆续补充)

Posted 小飞鱼通达二开

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通达OA 二开常用代码整理(陆续补充)相关的知识,希望对你有一定的参考价值。

2015版获取用户id

<?php
include_once( "inc/auth.inc.php" );
?>

<script>
window.location="list.php?userId=<?php echo $_SESSION["LOGIN_USER_ID"]; ?>"
</script>


2015查询数据库

$query = "select * from table"
$cursor = exequery( TD::conn( ), $query );
$hadDate = false;
while( $ROW = mysql_fetch_array( $cursor ) )

		$hasDate = true;
		
		$RUN_ID = $ROW['RUN_ID'];               //流水号

表单中引用iframe页面

document.onreadystatechange=init;
function init()
  if(document.readyState=="complete")
     var Request = new Object();
	 Request = GetRequest();
	 var runId;
	 runId = Request["run_id"];
  
     document.getElementById("frameB").src='http://www.tongda.biz?runid='+ runId;
  


function GetRequest()   
  var url = location.search; //获取url中"?"符后的字串
   var theRequest = new Object();
   if (url.indexOf("?") != -1) 
      var str = url.substr(1);
      strs = str.split("&");
      for(var i = 0; i < strs.length; i ++) 
         theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1]);
      
   
   return theRequest;

页面引用pdf

<object data="/files/examples/example_001.pdf" type="application/pdf" style="width:100%;height:1200px;" internalinstanceid="83">
alt : <a href="https://abc.org/files/examples/example_001.pdf">example_001.pdf</a>
</object>

Header:

显示404页面

header("HTTP/1.1 404 Not Found");  
header("Status: 404 Not Found");  
exit; 

设置字符集

header("Content-type: text/html; charset=utf-8");

转成财务数字格式

echo number_format("11235.567",2);	

字符串首字母大写

echo ucfirst("xiaofeiyu");

获取前一个错误信息

echo  @fopen(0,0) or die($php_errormsg);

 二维数组循环输出

<?php $arr = array(
                   'one'=>array('name'=>'小明','age'=>'21','sex'=>'男'), 
                   'two'=>array('name'=>'小李','age'=>'23','sex'=>'女'), 
                   'three'=>array('name'=>'小王','age'=>'32','sex'=>'男'), 
                   'four'=>array('name'=>'小赵','age'=>'16','sex'=>'女')
                  ); 

foreach($arr as $key=>$value) 
      foreach($value as $key2=>$value2) 
          echo $value2; 
       echo "<br>"; 

将数据结果集存储到数组

while($row=$result->fetch())
    $rstArray[] = array( 'id'=>$row['id'], 'name'=>$row['name']  );

计算时间秒差

<?php
$token = fopen("token.txt","r");//打开access_token文件流
$token = fread($token,1023);

$tokenTime = fopen("tokenTime.txt","r");//打开tokenTime文件流
$prevTime = intval(fread($tokenTime,1023));//获取上次缓存文件时间

$nowTime = time()-$prevTime;//计算时间差值

if ($nowTime>= 300) //如果时间差值大于等于300秒,重新获取

	$file = fopen("token.txt","w") or die("Unable to open file1!");  
	fwrite($file,$token);  
	fclose($file);  
else
    echo '';


mysql:

数据表增加列

alter table flow_process add column X_Mon tinyint(1)  null default 0;

数据表增加多列

  ALTER TABLE `table name` 
     ADD COLUMN `column name` int(11) DEFAULT NULL,
     ADD COLUMN `column name` int(11) DEFAULT NULL;

删除列

alter table xfy_table  drop column `myColumn`; 

设置时间列自动获取当前时间:CURRENT_TIMESTAMP

时间计算

1、当前日期
select DATE_SUB(curdate(), INTERVAL 0 DAY) ;
 
2、明天日期
select DATE_SUB(curdate(), INTERVAL -1 DAY) ;
 
3、昨天日期
select DATE_SUB(curdate(), INTERVAL 1 DAY) ;
 
4、前一个小时时间
select date_sub(now(), interval 1 hour);
 
5、后一个小时时间
select date_sub(now(), interval -1 hour);
 
6、前30分钟时间
select date_add(now(), interval -30 minute)
 
7、后30分钟时间
select date_add(now(), interval 30 minute)

修改表增加备注信息

alter table myTable COMMENT = '小飞鱼的表备注信息';

存储过程控制数据操作

set autocommit=0;
start TRANSACTION;

insert INTO news (news_id,SUBJECT) values (17, "hello");

insert INTO news (news_id,SUBJECT) values (16, "hello");

COMMIT;
End;

insert INTO news (news_id,SUBJECT) values (17, "hello");

调试写入文件

$file = fopen("d:\\\\log.txt","w");  
echo fwrite($file,$query);  
fclose($file);  

计算文件的MD5散列值

$fileName = "abc.txt";
$md5value = md5_file($fileName);
echo $md5value;

带时间格式的日志记录方法 

function XFYlog($text)
	$dt = new DateTime();
	$dtTime = $dt->format('Y-m-d H:i:s');
	$fileName = $dt->format('Y-m');

	$file = fopen('D:\\\\log\\\\'.$fileName.'.txt',"a");  
	echo fwrite($file, "[".$dtTime."] ".$text."\\r\\n\\r\\n");  
	fclose($file);  
;

中文非乱码字符串截取

echo mb_substr("小飞鱼通达TM二开", 0, 7, "GBK")

中文字符转码

$instr = '小飞鱼通达二开';

// GBK转UTF-8

$outstr = mb_convert_encoding($instr,'UTF-8','GBK',);


细线表格

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

table 
border-collapse:collapse; 
 

禁用input文本输入框的自动提示功能:

将input元素的autocomplete属性设置为off可以关闭自动提示

  

如果所有表单元素都不想使用自动提示功能,只需在表单form上设置autocomplete=off。
 

ssl发送数据

function curlPost($url, $data, $timeout = 30)

    $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
    $ch = curl_init();
    $opt = array(
            CURLOPT_URL     => $url,
            CURLOPT_POST    => 1,
            CURLOPT_HEADER  => 0,
            CURLOPT_POSTFIELDS      => (array)$data,
            CURLOPT_RETURNTRANSFER  => 1,
            CURLOPT_TIMEOUT         => $timeout,
            );
    if ($ssl)
    
        $opt[CURLOPT_SSL_VERIFYHOST] = 1;
        $opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
    
    curl_setopt_array($ch, $opt);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;

$data = curlPost('https://www.111cn.net', array('p'=>'hello'));
echo ($data);

点击按钮切换form的action地址

<input type="submit" value="提交" form="form1" formaction="blank.html">

中文字符串长度

		$title  = $cursor[$i]["title"];
		if(iconv_strlen($title,"GBK")>21)
				$titleShort = mb_substr($title, 0, 21, 'gbk') . "...";
		else
				$titleShort = $title;
		

数组增加项

if($key=='eptName')
    $newArray = array("eptName like '%".  $GetOrPostArray[$key] ."%'" =>null);
    $whereArray = array_merge( $whereArray,  $newArray  );

压缩一个文件

1

2

3

4

5

6

7

<?php

$path = "c:/wamp/www/log.txt";

$filename = "test.zip";

$zip = new ZipArchive();

$zip->open($filename,ZipArchive::CREATE);  //打开压缩包

$zip->addFile($path,basename($path));  //向压缩包中添加文件

$zip->close(); //关闭压缩包

压缩多个文件

1

2

3

4

5

6

7

8

9

10

11

12

<?php

$fileList = array(

  "c:/wamp/www/log.txt",

  "c:/wamp/www/weixin.class.php"

);

$filename = "test.zip";

$zip = new ZipArchive();

$zip->open($filename,ZipArchive::CREATE);  //打开压缩包

foreach($fileList as $file)

  $zip->addFile($file,basename($file));  //向压缩包中添加文件

$zip->close(); //关闭压缩包

下载文件一、跳转到下载文件连接

$filename = 'demo.zip'; //获取文件名称
$dir ="down/";  //相对于网站根目录的下载目录路径
$down_host = $_SERVER['HTTP_HOST'].'/'; //当前域名

//判断如果文件存在,则跳转到下载路径
if(file_exists(__DIR__.'/'.$dir.$filename))
    header('location:http://'.$down_host.$dir.$filename); //拼接下载文件的绝对路径如:http://demo.xx.cn/down/demo.zip
else
    header('HTTP/1.1 404 Not Found'); //这个文件不存在

下载文件二、head() 和 fread()函数把文件直接输出到浏览器

<?php  
$file_name = "demo";
$file_name = "demo.zip";     //下载文件名    
$file_dir = "./down/";        //下载文件存放目录    
//检查文件是否存在    
if (! file_exists ( $file_dir . $file_name ))    
    header('HTTP/1.1 404 NOT FOUND');  
else    
    //以只读和二进制模式打开文件   
    $file = fopen ( $file_dir . $file_name, "rb" ); 

    //告诉浏览器这是一个文件流格式的文件    
    Header ( "Content-type: application/octet-stream" ); 
    //请求范围的度量单位  
    Header ( "Accept-Ranges: bytes" );  
    //Content-Length是指定包含于请求或响应中数据的字节长度    
    Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );  
    //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
    Header ( "Content-Disposition: attachment; filename=" . $file_name );    

    //读取文件内容并直接输出到浏览器
    echo fread ( $file, filesize ( $file_dir . $file_name ) );    
    fclose ( $file ); //打开的时候要进行关闭这个文件
    exit (); 

数据生成json格式

 	$siteID=$_GET['site_id'];
 	$sql="SELECT `ID`,`equnumber` from equipment where SiteID='$siteID' AND state='未领用'";
 	$result=mysqli_query($conn,$sql);
 	if (!$result) 
 		die("连接数据库失败".mysqli_error($conn));
 	
 	else
 		while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) 
 		
 			$select[] = array("id"=>$row['ID'],"name"=>urlencode($row['equnumber']));
 		
 		return urldecode(json_encode($select));
 	

js关闭窗口

	function closeThis()		
		window.top.opener = null; window.close();
	

原生js写的Ajax

function send() 
 
    var ele = document.getElementsByClassName("user")[0];
    var con = ele.valueOf;
 
    xmlHttp=new XMLHttpRequest();
    xmlHttp.open("GET","/ajax/",true);
    xmlHttp.send(null);
 
    xmlHttp.onreadystatechange=function () 
      if (xmlHttp.readyState ==4 && xmlHttp.status ==200)
        alert(xmlHttp.responseText);
        alert(typeof xmlHttp.responseText)
 
      
    
 
 

div文字居中显示 

style="margin:0 auto; text-align:center"

sqlserver计算得到下个月1号

select CONVERT(varchar(10),DATEADD(m,+1 ,dateadd(dd,-day(getdate())+1,getdate())) ,23)

以上是关于通达OA 二开常用代码整理(陆续补充)的主要内容,如果未能解决你的问题,请参考以下文章

小飞鱼通达二开 ERP发送通达OA消息接口开发(图文)

小飞鱼通达二开 ERP发送通达OA消息接口开发(图文)

小飞鱼通达二开 致远OA配置(写数据到通达OA第三方系统)接口(图文)

小飞鱼通达二开 致远OA配置(写数据到通达OA第三方系统)接口(图文)

小飞鱼通达二开 清空通达OA管理员admin密码

小飞鱼通达二开 清空通达OA管理员admin密码