Archive for Февраль, 2009
Хитрость печати отчетов
Здравствуйте, уважаемые читатели.

В одной из программ реализована функциональность печати адресов клиентов на конверты, в результате пользователь получает готовенький документ MS Word. Клиент попросил добавить свой логотип на каждый конверт. Существующая реализация формирования документа в Word не позволяет дублировать картинку для каждой страницы. Переделывать полностью не хотелось. Поэтому я искал как обойтись меньшей кровью.
Идея пришла из ниоткуда. Я мониторил меню Word 2007 в поисках пункта записи макросов (может они и могли мне помочь, но увы
) и наткнулся на создание подложки – “Разметка страницы – Подложка – Настраиваемая подложка” (“Формат – Фон – Подложка” для Word 2003).
Как оказалось это отличная идея. Рисунок располагается на странице за текстом, размер и положение можно изменить в режиме изменения колонтитулов.
Супер. Просто и со вкусом. Пример можно посмотреть тут.
До встречи!
(с) Скоков Сергей
Округления
Здравствуйте, уважаемые читатели.

До Access 2002 (или 2000) встроенной функции округления не было. Поэтому все пользовались самописными. Потом появилась функция Round(). Тут можно было вдохнуть с облегчением и избавится от собственной.
Как-то заказчик прислал мне скриншот с неправильными расчетами. Анализ кода показал, что функция Round() дала сбой и округляла следующим образом (проверял в окне отладки):
9.5 =10
8.5 = 8
7.5 = 8
6.5 = 6
5.5 = 6
4.5 = 4
3.5 = 4
2.5 = 2
1.5 = 2
0.5 = 0
Разбираться было лень. В результате заменил на собственное творение, т.к. это деньги:
Public Function CM_Okrugl(ByVal dbl As Double) As Long
' округляет число dbl до целого
Dim lng As Long
lng = Fix(dbl)
If (dbl - lng) < 0.5 Then
CM_Okrugl = lng
Else
CM_Okrugl = lng + 1
End If
End Function
До встречи!
(с) Скоков Сергей
Ошибка в MS Access
Всем привет.
Как-то у меня возникла необходимость поработать на другом компьютере. Я давно использую VSS и не хотел от этого отказываться. Но тут меня подстерегал подводный камень.
При импорте базы данных из репозитория я получил кучу ошибок, когда очередь дошла до форм. Ладно, думаю так поработаю. И не тут то было. При попытке открыть форму я увидел надпись:
“There isn’t enough memory to perform this operation. Close unneeded programs and try the operation again.”
Мне помог вот этот hostfix: http://support.microsoft.com/kb/945674/en-us. Качаем и наслаждаемся.
(с) Скоков Сергей