Delphi - это просто. Урок 8.11.10: Доведем до ума печать накладной: шапка и подвал, понятие секции. |
![]() |
![]() |
Автор megabax | |
20.02.2012 г. | |
![]() Delphi - это просто. Урок 8.11.10: Доведем до ума печать накладной: шапка и подвал, понятие секции.Что бы смотреть урок полностью, подпишитесь на платный раздел. В платном разделе статья находиться здесь. Исходники к уроку вы можете скачать в платном разделе. Сегодня мы улучшим и наконец то доведем "до ума" печать накладной. Давайте для начала забьем длинную накладную, которая не уместиться на одной странице. попробуем ее распечатать. Что мы видим? У нас заголовок печатается и на первой, и на второй странице*: Да, иногда так надо. Но не всегда. Вот давайте попробуем сделать так, что бы крупный и жирный заголовок накладной печатался только на первой странице, а мелкий на каждой. И еще добавим туда склад. И так, заходим в дизайнер отчетов. Для начала давайте сдвинем секции заголовка и строки, что бы добавить новую секцию... ... ...Вообще, каждый из типов бэндов имеет свое назначение... ... ...Что у нас получилось? Вот что*: если перейдем на следующую страницу, то увидим, что там заголовок один*: теперь нам надо сделать более крупным заголовок накладной, который печатается только в начале... ... ...Теперь накладная у нас выглядит более красиво*: Добавим в оба заголовка склад. Для этого в модуле ... ... ...Все, теперь у нас печатается в накладной склад: Но у нас есть недочет. Если мы исправим склад, а потом пошлем накладную на печать, то в ней пропечатается старый склад. Что бы и в накладной печатался новый склад, нам нужной нажать "ОК" а потом снова открыть накладную. Тогда склад обновиться и в печатной форме. Как устранить этот недостаток? Способ первый: при измени склада обновлять переменную FStoreName. Например вот так... ... ...Но и тут мы имеем недочет. Во первых, если пользователь изменил склад, распечатал, а потом нажал на "отмену", то склад останется в базе данный старый. А на печати будет другой склад, тот, на который пользователь изменил его. Какой же выход из этого положения? Можно предлагать сохранить изменения перед печатью... ... ...В результате перед печатью у нас изменения сохраняются в базе данных, а если пользователь отказывается от сохранения, то печать не происходит. Правда, если после печати юзер нажмеn "Отмена" или просто закрое окно, то журнал документов не обновиться, хотя изменения и попадут в базу данных. Для устранения этого недочета нам надо изменить процедуру "TfrmDocs.btnEditClick" в модуле DOCSFRM... ... ...И, последний штрих, вставляем в конце накладной надписи: "отпустил....получил": Для этого ... Скриншоты, помеченные знаком* , являются цитатами и иллюстрациями программного продукта "Free report", авторское право на который принадлежит "Fast Reports Inc" (Tzyganenko A.) |
|
Последнее обновление ( 20.02.2012 г. ) |
« След. | Пред. » |
---|