На html-странице я создаю дочернее окно для выполнения некоторой фильтрации (выбор принтера и какие части для печати в отчете). Чтобы показать выбор детали в дочернем окне, мне нужно вызвать функцию GetParts из родительского окна и вернуть набор записей дочернему. Вот некоторый код, чтобы помочь:
Из дочернего окна ->
Sub LoadParts(frmRptFilter)
Dim sql
Dim oParts
Set oParts = CreateObject("ADODB.Recordset")
oParts.Fields.Append "Part", adBSTR , 30
oParts.Open
oParts = window.opener.GetParts(oParts) 'Since oParts was passed as a parameter I did not believe this to be necessary, but when it didn't work as expected I tried returning it this way....didn't work either
'more code follows
В родительском окне ->
Function GetParts(oParts)
Dim sql
sql = "SELECT Job.Part_Number FROM Job RIGHT JOIN Packlist_Detail ON Packlist_Detail.Job = Job.Job "_
& "WHERE Packlist_Detail.Packlist LIKE '" & sPL & "'"
CloseRS(oRS)
oRS.Open sql, oConn, adOpenStatic, adLockReadOnly
oRS.MoveFirst
If Not (oRS.BOF AND oRS.EOF) Then
Do while not oRS.EOF
oParts.AddNew
oParts("Part").Value = oRS(0)
oParts.Update
oRS.MoveNext
Loop
End If
'GetParts = oParts 'Since oParts was passed as a parameter I did not believe this to be necessary, but when it didn't work as expected I tried returning it this way....didn't work either
End Function
Я пишу отчеты для программного обеспечения, которое требует от меня создания фильтра и создания отчетов HTML-страниц, которые содержат объект отчета Crystal. Программное обеспечение, для которого я пишу эти отчеты, ограничивает то, что я могу сделать с точки зрения соединений с БД, помимо прочего. Так что я так поступаю.
Итак, я проверил, что oParts в родительском окне заполняется правильно. Что это делает! Я просто не могу заполнить его в окне моего ребенка. Итак, вопрос в том, как мне вернуть значение в дочернее окно?