Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Пт Мар 01, 2013 11:03 am Заголовок сообщения: Проблема с app.CreateForm |
|
|
Код: |
Sub ReCalc_operations
Dim.....
......
For i = 1 To ops.Count
Set op = ops.item(i)
m.stepIt
If Not (op Is Nothing) Then
Set frm = app.CreateForm( CLng(op.FormId), CLng(op.Id))
Pause
Pause
If Not frm Is Nothing Then
gi = frm.guid
frm.readonly = False
frm.visible = True
frm.FireUserEvent "alx_RFC_Calc"
Pause:Pause
frm.close
DoEvent:DoEvent:DoEvent
app.waitForCloseForm gi
Pause
frm = Empty
End If
End If
Next
m.close
End Sub
Sub Pause
Dim i
For i =1 To 5000
DoEvent
Next
End Sub
|
Проблема в том, что уже на второй итерации, во время выполнения команды app.CreateForm, вылетает ошибка "Failed to create empty document".
Документ с указанным Doc_ID и FRM_ID - существует
Какие идеи?
p.s. A-SQL 7.0496[/code] |
|
Вернуться к началу |
|
|
Oleksandr Гость
|
Добавлено: Пт Мар 01, 2013 11:16 am Заголовок сообщения: |
|
|
Зачем нужно приведение типов CLng?
Зачем нужно это? :
Код: |
Sub Pause
Dim i
For i =1 To 5000
DoEvent
Next
End Sub
|
Поставьте вместо frm = Empty: Set frm = Nothing |
|
Вернуться к началу |
|
|
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Пт Мар 01, 2013 11:51 am Заголовок сообщения: |
|
|
Oleksandr писал(а): | Зачем нужно приведение типов CLng?
Зачем нужно это? :
Поставьте вместо frm = Empty: Set frm = Nothing |
я бы поспорил, что правильней, но не буду: поставил nothing и убрал clng. Результат - тот же |
|
Вернуться к началу |
|
|
Oleksandr Гость
|
|
Вернуться к началу |
|
|
kris
Зарегистрирован: 12.01.2006 Сообщения: 371
|
Добавлено: Пн Мар 04, 2013 10:28 am Заголовок сообщения: |
|
|
Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата. |
|
Вернуться к началу |
|
|
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Пн Мар 04, 2013 2:36 pm Заголовок сообщения: |
|
|
kris писал(а): | Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата. |
Вопрос "почему", конечно, самый интересный.
Основная форма входит в настройку, которая обновляется с периодичностью 1-2 раза в месяц. Если бы не это обстоятельство, я бы давно уже перенес все внутрь, к примеру, шаблона или формы. Я свою часть кода добавляю в форму с помощью Form.AddScriptFragment (сразу скажу, что перенос всех модулей программ в код формы ситуацию не изменил, ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д. |
|
Вернуться к началу |
|
|
olimp Site Admin
Зарегистрирован: 10.03.2005 Сообщения: 2661
|
Добавлено: Пн Мар 04, 2013 4:16 pm Заголовок сообщения: |
|
|
kris писал(а): | Что-то смутно помнится про файловую систему, одновременные коннекты к серверу и т.д... Лень искать.
Хотя ИМХО запускать форму и FireUserEvent для пакетной обработки операций - плохой тон. Я выношу код из FireUserEvent в отдельный модуль и запускаю его, при чем модуль по возможности инклудю. Зачем вам лишние разы открывать/закрывать форму, гонять ее по сети, нагружать все? Случается иногда перепроводить сотни и тысячи документов, если бы делал это через CreateForm - повесился бы в ожидании результата. |
Вычисления, связанные с проводками, нужно выносить в шаблон. А в форме оставлять только сервис, связанный с вводом информации.
Все остальное от лукавого |
|
Вернуться к началу |
|
|
nikman
Зарегистрирован: 10.03.2005 Сообщения: 786 Откуда: Украина, Донецк
|
Добавлено: Пн Мар 04, 2013 7:31 pm Заголовок сообщения: |
|
|
AllexL писал(а): | ...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д. |
Ошибки нет. Все работает без единого DoEvent. |
|
Вернуться к началу |
|
|
olimp Site Admin
Зарегистрирован: 10.03.2005 Сообщения: 2661
|
Добавлено: Вт Мар 05, 2013 6:59 am Заголовок сообщения: |
|
|
nikman писал(а): | AllexL писал(а): | ...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д. |
Ошибки нет. Все работает без единого DoEvent. |
если бы было все так просто ...
ты тестируешь на той же базе и том же прикладном решении ? |
|
Вернуться к началу |
|
|
AllexL
Зарегистрирован: 10.03.2005 Сообщения: 434 Откуда: Donetsk
|
Добавлено: Вт Мар 05, 2013 9:37 am Заголовок сообщения: |
|
|
olimp писал(а): | nikman писал(а): | AllexL писал(а): | ...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д. |
Ошибки нет. Все работает без единого DoEvent. |
если бы было все так просто ...
ты тестируешь на той же базе и том же прикладном решении ? |
Нет, на разных. Результат - одинаков |
|
Вернуться к началу |
|
|
nikman
Зарегистрирован: 10.03.2005 Сообщения: 786 Откуда: Украина, Донецк
|
Добавлено: Вт Мар 05, 2013 12:53 pm Заголовок сообщения: |
|
|
AllexL писал(а): | olimp писал(а): | nikman писал(а): | AllexL писал(а): | ...ошибка все-равно появляется). Думаю, ошибка не в правах, доступах, и т.д. |
Ошибки нет. Все работает без единого DoEvent. |
если бы было все так просто ...
ты тестируешь на той же базе и том же прикладном решении ? |
Нет, на разных. Результат - одинаков |
Да, на разных. Результат - одинаков. Все работает. :)
Вот например база 7.0 дао вообще без решения. |
|
Вернуться к началу |
|
|
Oleksandr Гость
|
Добавлено: Вт Мар 05, 2013 4:04 pm Заголовок сообщения: |
|
|
nikman писал(а): | AllexL писал(а): |
Нет, на разных. Результат - одинаков |
Да, на разных. Результат - одинаков. Все работает.
|
|
|
Вернуться к началу |
|
|
|