2016-10-19 4 views
1

이것은 작동합니다. 그 후 대상의 소스 내용은 다음과 같습니다.uidoc.copy가 예상대로 작동하지 않습니다.

Call uidoc.GotoField("source")   
Call uidoc.SelectAll 
Call uidoc.Copy      
Call uidoc.GotoField("target")  
Call uidoc.Paste      

이제 사용자를 참여시키고 싶습니다. 그는 'source'필드에 mousecursor라는 단어 두 개 (이름)를 표시합니다. 내 표어는이 표기된 텍스트를 다른 필드 '목표'로 전송하는 것입니다.

참고 문서에 따르면 uidoc.copy는 편집 모드로 표시된 텍스트를 사용합니다. 원본 문서의 압축을 풉니 다.

문서의 현재 선택 영역을 클립 보드에 복사합니다. 현재 선택 항목은 텍스트 또는 그래픽과 같이 문서의 모든 항목이 될 수 있습니다.

오류가 발생합니다. 오류 메시지 : 텍스트 만이 유형의 필드에 붙여 넣을 수 있습니다.

Call uidoc.Copy      
Call uidoc.GotoField("target")  
Call uidoc.Paste      

모든 필드는 일반 텍스트입니다.

누구든지이 문제를 해결할 다른 아이디어가 있습니까?

답변

0

그렇다면 질문은 어디에 있습니까? uidoc.Copy는 전체 문서 또는 아무것도 복사하지 않습니다 (커서 위치에 따라 다름). 그리고 두 "내용"은 텍스트 필드에 붙여 넣기에 유효하지 않습니다.

하지만 다음과 같이하시기 바랍니다. 해당 문맥에서 복사 + 붙여 넣기를 사용하지 마십시오. 편집 모드에 있지 않습니다.

사용 Backend- 운영하고 올바른 초점/한 EditMode에 의존하지 않습니다

Call uidoc.Document.ReplaceItemValue("Target" , uidoc.Document.GetItemValue("Source")) 

또는 짧은 (usind 짧은 손 표기법) :

uidoc.Document.Target = uidoc.Document.Source 
+0

전체 콘텐츠를 전송하고 싶지 않습니다. 이 경우에 당신이 옳았고 당신이 묘사 한대로 그것을했을 것입니다. –

+0

사용자는 텍스트의 일부를 표시함으로써 영향을받습니다. 더 나은 방법으로 그것을 설명하기 위해 질문을 편집했습니다. –

2

나는 것을 발견 실제로 버튼은 포커스를 스스로 변경합니다. 그것이 그 행동의 이유입니다.

가능한 해결 방법은 초점을두고있는 작업을 사용하는 것입니다.