powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Просто опыт.
14 сообщений из 14, страница 1 из 1
Просто опыт.
    #32275767
р-у-с-л-а-н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитесь правильно распределять задачи! На мой опыт и взгляд для обычного пользователя одним из показателей «удобности» программы и естественно авторитетности программиста является скорость построения отчетов.
Как программист, вполне понятно, можно сказать – «Какое дело пользователю до внутренностей программы?». Пользователь не должен (не обязан) знать о транзакциях и особенностях написания кода Вами. Однако видит результаты Вашей работы каждый и целый рабочий день помногу раз.
Пришлось мне однажды попариться с одним отчетом. Надо сказать отдельно об условиях. Вначале условий было всего два, потом четыре. Пользователь выбирал с помощью группы переключателей несколько параметров и готово.
В конце концов, на форме оказалось четыре группы переключателей, два на два, два на три плюс список с месяцами. Долго я думал как, и быстро!? Вначале в события ПослеОбновления каждой группы написал код присваивания, получилось четыре переменной со значением выбранного параметра. Потом посчитал, и… вышло у меня 36 нужных вариантов из этих комбинаций. Написал еще «чуть-чуть» кода (If и Case) и вот все 36 вариантов у меня в одной переменной. Дальше Case Select. Ставим код в кнопку вывода отчета, запускаем и …. Безумно долго! И мало того, что кое- какие данные вытягиваются из сети.
Стал я думать еще. Пришла идея о сканировании. Задал интервал 250 в таймере, а в событии таймера и вставил код опроса состояния флажков. Пока пользователь то да се, а переменная всегда с выбранным значением! Только во время формирования отчета (копирование в локальную таблицу, заполнение NULL нулями и т.д.) а потом вывода в Snapshot формате, таймер то работает. Решил я его отключать во время формирования отчета, а после окончания вновь запускать. Потом задался вопросом, а нужно ли что бы процедура сканирования работала всегда?
Подумал еще, оформил процедуру как функцию в форме, выкинул таймер, в события группы переключателей НажатиеКнопки вписал вызов функции сканирования значений. При открытии формы, переменной присваивается значение по умолчанию, что соответствует исходному порядку переключателей (самый простой отчет), а если пользователю нужно что- то другое, то времени что бы выставить флажки, сообразить и переместить мышь на кнопку запуска, вполне хватает на и получение определяющего значения в переменной.
Думайте господа!
P.S.
Если у кого-то возникли схожие проблемы, могу подробнее, но на Ваш mail.
...
Рейтинг: 0 / 0
Просто опыт.
    #32275774
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну чего. Описан традиционный процесс думания. Наверно, он у всех примерно такой. А в чем мораль?
...
Рейтинг: 0 / 0
Просто опыт.
    #32275792
р-у-с-л-а-н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это просто радость бытия. Мало кто, да и мало кого это интересует, там где я нахожусь, и приятно после, чувствовать, что нашел выход!
...
Рейтинг: 0 / 0
Просто опыт.
    #32275798
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришла идея о сканировании. Задал интервал 250 в таймере, а в событии таймера и вставил код опроса состояния флажков

а можно по событиям флажков присваивать переменные и нахер таймер, через каждые 250...
...
Рейтинг: 0 / 0
Просто опыт.
    #32275808
р-у-с-л-а-н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда бы пришлось написать и держать переменных в памяти больше, каким образом в это случае, получался тот единственный идентификатор нужного отчета? А от таймера я и отказался!
...
Рейтинг: 0 / 0
Просто опыт.
    #32275826
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я всегда
ВСЕ условия впихивал
в запрос
как-то у меня енто
получается
и не парюсь
с select case
...
Рейтинг: 0 / 0
Просто опыт.
    #32275831
р-у-с-л-а-н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый вагоновожатый! Попробуйте-ка пожонглировать сетевыми запросами! А погоня-то за скорость!
...
Рейтинг: 0 / 0
Просто опыт.
    #32275851
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня ни один
запрос не
думает больше
0,5 сек
...
Рейтинг: 0 / 0
Просто опыт.
    #32275856
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то я пытаюсь уловить суть и никак не получается.
Может у меня к концу дня мохги плавятся, может еще чего-то.
Нельзя ли на примере показать о чем речь?
...
Рейтинг: 0 / 0
Просто опыт.
    #32275871
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
банально...

когда пишешь изначальную форму отчет вполне можно нарваться на тормоза...

но естественно что нужно оптимизировать быстродействие а способов - неограниченное множество.

- оптимизация структуры базы данных
- выбор технологии (если возможностей MDB Ассess не хватает то переходишь ADP + MSSQL)
- кеширование данных в локальные/ публичные переменные / массивы

если программа работает медленнее оператора то естественно - раздражение от работы такой программы и соответствующий авторитет програмиста.

полностью согласен с XT что отзыв программы на любое (крупное: запуск формы или отчета) действие опратора должен быть не более полсекунды. при работе с вводом тормозов вообще не должно быть.
...
Рейтинг: 0 / 0
Просто опыт.
    #32275877
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял.

Р-у-с-л-а-н, и что?

И все?

Ну и что?

:)
...
Рейтинг: 0 / 0
Просто опыт.
    #32275882
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отзыв программы на любое (крупное: запуск формы или отчета) действие опратора должен быть не более полсекунды.

Наверное не нужно так категорично.
Если есть база данных (SQL) с количеством записей в основных таблицах порядка 1 млн. и форма поиска по индексированным полям - как не оптимизируй не получится 0,5 сек.
...
Рейтинг: 0 / 0
Просто опыт.
    #32275894
Jem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня дерево на форме растет, ну ни как 0,5 секунды не получается его выростить, есс-но юзвяря ворчат..
...
Рейтинг: 0 / 0
Просто опыт.
    #32275919
PaulB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что, если источник данных отчета - запрос будет брать данные прямо с формы-диалогового окна отчета? То есть при открытии отчета открывается форма-диалогвоое окно, при нажатии ок она скрывается. В запросе содержатся выражения iif(forms!test!Категория=1 and forms!test!Группа=Таблица!Группа)=true.
У меня такие запросы работают очень быстро по таблицам 200 тыс записей.
Что касается индексирования, то правильно задать составные индексы для таблиц и убедится, что используются связи БД между таблицами.

Например: есть таблица с полями Дата, Валюта, Курс. Если ищется курс валюты на дату, а поля Дата и Валюта проиндексированы отдельно - неизбежно падение скорости выборки. Составной индекс по полям Дата и Валюта обеспечит наибольшую скорость.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Просто опыт.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]