2013年

January 25 [Fri], 2013, 15:18
人一辈子不会因为你做了什么而后悔只会因为你没做什么而后悔!


永不放弃

2013.04.26回家创新 做机械! 找回曾经的属于我的世界和梦想!


终点只不过是梦想起飞的地方!



ありがとう!



拡張機能

October 26 [Fri], 2012, 16:51
リソース
テンプレートは様々なリソースから呼び出して使用できます。テンプレートを display()、 fetch() したり別のテンプレートからインクルードしたりする際には、 リソースの種類に続けて適切なパスとテンプレート名を指定します。 リソースを明示的に指定しない場合は $default_resource_type の値であるとみなします。

$template_dir からのテンプレート
$template_dir からのテンプレートを使用する場合は、 テンプレートリソースの指定は必要ありません。しかし、一貫性を保つために file: リソースを使用してもかまいません。使用したいテンプレートへのパスを、 $template_dir のルートディレクトリからの相対パス (先頭のスラッシュはなし) で指定します。

Example 15.17. $template_dir のテンプレートを使用する


$smarty->display('index.tpl');
$smarty->display('file:index.tpl'); // 上と同じ
?>

Smarty のテンプレート


{include file='index.tpl'}
{include file='file:index.tpl'} {* 上と同じ *}


任意のディレクトリからのテンプレート
$template_dir の外に置かれたテンプレートを使うには、リソースの種類 file: を指定しなければなりません。 その後にテンプレートへの絶対パス (先頭のスラッシュつき) を続けます。

Note
セキュリティが有効な場合、template_dir 以外の場所にあるテンプレートにはアクセスできません。

Example 15.18. 任意のディレクトリからのテンプレートを使用する


$smarty->display('file:/export/templates/index.tpl');
$smarty->display('file:/path/to/my/templates/menu.tpl');
?>


Smarty のテンプレート


{include file='file:/usr/local/share/templates/navigation.tpl'}



Windows のファイルパス
通常、Windows 環境の場合はファイルパスの先頭にドライブレター (C:) が含まれます。ネームスペースの衝突を回避して期待通りの結果を得るために、 必ず file: を使用して下さい。

Example 15.19. Windows ファイルパスからテンプレートを使用する


$smarty->display('file:C:/export/templates/index.tpl');
$smarty->display('file:F:/path/to/my/templates/menu.tpl');
?>


Smarty テンプレート


{include file='file:D:/usr/local/share/templates/navigation.tpl'}


文字列からのテンプレート
Smarty は、string: あるいは eval: リソースを使って文字列からテンプレートをレンダリングすることができます。

string: リソースは、テンプレートファイルと同じように振る舞います。 テンプレートのソースが文字列からコンパイルされ、コンパイル済みのテンプレートのコードを後で再利用します。 各テンプレート文字列に対して、それぞれ新しいコンパイル済みテンプレートファイルができます。 テンプレート文字列に頻繁にアクセスするのなら、この方法を選ぶといいでしょう。 もしテンプレート文字列を頻繁に変更する (あるいはあまり再利用性のない値を含む文字列である) 場合は、eval: リソースのほうがよいでしょう。

eval: リソースは、ページをレンダリングするときに毎回テンプレートソースを評価します。 これは、再利用性の低い値を持つ文字列を扱うときによい方法です。 同じ文字列に頻繁にアクセスするのなら、string: リソースのほうがよいでしょう。

Note
string: リソースでは、文字列ごとにコンパイル済みファイルができあがります。 Smarty は文字列が変更されたかどうかを検出できないので、 個々の文字列につい新たにコンパイルしてファイルを生成します。 コンパイルした文字列でディスクが埋まってしまわないよう、 適切なリソースを選択することが重要です。

Example 15.20. 文字列からのテンプレートを使用する


$smarty->assign('foo','value');
$template_string = 'display {$foo} here';
$smarty->display('string:'.$template_string); // コンパイルしたものを再利用します
$smarty->display('eval:'.$template_string); // 毎回コンパイルします
?>

Smarty テンプレート


{include file="string:$template_string"} {* コンパイルしたものを再利用します *}
{include file="eval:$template_string"} {* 毎回コンパイルします *}



PHP スクリプトで定義したテンプレートの継承
extends: リソースを使って、テンプレートの継承の親子関係を PHP スクリプトから定義することができます。 詳細は テンプレートの継承 を参照ください。

Example 15.21. テンプレートの継承を PHP スクリプトから使用する


$smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl');
?>



Note
これは、継承をプログラム的に定義しなければならないときに使います。 PHP から継承を定義するときは、子テンプレート側からはどのような継承関係になるかが明らかではありません。 この方式を使えば、通常はより柔軟かつ直感的にテンプレート側から継承関係を処理できるようになります。

その他のリソース内のテンプレート
データベース・ソケット・LDAP 等の PHPによってアクセス可能なリソースからテンプレートを取得する事ができます。 そのためにはリソースプラグイン関数を記述し、それを登録する必要があります。

リソースプラグイン関数についての詳細な情報は リソースプラグイン の項を参照してください。

Note
元から存在する file: リソースは上書きできないことに注意しましょう。 しかし、ファイルシステム上のテンプレートを別の方法で取得するテンプレートを作成することはできます。 それを別のリソース名で登録すればよいのです。

Example 15.22. カスタムリソースを使用する


// これらの関数をアプリケーションに追加します
function db_get_template ($tpl_name, &$tpl_source, $smarty_obj)
{
// ここでデータベースを呼び出し、取得した実際のテンプレートを
// $tpl_source に代入します
$tpl_source = "This is the template text";
// 成功した場合に true を返します。false を返すと失敗したことになります
return true;
}

function db_get_timestamp($tpl_name, &$tpl_timestamp, $smarty_obj)
{
// テンプレートの最終更新時刻の Unix タイムスタンプを
// $tpl_timestampに代入するためにデータベースを呼び出します
// これで、再コンパイルが必要かどうかを判断します
$tpl_timestamp = time(); // この例だと常に再コンパイルとなります!
// 成功した場合に true を返します。false を返すと失敗したことになります
return true;
}

function db_get_secure($tpl_name, $smarty_obj)
{
// 全てのテンプレートがセキュアであると仮定します
return true;
}

function db_get_trusted($tpl_name, $smarty_obj)
{
// テンプレートから使用しません
}

// テンプレートリソース名"db"を登録します
$smarty->registerResource("db", array("db_get_template",
"db_get_timestamp",
"db_get_secure",
"db_get_trusted"));

// phpスクリプトからテンプレートリソースを使用します
$smarty->display("db:index.tpl");
?>


Smarty テンプレート


{include file='db:/extras/navigation.tpl'}



デフォルトのテンプレートハンドラ関数
テンプレートリソースからテンプレートの取得に失敗した際に、 テンプレートのコンテンツを取り戻すために呼び出されるユーザ定義関数を指定します。 この関数の使用方法の1つとして、その場限りのテンプレートを作成する処理を行います。

ストリーム も参照ください。

渡された文字列をタブで分解を行う

October 09 [Tue], 2012, 10:53
渡された文字列をタブで分解を行う
渡された文字列をタブで分解して、Vectorに突っ込みます。
何に使えるかというと・・・ そうTSVファイルの項目分解用なのです。
デリミタリをカンマにすればCSV用になるのですよ。これは便利!



/*********************************************************************************************************/
/** 渡された文字列をタブで分解を行う
*
* @param line_str String 1行分のバッファ
* @param java.util.Vector タブで切り取られた配列
*/
/**********************************************************************************************/

public java.util.Vector Token(String line_str) throws Exception{

char strPickUp;
char[] InputRec = line_str.toCharArray();
String strBuffer = "";
java.util.Vector VecFileVec = new Vector();
int cnt = 0;

try
{
for(int intPoint = 0 ; intPoint < InputRec.length ; intPoint++ ){
strPickUp = InputRec[intPoint];
switch( strPickUp ){
case '/t':
//タブを発見したらバッファをベクターへ
VecFileVec.add(cnt, strBuffer.trim());
strBuffer = "";
cnt ++;
break;
default:
//タブ以外の文字を取り出したらバッファへ
strBuffer = strBuffer + strPickUp;
//break;
}//switch
}//for
//残りのバッファをベクターへ
VecFileVec.add(cnt, strBuffer.trim());

return VecFileVec;

}catch(Exception err) {
throw err;
}

}
/**********************************************************************************************/

動的なリストボックスの編集

October 09 [Tue], 2012, 10:52
動的なリストボックスの編集
いろんな画面で同じリストボックスを表示する場合、同じ事を書くのは嫌ですね。
で、リストボックスを使いまわせないかと考えた場合に・・・ 文字列としてhtmlを返してもらえばいいのです。
選択したい値を渡してあげれば・・・ 選択された形で表示されます。
例は性別のリストボックスですが、何でも応用が利きますね。もちろんラジオボタンやチェックボックスも考え方は一緒です。
一覧表形式でリストボックス自体の名前を変えなければならない時なんかは、リストボックス自体の名前も引数に渡してやれば良いのです。


/*********************************************************************************************************/

/**
* 性別リストボックスの編集
* @parm String SELECTしたい値
* @return String 性別リストボックス
*/
public String GetSex(String strInSelect){
String strPref = "";
String strSelect = " SELECTED";
String strNoSelect = "";
String strSel = "";

strPref = strPref + "";

return strPref;
}

/**********************************************************************************************/

文字コード変換

October 09 [Tue], 2012, 10:50

仕事であります・ここはまつです
文字コード変換
リクエスト情報で漢字が入力された場合に環境によっては変換が必要になります。(文字化けしちゃう!)
その時は使ってみてください。というかUNIX環境だと絶対にいるね。
EUCをUNICODEへ変換と書いていますが、正しくはstrを8859_1の文字列としてバイト列に変換し、文字コードをEUC-JPと仮定してunicodeへ変換なのです。うーむ。
ちなみにJISAutoDetectと指定するとEUC,SJISと自動判定してくれますが、あんまりあてにはなりません。

/**********************************************************************************************/
/**
** EUCをUNICODEへ変換
**
** @param String 入力文字列
**
** @return String 変換後入力文字列
*/

public String GetUniFromEuc(String str) {
try {
return new String(str.getBytes("8859_1"), "EUC_JP");
//return new String(str.getBytes("8859_1"), "JISAutoDetect");
} catch (UnsupportedEncodingException ex) {
return "";
}
}
/**********************************************************************************************/

指定された日付のX日後を取得する

October 09 [Tue], 2012, 10:49
指定された日付のX日後を取得する
たまに使うかもね。


/*********************************************************************************************/
/**
** 指定された日付のX日後を取得する
** @param String 入力日付 YYYYMMDD
** @param int 指定日 X日
** @return String 出力日付 YYYYMMDD
**/

public String GetLateDay(String StartDay, int date) {

int intStartYY = java.lang.Integer.parseInt(StartDay.substring(0,4));
int intStartMM = java.lang.Integer.parseInt(StartDay.substring(4,6));
int intStartDD = java.lang.Integer.parseInt(StartDay.substring(6,8));

GregorianCalendar gc = new GregorianCalendar(intStartYY,intStartMM -1 ,intStartDD);

gc.add(GregorianCalendar.DATE, date);
int intTodayY = gc.get(GregorianCalendar.YEAR);
int intTodayM = gc.get(GregorianCalendar.MONTH) + 1;
int intTodayD = gc.get(GregorianCalendar.DAY_OF_MONTH);

String strSdateYYYY = String.valueOf(intTodayY);

String strSdateMM;
if (intTodayM < 10)
{strSdateMM = "0" + String.valueOf(intTodayM);}
else
{strSdateMM = String.valueOf(intTodayM);}

String strSdateDD;
if (intTodayD < 10)
{strSdateDD = "0" + String.valueOf(intTodayD);}
else
{strSdateDD = String.valueOf(intTodayD);}
return strSdateYYYY + strSdateMM + strSdateDD;
}
/*********************************************************************************************/

私のサイトです.よのしく  お願いしま-----す

October 08 [Mon], 2012, 9:55
これは私のサイトです。のHttp:/ / chinhi.com/またはhttp://10086bank.com/

このサイトでは、8つの異なる言語を提供し、より多くの言語は、バックで実現されます!王は楽しみにしています!

これは北京であり、非常に乾燥した場所である!

September 29 [Sat], 2012, 12:31
http://10086bank.com/Mydetail.aspx?id=2012a92995737704

<リンク:http://10086bank.com/Mydetail.aspx?id=2012a92995737704 >もっと

これは私のサイトです 

August 22 [Wed], 2012, 17:48
これは僕のブログですwww.chinhi.com
複数言語のサポート:英語、日本語、中国語、重慶
ありがとう!

完了する作業の2週間(途中修正がたくさん!)

July 27 [Fri], 2012, 17:28
今は 私は本ドに楽しいいつもです! 明日はあこまつで
ですから あこに行きます 
ありがとうございました!
これコドが2周前私は仕事で、 言語はC#です
部分見でくだいさ:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GNET.IDAL;
using System.Data;
using System.Data.SqlClient;
using GNET.DBUtility;

namespace GNET.SQLServerDAL
{
public class GNET_TJFX : IGNET_TJFX
{
///
/// 更新保存表
///

/// 字符
///
/// 条件
///
public int UpdateSelectString(string str, string s1, string s2)
{
string sql = string.Format("update GENT_SAVESTIRNG set strvalue=@strvalue,declareprovince=@declareprovince,declarestatus=@declarestatus where keyid=1000");
SqlParameter[] sqlpara = new SqlParameter[]
{
new SqlParameter("@strvalue", str),
new SqlParameter("@declareprovince", s1.Trim()),
new SqlParameter("@declarestatus", s2.Trim()),
};
return DbHelperSQL.ExecuteSql(sql, sqlpara);
}

///
/// 绑定控件
///

/// 返回集合
public List GetBInString()
{
return GetSelectString();
}
public List GetSelectString()
{
List list = null;
string sql = string.Format("select strvalue ,declareprovince,declarestatus from GENT_SAVESTIRNG where keyid=1000");
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
while (da.Read())
{
list = new List();
list.Add(da["strvalue"].ToString());
list.Add(da["declareprovince"].ToString());
list.Add(da["declarestatus"].ToString());
}
}
return list;
}


///
/// 得到数据表
///

/// 查询多条件
/// 年份
/// 查询条件的集合
/// 返回table
public DataTable GetData(string selectstr, string year, string[] wherelist)
{
string city = "";
string status = "";
object result = GetSelectString();
if (result == null)
{
selectstr = " * ";
}
else
{
if (((List)result)[0].ToString() == "")
{
selectstr = " * ";
}
else
{
selectstr = ((List)result)[0].ToString();
}

if (((List)result)[1].ToString() == "")
{
city = "";
}
else
{
city = ((List)result)[1].ToString();
city = Convertcitytocode(city);
}

if (((List)result)[2].ToString() == "")
{
status = "";
}
else
{
status = ((List)result)[2].ToString();
status = Convertstr(status);
}
}
string sql = string.Format("select {0} from GNET_PRESS_INFORMATION_FB,GNET_COPYRIGH_EXAMINE where GNET_COPYRIGH_EXAMINE.USERID=GNET_PRESS_INFORMATION_FB.USERID and DATE_YEAR='{1}' {2} {3}", selectstr, year, status, city);
if (selectstr.IndexOf("GNET_COPYRIGH_EXAMINE.DEPTID as 省份") > -1)
{
selectstr = selectstr.Replace("GNET_COPYRIGH_EXAMINE.DEPTID as 省份", "PT_DEPARTMENT.depname as 省份");
sql = string.Format("select {0} from GNET_PRESS_INFORMATION_FB,GNET_COPYRIGH_EXAMINE,PT_DEPARTMENT where PT_DEPARTMENT.DepID=GNET_COPYRIGH_EXAMINE.DEPTID and GNET_COPYRIGH_EXAMINE.USERID=GNET_PRESS_INFORMATION_FB.USERID and DATE_YEAR='{1}' {2} {3}", selectstr, year, status, city);
}
return DbHelperSQL.Query(sql).Tables[0];
}

///
/// 转换查询条件
///

/// 输入字符
/// 返回相对应的语句
private string Convertstr(string source)
{
string result = "";
switch (source)
{
case "初评通过项目":
result = " and GNET_COPYRIGH_EXAMINE.ISCSZJ=1 ";
break;

case "复评通过项目":
result = " and GNET_COPYRIGH_EXAMINE.ISFSZJ=1 ";
break;

case "终评通过项目":
result = " and GNET_COPYRIGH_EXAMINE.ISZSZJ=1 ";
break;
case "通过复核项目":
result = " and GNET_COPYRIGH_EXAMINE.ISEXAMINE=3 ";
break;

case "未通过复核项目":
result = " and GNET_COPYRIGH_EXAMINE.ISEXAMINE=4 ";
break;

case "拟资助项目":
result = " and GNET_COPYRIGH_EXAMINE.ISZZ=1 ";
break;

case "未通过评审项目":
result = " and GNET_COPYRIGH_EXAMINE.ISEXAMINE=0 ";
break;
case "申请项目":
result = " and GNET_COPYRIGH_EXAMINE.ISSB=3 ";//申请项目(已通过省级审核的项目)
break;

default:
result = " and 1=1 ";
break;
}
return result;
}
//旧代码end








///
/// 城市代码转换
///

/// 城市名称
/// 返回城市code
public string Convertcitytocode(string source)
{
string sql = string.Format("select DepID from PT_DEPARTMENT where DepName like '%{0}%' and OPERFLAG!=2", source);
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
if (!da.HasRows)
{
sql = "";
}
else
{
while (da.Read())
{
sql = da["DepID"].ToString();
}
}
}
return sql;
}

///
/// 公共用到的方法
///

/// sql语句
/// 集合列表
private static void GetList(string sql, List list)
{
using (SqlDataReader data = DbHelperSQL.ExecuteReader(sql))
{
if (data.HasRows)
{
while (data.Read())
{
list.Add(data[0].ToString());
}
}
}
}

///
/// 返回满足条件的所有表的表名称的集合(类名)
///

/// 年份
/// 其ta
/// 返回key的集合
public List GetQueryTableClassNameList(string year, string other)
{
UpdateOrAddValue(year);//set查询时间值
List list = new List();
string sql = string.Format("select RPTID from GNET_RPTTOFLOW where TID='{0}' and WorkFlowID='TaskExecID' and nodeid=1 GROUP by RPTID", year.Trim());
GetList(sql, list);
return list;
}

///
/// 更行或者追加年份
///

/// 年份
private void UpdateOrAddValue(string year)
{
string sql = string.Format("select * from GENT_SAVESTIRNG where datakey=23");
SqlParameter[] para;
if (DbHelperSQL.Exists(sql) == true)
{
sql = string.Format("update GENT_SAVESTIRNG set datavalue=@datavalue where datakey=23");
para = new SqlParameter[] { new SqlParameter("@datavalue", year) };

}
else
{
sql = string.Format("insert into GENT_SAVESTIRNG (datavalue,datakey) values (@datavalue,@datakey)");
para = new SqlParameter[] { new SqlParameter("@datavalue", year), new SqlParameter("@datakey", "23") };
}
DbHelperSQL.ExecuteSql(sql, para);
}

///
/// 获取表的显示名称
///

/// key的集合
/// 状态
/// 返回集合
public List GetQuerytableNameList(List keylist, string OPERFLAG)
{
string sql = "";
List list = new List();
for (int index = 0; index < keylist.Count; index++)
{
sql = string.Format("select rptdesc from GNET_RPTBASEINFO where RPTID='{0}' and OPERFLAG={1} ", keylist[index], OPERFLAG);
GetList(sql, list);
}
return list;
}

///
/// 得到key,行值,列值,描述名称
///

/// key值
/// 返回它们的集合
public List GetRtidXYIddef(string rptid)
{
string sql = string.Format("select rptid,cellrow,cellcol,iddef,fieldtype from GNET_RPTIDDEF where rptid='{0}'", rptid);
// sql = string.Format("select GNET_RPTIDDEF.rptid as rptid,GNET_RPTIDDEF.cellrow as cellrow,GNET_RPTIDDEF.cellcol as cellcol,GNET_RPTIDDEF.iddef as iddef,GNET_RPTCELLDEF.celldatastyle as celldatastyle from GNET_RPTIDDEF,GNET_RPTCELLDEF WHERE GNET_RPTIDDEF.RPTID=GNET_RPTCELLDEF.RPTID and GNET_RPTIDDEF.cellrow=GNET_RPTCELLDEF.cellrow and GNET_RPTIDDEF.cellcol=GNET_RPTCELLDEF.cellcol and GNET_RPTIDDEF.fieldtype=GNET_RPTCELLDEF.celldatastyle and GNET_RPTCELLDEF.RPTID='{0}' ", rptid);
List list = new List();
using (SqlDataReader data = DbHelperSQL.ExecuteReader(sql))
{
if (data.HasRows)
{
while (data.Read())
{
for (int index = 0; index < 5; index++)//count==4 tameini sql
{
list.Add(data[index].ToString());
}
}
}
}
return list;
}

///
/// 更行查询字段的字符串
///

/// 36位主键
/// 年份
/// 时间
/// 任务id
/// key值
/// 行值
/// 列值
/// 列名称
/// 是否删除(程序中未用到)
/// 数据类型
/// 成功:1
public int UpdateSelectSET(string TID, string DATE_YEAR, string DATES, string TASKID, string RPTID, string CELLROW, string CELLCOL, string CELLNAME, string ISDEL, string STYPES)
{
string sql = string.Format("insert into GNET_TJFX(Tid,DATE_YEAR,DATES,TASKID,RPTID,CELLROW,CELLCOL,CELLNAME,ISDEL,STYPES) values(@Tid,@DATE_YEAR,@DATES,@TASKID,@RPTID,@CELLROW,@CELLCOL,@CELLNAME,@ISDEL,@STYPES)");
SqlParameter[] sqlpara = new SqlParameter[]
{
new SqlParameter("@Tid",SqlDbType.VarChar,36),
new SqlParameter("@DATE_YEAR",int.Parse(DATE_YEAR)),
new SqlParameter("@DATES",DATES),
new SqlParameter("@TASKID",TASKID),
new SqlParameter("@RPTID",RPTID),
new SqlParameter("@CELLROW",CELLROW),
new SqlParameter("@CELLCOL",CELLCOL),
new SqlParameter("@CELLNAME",CELLNAME),
new SqlParameter("@ISDEL",ISDEL),
new SqlParameter("@STYPES",int.Parse(STYPES))
};
sqlpara[0].Value = TID;
DbHelperSQL.ExecuteSql(sql, sqlpara);
return 1;
}


///
/// 判断存在与否
///

/// key值
/// 行值
/// 列值
/// 数据类型
/// 存在:1,不存在:0
public int Exisit(string RPTID, string CELLROW, string CELLCOL, string STYPES)
{
string sql = string.Format("select count(*) from GNET_TJFX where RPTID=@RPTID and CELLROW=@CELLROW and CELLCOL=@CELLCOL and STYPES=@STYPES");
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@RPTID", RPTID),
new SqlParameter("@CELLROW", int.Parse(CELLROW)) ,
new SqlParameter("@CELLCOL", int.Parse(CELLCOL)) ,
new SqlParameter("@STYPES", int.Parse(STYPES))
};
if (int.Parse(DbHelperSQL.GetSingle(sql, para).ToString()) > 0)
{
return 1;
}
else
{
return 0;
}
}


///
/// 取值组成集合
///

/// 条件from GNET_FLOWDATASTORAGE表
/// 返回集合
public List GetallTableNOValuenBy(string wherestr)
{
string TID = "";
string DATE_YEAR = "";
string DATES = "";
string TASKID = "";
string RPTID = "";
string CELLROW = "";
string CELLCOL = "";
string CELLNAME = "";
string STYPES = "";
string tempstr = "";
string selectyear = GetYearForGetExam();

List list = new List();//临时存放
List listresult = new List();//返回数据集合

string sql = string.Format("select TID, DATE_YEAR, DATES, TASKID, RPTID, CELLROW, CELLCOL, CELLNAME, STYPES from GNET_TJFX where date_year='{0}' ", selectyear);
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
while (da.Read())
{
for (int index = 0; index < 9; index++)
{
list.Add(da[index].ToString());
}
}
}
for (int index = 0; index < list.Count; index = index + 9)
{

TID = list[index];
DATE_YEAR = list[index + 1];
DATES = list[index + 2];
TASKID = list[index + 3];
RPTID = list[index + 4];
CELLROW = list[index + 5];
CELLCOL = list[index + 6];
CELLNAME = list[index + 7];
STYPES = list[index + 8];
//----根据获取到的数值得到相应的列的取值 start
if (int.Parse(STYPES) == 1 || int.Parse(STYPES) == 0)
{
STYPES = " datavalue ";
}
else if (int.Parse(STYPES) == 2 || int.Parse(STYPES) == 6 || int.Parse(STYPES) == 7)
{
STYPES = " strvalue ";
}
else if (int.Parse(STYPES) == 4)
{
STYPES = " bigvalue ";
}
else if (int.Parse(STYPES) == 5 || int.Parse(STYPES) == 8)
{
STYPES = " datevalue ";
}
//----根据获取到的数值得到相应的列的取值 end
if (wherestr != "")
{
tempstr = " nodeid in ('" + wherestr + "') and ";
}
sql = string.Format("select {4} from GNET_FLOWDATASTORAGE where {5} rptid='{0}' and CELLROW='{1}' and CELLCOL='{2}' and iddef='{3}'", RPTID, CELLROW, CELLCOL, CELLNAME, STYPES, tempstr);
using (SqlDataReader data = DbHelperSQL.ExecuteReader(sql, null))
{
if (data.HasRows)
{
while (data.Read())
{
listresult.Add(TID);//0
listresult.Add(DATE_YEAR);//1
listresult.Add(DATES);//2
listresult.Add(TASKID);//3
listresult.Add(RPTID);//4
listresult.Add(CELLROW);//5
listresult.Add(CELLCOL);//6
listresult.Add(CELLNAME);//7
listresult.Add(data[0].ToString());//count=9 //8
}
}
}
}
// Addtempdata(listresult);
return listresult;
}




///
/// 得到键值
///

/// key唯一值
/// 返回键值
public string GetNodeidKey(string rptid)
{
string result = "";
string sql = string.Format("select id from GNET_COPYRIGH_EXAMINE where rptid='{0}'", rptid);
using (SqlDataReader data = DbHelperSQL.ExecuteReader(sql, null))
{
while (data.Read())
{
result += "'" + data[0].ToString() + "'" + ",";
}
}
return result.Substring(0, result.Length - 1);
}

///
/// 得到ID和表的Key
///

/// 查询条件
/// 年份
/// 放回它们的组合值
public List GetIDAndKeyFromEXAMINE(string wherelist, string dateyear)
{
List list = new List();
string result = "";
string sql = string.Format("select id,rptid from GNET_COPYRIGH_EXAMINE where date_year='{0}' {1}", dateyear, wherelist);
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
while (da.Read())
{
result = da["id"].ToString() + "@SW" + da["rptid"].ToString();
list.Add(result);
}
}
sql = string.Format(" delete from GENT_SAVESTIRNG where tablename!=''");
DbHelperSQL.ExecuteSql(sql);

return list;
}

///
/// 删除设定的年份的数据
///

/// 年份
/// 固定值1
public int DeleteToTJFX(string year)
{
string sql = string.Format("delete from GNET_TJFX where date_year=@datavalue");
SqlParameter[] para = new SqlParameter[] { new SqlParameter("@datavalue", year) };
DbHelperSQL.ExecuteSql(sql, para);
return 1;
}

///
/// 得到存储的年份
///

/// 返回年份
public string GetYearForGetExam()
{
string sql = string.Format("select datavalue from GENT_SAVESTIRNG where datakey=23");//23为固定值
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql))
{
if (da.HasRows)
{
while (da.Read())
{
sql = da[0].ToString(); ;
}
}
else
{
sql = "";
}
}
return sql;
}


///
/// 得到所有的项
///

/// 表名称
/// 预留
/// 返回集合
public List GetAllCloumsByname(string tablename, string other)
{
List list = new List();
string sql = string.Format("select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='{0}')", tablename);
GetList(sql, list);
return list;
}


DataTable dt0 = new DataTable();
#region 取值组成table 一个table
public DataTable GetDataTableByrptID(List rptidlist, string year, string nodeid)//参数year 其实未用到 数据库中设定好了
{
List modellist = new List();
GNET.Model.GNET_TJFX model;
string[] rptid = new string[rptidlist.Count];
string val = "";
for (int va = 0; va < rptid.Length; va++)
{
val = val + "'" + rptidlist[va] + "'" + ",";
}
val = val.Substring(0, val.Length - 1);
string sql = string.Format(" select RPTID,CELLROW,CELLCOL,CELLNAME ,STYPES from GNET_TJFX where DATE_YEAR={0} and RPTID in ({1}) order by CELLCOL", GetYearForGetExam(), val);
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
if (da.HasRows)
{
while (da.Read())
{
model = new GNET.Model.GNET_TJFX();
model.Rptid = da["RPTID"].ToString();
model.Cellrow = (int)da["CELLROW"];
model.Cellcol = (int)da["CELLCOL"];
model.Cellname = da["CELLNAME"].ToString();
model.Stypes = (int)da["STYPES"];
model.Value = GetValuesByrrcs(model.Rptid, model.Cellrow, model.Cellcol, model.Stypes, nodeid);//根据Rptid,Cellrow,Cellcol,Stypes,nodeid取值
modellist.Add(model);
}
}
}
//model加载全部数据end
dt0 = Addtempdata(modellist);//根据mode集合取值返回table
Random r = new Random();
dt0.TableName = rptid + nodeid + "" + r.Next(0, 100000000);
return dt0;
}


#region 多维数组方法
//if (modellist.Count != 0)
//{
// dt = new DataTable();
// List rowlist = new List();
// List collist = new List();
// List valuelist = new List();

// List rowlistsa = new List();
// List collistsa = new List();

// for (int index = 0; index < modellist.Count; index++)
// {
// dt.Columns.Add(modellist[index].Cellname);//循环追加列名
// rowlist.Add(modellist[index].Cellrow);
// collist.Add(modellist[index].Cellcol);
// valuelist.Add(modellist[index].Value);
// }
// rowlistsa = rowlist;
// collistsa = collist;
// //定义二维数组 inti
// string[,] inti = new string[rowlist.Count, 3];
// for (int i = 0; i < inti.GetLength(0); i++)
// {
// for (int j = 0; j < inti.GetLength(1); j = j + 3)
// {
// inti[i, j] = rowlist[i].ToString();
// inti[i, j + 1] = collist[i].ToString();
// inti[i, j + 2] = valuelist[i].ToString();
// }
// }
// rowlist.Sort();
// collist.Sort();
// int rowmin = rowlist[0];
// int rowmax = rowlist[rowlist.Count - 1];
// int colmin = collist[0];
// int colmax = collist[collist.Count - 1];

// //List templist = new List();
// //for (int a = 0; a < rowlistsa.Count; a++)//去掉重复项
// //{
// // if (!templist.Contains(rowlistsa[a]))
// // templist.Add(rowlistsa[a]);
// //}
// //rowlistsa = templist;
// //templist = new List();
// //for (int a = 0; a < collist.Count; a++)//去掉重复项
// //{
// // if (!templist.Contains(collist[a]))
// // templist.Add(collist[a]);
// //}
// //collistsa = templist;

// List ytemplist = new List();
// List xtemplist = new List();
// List xlist = new List();
// int leng = 0;
// foreach (int y in rowlistsa)//循环行
// {
// for (int i = 0; i < inti.GetLength(0); i++)//查找是否存在
// {
// if (inti[i, 0] == y.ToString())//找到行
// {
// foreach (int x in collist)//找列
// {
// for (int yz = 0; yz < inti.GetLength(0); yz++)
// {
// if (inti[i, 0] == y.ToString() && inti[i, 1] == x.ToString())//存在
// {

// }
// }
// }
// }
// }


// ytemplist.Add(y.ToString());
// foreach (int x in collistsa)//循环列
// {
// if (!xtemplist.Contains(x.ToString()))//集合中不存在此项
// {
// xtemplist.Add(x.ToString());
// string val = "";
// for (int i = 0; i < inti.GetLength(0); i++)//查找是否存在
// {
// if (inti[i, 0] == y.ToString() && inti[i, 1] == x.ToString())//存在
// {
// val = inti[i, 2];
// leng = 1;
// break;
// }
// }
// if (leng == 1)
// {
// xlist.Add(val);
// }
// else
// {
// xlist.Add("");
// }
// leng = 0;
// }
// else
// {
// continue;
// }
// }




// string[] arrylist = new string[xlist.Count];
// for (int d = 0; d < xlist.Count; d++)
// {
// arrylist[d] = xlist[d];
// }
// DataRow dw = dt.NewRow();
// dw.ItemArray = arrylist;
// dt.Rows.Add(dw);
// xlist = null;
// xlist = new List();
// }
//}
//else
//{
// dt = null;
//}
//return dt = new DataTable();


//重组table
#endregion

public DataTable Addtempdata(List list)//model加载全部数据end
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", Type.GetType("System.Int32"));
dt.Columns[0].AutoIncrement = true;
dt.Columns[0].AutoIncrementSeed = 1;
dt.Columns[0].AutoIncrementStep = 1;

string sql = "";
sql = string.Format("delete from GENT_SAVESTIRNG where datakey!=23");//删除全部数据
DbHelperSQL.ExecuteSql(sql);
for (int index = 0; index < list.Count; index++)//循环全部model的数据 往数据表里面添加值
{
sql = string.Format("insert into GENT_SAVESTIRNG(tablename , row ,col ,aboutdescription ,vallue,datakey) values(@tablename , @row ,@col ,@aboutdescription ,@vallue,@datakey)");
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("tablename",list[index].Rptid),
new SqlParameter("@row",list[index].Cellrow),
new SqlParameter("@col",list[index].Cellcol),
new SqlParameter("@aboutdescription",list[index].Cellname),
new SqlParameter("@vallue",list[index].Value),
//new SqlParameter("@vallue",list[index].Cellname),
new SqlParameter("@datakey",100),
};
DbHelperSQL.ExecuteSql(sql, para);
}
List colvalueslist = new List();
List colallindexlist = new List();
List collist = new List();
int tablecellcount = (int)DbHelperSQL.GetSingle("select COUNT(*) from GENT_SAVESTIRNG where datakey!=23");//得到表的总列数
using (SqlDataReader da = DbHelperSQL.ExecuteReader("select * from GENT_SAVESTIRNG where datakey!=23 order by col"))//根据列排序
{
if (da.HasRows)
{
while (da.Read())
{
colallindexlist.Add((int)da["col"]);//排序的列添加到集合
try
{
dt.Columns.Add(da["aboutdescription"].ToString());//添加列名
}
catch
{
Random r = new Random();
string othername = string.Format("select rptdesc from GNET_RPTBASEINFO where rptid='{0}'", da["tablename"].ToString());
dt.Columns.Add(da["aboutdescription"].ToString() + "(" + DbHelperSQL.GetSingle(othername) + ")");//添加列名加上其他的唯一标识
}
collist.Add((int)da["col"]);//collist集合里是按列由小到大的顺序排列的
colvalueslist.Add(da["vallue"].ToString());//排序后的值添加到列值得集合里面
}
}
}
List rowlist = new List();//new一个存放行的集合
sql = string.Format("select row from GENT_SAVESTIRNG where datakey!=23 group by row order by row");//根据行由小到大的排序 添加到行集合
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql))
{
if (da.HasRows)
{
while (da.Read())
{
rowlist.Add((int)da["row"]);//集合里面从1开始
}
}
}
//去掉重复项 行集合需要去掉重复项 列集合不能去掉重复项
List temprowlist = new List();
for (int d = 0; d < rowlist.Count; d++)
{
if (!temprowlist.Contains(rowlist[d]))
{
temprowlist.Add(rowlist[d]);
}
}
rowlist = temprowlist;//重新赋值
for (int index = 0; index < rowlist.Count; index++)//从有顺序(由小到大)的"行集合"循环
{
object[] colnamearrylist = new object[colallindexlist.Count + 1];//定义变量colnamearrylist保存一列的值
for (int test = 0; test < colallindexlist.Count + 1; test++)
{
if (test == 0)
{
colnamearrylist[0] = null;//null为ID自设定
}
else
{
colnamearrylist[test] = "test";//添加初始值
}
}
int colindex = 10000;
sql = string.Format("select * from GENT_SAVESTIRNG where row={0} order by col", rowlist[index]);//比如行值等于10
using (SqlDataReader das = DbHelperSQL.ExecuteReader(sql))//读取等于某个行的列数据
{
if (das.HasRows)//第四行第某某列 某某里面不应该有重复的数据 否则取值混乱
{
while (das.Read())//循环处理列 ex:1 2 2 2 2 3 3 5 5 8 9
{
colindex = (int)das["col"];//读取到某列的值
for (int jx = 0; jx < colallindexlist.Count; jx++)//从小到大的顺序集合中取值
{
if (colallindexlist[jx] == colindex)//查询到的col(列值)等于有顺序集合中的某项
{
colnamearrylist[jx + 1] = colvalueslist[jx];//加1因为ID那列为null
}
else
{
if (colnamearrylist[jx + 1].ToString() == "test")//test作用于防止覆盖上次已经赋值过的对象
{
colnamearrylist[jx + 1] = "";//未查询到值 赋值为空
}
}
}
}
}
}
DataRow dw = dt.NewRow();
colnamearrylist[0] = null;
dw.ItemArray = colnamearrylist;
dt.Rows.Add(dw);
colnamearrylist = null;
}
return dt;
}




public string GetValuesByrrcs(string rptid, int cellrow, int cellcol, int Stypes, string nodeid)
{
string ziduanvalue = "";
if (Stypes == 1 || Stypes == 0)
{
ziduanvalue = " datavalue ";
}
else if (Stypes == 2 || Stypes == 6 || Stypes == 7)
{
ziduanvalue = " strvalue ";
}
else if (Stypes == 4)
{
ziduanvalue = " bigvalue ";
}
else if (Stypes == 5 || Stypes == 8)
{
ziduanvalue = " datevalue ";
}
string sql = string.Format(" select {3} from GNET_FLOWDATASTORAGE where RPTID='{0}' and CELLROW={1} and CELLCOL={2} and NODEID='{4}'", rptid, cellrow, cellcol, ziduanvalue, nodeid);
using (SqlDataReader da = DbHelperSQL.ExecuteReader(sql, null))
{
if (da.HasRows)
{
while (da.Read())
{
ziduanvalue = da[0].ToString();
}
}
else
{
ziduanvalue = "";
}
}
return ziduanvalue;
}
#endregion
}
}


ここまでです! ありがとうございました

プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:鈴木 飛子
  • アイコン画像 誕生日:1992年1月13日
  • アイコン画像 血液型:B型
  • アイコン画像 現住所:国外
  • アイコン画像 職業:大学生・大学院生
  • アイコン画像 趣味:
    ・発明-ソフト、機械
    ・言語-英語 日本語 中國語
    ・音楽-ここにいるよ
読者になる
彼の人生ではなく、あなたは何を理由と後悔する!あなたはそれを後悔していないだけだ!
His whole life, not because what you do and regret! Only because you do not regret it!
人一辈子不会因为你做了什么而后悔!只会因为你没做什么而后悔!
I am in Beijing Language and Culture University now!
Email:chinhi@goo.jp
2013年01月
« 前の月  |  次の月 »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最新コメント
アイコン画像*誠華*
»  指定された日付のX日後を取得する (2012年10月21日)
アイコン画像*誠華*
» 渡された文字列をタブで分解を行う (2012年10月19日)
アイコン画像陽菜
» 人生哲学を語ると女性にモテる? (2012年07月11日)
アイコン画像陽菜
» 今は楽しいですれ! (2012年06月21日)
アイコン画像陽菜
» 私は実際に悲しいよ! (2012年06月08日)
ヤプミー!一覧
読者になる
P R
カテゴリアーカイブ
http://yaplog.jp/chinhi/index1_0.rdf