Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#1: 2009-08-07 12:32:28 ЛС | профиль | цитата
Помогите сделать запрос к пользователю. Есть МТ поток с данными. Нужно отобразить эти данные для просмотра/изменения и опять передать в МТ поток.
Решил реализовать запрос на основе динамической панели ChildPanelEx.

Add(MainForm,2953706,357,168)
{
Width=247
Height=199
}
Add(ChildForm,11967320,728,168)
{
link(onEvent1,4399203:doString,[])
}
BEGIN_SDK
Add(EditMulti,3130964,21,21)
{
EventCount=1
WorkCount=2
Width=615
Height=277
link(doWork1,10736463:doVisible,[(65,27)(65,97)])
link(doWork2,6318577:doSeparateMT,[(46,34)(46,139)])
}
Add(MainForm,10736463,182,63)
{
Left=35
Top=105
Width=278
Height=427
Visible=1
Position=1
Point(doVisible)
link(onActivate,13005154:doFor,[])
}
Add(ChildPanelEx,217527,469,63)
{
}
BEGIN_SDK
Add(EditMultiEx,7476523,21,21)
{
WorkCount=#5:##add|8:##select|6:doText|
VarCount=#4:Text|
Width=328
Height=270
Point(##add)
Point(##select)
link(##add,3446997:doEvent1,[(49,27)(49,76)])
link(Text,4527038:Text,[(27,262)(146,262)])
link(doText,4527038:doText,[(35,41)(35,207)])
}
Add(Panel,16481957,224,98)
{
Width=245
Height=31
BevelInner=0
Point(doTop)
}
Add(Label,7134660,189,35)
{
Left=1
Top=8
Width=84
Height=16
Caption="Строка0"
Alignment=2
}
Add(Math,13032156,161,105)
{
OpType=2
Op2=30
link(onResult,16481957:doTop,[])
}
Add(StrList,15579565,140,28)
{
Strings=#0:|7:Строка1|7:Строка2|7:Строка3|7:Строка4|
Point(doGetString)
Point(onGetString)
link(onGetString,7134660:doText,[])
}
Add(Hub,3446997,77,70)
{
OutCount=3
link(onEvent1,15579565:doGetString,[])
link(onEvent2,13032156:doOperation,[(123,83)(123,111)])
}
Add(Edit,4527038,140,201)
{
Left=85
Top=8
Width=153
Height=16
Text=""
Alignment=2
Point(doEnabled)
}
END_SDK
Add(Button,14007412,70,42)
{
Left=105
Top=345
Width=65
Caption="OK!"
link(onClick,3294025:doEvent1,[])
}
Add(MT_MultiData,6318577,112,133)
{
Count=5
link(onData1,2377220:doEvent1,[])
link(onData2,2377220:doEvent2,[])
link(onData3,2377220:doEvent3,[])
link(onData4,2377220:doEvent4,[])
link(onData5,2377220:doEvent5,[])
}
Add(Hub,2377220,161,133)
{
InCount=5
OutCount=1
link(onEvent1,10564577:doEvent1,[])
}
Add(Counter,9716490,266,105)
{
Default=-1
link(onNext,6989959:doWork2,[(356,111)(356,76)])
}
Add(Hub,10564577,217,133)
{
link(onEvent1,9716490:doNext,[(249,139)(249,111)])
link(onEvent2,217527:doText,[(369,146)(369,83)])
}
Add(For,13005154,280,63)
{
Start=1
End=4
link(onEvent,217527:##add,[])
}
Add(Hub,3294025,112,42)
{
link(onEvent1,5213427:In,[])
link(onEvent2,10736463:doClose,[(134,55)(134,90)])
}
Add(For,4204629,336,168)
{
Start=1
End=4
link(onEvent,8887662:doEvent1,[])
}
Add(HubEx,6989959,413,63)
{
link(onEvent,217527:##select,[])
}
Add(LineBreak,8021204,294,168)
{
link(Out,4204629:doFor,[])
Primary=[5213427,-154,-126]
}
Add(MT_Add,2863522,469,175)
{
link(onAdd,3130964:onEvent1,[(569,181)(569,27)])
link(Data,217527:Text,[])
}
Add(Hub,8887662,392,168)
{
link(onEvent1,6989959:doWork3,[(417,174)])
link(onEvent2,2863522:doAdd,[])
}
END_SDK
Add(Button,15447867,448,168)
{
Left=90
Top=75
link(onClick,16366420:doEvent1,[])
}
Add(StrList,6926302,546,182)
{
Strings=#14:d0;d1;d2;d3;d4|
}
Add(ArrayEnum,14393006,560,245)
{
link(onItem,8617636:doMT,[])
link(Array,6926302:Array,[])
}
Add(MT_String,8617636,616,238)
{
link(onResult,11967320:doWork2,[(688,244)(688,181)])
}
Add(Hub,16366420,490,168)
{
link(onEvent1,11967320:doWork1,[])
link(onEvent2,14393006:doEnum,[(532,181)(532,251)])
}
Add(FormatStr,4399203,784,168)
{
Mask="%1 ; %2 ; %3 ; %4 ; %5"
link(onFString,7799647:doMessage,[])
}
Add(Message,7799647,854,168)
{
}


Но не могу додуматься , как обратно данные передать в МТ
Или может кто предложит проще вариант


карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2009-08-07 13:08:53 ЛС | профиль | цитата
miver писал(а):
как обратно данные передать в МТ

Использовать накопитель потока



Add(MainForm,12989463,231,203)
{
Width=247
Height=199
}
Add(ChildForm,11967320,511,154)
{
link(onEvent1,4399203:doString,[])
}
BEGIN_SDK
Add(EditMulti,3130964,21,21)
{
EventCount=1
WorkCount=2
Width=587
Height=277
link(doWork1,10736463:doVisible,[(65,27)(65,97)])
link(doWork2,6318577:doSeparateMT,[(46,34)(46,139)])
}
Add(MainForm,10736463,182,63)
{
Left=35
Top=105
Width=278
Height=427
Visible=1
Position=1
Point(doVisible)
link(onActivate,13005154:doFor,[])
}
Add(ChildPanelEx,217527,469,63)
{
}
BEGIN_SDK
Add(EditMultiEx,7476523,21,21)
{
WorkCount=#5:##add|8:##select|6:doText|
VarCount=#4:Text|
Width=328
Height=270
Point(##add)
Point(##select)
link(##add,3446997:doEvent1,[(49,27)(49,76)])
link(doText,4527038:doText,[(35,41)(35,207)])
link(Text,4527038:Text,[(27,262)(146,262)])
}
Add(Panel,16481957,224,98)
{
Width=245
Height=31
BevelInner=0
Point(doTop)
}
Add(Label,7134660,189,35)
{
Left=1
Top=8
Width=84
Height=16
Caption="Строка0"
Alignment=2
}
Add(Math,13032156,161,105)
{
OpType=2
Op2=30
link(onResult,16481957:doTop,[])
}
Add(StrList,15579565,140,28)
{
Strings=#0:|7:Строка1|7:Строка2|7:Строка3|7:Строка4|
Point(doGetString)
Point(onGetString)
link(onGetString,7134660:doText,[])
}
Add(Hub,3446997,77,70)
{
OutCount=3
link(onEvent1,15579565:doGetString,[])
link(onEvent2,13032156:doOperation,[(123,83)(123,111)])
}
Add(Edit,4527038,140,201)
{
Left=85
Top=8
Width=153
Height=16
Text=""
Alignment=2
Point(doEnabled)
}
END_SDK
Add(Button,14007412,70,42)
{
Left=105
Top=345
Width=65
Caption="OK!"
link(onClick,3294025:doEvent1,[])
}
Add(MT_MultiData,6318577,112,133)
{
Count=5
link(onData1,2377220:doEvent1,[])
link(onData2,2377220:doEvent2,[])
link(onData3,2377220:doEvent3,[])
link(onData4,2377220:doEvent4,[])
link(onData5,2377220:doEvent5,[])
}
Add(Hub,2377220,161,133)
{
InCount=5
OutCount=1
link(onEvent1,10564577:doEvent1,[])
}
Add(Counter,9716490,266,105)
{
Default=-1
link(onNext,6989959:doWork2,[(356,111)(356,76)])
}
Add(Hub,10564577,217,133)
{
link(onEvent1,9716490:doNext,[(249,139)(249,111)])
link(onEvent2,217527:doText,[(319,146)(319,83)])
}
Add(For,13005154,280,63)
{
Start=1
End=4
link(onEvent,217527:##add,[])
}
Add(Hub,3294025,112,42)
{
link(onEvent1,5213427:In,[])
link(onEvent2,10736463:doClose,[(134,55)(134,90)])
}
Add(For,4204629,336,189)
{
End=4
link(onEvent,8887662:doEvent1,[])
link(onStop,4571219:doAdd,[(382,202)(382,230)])
}
Add(HubEx,6989959,413,70)
{
link(onEvent,217527:##select,[])
}
Add(LineBreak,14036004,245,161)
{
link(Out,10257715:doEvent1,[])
Primary=[5213427,-105,-119]
}
Add(Hub,8887662,392,189)
{
link(onEvent1,6989959:doWork3,[(417,195)])
link(onEvent2,7089780:doAdd,[])
}
Add(Hub,10257715,301,161)
{
link(onEvent1,6528072:doClear,[(329,167)(329,146)])
link(onEvent2,4204629:doFor,[(325,174)(325,195)])
}
Add(MT_Memory,6528072,462,133)
{
}
Add(MT_Add,4571219,539,224)
{
InputMT=2
link(onAdd,3130964:onEvent1,[(588,230)(588,27)])
link(Data,12368943:Var3,[(545,180)])
}
Add(GetDataEx,12368943,462,175)
{
link(Data,6528072:Value,[])
}
Add(MT_AddData,7089780,462,196)
{
link(onAdd,6528072:doValue,[(538,202)(538,117)(443,117)(443,139)])
link(Data1,12368943:Var2,[])
link(Data2,217527:Text,[])
}
END_SDK
Add(Button,15447867,231,154)
{
Left=90
Top=75
link(onClick,16366420:doEvent1,[])
}
Add(StrList,6926302,329,168)
{
Strings=#14:d0;d1;d2;d3;d4|
}
Add(ArrayEnum,14393006,343,231)
{
link(onItem,8617636:doMT,[])
link(Array,6926302:Array,[])
}
Add(MT_String,8617636,399,224)
{
link(onResult,11967320:doWork2,[(471,230)(471,167)])
}
Add(Hub,16366420,273,154)
{
link(onEvent1,11967320:doWork1,[])
link(onEvent2,14393006:doEnum,[(315,167)(315,237)])
}
Add(FormatStr,4399203,567,154)
{
DataCount=5
Mask="%1 ; %2 ; %3 ; %4 ; %5"
link(onFString,7799647:doMessage,[])
}
Add(Message,7799647,637,154)
{
}

карма: 22

0
Ответов: 758
Рейтинг: 112
#3: 2009-08-07 16:26:56 ЛС | профиль | цитата
Упростил схему
code_14506.txt
карма: 1

0
файлы: 1code_14506.txt [5KB] [198]
Ответов: 16884
Рейтинг: 1239
#4: 2009-08-07 17:51:38 ЛС | профиль | цитата
miver, с этим компонентом намного проще.
nesco, посмотри на компонент внимательней.

Ну разве не смешно, когда строку с делимитером загоняют в МТ, что-то с ней делают (редактируют), а потом загоняют опять в МТ и преобразовывают обратно в строку с делимитером.
Для любителей схем-монстров очень подходящие методы.
Мне смешно ( и грустно )


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
3
файлы: 1srtenum.rar [1.4KB] [132]
Голосовали:filyaxxxcom, Assasin, miver
Разработчик
Ответов: 26305
Рейтинг: 2146
#5: 2009-08-07 18:33:40 ЛС | профиль | цитата
Tad писал(а):
Мне смешно ( и грустно )

А мне по-деревне. Спросили
miver писал(а):
как обратно данные передать в МТ

Я и ответил. А для чего все это, не мое дело... Надоело мне уже все это, хватило недавнего раза
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#6: 2009-08-07 19:17:55 ЛС | профиль | цитата
Вот я и предлагаю компонент.
А у miver другого-то выхода нет. Отсутствие такого компонента и заставляет исполнять, в даннном случае, совершенно не нужные танцы с МТ.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#7: 2009-08-07 20:27:55 ЛС | профиль | цитата
Tad писал(а):
Отсутствие такого компонента

Я не против такого компонента, но нужно послушать мнение сообщества и автора, в частности
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#8: 2009-08-07 20:34:00 ЛС | профиль | цитата
Я его уже когда-то предлагал.
Т И Ш И Н А.


Вот filyaxxxcom одобрил. Спасибо!
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#9: 2009-08-07 20:46:41 ЛС | профиль | цитата
Tad писал(а):
Я его уже когда-то предлагал

Плохо капаем на мозги
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#10: 2009-08-07 21:01:38 ЛС | профиль | цитата
Вон тебя простой смертный просклонял и ты уже
nesco писал(а):
Надоело мне уже все это
и мне тоже надоело и склоняют меня обычно с Олимпа.
ДА - да, НЕТ - нет.
У меня возникла потребность - сделал и пользуюсь.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 758
Рейтинг: 112
#11: 2009-08-10 10:52:52 ЛС | профиль | цитата
Tad писал(а):
Ну разве не смешно, когда строку с делимитером загоняют в МТ, что-то с ней делают (редактируют), а потом загоняют опять в МТ и преобразовывают обратно в строку с делимитером.
Для любителей схем-монстров очень подходящие методы.
Мне смешно ( и грустно )


Что бы немного развеять грусть :
В примере использовал строку для создания МТ лишь как самый простой способ создания МТ потока.
Суть задачи описывал в первом посте, а именно, как отобразить/отредактировать МТ поток. Много компонентов выдают МТ поток как результат, при настройке приложения удобно интерактивно изменять МТ поток и смотреть на результат.
карма: 1

0
Ответов: 758
Рейтинг: 112
#12: 2009-11-24 16:16:24 ЛС | профиль | цитата
Решил не создавать новую тему и спросить тут

1. Помогите разобраться, почему в схеме
code_15801.txt
когда предварительно очищаешь ChildPanelEx или ставишь свойство mod в значение Dynamic и OnlyOnce данные пропадают с формы

2. Хочу сделать динамическое дочернее окно для заполнения строки таблицы с типами данных

но данные все время попадают в первую панель



карма: 1

0
файлы: 1code_15801.txt [7.8KB] [647]
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2009-11-24 17:14:31 ЛС | профиль | цитата
miver писал(а):

когда предварительно очищаешь ChildPanelEx или ставишь свойство mod в значение Dynamic и OnlyOnce данные пропадают с формы

потому что по select выбирается схема с несуществующим индексом. В приведенной схеме хаб и вызов этой точки вообще не нужны.
карма: 27
1
Голосовали:miver
Ответов: 758
Рейтинг: 112
#14: 2009-11-24 17:37:10 ЛС | профиль | цитата
А что по поводу пункта 2
Почему данные все время попадают в первую панель
------------ Дoбавленo в 17.46:
Кажись понял - нужно заменить ##select на ##nselect
карма: 1

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)