全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1474
推到 Plurk!
推到 Facebook!

ALARM該怎麼下手做

答題得分者是:pceyes
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-17 14:51:37 IP:122.116.xxx.xxx 訂閱
小弟一值都在整合公司產線的資訊
匯出成即時性的報表觀看
現階段想做到 如果不良數很多的時候
要發出警訊 或者MAIL 通知特定人員

小弟知道這樣會做很大 這樣是系統了
小弟現階段想做

如果只通知我一人的話呢

就是寫隻程式放在伺服器端
一值去COUNT 資料庫的不良數量
如果超過設定的%數
就要發出警訊通知我 或者MAIL給我

我該怎麼下手呢?

沒有頭緒耶

補充:

現階段我想到可以就是先寫隻程式在我本機RUN
然後程式一值去計算不良率
等到不良率大於我設定標準的時候
就自動幫我寄MAIL 給特定人員 (我OUTLOOK一值開啟狀態)

------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-17 15:08:22, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-17 17:08:50 IP:60.248.xxx.xxx 訂閱
您自己已經考慮的差不多了,再來就是怎麼實作而已

現階段我想到可以就是先寫隻程式在我本機RUN
然後程式一值去計算不良率 // 找 Thread 的資料,或是設一個 Timer 多久撈一次資料
等到不良率大於我設定標準的時候
就自動幫我寄MAIL 給特定人員 (我OUTLOOK一值開啟狀態) // 找一下站上的 idStmp 資料,這樣就可以解決囉!!

------
價值的展現,來自於你用哪一個角度來看待它!!
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-17 17:30:31 IP:122.116.xxx.xxx 訂閱
大大 謝謝你的回答

第一點 程式部分已經完成 也會自動計時
第二點 我在站上搜尋 idStmp 只有兩筆
一筆是我這篇 一筆是沒人回答的= =


===================引 用 careychen 文 章===================
您自己已經考慮的差不多了,再來就是怎麼實作而已

現階段我想到可以就是先寫隻程式在我本機RUN
然後程式一值去計算不良率 // 找 Thread 的資料,或是設一個 Timer 多久撈一次資料
等到不良率大於我設定標準的時候
就自動幫我寄MAIL 給特定人員 (我OUTLOOK一值開啟狀態) // 找一下站上的 idStmp 資料,這樣就可以解決囉!!

------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-17 17:47:35 IP:60.248.xxx.xxx 訂閱
@@"   不好意思,給您錯誤的訊息,是 IdSMTP   不是 IdSTMP     tmp 變數寫太多了,手抽筋了 
------
價值的展現,來自於你用哪一個角度來看待它!!
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-17 17:53:29 IP:220.141.xxx.xxx 訂閱
隨便找也有好幾篇,單單我回的就有二篇以上: 關鍵字 pceyes indy mail

Delphi 新手問題 / 作業研討 » 用gmail來發送信件
http://delphi.ktop.com.tw/board.php?cid=30&fid=1498&tid=94315

網際網路程式設計討論區(Delphi) » Indy SMTP 使用HTML模式時,要如何附圖
http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=92418
------
努力會更接近成功
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-17 19:24:57 IP:122.116.xxx.xxx 訂閱
謝謝兩位大大 

找到許多相關資料

可是@@ 還是看不是很懂 不知道怎麼使用

我放入idSMTP 元件之後

1.該怎麼設定讓他發送群組MAIL

2.該如何在Mail 寫下我預設好的固定訊息傳送出去

3.該如何讓MAIL除了固定資訊 另外 夾帶 StringGrid中那各有問題的列 資訊

譬如:

日期 : 2008/11/17 (SYSDATE)
位置 : 製造

工單 : StringGird 中的欄位
機種 : StringGird 中的欄位
投產 : StringGird 中的欄位
數量 : StringGird 中的欄位
不良 : StringGird 中的欄位


這是今日產生的不良狀況結果分析
請各工程人員詳細了解

這是系統發送 請勿回覆


紅色是 固定訊息
藍色是 StringGrid 欄位

PS.我是用Microsoft Outlook 2003 @@"
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-17 19:26:19, 註解 無‧
lovemari 重新編輯於 2008-11-17 19:28:35, 註解 無‧
lovemari 重新編輯於 2008-11-17 19:29:27, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-11-17 20:03:04 IP:122.116.xxx.xxx 訂閱
抱歉抱歉

我知道怎麼寫信了

現在問題剩下

1.當欄位小於90% 要自動啟動Button的功能

2.該怎樣把StringGrid的欄位加進去了@@

3.群組Mail 我該怎麼改呢?

[code delphi]
procedure TForm1.Button2Click(Sender: TObject);
var
Veiw : string;
begin
Veiw:='此信件為系統發送,請別回覆';
IdMessage1.ClearBody;
IdMessage1.Body.Add('Eric' Veiw);
IdMessage1.from.Text:='EricL@tw.com';
IdMessage1.Recipients.EMailAddresses:='EricL@tw.com';
IdMessage1.Subject:='不良率高';
IdSMTP1.Host:='tw.com';
IdSMTP1.Port:=25;
IdSMTP1.Username:='EricL';
IdSMTP1.Password:='12345';
IdSMTP1.Connect;
try
IdSMTP1.Send(IdMessage1);
showmessage('成功發送');
except
showmessage('發送失敗');
end;
IdSMTP1.Disconnect;
end;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-17 20:06:31, 註解 無‧
lovemari 重新編輯於 2008-11-17 20:07:20, 註解 無‧
lovemari 重新編輯於 2008-11-17 20:07:36, 註解 無‧
lovemari 重新編輯於 2008-11-17 20:10:24, 註解 無‧
lovemari 重新編輯於 2008-11-17 20:18:40, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-11-17 20:21:57 IP:122.116.xxx.xxx 訂閱
以下是我的 IdMessage.Boby 

日期:
時間:
工單:
機種:
投產:
不良:
直通率:

想在欄位後面加上StringGrid 上面發生問題的值

------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-11-18 06:23:17 IP:220.141.xxx.xxx 訂閱
你可以將整個StringGrid轉為圖片再寄出去,也可以防止別人修改內容,另外還可以存檔,以供存證(很重要)。
影音多媒體程式設計討論區(Delphi) » 如何在網格內填色並且輸出填色的區域(作爲圖片)?
https://delphi.ktop.com.tw/board.php?cid=30&fid=74&tid=71455

至於僅要將不合格部份顯示於Body之中,只要下Sql指令再撈一次資料就好了。
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-11-18 06:54:13, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-11-18 16:34:12 IP:122.116.xxx.xxx 訂閱
謝謝大大的指點

我已經利用轉成BMP的方式寄出去群組MAIL了

只剩下一各問題

就是如何寫

當不良率高到一定標準的時候就要自動發MAIL

我想的方式

發MAIL是BUTTON
當不良率高到一定標準就 觸發BUTTON 即可

問題是怎麼寫 那段條件= =

IF StringGrid.Cell[7,RowCount-1].AsString < '95%' then begin....

一值有錯誤...
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-18 16:38:22, 註解 無‧
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-11-18 17:25:03 IP:220.141.xxx.xxx 訂閱
大哥:
您真的不會用StringGrid呢!

[code delphi]


var j : integer

begin

for j := 0 to StringGrid1.RowCount-1 do begin

if copy(StringGrid.Cell[7, j ],1,2) < '95' then begin

Buttom1.Click(Nil); // 送信

end;

end;

end;
[/code]
------
努力會更接近成功
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-11-19 16:45:37 IP:122.116.xxx.xxx 訂閱
謝謝大大

小弟是真的不會用StringGrid 尚在學習

大大...

小弟用了你的程式碼

程式執行之後不管有沒有低於95% 會一直發送Mail耶

以及發送是一值一值一直發送= =


[code delphi]
while not eof do
BEGIN
With AdvStringGrid1 do
begin
Params.Clear;
Cells[1,RowCount-1] := Fieldbyname('工單').AsString;
Cells[2,RowCount-1] := Fieldbyname('機種名稱').AsString;
Cells[3,RowCount-1] := Fieldbyname('投產時間').AsString;
Cells[4,RowCount-1] := Fieldbyname('投產').AsString;
Cells[5,RowCount-1] := Fieldbyname('良品數量').AsString;
Cells[6,RowCount-1] := Fieldbyname('不良品數量').AsString;
Cells[7,RowCount-1] := Fieldbyname('直通率').AsString;
RowCount := RowCount 1;
END;
NEXT;
END;
For j := 0 to AdvStringGrid1.RowCount-1 do begin
IF copy(AdvStringGrid1.Cells[7, j ],1,2) < '95' then begin
Button2.Click; // 送信
end;
end;
cLOSE;
END;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-19 16:46:45, 註解 無‧
lovemari 重新編輯於 2008-11-19 16:47:16, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-11-19 18:46:06 IP:60.248.xxx.xxx 訂閱
HI,  如果不是 pceyes 大這麼用心回答您的話,我真想請副站大大砍了這篇或是另外一篇,請儘量不要一文多發哦!!

===================引 用 lovemari 文 章===================
謝謝大大

小弟是真的不會用StringGrid 尚在學習

大大...

小弟用了你的程式碼

程式執行之後不管有沒有低於95% 會一直發送Mail耶

以及發送是一值一值一直發送= =


[code delphi]
while not eof do
BEGIN
With AdvStringGrid1 do
begin
Params.Clear;
Cells[1,RowCount-1] := Fieldbyname('工單').AsString;
Cells[2,RowCount-1] := Fieldbyname('機種名稱').AsString;
Cells[3,RowCount-1] := Fieldbyname('投產時間').AsString;
Cells[4,RowCount-1] := Fieldbyname('投產').AsString;
Cells[5,RowCount-1] := Fieldbyname('良品數量').AsString;
Cells[6,RowCount-1] := Fieldbyname('不良品數量').AsString;
Cells[7,RowCount-1] := Fieldbyname('直通率').AsString;
RowCount := RowCount 1;
END;
NEXT;
END;
For j := 0 to AdvStringGrid1.RowCount-1 do begin
IF copy(AdvStringGrid1.Cells[7, j ],1,2) < '95' then begin
Button2.Click; // 送信
end;
end;
cLOSE;
END;
[/code]
------
價值的展現,來自於你用哪一個角度來看待它!!
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-11-19 19:09:42 IP:122.116.xxx.xxx 訂閱
謝謝兩位

是我沒注意一次發了兩次相同文章了

真不好意思
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
系統時間:2024-05-06 6:07:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!