다중 폼이 포함 된 Libreoffice Base를 만들고 있습니다. Form1은 "Projects"테이블에 링크되어 있고 각 프로젝트에는 여러 개의 작업이 있습니다. 동일한 Form1 내에 하위 폼으로 작업을 표시 할 수 있지만 각 프로젝트에는 많은 작업이 있으며 각 작업에도 하위 작업이 있으므로 작업을 수행하고 싶습니다. 자신의 형식으로 Form2라고 부를 수 있습니다.특정 필터/쿼리를 사용하여 Libreoffice/Openoffice Base에서 폼을 엽니 다.
Form2에서 Form2를 열 수있는 푸시 버튼을 만들었지 만 푸시 버튼을 누른 상태에서 표시되는 프로젝트와 관련된 작업 만 표시하는 방법을 모르겠습니다. . 지금까지 여기
내가 할 수 있었던 것입니다 :Doc = StarDesktop.CurrentComponent
Form = Doc.DrawPage.Forms.GetByIndex(0)
ProjID = Form.getByName("txtProjectID").Text
: 나는 작업에 대해 (가 Form1에 내부 txtProjectID라는 텍스트 상자에) 표시 할 projectID 읽기
Dim Args(1) As New com.sun.star.beans.PropertyValue
Args(0).Name = "ActiveConnection"
Args(0).Value = Form.ActiveConnection
Args(1).Name = "OpenMode"
Args(1).Value = "open"
oForm = thisComponent.Parent.getFormDocuments
oForm.loadComponentFromURL("Form2","_blank",0, Args())
및
: 작업을 열려면 형식 2를 형성 나는 두 가지 방법을 발견둘 다 작업 양식을 열지 만 projectID를 전달하여 해당 프로젝트와 관련된 레코드 만로드 할 수는 없습니다. 나는 또한 Args()에 대한 좋은 문서를 찾을 수 없었다.
질문 : Form2를 열고 Form1의 projectID와 관련된 레코드 만 표시하려면 어떻게해야합니까? 또한 동일한 레코드가 아닌 동일한 projectID로 새 레코드를 Form2에 추가하고 싶습니다.
업데이트
이 코드에 필터를 적용 할 수 있었다 : 나는 그것을 적용받을 형식 2를 엽니 다 같은 하위에서 그것을 실행하고 있기 때문에,
odoc2 = thiscomponent
FormModel = odoc2.drawpage.forms.getbyindex(0)
FormModel.Filter =("Tasks.projectID = " & ProjID)
FormModel.ApplyFilter = True
FormModel.reload()
그러나 Form1 (Sub라고 함). 대신 Form2에서 작동하도록하려면 어떻게해야합니까?