О тебе узнал я во вчерашнем страшном сне...
Вариации на тему "Браво"


Как надоели все эти мелкие проблемы!
Хочется больших...
или

За годы борьбы с так называемым коннечным пользователем по части "выхода" итогов из разработанных приложений. Частенько терзался мыслью Как бы свалить с приложения тяжкий груз формирования отчетных форм столь часто меняющихся. В прежнюю бытность работы с MS DOS и Clipper, эта проблема была решена. Разработанный тогда спец механизм позволял гибко и независимо от исполняемого кода решать проблему формирования выходных документов. После переходна на Windows 95 и с отмиранием Clipper'a пришлось снести в мусор былые лавры. От начала знакомства с Delphi был озадачен как реализовать точно такой же механизм но имея совершенно отличную материальную базу. Первая попытка по возможности в точности скопировать старый материал, получилась мягко говоря не очень пригодной для широкого использования. И на самом деле сильно зависящей от исполнаяемого кода самой программы. Разумеется эксперименты не прекратились. К тому же коллеги стали активно муссировать использование OLE объектов. В частности работу с MS Office. Получилось уже гораздо мощнее и краше. Однако все еще оставалась сильная привязанность к родительскому приложению. Дальше почти на полтора года зависнув на достигнутом очень медленно усовершенствовал но крайне нереволюционно. За это время было написано несколько приложений в которых пришлось тупо дублировать один и тот же мезанизм работы с выходными отчетами. НО! При этом при малейших новых веяниях тутже перерабатывать все свои разработки. Конечно это надоедало да просто бесило. И вот буквально через год таких мытарств наконец-то созрел к созданию совершенно отдельной программы целью которой является конкретно обработка данных и создание выходных форм. А последней каплей переполнившей чашу терпения стала, новая автоматизационная политика насаждаемая новым же главным инженером. Ориентированная на все усиливающееся внедрение MS Excel, для реализации всех учетных задач предприятия. Мне безусловно все это совершенно не нравилось и не нравиться. И терзаясь немой злобой выносил зловещий план этого проекта.

Самая большая преследуемая цель - обеспечить независимую от родительского проекта возможность постобработки данных. Сделать ее максимально быстрой. Облизать вопросы удобства и полноты работы с отчетами на одном и едином приложении. А так же попробовть реализовать возможность работы с распределенными данными. Т.е. попытаться наиболее экономно и наиболее полно по части требований организовать прием и отгрузку результатов с отделений.

Читая настоящую инструкцию помните главное:

Если вам непонятно какое-то слово в техническом тексте, не обращайте на него внимания. Текст полностью сохраняет смысл и без него.

Закон Купера.


Дайте мне повод и я переверну мир

Главная задача этого проекта - получение отчетов. А центральная задача этого документа преподнести читателю суть главной задачи проекта. Так что не будем западать на "что нажимать", а сосредоточим внимание на стратегии работы. Что составляет фундаментальную основу проекта? Все в лучших традициях любых теорий - три кита.

На основе и с использованием их (китов) взаимодействия построен и реализован механизм работы. В обчем главная идея такова. Создается проект - группа запросов результаты которых имеют отношение к одной теме (например отчеты по программе расчетов с частным потребителем LightMaster). Создаются записи параметров к этим запросам, колы они потребуются. Возвращаясь к выбранному примеру - такие как расчетный период. И дальше пользователь в час икс, произодит отбор данных из несущей базы и. вуаля. Итоги есть - премия в кармане, багамы, пальмы, дорогие гостинницы, дорогие девушки, дорогие лечебницы...

Интуитивно понятный интерфейс это такой интерфейс
чтобы понять который требуется недюженная интуиция.

Интерфейс пользователя выбранный в этом проекте называется MDI, от англицкой абревиатуры (Multy D Interdface). Он такой же что и в MS Word. Т.е. на рабочем столе программы может размещаться срезу несколько окон с различной информацией. Пользователь переключаясь между окнами (делая одно из них активным, текущим) работает с ним. Доступные операции с данными окна доступны из главного меню программы, панели кнопок, и контекстного меню (вызываемого нажатием правой кнопки мыши).

Для работы с окнами программы выделено меню "Окна" из которого можно перейти к любому уже открытому окну, и/или расположить всеоткрытые окна в некотором порядке.


Закон Букера.
Даже маленькая практика стоит большой теории.

Теперь можно конкретно поговорить о работе с программой. Предполагается, что пользователь знает как работать с меня программы, мышкой ли клавиатуровй ли. Знает как вводить данные в соответсвующие элементы окна, знает как нажимать кнопки на окнах и на клавиатуре тоже. Одним словом предположим идеальный случай пользователя не новичка. Т.е. уйдем от подробного описания задействованных кнопок. А постараемя преподнести общую стратегию. Главы документа адресовны как пользователю, так и человеку который собирается что-то реализовывать сам. Технические подробности можно опускать, если вы собираетесь пользоваться только плодами. Корешки же для пытливых.


ЗАКОН ЗООПАРКОВ И МУЗЕЕВ ДЖОУНСА.
У самого интересного экспоната не бывает таблички с названием.

Опыт (как приятно вообще-то считать себя кладезем мудрости), подсказывает - глянь сначала на титульный лист программы. Там можно сразу узнать некоторые критичные факты. Например версию программы, ее назначение, ее версия, с точки зрения законченности. Ну и конечно познакомиться с автором (ему это всегда приятно). Не хочу показаться нескромным или навязчивым (должен признаться,что у меня нет ни слуха ни голоса,.. один талант), но все тот же опыт учит, что с автором таки разговаривают, в той или иной тональности, но знакомство происходит. Так лучше быть к этому готовым. Да и просто картинка красивая.... старался елы палы.


Первая компьютерная аксиома Лео Бейзера
Закладывая что-то в ЭВМ, помните, куда вы это положили.

Незаметно (по задумке) переползаем собственно к тематическому разговору. Как мы уже говорили - все запросы группируются в проекты. Выбрав один из которых мы можем работать. Что необходимо чтобы создать или откоректировать проект? Прежде всего открыть окно работы с ними а дальше выбрав режим редактирования или добавления указать

На самом деле пользователью это совершенно не понадобиться. Проекты будут составляться другими людьми. И можно безусловно было бы пропустить этот пункт. Но ради полноты картины, и злым умыслом истина представлена послесловом.


Правило точности.
Работая над решением задачи, всегда полезно знать ответ.

Теперь о главном - запросах к базам данных. При запуске программы это окно сразу открывается, т.к. основная работ производится непосредственно в нем.

Для каждого выбранного Вами проекта сразу выводятся все связанные с ним запросы выстроенные в порядке своего приоритета. Справа от списка запросов

Каждый запрос формируется следущими

На закладке "Поля" выводится список всех полей результирующей таблицы. Где можно заменить английское название поля удобочитаемыми русскими синонимами. И кроме того запретить вывод лишних полей на экран. Убрать столбец из просмотра можно и на странице просмотра данных, счелкнув мышкой по заголовку столбца. Удинственно что необходимо помнить убирая столбцы из просмотра, что обратная операция возможна только на странице полей.

Текущую таблицу (выведенную на экран) можно бытро отправить в MS Word 95 или MS Excel 97, в формат HTML. А так же просто открыть эту таблицу в другом окне (бывает полезно видеть одновременно сразу несколько таблиц). Для этого просто на поле вывода данных необходимо нажать правую кнопку мыши и в "выпавшем" меню выбрать интересующий пункт.


Закон больших задач Хоара.
Внутри каждой большой задачи сидит маленькая,
пытающаяся пробится наружу.

Стартуя, программа вместе с окном запросов открывает и окно параметров. C его помощью она ищет необходимые запросам параметры. И закрываеть это окно не следует - есть не просит, а польза при том налицо. Главное и основное предназначение параметров - подменять собой конкретные данные. Поэтому каждый параметр должен за собой нести конкретную "информационную" нагрузку.

Редактирование параметра


Благодарю Вас за внимаение. Надеюсь потраченное на составление этого документа и написание собственно программы ропало не зря. Безусловно представленный текст обладаем массой недостатков как по части грамматики, так и по части преподнесения информации. Не судите строго.
Бесконечно ваш Афанасьев Константин.

Hosted by uCoz