Вверх ↑
Ответов: 667
Рейтинг: 140
#1: 2022-02-06 12:08:07 ЛС | профиль | цитата
LeoN писал(а):
Сложностью возникло формирование запроса, т.е. чтобы в нужное место вставлялось WHERE и AND (если условий несколько).

Вот пример как можно это сделать.
Add(MainForm,12661867,182,147)
{
Width=704
Height=358
Position=1
}
Add(Label,7714648,322,70)
{
Left=10
Top=15
Width=44
Height=17
Caption="Фильтр"
}
Add(Label,3700171,427,105)
{
Left=85
Top=15
Width=59
Height=17
Caption="Поле name"
}
Add(ComboBox,5901007,623,133)
{
@Hint=#4:name|
Left=145
Top=10
Width=145
Height=21
Strings=#7:1|Антон|9:2|Аркадий|7:3|Борис|11:4|Екатерина|
DataType=1
link(onClick,971629:doSplit,[])
AddHint(59,56,41,13,@Hint)
}
Add(Label,4363080,427,147)
{
Left=75
Top=40
Width=49
Height=17
Caption="Поле city"
}
Add(ComboBox,12873306,623,245)
{
@Hint=#4:city|
Left=145
Top=40
Width=145
Height=21
Strings=#8:1|Лондон|7:2|Париж|8:3|Берлин|9:4|Варшава|8:5|Багота|
DataType=1
link(onClick,7983654:doSplit,[])
AddHint(57,56,31,13,@Hint)
}
Add(ChildPanel,9402115,434,476)
{
link(onEvent1,15957351:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,15276896,21,21)
{
EventCount=1
WorkCount=1
Width=615
Height=235
link(doWork1,16243722:doData,[(102,27)(102,62)])
}
Add(Panel,16524363,35,105)
{
Left=70
Top=80
Width=339
Height=37
}
Add(RadioButton,14210090,203,56)
{
Left=89
Top=9
Caption="Студент"
link(onSelect,14676883:doWork2,[(242,62)(242,104)])
}
Add(RadioButton,6630222,203,105)
{
Left=164
Top=9
Width=80
Caption="Пенсионер"
link(onSelect,14676883:doWork3,[])
}
Add(RadioButton,16052579,203,154)
{
Left=259
Top=9
Width=65
Caption="Рабочий"
link(onSelect,14676883:doWork4,[(242,160)(242,118)])
}
Add(Label,7977922,42,189)
{
Left=9
Top=9
Width=61
Height=17
Caption="Поле status"
}
Add(ChanelToIndex,14676883,273,91)
{
Count=4
link(onIndex,12803989:doString,[])
}
Add(FormatStr,12803989,336,91)
{
@Hint=#6:status|
DataCount=1
Mask="status = %1"
Point(FString)
link(onFString,15276896:onEvent1,[(459,97)(459,27)])
AddHint(114,10,43,13,@Hint)
}
Add(DoData,16243722,112,56)
{
Data=Integer(0)
link(onEventData,1214639:doEvent1,[])
}
Add(Hub,1214639,154,56)
{
OutCount=3
link(onEvent1,14210090:doSelect,[])
link(onEvent2,6630222:doSelect,[(193,69)(193,111)])
link(onEvent3,16052579:doSelect,[(186,76)(186,160)])
}
END_SDK
Add(ChildPanel,13935565,434,518)
{
link(onEvent1,15957351:doWork3,[(494,524)])
}
BEGIN_SDK
Add(EditMulti,15392110,21,21)
{
EventCount=1
WorkCount=1
Width=587
Height=242
link(doWork1,11330140:doData,[(39,27)(39,55)])
}
Add(Panel,15961416,35,105)
{
Left=70
Top=130
Width=339
Height=37
}
Add(RadioButton,10780047,154,49)
{
Left=89
Top=9
Caption="Женский"
link(onSelect,179084:doWork2,[(200,55)(200,90)])
}
Add(RadioButton,5948420,154,91)
{
Left=164
Top=9
Width=80
Caption="Мужской"
link(onSelect,179084:doWork3,[])
}
Add(RadioButton,11558322,154,133)
{
Left=259
Top=9
Width=65
Caption="Неизвестно"
link(onSelect,179084:doWork4,[(200,139)(200,104)])
}
Add(Label,15928589,462,63)
{
Left=9
Top=9
Width=47
Height=17
Caption="Поле pol"
}
Add(ChanelToIndex,179084,210,77)
{
Count=4
link(onIndex,15745763:doString,[])
}
Add(FormatStr,15745763,287,77)
{
@Hint=#3:pol|
DataCount=1
Mask=" pol = %1"
Point(FString)
link(onFString,15392110:onEvent1,[(326,83)(326,27)])
AddHint(-73,56,29,13,@Hint)
}
Add(DoData,11330140,49,49)
{
Data=Integer(0)
link(onEventData,14505728:doEvent1,[])
}
Add(Hub,14505728,98,49)
{
OutCount=3
link(onEvent1,10780047:doSelect,[])
link(onEvent2,5948420:doSelect,[(144,62)(144,97)])
link(onEvent3,11558322:doSelect,[(137,69)(137,139)])
}
END_SDK
Add(Label,504982,168,224)
{
Left=10
Top=185
Width=93
Height=17
Caption="Основной запрос"
}
Add(Edit,12595222,665,588)
{
Left=180
Top=185
Width=475
Height=25
Text="SELECT * FROM schema.tb_table;"
link(onEnter,6830465:doMask,[(704,601)(704,559)])
}
Add(Label,5371579,168,273)
{
Left=10
Top=230
Width=159
Height=17
Caption="Запрос с фильтром(условием)"
}
Add(Edit,2505127,826,546)
{
Left=180
Top=225
Width=475
Height=25
Text=""
}
Add(Button,7915804,532,546)
{
Left=455
Top=100
link(onClick,12522387:doEvent1,[])
}
Add(Button,6151415,959,210)
{
Left=335
Top=15
Width=110
Caption="Сброс фильтра"
}
Add(Button,6150670,959,161)
{
Left=465
Top=15
Caption="+1"
}
Add(StrPart,971629,679,140)
{
Char="|"
}
Add(StrPart,7983654,679,252)
{
Char="|"
}
Add(StrList,15694274,665,476)
{
}
Add(Replace,7988358,665,546)
{
SubStr="\r\n"
DestStr=" "
link(onReplace,6830465:doString,[])
link(Str,15694274:Text,[])
}
Add(StrCat,4526543,777,546)
{
Str2=";"
link(onStrCat,2505127:doText,[])
}
Add(FormatStr,6830465,721,546)
{
@Hint=#6:SELECT|
DataCount=1
Mask="SELECT * FROM schema.tb_table %1"
Point(doMask)
link(onFString,4526543:doStrCat,[])
AddHint(9,54,56,13,@Hint)
}
Add(Switch,1339391,539,406)
{
DataOn=String(WHERE)
DataOff=String(AND)
Default=0
Point(State)
Point(doOn)
}
Add(FormatStr,4512139,539,476)
{
link(onFString,12144080:doEvent1,[])
link(Str1,1339391:State,[])
}
Add(HubEx,15957351,490,476)
{
link(onEvent,4512139:doString,[])
}
Add(Hub,12144080,595,476)
{
link(onEvent1,15694274:doAdd,[])
link(onEvent2,1339391:doReset,[(620,489)(620,468)(529,468)(529,419)])
}
Add(Hub,12522387,595,546)
{
OutCount=3
link(onEvent1,7988358:doReplace,[])
link(onEvent2,15694274:doClear,[(627,559)(627,489)])
link(onEvent3,12727180:doEvent1,[(620,566)(620,587)(389,587)(389,475)])
}
Add(Hub,12727180,399,469)
{
OutCount=3
link(onEvent1,1339391:doOn,[(424,475)(424,426)])
link(onEvent2,9402115:doWork1,[])
link(onEvent3,13935565:doWork1,[(424,489)(424,524)])
}


P.S. Ты тему создал не в той ветке...
карма: 14

0
Редактировалось 1 раз(а), последний 2022-02-06 14:44:26