2012-03-09 34 views
0

プログラムがuidoc.Copy行にヒットすると、「ドキュメントコマンドが利用できません」というエラーが発生しました。私はこのエラーメッセージを調べました。しかし、私が得るのは、それが編集モードと何か関係があり、私はここでそれを全く使用していない場合のみです。uidoc.copyを使用してドキュメントコマンドを使用できません

Sub Click(Source As Button) 

' =========================================================== 
' Get common username, mail server, and mailfile information 
    to be used on ComposeDocument method 

    Dim session As New NotesSession 
    Dim reg As New NotesRegistration 
    Dim user As String 

    reg.RegistrationServer = "Test" 
    user = session.CommonUserName 
    Call reg.GetUserInfo(user, _ 
    mailserver$, _ 
    mailfile$) 
' ======================================================================  
    Dim workspace As New NotesUIWorkspace 
    Dim uidoc As NotesUIDocument 
    Set uidoc = workspace.CurrentDocument 

    Call uidoc.GotoField("QSContactEMail") 
    Call uidoc.SelectAll 
    Call uidoc.Copy 

    Set uidoc = workspace.ComposeDocument _ 
    (mailserver$, mailfile$, "Memo") 
    Call uidoc.GotoField("Subject") 
    Call uidoc.Paste 
    End Sub 

答えて

0

$ KeepPrivateというフィールドが "1"に設定されているかどうかを確認してください。コピーを防止します。

何も選択しないとエラーが発生することがあります。行の直前で停止し、強調表示されていることを確認してください。

ここに記載されているその他の条件もあります。

http://www-01.ibm.com/support/docview.wss?uid=swg21094450

+0

フォームに$ KeepPrivateフィールドが表示されません。また、私はコードをデバッグし、コピーの前に停止すると、フィールドは強調表示されませんでしたが、文書がスクロールダウンされたように見えます。コピーしようとしているフィールドが計算フィールドであることが重要ですか? –

+2

フィールドが計算されることは重要です。何が起こるかは、GotoFieldメソッドがカーソルの位置を決めるのですが、カーソルが編集可能なフィールドに配置されていないため、SelectAllメソッドはドキュメントが読み込みモードのときと同じように動作します。つまり、フィールドコンテンツを選択する代わりに、ドキュメントコンテンツ全体を選択します。その場合、Copyメソッドは実際には機能しますが(少なくとも私にとってはそうですが)、リッチテキストフィールドに貼り付けない限り、貼り付けが失敗する可能性があります。だからコピーがなぜ失敗するのか分かりませんが、それがうまくいってもおそらくあなたが望むものにならないでしょう。 –

1

は、あなたがコピーを使用して別のドキュメントから値を転送するために貼り付ける必要はありません。ドキュメントオブジェクトを使用してこれらの値を直接割り当てることができます。

これにはいくつかの方法があります - あなたのものに似たものがあります。

Dim workspace As New NotesUIWorkspace 
Dim uidoc As NotesUIDocument, newuidoc as NotesUIDocument 

Set uidoc = workspace.CurrentDocument 
Set newuidoc = workspace.ComposeDocument _ 
(mailserver$, mailfile$, "Memo") 

Call newuidoc.FieldSetText("Subject", uidoc.FieldGetText("QSContactEMail")) 

End Sub 
+0

これは質問に答えましたか? –

関連する問題