.
Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.
Автор megabax   
20.02.2012 г.
Базы данных

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Исходники к уроку вы можете скачать в платном разделе.

Сегодня мы улучшим и наконец то доведем "до ума" печать накладной. Давайте для начала забьем длинную накладную, которая не уместиться на одной странице. попробуем ее распечатать. Что мы видим? У нас заголовок печатается и на первой, и на второй странице*:

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Да, иногда так надо. Но не всегда. Вот давайте попробуем сделать так, что бы крупный и жирный заголовок накладной печатался только на первой странице, а мелкий на каждой. И еще добавим туда склад.

И так, заходим в дизайнер отчетов. Для начала давайте сдвинем секции заголовка и строки, что бы добавить новую секцию...

...

...Вообще, каждый из типов бэндов имеет свое назначение...

...

...Что у нас получилось? Вот что*:

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

если перейдем на следующую страницу, то увидим, что там заголовок один*:

 Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

теперь нам надо сделать более крупным заголовок накладной, который печатается только в начале...

...

...Теперь накладная у нас выглядит более красиво*:

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Добавим в оба заголовка склад. Для этого в модуле ...

...

...Все, теперь у нас печатается в накладной склад:

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Но у нас есть недочет. Если мы исправим склад, а потом пошлем накладную на печать, то в ней пропечатается старый склад. Что бы и в накладной печатался новый склад, нам нужной нажать "ОК" а потом снова открыть накладную. Тогда склад обновиться и в печатной форме. Как устранить этот недостаток? Способ первый: при измени склада обновлять переменную FStoreName. Например вот так...

...

...Но и тут мы имеем недочет. Во первых, если пользователь изменил склад, распечатал, а потом нажал на "отмену", то склад останется в базе данный старый. А на печати будет другой склад, тот, на который пользователь изменил его. Какой же выход из этого положения? Можно предлагать сохранить изменения перед печатью...

...

...В результате перед печатью у нас изменения сохраняются в базе данных, а если пользователь отказывается от сохранения, то печать не происходит.

Правда, если после печати юзер нажмеn "Отмена" или просто закрое окно, то журнал документов не обновиться, хотя изменения и попадут в базу данных. Для устранения этого недочета нам надо изменить процедуру "TfrmDocs.btnEditClick" в модуле DOCSFRM...

...

...И, последний штрих, вставляем в конце накладной надписи: "отпустил....получил":

Delphi - это просто. Урок 8.11.10:  Доведем до ума печать накладной: шапка и подвал, понятие секции.

Для этого ...


 Скриншоты, помеченные знаком* , являются цитатами и иллюстрациями   программного продукта "Free report", авторское право на который принадлежит "Fast Reports Inc" (Tzyganenko A.)

Последнее обновление ( 20.02.2012 г. )