Вверх ↑
Ответов: 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