ник: Lukas
А вообще возможно ли сделать размер поля ПО РАЗМЕРУ ДАННЫХ в ленточной форме и отчете?
|
Именно этим коды и отчета и формы занимаются при открытии формы/отчета.
Приоритет отдан числовым полям. Текстовые по "остаточному" принципу.
Алгоритм примерно такой:
1. При открытии отчета/формы открываю рекордсет по источнику данных отчета/формы.
2. Считываю поля рекордсета, их тип.
3. Пробегаюсь по записям рекордсета, считаю максимальное количество символов в полях, попутно считаю сумму числовых полей для итогов.
4. На основании максимального количества символов в полях и полях итогов, рассчитываю ширину полей, прикидываю как их разместить на форме/отчете.
5. Присваиваю значения ширины и положение от левого борта полям, надписям и итоговым полям.
Вот вкратце и все.
Добавлю, что в моем примере форма может выводить до 20 полей, изменяя при необходимости ширину формы до максимального размера. Использую для вывода данных перекрестных запросов, но можно выводить и простые выборки.
Отчет печатает PRINT-ом. Поэтому ему количество полей по-барабану, лишь бы хватило максимальной ширины. Текстовые и мемо поля при необходимости "подрезаются", что бы числовые помещались целиком.