문서를 열기 전에 동일한 문서가 이미 열려 있는지 확인하고 싶습니다. 이 http://www.java2s.com/Code/VBA-Excel-Access-Word/Word/Checkthecurrentdocumentcount.htm같은 문서를 열었을 때 Powerbuilder 단어가 멈추는 경우
답변
app.documents.open (as_doc_name)를 종료합니다. 도움이 될 것입니다 다음 예는 당신이 그것을 개발하는 방법을 이해 : buttom의에서
ole_myobject = CREATE OLEObject
ole_myobject.connecttonewobject("word.application")
코드 :
OLEObject ole_myobject
이벤트 열기() :
는 인스턴스 변수를 선언
String ls_doc_name
String as_doc_name
String as_path_name
Long ll_ActiveDocument
as_path_name = "C:\"
as_doc_name = "Prueba.doc"
ole_myobject.visible=1
ll_ActiveDocument = ole_myobject.Documents.Count
IF ll_ActiveDocument >= 1 THEN
Ls_doc_name = ole_myobject.ActiveDocument.Name
END IF
if Ls_doc_name = as_doc_name THEN
ole_myobject.ActiveDocument.close(0)
end if
ole_myobject.documents.open(as_path_name + as_doc_name)
"ole_myobject.ActiveDocument.close (0)"는 Word를 닫지 않고 문서 만 닫음을 나타냅니다. 단어 appl 계속해서 실행됩니다. 전용) 2 파일 로컬 복사본을 생성하고 파일 정도 변경 나중에 3)에는 대기 병합하지 읽기) 1 :
여전히 wordked되지는 – user1788373
과 함께 문서의 위치를 걸려 : "들어 ... 다음". 이렇게하면 열려있는 모든 문서가 확인됩니다. –
활성 문서 수를 확인했지만 여전히 작업 표시 줄에서 보았습니다. winword.exe가 실행되었습니다. 는 1)를 엽니 다 당신이 하시겠습니까 제로를 보여주고 있지만, 여전히 사용자 에 의해 xxx.docx 편집을 위해 잠겨이 오류를 얻고 파워 빌더 – user1788373
코드는 작동 : 다음 연 경우 난 당신이 여기에 해당 작업의 도움을이
IF ole_myobject.Documents.Count >= 1 THEN
ls_doc_name = ole_myobject.ActiveDocument.Name
END IF
을 시도 할 수 있습니다
ole_myobject.Documents.Count의 모든 활성 워드 문서를 확인하는 코드를 제공하십시오 읽기 전용 복사본 2) 로컬 복사본을 만들고 나중에 변경 내용을 병합하십시오. 3) 원본 복사본을 사용할 수있는 경우 알림 수신 – user1788373
내가 준 예제를 수행하고 connecttonewobject() 함수의 정확한 위치, 잘못된 위치 "ole_myobject.Documents.Count"를 사용할 때 항상 0을 반환합니다. –
내 코드는 위에서 추가 한 것과 비슷하지만 워드 문서가 멈추고 세션이 닫히고 새로운 문서가 열리고 동일한 문서에 액세스하면 해당 문서가 자동으로 닫힐 때 문제가 발생합니다. 엠. – user1788373
워드 문서가 이미 코드가 를 교수형 세 옵션 프롬프트를 얻을 응용 프로그램을 실행에 있도록 바탕 화면에 열려 이 조건을 피하기 위해 나는 doc이 이미 열려 있는지 여부를 확인하고 싶습니다. 다음 근접 Word 문서 새 복사본 오픈 – user1788373
ole_myobject.connecttonewobject ("word.application") ole_myobject.visible = 거짓 열린 경우 ole_myobject.Documents.Count가> = 1 THEN Ls_doc_name = ole_myobject.ActiveDocument.Name END IF IF 경우 Ls_doc_name = as_doc_name THEN \t ole_myobject.ActiveDocument.close (0) 최종 경우 ole_myobject.documents.open (as_doc_name) – user1788373