фильтр на отчёт

Автор Игорь, 8 ноября 2012, 15:07

0 Пользователи и 1 гость просматривают эту тему.

Игорь

Есть форма в которой находятся таблица, список, кнопка. При помощи списка отфильтровываются записи выводимые в таблице, потом при нажатии кнопки формируется отчёт с отфильтрованными записями, а не получается (в отчёт выводится вся таблица, а не только те, которые в форме). Не могу вставить фильтр. В Accesse без проблем, а вот в ООо не умею, а очень надо. Помогите пожалуйста, хотя бы намёком, как это делается в ООо.

Yakov


Игорь

Вот база. За ранее благодарен за помощь

[вложение удалено Администратором]

Yakov

#3
Например так

REM  *****  BASIC  *****

Option Explicit
Global fName

Sub FormFiltr
Dim myForm As Object
Dim ofName As Object
' Dim fName

myForm = ThisCOMPONENT.DrawPage.Forms.GetByIndex(0)
ofName = myForm.getByName("Список 1")
fName = ofName.SelectedItems(0)
myForm.filter = "ID=" + fName
myForm.reload()
End Sub

Sub VRepotr


' Открываем отчёт в режиме дизайна
dim oReportsDocuments,oController
dim aReportName

dim aryProp(0) as new com.sun.star.beans.PropertyValue
aryProp(0).Name="OpenMode"

oController=thisDatabaseDocument.currentcontroller
if not  oController.isConnected() then oController.connect

aReportName="Таблица1"

dim oReport
' Открываем форму
aryProp(0).Value="openDesign"
'Получаем объект отчёта
oReport=oController.loadComponentWithArguments(3,aReportName,false,aryProp())


'Применяем фильтр
oReport.Filter= """Таблица1"".""ID"" = "   + Str( fName )
'Перечитываем форму
aryProp(0).Value="open"
oController.loadComponentWithArguments(3,aReportName,false,aryProp())

End Sub


Но лучше использовать запрос SQL в качестве источника данных отчёта.

Игорь

Большое спасибо. Принцип понял. У меня ещё много вопросов, (я только учусь) но пока сам помучаюсь.

JohnSUN

Вообще-то, со списком в форме ты слегка перемудрил. Обычно такие формы делают в виде связки форма-субформа. Внешне это выглядит как одна форма, но на самом деле твой список находится в главной форме, а таблица в связанной подформе.
И значения для списка лучше не забивать вручную, а брать из таблицы или запроса.



[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Игорь

Спасибо за подсказки, даже не подсказки, а обучение. Это всё создаю для уменьшения ручной работы: мастер приезжает на объект, проводит ТО или ремонт, устанавливает новую пломбу(ы), выписывают акт, в который вписывает все пломбы в последовательности номеров оборудования, а новую(новые) подчёркивает. Если у меня получится, то он вставит в комп флэшку, впишет только новую пломбу, дату установки и распечатает акт. Но вот есть ещё проблемы: Все пломбы нужно вписать в одну строку, а новую ещё и выделить. У меня установлен Oracle Report Builder, а на объектах нет, и в следствии Отчёт не пойдёт. Пробовал подключить шаблон, но не получается одним нажатием кнопки заполнить шаблон, проверить и другим нажатием вывести на печать, ну и в шаблоне та же проблема что и в отчёте - пломбы в одну строку с выделением  новоустановленной. Прикладываю базу и шаблон ПОМОГИТЕ если ещё не надоел.

[вложение удалено Администратором]

JohnSUN

Цитата: Игорь от  9 ноября 2012, 22:44...мастер приезжает на объект, проводит ТО или ремонт, устанавливает новую пломбу(ы)...
Некоторые старые пломбы могут сниматься и заменяться новыми?
Цитата: Игорь от  9 ноября 2012, 22:44...выписывают акт, в который вписывает все пломбы в последовательности номеров оборудования...
Само оборудование и его номера в акте не перечисляется? Только номера пломб? Они, кстати, уникальные? Как выглядит номер пломбы?
Цитата: Игорь от  9 ноября 2012, 22:44...а новую(новые) подчёркивает.
...он вставит в комп флэшку, впишет только новую пломбу, дату установки и распечатает акт.
Базу он таскает с собой на флэшке? И база не единая, а его персональная? В смысле, у других мастеров свои флэшки?
Цитата: Игорь от  9 ноября 2012, 22:44
Все пломбы нужно вписать в одну строку, а новую ещё и выделить.
Можешь показать реальный акт, а не заготовку шаблона? Ну, чтобы было видно, что такое "в одну строку" и "выделено"...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Игорь

Попробую ответить:

[вложение удалено Администратором]

JohnSUN

Насколько я понял это описание, имеем:
1. Центральная база существует, данные с флэшек в нее импортируются. Возможно, потребуется и обратный экспорт (в случае, если на объект назначается новый ремонтник, нужно ему перед выходом на флэшку закинуть информацию об уже установленных пломбах)
2. Актов может быть несколько - по одному на каждое... э-э-э... устройство?.. агрегат?.. изделие?.. Один акт на один лист. Печатать не все акты, а только для тех устройств, на которых менялась хоть одна пломба.
3. Номера пломб выстраиваются не по номерам оборудования, как было сформулировано раньше, а по номерам крышек лючков. Порядок крышек фиксированный, поэтому по положению номера пломбы в строке можно понять, на какой крышке она установлена.
4. Для каждой пломбы фиксируется не только дата, но и время установки.
5. Несмотря на то, что сейчас пломбы просто номерные, в базе её все равно нужно описывать как строковое поле. Это из-за старой буквенно-цифровой нумерации - часть старых пломб могла сохраниться, они тоже попадают в акты.
6. Следить за уникальностью номеров пломб сложно. Это можно реализовать в пределах одной флэшки, но в центральной базе можем получить дублирование номеров... Ремонтнику выдается пачка номерных пломб? Тогда, возможно, получится обеспечить проверку уникальности при вводе значения...
7. Форма акта какая-то неуклюжая... "Перечень выполненных работ"... Вот прямо в него и воткнуть бы отдельным пунктом "Пломба №6762726 от 13/02/2012 не нарушена" или "Пломба №6764314 от 22/04/2012 заменена на №6764903 в 16:45" (дата замены и так в акте есть). И не пришлось бы изобретать выделение подчеркиванием для вновь установленных...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Hasim

А ремонтник выезжает к клиенту со свои ноутбуком и своим принтером?
(Совать флешку в мой компьютер я бы даже ремонтнику не позволил.)
Как и где он печатает акт, и как и где подписывает этот акт заказчик?

Игорь

Ответ:
1. Импорт/экспорт пома в проекте. Конечно хочется автоматизировать передачу информации. Сложность в том, что там своя сеть, а у меня своя. Думал может по почте передавать изменённую информацию, на объектах оставлять информацию относящую только для него. А пока на каждую флэшку перед поездкой закидываю все объекты, а после возвращения вписываю себе все изменения.
2. Актов может быть несколько с объекта - на одно оборудование один акт. Один акт на одном листе и печатается только при замене пломбы.
3. Номера выстраиваются по номерам крышек и по положению номера пломбы в строке можно понять, на какой крышке она установлена. Правильно!
4. В базу вписываю только дату, а время только в акт, оно больше указывает на время завершения работ чем на время установки пломбы (ну есть такая форма).
5. Старых уже нет, но могут быть новые буквенно-цифровые, да, поле строковое.
6. Програмно следить за уникальностью не надо, но можно в центральной базе. Ремонтник отвечает за то, что написал.
7.Форма утверждённая с выше для ручного заполнения и я этому придерживаюсь. Про выделение сегодняшней думал. Можно строку пломб в шаблоне склеить с нескольких строк подчёркнутых и обычных, или нарисовать линии подчёркивающие, которые можно делать видимыми или нет.
   А от самое главное не знаю возможно ли при нажатии одной кнопки вывести заполненную форму, а не через F4, потом заполнить.

Hasim

Цитата: Игорь от 12 ноября 2012, 12:387.Форма утверждённая с выше для ручного заполнения и я этому придерживаюсь.
Т.е, на объекте ремонтник заполняет акт от руки  и акт подписывается?
А уже у себя дома ремонтник все данные записывает на флешку?

Игорь

Цитата: Hasim от 12 ноября 2012, 12:22А ремонтник выезжает к клиенту со свои ноутбуком и своим принтером?
(Совать флешку в мой компьютер я бы даже ремонтнику не позволил.)
Как и где он печатает акт, и как и где подписывает этот акт заказчик?

Пока выезжает со своей флэшкой и использует компьютер и принтер заказчика. И там на объекте заказчик принимает работу и вместе с исполнителем ставят штампы и подписывают все бумаги. Ты бы не позволил, а заказчик позволяет.

Hasim

И в каком формате все эти данные на флешке? Отдельный файл (шаблон акта), БД на флешке, или что-то ещё?