Страница 1 из 1

SQL скрипты и решенные задачи....

Добавлено: 10 май 2007, 16:44
Alexey
Понимаю что в некотором роде это повтор уже существующей темы, но предлагаю вести разговор немного в другом ключе... "Не надо так уж прямо делиться скриптами". Смысл вот в чем, каждый кому не лень, скидывает сюда в виде списка решенные задачи с помощью SQL скриптов... в итоге имеем некий список, что у кого есть в той или иной форме... Далее если кого что заинтересовало может обратиться уже к конкретному человеку и вести с ним беседу...
А может данный список кого то просто натолкнет на идею решения своей задачи...
Своим скриптом для подсчета сумм по условиям я уже поделился... так что следующий ход за Вами господа....

Добавлено: 11 май 2007, 06:31
Anderyt
ух ты... а давайте попробуем, на самом деле :-)

итак.
ЗАДАЧА:
в действии над объектами понять, есть ли запущенные работы по текущему объекту. На основе этого действие уже будет принимать решение, разрешать запускать какие либо работы по этому объекту или нет.

РЕШЕНИЕ:
получаем строку, содержащую названия работ, запущенных по текущему объекту, но пока незавершенных. при этом работы, которые находятся на последнем этапе (то есть процесс практически закончен - юзер только кнопку ОК не нажал) в эту строку не попадают. и затем уже стандартными функциями редактора действий

Код: Выделить всё

GoTo ( if((var_temp_str not like '%внешнее согласование%'),  'Марка_next2', 'Марка_err2') )
или
GoTo ( if((var_temp_str not like '%окончательное согласование%'),  'Марка_next3', 'Марка_err3') )
настраиваем логику работы.

SQL-запрос:

Код: Выделить всё

var_temp_str = Set ( f_ExecSQLSelect_2('
select maps.description 
from 
lsdbo.wf_maps_view maps 
where 
id in 
( SELECT DISTINCT lsdbo.wf_mail_v.map_id   
FROM 
lsdbo.wf_attachments_view
,   lsdbo.wf_mail_docs_v
,   lsdbo.wf_mail_v   
WHERE 
 lsdbo.wf_attachments_view.id = lsdbo.wf_mail_docs_v.attachment_id 
and  
 lsdbo.wf_mail_docs_v.mail_id = lsdbo.wf_mail_v.id 
and 
lsdbo.wf_mail_v.map_id is not NULL  
and   
lsdbo.wf_attachments_view.app_id = ~'' + Var_P + '~' 
and   
lsdbo.wf_attachments_view.object_id = ~''+ Var_OBJ + '~' 
and 
lsdbo.wf_attachments_view.doc_id = ~''+string(a_Object)+'~') 
and 
maps.state = ~''+Var_map_state+'~' 
and 
maps.id not in 
(select pos.map_id 
from lsdbo.wf_map_cur_pos_v pos
, lsdbo.wf_map_nodes_view nodes 
where pos.map_object_id = nodes.map_object_id 
and
nodes.text =~''+var_map_node_name+ '~')', 
'',''))
смысл переменной a_Object понятен, поясню остальные.
Var_P и Var_OBJ - строковые переменные, в которых записано 'P' и 'OBJ' соответственно
Var_map_state - строковая переменная, содержит 'B' (то есть "Не завершена"
Var_map_node_name - строковая переменная, содержит 'Окончание работы'

пришлось делать строковые переменные, так как я не смог быстро понять, как вставлять строку в текст запроса :-(

Добавлено: 11 май 2007, 07:06
Александр
идея отличная :wink:
но мне как чайнику больше бы было понятно если бы каждая задача шла все таки отдельной темой в данном разделе
Тема - Задача <> Внутри -Решение

а так боюсь утонем в этом топике :wink: