Topic: Выбранная запись в отчет
Всем здравствуйте. Такой вопрос. Использую кнопку с действием SQL отчет, так как стандартным способом слишком сложный вывод. Все работает изумительно при выводе в отчет всей информации помещенной в грид по результатам поиска. Теперь понадобилось создать еще один отчет в который должны выводится данные только выбранной записи в гриде. Так вот, если запись в гриде всего 1 до она и выводится. если записей много то выводится не выбранная, а почему то первая. Запрос используется тот же. Ньюанс - имеется связанный список, если им сужать все до 1 записи до она выводится верно. Сам запрос такой
SELECT
(SELECT Naimenovanie.nazvanie FROM Uchet u
LEFT OUTER JOIN Model ON Model.id=Uchet.id_Model
LEFT OUTER JOIN Proizvoditel ON Proizvoditel.id=Model.id_Proizvoditel
LEFT OUTER JOIN Naimenovanie ON Naimenovanie.id=Proizvoditel.id_Naimenovanie
WHERE Uchet.id=u.id),
(SELECT Model.model FROM Model WHERE Model.id=Uchet.id_Model),
(SELECT Proizvoditel.proizvoditel FROM Uchet u
LEFT OUTER JOIN Model ON Model.id=Uchet.id_Model
LEFT OUTER JOIN Proizvoditel ON Proizvoditel.id=Model.id_Proizvoditel
WHERE Uchet.id=u.id),
Uchet.inv_number,
Uchet.ser_number,
strftime('%d.%m.%Y',Uchet.date_release),
strftime('%d.%m.%Y',Uchet.date_of_input),
Uchet.aurum,
Uchet.argentum,
Uchet.platinum,
Uchet.palladium,
Kabinet.kabinet,
Dolznost.dolznost,
OtvLico.lico,
Sluzba.sluzba,
Uchet.id,
strftime('%d.%m.%Y',(SELECT Dvizenie.debited_date FROM Dvizenie
WHERE
(Dvizenie.id_Uchet=Uchet.id) AND
(DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id) ))),
CASE WHEN (SELECT COUNT(Dvizenie.id)FROM Dvizenie WHERE Dvizenie.spisano=1 AND Dvizenie.id_Uchet=Uchet.id ) > 0 THEN 'Списано' ELSE 'Активно' END,
(
SELECT Dvizenie.akt_number FROM Dvizenie
WHERE
(Dvizenie.id_Uchet=Uchet.id) AND
(DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id) )
),
(
SELECT Dvizenie.primechanie FROM Dvizenie
WHERE
(Dvizenie.id_Uchet=Uchet.id) AND
(DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id) )
)
FROM
tgResult
LEFT OUTER JOIN Kabinet ON Kabinet.id=Uchet.id_Kabinet
LEFT OUTER JOIN Dolznost ON Dolznost.id=Uchet.id_Dolznost
LEFT OUTER JOIN OtvLico ON OtvLico.id=Uchet.id_OtvLico
LEFT OUTER JOIN Sluzba ON Sluzba.id=Uchet.id_Sluzba
WHERE
(CASE WHEN {cbNaimenovanie} <> -1 THEN (SELECT Naimenovanie.id FROM Uchet u
LEFT OUTER JOIN Model ON Model.id=Uchet.id_Model
LEFT OUTER JOIN Proizvoditel ON Proizvoditel.id=Model.id_Proizvoditel
LEFT OUTER JOIN Naimenovanie ON Naimenovanie.id=Proizvoditel.id_Naimenovanie
WHERE Uchet.id=u.id) = {cbNaimenovanie} ELSE 1=1 END) AND
(CASE WHEN {cbProizvoditel} <> -1 THEN (SELECT Proizvoditel.id FROM Uchet u
LEFT OUTER JOIN Model ON Model.id=Uchet.id_Model
LEFT OUTER JOIN Proizvoditel ON Proizvoditel.id=Model.id_Proizvoditel
WHERE Uchet.id=u.id) = {cbProizvoditel} ELSE 1=1 END) AND
(CASE WHEN {cbModel} <> -1 THEN (SELECT Model.id FROM Model WHERE Model.id=Uchet.id_Model) = {cbModel} ELSE 1=1 END) AND
(CASE WHEN '{edSerNumber}' = '' THEN 1=1 ELSE Uchet.ser_number LIKE '%{edSerNumber}%' END) AND
(CASE WHEN '{edInvNumber}' = '' THEN 1=1 ELSE Uchet.inv_number LIKE '%{edInvNumber}%' END) AND
(CASE WHEN {dtpVipuskS} IS NOT NULL THEN date (Uchet.date_release)>= date({dtpVipuskS}) ELSE 1=1 END) AND
(CASE WHEN {dtpVipuskPo} IS NOT NULL THEN date(Uchet.date_release) <= date({dtpVipuskPo}) ELSE 1=1 END) AND
(CASE WHEN {dtpVvodS} IS NOT NULL THEN date(Uchet.date_of_input) >= date({dtpVvodS}) ELSE 1=1 END) AND
(CASE WHEN {dtpVvodPo} IS NOT NULL THEN date(Uchet.date_of_input) <= date({dtpVvodPo}) ELSE 1=1 END) AND
(CASE WHEN {cbSluzba} <> -1 THEN Uchet.id_Sluzba = {cbSluzba} ELSE 1=1 END) AND
(CASE WHEN {cbKabinet} <> -1 THEN Uchet.id_Kabinet = {cbKabinet} ELSE 1=1 END) AND
(CASE WHEN {cbOtvLico} <> -1 THEN Uchet.id_OtvLico = {cbOtvLico} ELSE 1=1 END) AND
(CASE WHEN {dtpSpisanS} IS NOT NULL THEN (SELECT Dvizenie.debited_date FROM Dvizenie WHERE (Dvizenie.id_Uchet=Uchet.id) AND (DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id))) >= date({dtpSpisanS}) ELSE 1=1 END) AND
(CASE WHEN {dtpSpisanPo} IS NOT NULL THEN (SELECT Dvizenie.debited_date FROM Dvizenie WHERE (Dvizenie.id_Uchet=Uchet.id) AND (DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id) )) <= date({dtpSpisanPo}) ELSE 1=1 END) AND
(CASE WHEN {chbPodlezSpisaniyu} IS NOT NULL THEN (CASE WHEN (SELECT COUNT(Dvizenie.id)FROM Dvizenie WHERE Dvizenie.spisano=1 AND Dvizenie.id_Uchet=Uchet.id ) > 0 THEN 1 ELSE 0 END) = {chbPodlezSpisaniyu} ELSE 1=1 END)
ORDER BY Kabinet.kabinet
Как передать в действие чтобы в данном случае можно было вывести лишь 1 выбранную запись?