|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.04.2010, 12:47 | #1 |
Регистрация: 23.11.2009
Сообщений: 4
|
Автоматическое формирование нескольких отчётов по данным из формы
Доброго вам времени суток, уважаемые гуру!
Обращаюсь к вам с проблемой, заморачивающей меня глобально уже долгое время и до решения которой я наконец-то добрался (далее, без её решения, процесс не идёт): Передо мной встала необходимость формирования отчётов на отгрузку в виде формы 1-Т (общеизвестна как Товарно-транспортная накладная), заполняемой на основе данных из формы. Приаттачить файл не смог, посему ссылка следующая: http://depositfiles.com/files/4kx4vkau4 Ситуация заключается в следующем. В форме WorkForm, открытой в режиме формы отображаются данные по разным покупателям: внутренний номер покупателя (поле Customer), наименование компании-плательщика (поле Payer) и компании-получателя (поле Receiver), и, естественно, их адреса - адрес компании-плательщика (поле PayerAddress) и адрес компании-получателя (поле UploadPlace), вкупе, собственно, идёт "суммарная синтетика" (суммарные синтетические данные) по товарам, предназначеным на определённого покупателя (на данного Customer'а) (т.е. привязка "синтетики" идёт по номеру покупателя, т.е. по Customer'у): общее кол-во билетов на отправку(поле ST_Qty) общее количество мест, предназначающихся покупателю (поле SumPlcs4Cust), суммарный вес предназначающихся покупателю мест (поле SumWeight4Cust) и суммарный объём предназначающихся покупателю мест (поле SumVol4Cust) Подчинённая форма OrgByST__subform (отображающая данные таблицы OrgByST) - это инструмент более детальной синтетики по билетам на отправку - необходима для визуализации. Другим целям не служит. Подчинённая форма TabN__subform (отображающая данные таблицы TabN) - это последний уровень синтетики - детализация идёт по местам, содержащимся в определённом билете по определённому покупателю (Customer'у) и общая информация по каждому месту: номер места (поле PalletNum), вес позиции\места (поле WEIGHT), объём места, входящего в билет (поле Volume). При формировании этого отчёта (накладной) мы работаем с основной формой, т.е. с полями формы WorkForm и с подчинённой формой TabN__subform (а точнее с данными таблицы TabN) в которых совпадает Customer, т.е. где (forms![WorkForm]![Customer] = TabN.CUSTOMER) и выполняется условие (forms![WorkForm]![Flag] = TRUE) (т.е. по тем заказчикам, которые были выбраны - помечены флажками) - из основной формы по каждому заказчику (Customer'у) должна осуществляться выборка следующих полей: - по машине forms![WorkForm]![DRiverFIO], forms![WorkForm]![AutoModel], forms![WorkForm]![AutoNumber], forms![WorkForm]![ArrivalTime], forms![WorkForm]![LeavingTime], forms![WorkForm]![SealNum], - информации по заказчику: forms![WorkForm]![Customer],forms![WorkForm]![Payer], forms![WorkForm]![PayerAddress],forms![WorkForm]![Receiver], forms![WorkForm]![UploadPlace],forms![WorkForm]![SumPlcs4Cust], forms![WorkForm]![SumWeight4Cust],forms![WorkForm]![SumVol4Cust], - а также данные по местам из таблицы TabN: TabN.PalletNum, TabN.WEIGHT, TabN.Volume (т.е. выборка данных из таблицы TabN осуществляется только по условию совпадения внутренних номеров заказчика, т.е. условие будет иметь вид типа: WHERE (((forms![WorkForm]![Customer] = TabN.CUSTOMER) На кнопку "Сформировать" будет накинут макрос, который запускает ряд запросов: 1) запрос, собственно, формирующий динамическую таблицу, содержащую информацию по машине, информацию по заказчику и данные по местам из таблицы TabN (вложенная таблица) 2) запрос, формирующий лог () (рабочий вид этого запроса мне пока реализовать не удалось) 3) запрос, удаляющий выбранные флажками записи из таблицы Tab2, по которым были сформированы накладные Сама проблема носит "инструментарный" характер, и заключается в том, что у меня, тупо, не хватает знаний и умений на то, чтобы сгенерить код модуля, который (а) запускает запрос (1), т.е. запрос, формирующий динамическую таблицу, содержащую информацию по машине, информацию по заказчику и данные по местам из таблицы TabN (вложенную таблицу), - или методами DAO или ADO формирует динамический recordset, данные из которого можно будет использовать для формирования отчётов, (б) формирует отчёт по каждому заказчику (Customer'у) (т.е. N-ное кол-во отчётов в зависимости от кол-во записей, выбранных флажками) и выводит эти отчёты на печать. Одно из условий моего мозго*бства состоит в том, что у меня уже имеются макеты отчётов (TTH_1ST_PAGE (куда "подтягивается" информация по заказчику (подтягиваются в "шапку" отчёта) и данные по местам из таблицы TabN (подтягиваются в ТОВАРНЫЙ РАЗДЕЛ) и TTH_2ND_PAGE (куда "подтягивается" информация по машине (подтягивается в начало ТРАНСПОРТНОГО РАЗДЕЛА)), к которым приаттачены необходимые поля из формы, но которые не работают =((( Посему хочу привязать результат к файлу xls... Молю о помощи. Искренне надеюсь на вашу помощь или советы по поводу того, как это, хотя бы примерно, можно организовать и заранее благодарю за любую оказанную помощь в решении этого затыка. |
20.04.2010, 20:20 | #2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте Kerguru.
Задача планировалась для практического применения или это учебное задание? Евгений. P.S. совет : никогда не создавайте послания размером более одного экрана, они не будут прочитаны, очень тяжело читающему заставить себя прочесть этот информативный только для Вас большой объем текста. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматическое изменение размера формы в соответствии с размером экрана | ru3000 | Microsoft Office Excel | 18 | 08.11.2021 10:16 |
Формирование нескольких сводных таблиц | FormAlDeGid | Microsoft Office Excel | 0 | 24.10.2009 12:04 |
Выборка из БД по данным введнных в поле формы | Valik90 | Microsoft Office Access | 0 | 03.07.2009 15:55 |
Формирование запроса по данным, взятым из формы | kaizer131 | Microsoft Office Access | 5 | 07.04.2009 15:15 |