Вверх ↑
Ответов: 94
Рейтинг: 2
#1: 2016-05-26 12:10:31 ЛС | профиль | цитата
Tad писал(а):
Решил очень просто - при выделении строки, на месте ячейки "Количество" появлялась Edit, вводились данные и, по нажатию Enter, производился расчет, перезапись строки в БД и перечитывание StringTable Заказов.

Решил похожим методом из примера nesco и схожему с вышеописанным принципом.
Вдруг кому-то пригодится.
Add(MainForm,15443588,378,133)
{
link(onCreate,1976442:doEnum,[])
}
Add(MTStrTbl,15391708,476,84)
{
Top=40
Width=385
Height=220
Name="tabs"
Columns=#1:№|4:Name|5:Price|
Point(ItemAtPos)
Point(onDblClick)
}
Add(StrList,4383086,413,77)
{
Strings=#13:1;Name1;10.00|13:2;Name2;50.00|13:3;Name3;12.00|13:4;Name4;17.00|
}
Add(ArrayEnum,1976442,427,147)
{
link(onItem,3918269:doMTString,[])
link(Array,4383086:Array,[])
}
Add(MT_String,3918269,476,133)
{
link(onResult,3476225:doRowAction,[])
}
Add(MST_RowAction,3476225,518,133)
{
MSTControl="tabs"
}
Add(Edit,6793014,532,217)
{
Left=10
Top=10
Width=135
Visible=1
WinStyle=1
Text=""
DataType=4
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(doVisible)
Point(doSetFocus)
Point(doBringToFront)
Point(doPosition)
Point(onKillFocus)
link(onChange,11974708:doData,[(576,223)(576,200)(264,200)(264,230)])
link(onEnter,8315683:doWork1,[(575,230)])
link(Str,7799279:Cell,[(538,205)(437,205)(437,273)(349,273)])
link(onKillFocus,8315683:doWork2,[])
}
Add(MST_UseEditCtrl,7799279,322,224)
{
MSTControl="tabs"
Point(doClientRect)
PColor(onCellSize,8421440)
PColor(onEscCell,32768)
link(onCellSize,14541477:doCompare,[])
}
Add(DoData,11974708,273,224)
{
link(onEventData,7799279:doSetData,[])
link(Data,6793014:Text,[(279,206)(409,206)(409,304)(538,304)])
}
Add(MT_MultiData,2622840,448,231)
{
Count=4
link(onData1,6793014:doLeft,[])
link(onData2,6793014:doTop,[])
link(onData3,6793014:doWidth,[])
link(onData4,12356216:doEvent1,[])
}
Add(Hub,12356216,497,252)
{
OutCount=5
link(onEvent1,6793014:doHeight,[])
link(onEvent2,6010293:doWork2,[])
link(onEvent3,6793014:doSetFocus,[])
link(onEvent4,6793014:doBringToFront,[])
link(onEvent5,6793014:doPosition,[])
}
Add(Hub,4296656,413,224)
{
link(onEvent1,6793014:doText2,[])
link(onEvent2,2622840:doSeparateMT,[])
}
Add(HubEx,8315683,571,231)
{
Angle=1
link(onEvent,12057740:doClear,[(575,265)])
}
Add(If_else,14541477,371,224)
{
Op2=Integer(2)
link(onTrue,4296656:doEvent1,[])
link(Op1,7799279:SubItem,[(377,212)(359,212)(359,263)(335,263)])
}
Add(Memory,12057740,588,252)
{
Default=Integer(0)
link(onData,6010293:doWork1,[(626,258)(626,295)(522,295)])
}
Add(HubEx,6010293,518,259)
{
link(onEvent,6793014:doVisible,[])
}

Кстати, схему можно сразу копировать в свою и она сразу будет работать. Нужно только изменить название таблицы в компоненте MST_UseEditCtrl и в If поставить свой номер столбца. При необходимости можно добавить If'ы и увеличить кол-во редактируемых столбцов.
карма: 0

0