作成者カテゴリ 
公開
紅烏龍
08/18/2003 06:07 PM
エージェント
ノーツサーバノーツクライアントサーバOSクライアントOSネットワークプロトコル
N/AN/AWindows 2000 ServerWindows 2000ProTCP/IP

JavaScriptの[confirm]機能とロータススクリプトの織り交ぜ方について

いつも参考にさせて頂いております。
そして標題が分かりずらく申し訳ありません。

あちこち検索してみたのですが、意図する文書を探し出せず
投稿させて頂きました。

現在、WEB仕様のデータベースを作成しています。

そのフォームの一つに承認用のボタンを設置しているのですが、
その動作がうまくいきません。

ボタンの機能としては、ボタンを押下することにより
あるフィールドに文字列がセットされ、保存される。
といったものになります。

ここで標題にからんでくるのですが、
このボタンを押下した後、実行かキャンセルかの機能もつけるため
JavaScriptのConfirm機能を使用しようと作ってみたのですが、
スクリプト内容を見るとConfirmに依存せず、無条件に
任意の処理を実行してしまうような気がします。
実際に実行してもやはり思った通りの動作ではありませんでした。
さらにボタンが表示されるのは文書が表示用の場合です。

ここで質問なのですが、
1.文書が表示用でも、JavaScriptによる値のセット方法はあるのでしょうか?(私の知っている方法で試してみましたが無理でした)

2.JavaScriptでConfirmした結果[Yes][Cancel]をエージェント内で判断し、[Yes]の時だけ、[ロータススクリプト処理]を実行するといった方法はないでしょうか?

長くなってしまい申し訳ありませんが、
最後にエージェント内容を下記に記述します。
どなたかご存知の方いらっしゃいましたらご教授お願いします。

<承認処理>
=====================================================
'---------- + --------- + ---------- + -----------
'
' お客様承認のエージェント
'
'---------- + --------- + ---------- + -----------
Sub Initialize

'---------- エラー
On Error Goto OtherErr

'---------- カレントdb・コンテキストドキュメント
Dim ses As New NotesSession
Dim cdoc As NotesDocument

'---------- コンテキストドキュメントの設定
Set cdoc = ses.DocumentContext

'---------- グループDBの設定
Dim groupdb As NotesDatabase 'グループDB
Dim groupview As NotesView
Dim groupdoc As NotesDocument 'グループDBドキュメント
Dim groupkey As String 'ドキュメント検索キー

'---------- ステータスDBの設定
Dim stdb As NotesDatabase 'コードDB
Dim stview As NotesView
Dim stdoc As NotesDocument 'コードDBドキュメント
Dim stcode As String 'ステータスコード
Dim stkey As String 'ドキュメント検索キー
Dim status As String 'ステータス

'---------- ユーザー名の取得
Set groupdb = New NotesDatabase( cdoc.SERVERNAME(0), cdoc.GROUPDB(0))
Set groupview = groupdb.GetView("vBymemberall")

groupkey = cdoc.UserName(0)
Set groupdoc = groupview.GetDocumentByKey(groupkey)

'---------- ステータスの取得
Set stdb = New NotesDatabase( cdoc.SERVERNAME(0), cdoc.CODEDB(0))
Set stView = stdb.getview("(CodeNameView)")

stcode = cdoc.FStatus_Code(0)
stkey = "ST" + stcode

'---------- ステータス更新処理
If stcode = "40" Then 'ステータスがクローズ申請なら処理する
Print|<script language="javascript">|
Print|if (window.confirm("この文書を承認します。よろしいですか?")){|
cdoc.FLastSyonin = groupdoc.Fmemberj(0) '承認者名をセット
stcode = stcode + 10
stkey = "ST" + stcode
Set stdoc = stview.GetDocumentByKey(stkey)
cdoc.FStatus = stdoc.code(0) 'ステータスをクローズに
cdoc.FStatus_Code = stcode 'ステータスコードを50に
cdoc.FLastSyonin_Date = Today() '承認日の日付をセット
cdoc.SaveOptions = "1"
Call cdoc.Save(True,True)

Print|alert("承認しました。"); history.go(-2) ;|
Print|}else{|
Print|alert("承認しませんでした。"); history.go(-2) ;|
Print|}|
Print|</script>|
Else
Print|<script language="javascript">|
Print|alert("ステータスが不正です。承認出来ませんでした。"); history.go(-1) ;|
Print|</script>|
End If

Exit Sub

'---------- エラーメッセージ
OtherErr:

Print|<script language="javascript">|
Print|alert("処理が正常終了されませんでした。管理者に連絡してください。"); history.go(-1) ;|
 Print|</script>|
Exit Sub

End Sub
============================================


[Previous Main Document]
JavaScriptの[confirm]機能とロータススクリプトの織り交ぜ方について (紅烏龍) * 現在地 *
. . Re: JavaScriptの[confirm]機能とロータススクリプトの織り交ぜ方について (1122)
. . . . Re: JavaScriptの[confirm]機能とロータススクリプトの織り交ぜ方について (紅烏龍)
[Next Main Document]