powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подпись отчетов
12 сообщений из 12, страница 1 из 1
Подпись отчетов
    #33239370
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу найти решение в Cristal Report .NET.

Суть:
На всех документах, как правило, указывается ФАМИЛИЯ лица, ознакомленного с ним и его ДОЛЖНОСТЬ.
Каждый год необходимо печатать документы. Каждый год приходится ручками вносить изменения (ФАМИЛИИ и/или ДОЛЖНОСТИ).
К тому же, форм различных отчетов много.

В итоге, процедура не из приятных (((
Помогите
...
Рейтинг: 0 / 0
Подпись отчетов
    #33239695
algenda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как на счет того что бы завести табличку с перечислением ФАМИЛИЙ и Должностей. Из отчета делать ссылку по ключу на нужного ЛПР (Лицо Принимающее Решение).
Тогда обносление данных в таблице автоматом поменяется в отчете.
...
Рейтинг: 0 / 0
Подпись отчетов
    #33239741
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне тоже кажется, что нужна таблица с данными о ЛПР. Вот только
algendaИз отчета делать ссылку по ключу на нужного ЛПР (Лицо Принимающее Решение).

мне не совсем ясно. В виде чего должна быть ссылка (в виде поля?). Точнее какой элемент отчета позволяет выудить одну запись с данными из таблицы ЛПР.
Если можно, поподробнее, пожалуйста. Буду благодарен за помощь
...
Рейтинг: 0 / 0
Подпись отчетов
    #33239797
algenda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы сделал так:
Таблица с ЛПР:
ID|Last Name | Job Title |
1 |Петров А.И. |Директор |
2 |Сидоров И.Л. |Гл. Бухгалтер|

В отчете добавил Команду:

Select * from LPR
where ID=2

условие WERE менял в зависимости от того кто должен документ подписывать.

Результатом команды мы получаем в отчете одну запись с тремя полями: ID Last Name и Job Title которые потом можно спокойно вставить в Footer отчета.
...
Рейтинг: 0 / 0
Подпись отчетов
    #33239805
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А конфликтов с основным RecordSet'ом не будет?

Допустим, ситуация следующая:

Отчет содержит ПЕРЕЧЕНЬ МАТЕРИАЛОВ с указаными ценами (Это один RecordSet).
И подписывается этот отчет данными о ЛПР из другого RecorSet'а.
...
Рейтинг: 0 / 0
Подпись отчетов
    #33240221
FantomGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) дожна быть таблица (вьювер, хп) в которой находятся или выбираются данные по человеку и его должности
2) добавить в отчет текстовый параметр в котором будет фамилия и должность человека и поместить в нужное место отчета
3) перед открытием отчета заполнять в этот параметр значения по умолчанию из пункта 1)
4) действия по вводу фамилии сведутся к выбору значения параметра из списка
...
Рейтинг: 0 / 0
Подпись отчетов
    #33241975
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё работает! Большое вам Спасибо за помощь
...
Рейтинг: 0 / 0
Подпись отчетов
    #33243945
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказалось, что перечень Default Values не имеет динамической связи с источником данных (при изменении ФАМИЛИИ ЛПР в таблице БД, в отчете остается старая фамилия)

Может эту проблему можно решить через SQL Expression Field ?

Я попробовал записать следующую формулу:
Код: plaintext
1.
2.
3.
4.
5.
select 
    LPR.FIO 
from
    DB.dbo.LPR LPT
where
    LPR.ID =  1 
получил сообщение об ошибке:
General SQL Server error: Check messages from the SQL Server
(тот же самый запрос запущен в Analizer . Там всё работает)
...
Рейтинг: 0 / 0
Подпись отчетов
    #33244388
pokibor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, Default Values нельзя связать с таблицей динамически. В принципе. За это многие бьют CR, и правильно делают. Вообще, в CR нет многого, что там должно быть исходя из логических соображений.
...
Рейтинг: 0 / 0
Подпись отчетов
    #33245493
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А через SQL Expression Field решить можно?
Если можно, то как должно выглядеть выражение?
...
Рейтинг: 0 / 0
Подпись отчетов
    #33245597
FantomGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перед запуском кристала заполнять поля по умолчанию в параметре из кода в цикле
Код: plaintext
1.
2.
3.
4.
defaultValues = paramField.DefaultValues;
defaultValues.Add(discreteParam);
 // Apply the default parameter values.
 paramField.ApplyDefaultValues(defaultValues);
PS: да в кристале не все идеально как хочеться
...
Рейтинг: 0 / 0
Подпись отчетов
    #33251751
RomanDzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для тех кого интересует, предлагаю собственное решение
1. В отчете вставить поле FIO типа Parameter Field
(меню Insert->Field Object)

2. В обработчике события формы Load написать следующее:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
reportDocument1.Load("C:\\perechen.rpt")

' описание необходимых переменных
Dim currentValues As CrystalDecisions.Shared.ParameterValues
Dim discreteParam As New CrystalDecisions.Shared.ParameterDiscreteValue()

Dim paramField As Object
' установка дискретного значения параметра
discreteParam.Value = "Пупкин Вася"
paramField = reportDocument1.DataDefinition.ParameterFields.Item("FIO")

'редактируем текущие значения параметра с именем FIO
currentValues = paramField.CurrentValues
currentValues.Clear()
currentValues.Add(discreteParam)
paramField.ApplyCurrentValues(currentValues)

CR1.ReportSource = reportDocument1
reportDocument1.Refresh()
End Sub
Таким образом, вставив вместо "Вася Пупкин", получим желаемый результат
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Подпись отчетов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]