Topic: Отчет (SQL)

Написал такой скрипт:
select     
BDog.num_gk,
strftime('%d.%m.%Y',bdog.date_gk),
BDog.shifr,
BDog.nameGK,
vedisp.numstage,
vedisp.namestage,
vedisp.ONTD,                                                                         
strftime('%d.%m.%Y',vedisp.startstage),
strftime('%d.%m.%Y',vedisp.endstage)as dateend,                 
vedisp.vidcash,
BDog.prim,
GZak.ZakName,
Glisp.namegi, 
(case when vedisp.otmstage = 1 then 'Да' else 'Нет' end),       
vedisp.id_bdog,
bdog.id,
bdog.id_GLisp,
BDog.id_GZak
                           
from vedisp, bdog, glisp, gzak

where vedisp.id_bdog=bdog.id and GLisp.id=bdog.id_Glisp and GZak.id=BDog.id_GZak
and (glisp.id={combobox4} or {combobox4}=-1)
and (strftime('%m.%Y',vedisp.endstage)=strftime('%m.%Y',{DateTimePicker2}) or strftime('%m.%Y',vedisp.endstage)=strftime('%m.%Y',{DateTimePicker1}))
and vedisp.otmstage='0'


Union all
select
SoispDog.num_dog,
strftime('%d.%m.%Y',SoispDog.date_dog),
soispdog.shifr_dog,
SoispDog.name_dog,
vedisp.numstage,
vedisp.namestage,
vedisp.ONTD,
strftime('%d.%m.%Y',vedisp.startstage),
strftime('%d.%m.%Y',vedisp.endstage)as dateend,   
vedisp.vidcash,
SoispDog.prim_dog,
Glisp.nameGi,
Soisp.nameisp,
(case when vedisp.otmstage = 1 then 'да' else 'нет' end),
VedIsp.id_SoispDog,
soispdog.id,
soispdog.id_GLisp,
soispdog.id_soisp                                                           

from vedisp, soispdog, Glisp, soisp   
               
where vedisp.id_soispdog=soispdog.id and soispdog.id_soisp=soisp.id and soispdog.id_Glisp=GLisp.id
and ((case when {ComboBox1}=-1 then 1=1 else {ComboBox1}=soisp.id end) or (case when {ComboBox4}=-1 then 1=1 else {ComboBox4}=glisp.id end))
and (strftime('%m.%Y',vedisp.endstage)= strftime('%m.%Y',{DateTimePicker1}) or strftime('%m.%Y',vedisp.endstage)= strftime('%m.%Y',{DateTimePicker2}))
and vedisp.otmstage='0'
 
order by dateend

Свойство combobox мултиселект включено. Возможно каким-то способом передать ID выбранной записи combobox в скрипт?

Re: Отчет (SQL)

Свойство combobox мултиселект включено. Возможно каким-то способом передать ID выбранной записи combobox в скрипт?

К сожалению не совсем понятно, причем тут мултиселект, если речь идет о передаче id выбанной записи в ComboBox (написано в единственном числе). Необходимо, чтобы SQL запрос учитывал все выбранные записи в ComboBox при использовании режима MultiSelect ?

Dmitry.

Re: Отчет (SQL)

Да все верно нескольких записей и в том числе одной

Re: Отчет (SQL)

delphinsl wrote:

Да все верно нескольких записей и в том числе одной

Сделал для вас пример. Суть примера  в том, что в SQL запрос вставляем строку, например {INSERT} чтобы заменить ее другой строкой с помощью скрипта. Таким образом динамически формируем условие WHERE в зависимости от выбора в ComboBox

Post's attachments

Attachment icon Report SQL ComboBox Multiselect.zip 31.59 kb, 456 downloads since 2017-12-13 

Dmitry.

Re: Отчет (SQL)

спасибо Дмитрий!

Re: Отчет (SQL)

Дмитрий подскажите пожалуйста, каким образом данные из объектов формы можно передать в отчет?

Re: Отчет (SQL)

delphinsl wrote:

Дмитрий подскажите пожалуйста, каким образом данные из объектов формы можно передать в отчет?

В правой части окна дизайнера отчетов найдите вкладку "Variables", где вы сможете найти переменные, содержащие данные из компонентов, который были внесены в первый список в настройках кнопки с действием "Отчет". Эти переменные вы можете разместите на форме отчета как обыкновенные поля.

Re: Отчет (SQL)

что за первый список?

Re: Отчет (SQL)

те компоненты,  котрые учавствуют в поиске, их можно найти в Fast report во вкладке "Variables" переностие их в отчет и значения этих компонетов отображаются в отчете.

Re: Отчет (SQL)

delphinsl
Это работает только с кнопкой с действием "Отчет", если используете кнопку "Отчет (SQL)", вы можете в SQL запрос вставить значение компонентов с формы, т.о. данные будут доступны ввиде БД полей.


Пример SQL

SELECT firstname,  '{Edit1}', {DateTimePicker1} FROM tablename
Dmitry.

Re: Отчет (SQL)

Спасибо!

Re: Отчет (SQL)

Дмитрий, а как действовать, если необходимо записи передать из двух комбобоксов содержащих сведения из разных таблиц в SQL отчет? Пробовал адаптировать Ваш скрипт,  не получается(((