2016-09-29 18 views
1

양식의 텍스트 필드에서 값을 가져 오려고합니다. 라인 "텍스트 상자 = oForm.getByName"에 "com.sun.star.container.NoSuchElementException 유형 :"LibreOffice Basic 양식에서 요소 가져 오기

sub Test(oEv) 

oForm = oEv.Source.Model.Parent 
textBox = oForm.getByName("Description") 
MsgBox textBox.Text 

end sub 

예외가있다. 같은 양식에 "Description"이라는 이름의 텍스트 필드가 있습니다.이 매크로를 실행하기 위해 누르는 버튼은 어디입니까? 여기서 뭐가 잘못 됐니?

답변

2

이름이 같은 경우인지 확인하십시오. description이 아닙니다.

또한 컨트롤이 계층 구조의 폼에 있는지 확인하려면 Form Navigator을 사용하십시오.

MRI 또는 XrayTool과 같은 반성 도구를 사용하여 oForm의 속성을 보았습니까? 도구를 사용하여 양식을 확장하여 Description 컨트롤이 포함되어 있는지 확인합니다.

종종 Base에서 컨트롤을 읽는 대신 폼을 레코드 집합으로 처리하는 것이 좋습니다. 다음은 몇 가지 샘플 코드입니다.

Sub ButtonClickHandler(oEvent as Object) 
    'com.sun.star.comp.forms.ODatabaseForm 
    oForm = oEvent.Source.Model.Parent 
    lDescriptionCol = oForm.findColumn("DESCRIPTION") ' from underlying query or table 
    Print(oForm.getString(lDescriptionCol)) 
    BasicLibraries.LoadLibrary("XrayTool") 
    xray(oForm) 
End Sub 

자세한 내용은 https://forum.openoffice.org/en/forum/viewtopic.php?f=39&t=38725을 참조하십시오.

+0

귀하의 조언에 감사드립니다. 나는 MRI를 시도했지만 해결책을 찾는데 도움이되지 못했습니다. 그런 다음 LibreOffice를 다시 시작하려고 시도했습니다. 이 문제의 원인을 모릅니다. –