Страница 1 из 2
Отчет с формой
Добавлено: 11 апр 2011, 08:29
jonyk
Добрый день! Создал отчет с данными из SQL - отрабатывает быстро. Добавил форму (2 кнопки, 2 флажка - без событий и условий) - открывается раза в 3-4 дольше. С чем это может быть связано? Спасибо.
Отчет с формой
Добавлено: 11 апр 2011, 11:31
Ivan
Здравствуйте.
Не можем воспроизвести указанную вами проблему.
Вышлите нам пожалуйста простой тестовый отчет с данными, на котором воспроизводится проблема.
Спасибо.
Отчет с формой
Добавлено: 12 апр 2011, 12:06
jonyk
Это довольно проблематично. Отчет состоит из 5-ти подзапросов и связан с десятком таблиц.
Отчет с формой
Добавлено: 13 апр 2011, 04:30
jonyk
Добрый день!... но есть другой вопрос: - Как в форме, при нажатии на кнопку Ок (если флажок установлен) выполнить событие с запросом из SQL?
DELETE *
FROM dbo.RealizSaldo0
WHERE (DateRealiz = (@DateEnd))
и в форме отобразить значение из таблицы (в данном случае Последней даты)?
Спасибо.
Отчет с формой
Добавлено: 13 апр 2011, 10:43
Aleksey
Здравствуйте,
Как вариант, вы можете добавить datasource с запросом
"DELETE * FROM dbo.RealizSaldo0 WHERE (DateRealiz = (@DateEnd))" с параметром @DateEnd
У данного datasource установить свойство ConnectOnStart в false и при нажатии на кнопку устанавливать параметр и выполнять запрос данного datasource
DataSourceName.Connect();
Спасибо.
Отчет с формой
Добавлено: 19 май 2011, 08:53
Funix
Добрый день.
Извиняюсь, что вклиниваюсь в чужой топик, но у меня очень схожая ситуация.
По методу предложенному Aleksey в предыдущем посте имеется datasource dsInsert с запросом "INSERT INTO ..." и свойством ConnectOnStart = false.
В событии Click кнопки "OK" прописано dsInsert.Connect();
Все бы хорошо, но есть одно "НО":
Долго не мог понять почему не отрабатывает пока не обнаружил, что если у кнопки "ОК" установлено свойство btnOK.DialogResult = DialogResult.OK - запрос не отрабатывает, если же это свойство не установлено - запрос отрабатывает, но форма соответственно не закрывается и отчет дальше не формируется.
Подскажите пожалуйста, как мне побороть эту ситуацию.
PS. Версия 2011.1.1000 (04.04.2011).
Отчет с формой
Добавлено: 20 май 2011, 06:34
Aleksey
Здравствуйте,
Проверили на последнем билде, все работает корректно.
Не могли бы вы прислать простой отчет с тестовой базой, который воспроизводит проблему, для анализа.
Спасибо.
Отчет с формой
Добавлено: 23 май 2011, 07:54
Funix
Добрый день.
В процессе подготовки для вас тестового отчета таки обнаружил новую проблему, которая, как выясняется, и является причиной моей проблемы. Т.е. причина оказалась несколько глубже, чем показалось сразу:
При закрытии формы через кнопку "OK" у которой установлено свойство btnOK.DialogResult = DialogResult.OK происходит запуск(Connect()) всех имеющихся в отчете источников данных даже если у них установлено свойство ConnectOnStart = false. А таких источников в отчете несколько, в том числе имеются "INSERT..." и "DELETE...", которые по задумке должны вызываться только при определенных условиях (событиях) и по отдельности, но никак не кучей в порядке общего беспорядка.
Соответственно, если я делаю ds1.Connect() в обработчике клика кнопки "OK", то получается, что у меня этот запрос отрабатывает дважды - один раз при явном вызове, другой - при неявном вызове всех источников данных. Также из-за "неявного" вызова источника с "DELETE..." может происходить удаление записей, которые только что были добавлены источником с "INSERT..." в результате чего складывается впечатление, что "INSERT..." вообще не отрабатывает.
Надеюсь, что теперь доступно объяснил проблему, но на всякий случай все-таки высылаю вам тестовый отчет на e-mail.
Отчет с формой
Добавлено: 23 май 2011, 09:43
Aleksey
Здравствуйте,
Спасибо за детальное описание проблемы.
Проблему воспроизвели, будем разбираться.
О результатах сообщим.
Спасибо.
Отчет с формой
Добавлено: 24 май 2011, 04:39
Aleksey
Здравствуйте,
Проблема исправлена.
Решение будет доступно в завтрашнем предрелизном билде.
Спасибо.