2011年11月24日 星期四

javascript日期加減

var d="2011/11/24"
add_time = f*60*60*24*1000; //設定欲加的天數毫秒,f是欲相加的天數,若2天則帶入2
org_day = new Date(d); //設定一個原始時間
org_time = Date.parse(org_day); //將原始時間分解成毫秒
SumDay = org_time + add_time; //將兩個時間相加
NewDay = new Date(); //設定一個新的時間變數
reday = NewDay.setTime(SumDay); //將相加後的時間還原成日期
origDay = new Date(reday); //再設定一個時間變數,值為還原後的時間

//以下則為取出年、月、日
d = origDay .getDate();
Y = origDay .getYear();
M = origDay .getMonth();
if(d<10){d = "0" + d;} //設定日期若為個數則加0

//設定為 11/01/2003的日期格式
//因為在javascript月是抓0到11所以要記得+1
Ok_Day = Y+"/"+(M+1) + "/" + d ;

2011年10月13日 星期四

radiobutton checkbox text 取值

獲取一組radio被選中項的值
var item = $('input[@name=items][@checked]').val();

獲取select被選中項的文本
var item = $("select[@name=items] option[@selected]").text();

select下拉框的第二個元素為當前選中值
$('#select_id')[0].selectedIndex = 1;//不知為何要加[0]

radio單選組的第二個元素為當前選中值
*這招沒辦法用在checkbox上
$('input[@name=items]').get(1).checked = true;

$(#testSelect option:selected').text();

$("#testSelect").find('option:selected').text();

$("#testSelect").val();


獲取值:
文本框,文本區域:$("#txt").attr("value");
多選框checkbox:$("#checkbox_id").attr("value");
單選組radio: $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();

控制表單元素:
文本框,文本區域:$("#txt").attr("value",'');//清空內容
$("#txt").attr("value",'11');//填充內容

多選框checkbox: $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判斷是否已經打勾

單選組radio: $("input[@type=radio]").attr("checked",'2');//設置value=2的項目為當前選中項
下拉框select: $("#sel").attr("value",'-sel3');//設置value=-sel3的項目為當前選中項
$("11112222").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框

事件
用click 觸發改變事件(用change 還得再點旁邊才會觸發)
$("input[@name='RadtioName']").click(function(){
});

2011年10月3日 星期一

建立EF_GP警告語法

EF_GP警告撰寫

必須撰寫在function formSave()中這樣要儲存時才回去觸發警告。




Textbox型態

if(document.getElementById("req_desc").value=="")
{
warning_message=warning_message+"領款用途未填寫\n";
}

Checkbox 型態

var tchecked=document.getElementsByName("supplier");
var ts_name=document.getElementById("supplier_name").value
if(tchecked[1].checked==true && ts_name=="" )
{
warning_message=warning_message+"勾選外部廠商時,需填寫廠商名稱\n";
}

EFGP_程式設計師

Q:如果人處多部門,但對應不同主管該如何解決?例如:mandy 需因部門的不同,而更改他的直屬主管簽核?

A:這樣便可以在mandy的組織中設定每個部門他所對應的主管,這樣發起流程時,便可以用他設定組織中對應的主管去跑流程。

EFGP疑難雜症

Q:Invoke匯入資料庫的表單已經結案但是流程內容仍是它的顏色顯是為處理中,為何?(流程控制)

A:因為Invoke本來就是淡藍色(自我耍笨)。

Q:系統會去檢查代理期間,如果有在代理期間,就會轉給代理人,如果無,則就不會,但是如果超過期間,下方的List會自動刪除還是要手動刪除? (使用者問題)

A:它會自動偵測是否在代理期間內,如果在代理期間內他會先去找預設的代理人進行全部表單的代理,但是,如果下表有已新增的代理人,他就會去找針對有設定的表單的代理人優先轉給他。

Q:流程的版更及表單的版更有何不同? (管理者需知)

A:流程的版更會讓新的表單跑新的流程,而正在跑的流程仍就會跑舊的流程。假設舊的流程有問題而必須更改成新的流程,如果表單是使用舊的流程因而卡單則請使用者重新上單,因為流程已經廢掉,必須使用新的流程才能跑完。

Q: 新增完員工需注意事項? (管理者需知)
A:新增完員工後須特別注意LDAP帳號是否有建立,班別是否建立,代理人是否有建立,舊版EF也需新增。

A:efgp或efap(正式區上)必須去執行D:\EFGP\jboss-4.0.5.GA\bin\run.bat檔不然,網頁將無法開啟。(管理者需知)

Q:編輯使用者資料時,如無法從組織設計師編輯時該如何處理? (管理者需知)
A:前往efap(正式區)資料庫中開啟Users及Employee,的資料表,Employee.userOID==Users.OID,大部分的員工資料都在Users裡面,只有少部分的組織代號會在Employee中。

Q:新版EF如何刪除附件? (使用者需知)
A:上傳完附檔後會附件列表會出現在表單的下方,下方中有個打X點擊他便可刪除檔案


Q:當使用者想轉某張單子時,先請使用者提供被轉人的工號及轉單的單號及轉單人工號以利作業。(使用者需知)
A:


Q:控制項超出表單無法刪除或控制時該怎麼辦? (控制項控制)
A:流程中全不把他變不見,眼不見為淨。
Q:表單設計師設計完後,至流程設計師卻無法看見,為何? (管理者需知)
A:表單設計師設計儲存完後原則上只要在流程設計師重新載入便可以看到更新過後的表單,如果還是不行,就先把表單儲存出來,然後把原來的表單刪掉,再把舊的檔案打開,儲存到原本的位置上,或者是開一張新表單,把檔案開啟後,全部控制項,複製到新的表單,必須注意,控制像這時候的代號都必須重新命名。

A:EasyFlowGP的Dropdownlist為空值時是六個$字號而非傳統的””。

Q:登入畫面出現LDAP無法連線? (管理者需知)
A:請檢查新版EF管理者中的系統管理員中的系統管理,測試與AD是否正常連線。

2011年8月22日 星期一

VBScript 寄送Email


strUser = "寄件者帳號"
strPasswd = "寄件者密碼"
strLogFile = "附件檔案路徑名稱"
strSMTP = "SMTP Server FQDN or IP"
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "寄信者信箱"
objEmail.To = "收信者信箱"
objEmail.Subject = "主旨:3DS檔案"
objEmail.Textbody = "信件內文"
objEmail.Addattachment strLogFile
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = strUser
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strPasswd
objEmail.Configuration.Fields.Update
objEmail.Send
‘ 刪除已寄出的 Log File
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(strLogFile)

以上轉至
http://122.147.149.155/ce4u/?p=361
以上轉至

2011年6月15日 星期三

[TSQL]無法解析 equal to 作業中 Latin1_General_CI_AI 與 Chinese_Taiwan_Stroke_CI_AS 之間的定序衝突

這是今天發生的小問題,情境是我習慣用自己的小工具做一下 txtBox 或 參數的產生,
所以常使用到這段TSQL 來查詢指定 Table 下,有哪一些欄位跟欄位的資訊
Select From Information_Schema.Columns Where Table_Name = 'Company'
而這段指令查詢出來的資料如下圖:
image
大部分的資訊都能透過這段指令取得,而在SQL建立的時候,能夠將描述資訊也建立在欄位裡面,
image
但本來這段是查不出「描述欄位」,就突然想到之前 孤影 之前有寫到一篇 取得MS SQL中資料欄位的描述內容 ,
就趕緊東翻西翻,好在有把他收藏起來,一下就找到這篇,而要查出描述欄位則是使用這段指令
select from fn_listextendedproperty(NULL'user''dbo''table', N'Company''column',NULL)

image
查出來的結果就如截圖顯示,我就想說兩個都是 Table 形式 (fn 這一各是傳回Table),
那我就把這兩段指令透過共有的欄位 ColumnName 來 INNER JOIN ,這樣我就能一次的查詢,
就獲得整個欄位的全部資料,所以我就下了這段


Select ISC.* ,F.value
From Information_Schema.Columns AS ISC
INNER JOIN fn_listextendedproperty(NULL'user''dbo''table', N'Company''column',NULL)
AS F
ON ISC.COLUMN_NAME = F.objname
Where ISC.Table_Name = 'Company'


結果出現的畫面不是我想像的成功畫面,而是這段的錯誤訊息
無法解析 equal to 作業中 "Latin1_General_CI_AI" 與 "Chinese_Taiwan_Stroke_CI_AS" 之間的定序衝突。
這讓我想到前段時間 .NET Factory 跟我討論,與其他國家不同系統,部分SQL指令整合的時候,當如果遇到定序問題,
該怎麼處理?兩方如果都無法改定序時或不需要改定序的整合方法,
馬上查SQL線上叢書如何透過修改指令的方式來動態修改目前比對的欄位(INNER JOIN),
使用 COLLATE 子句來將兩邊的定序調整成指定的定序,指令如下:


Select ISC.*   ,F.value
From Information_Schema.Columns AS ISC
INNER JOIN fn_listextendedproperty(NULL'user''dbo''table', N'Company''column',NULL)
AS F
ON ISC.COLUMN_NAME = F.objname COLLATE Chinese_Taiwan_Stroke_CI_AS
Where ISC.Table_Name = 'Company'



加上 COLLATE 子句就能看到成功顯示的畫面,就能透過這樣的方式,取得欄位資訊與摘要欄位。