turan Posted November 26, 2018 Posted November 26, 2018 Возможно ли использовать в uniGUI вложенные таблицы в TuniDBGrid на примере cxGrid Devexpress??? . Примерная реализация в ExtJS https://fiddle.sencha.com/#fiddle/nii&view/editor Quote
Sherzod Posted November 26, 2018 Posted November 26, 2018 Добрый день, К сожалению, стандартными средствами на данный момент такой возможности нет... Quote
turan Posted November 26, 2018 Author Posted November 26, 2018 3 minutes ago, Sherzod said: Добрый день, К сожалению, стандартными средствами на данный момент такой возможности нет... а в перспективе есть какие либо планы? возможно в новой версии uniGUI? Quote
stas Posted December 6, 2018 Posted December 6, 2018 Добрый вечер. Проанализировал я Ваш вопрос. Постулируем следующее : В один момент открыта только одна подчиненная строчка (остальные закрываются) Используя плагин RowWidget Вы можете это сделать. Возьмите демку gedit киньте туда контейнер панель, закиньте туда два дбедита с FirstName и LastName После этого допишите в код следующий текст type TMyGrid=class(TUniDBGrid); procedure TMainForm.UniFormCreate(Sender: TObject); begin TMyGrid(UniDBGrid1).JSConfigPlugin('Ext.grid.plugin.RowWidget',['pluginId',-100,'selectRowOnExpand',true,'widget',TMyGrid(UniDBGrid1).JsObject('xtype:"panel", height:200')]); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().lastId=-1;'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("expandbody",function(rowNode, record, nextBd, widget)'+'{if (this.grid.getPlugin(-100) && this.lastId!=-1) this.grid.getPlugin(-100).toggleRow(this.lastId,record); this.lastId=record.id; widget.setHeight('+IntToStr(UniHiddenPanel2.Height)+');'+UniHiddenPanel2.JsName+'.setPosition(0,0); widget.add('+UniHiddenPanel2.JSName+');},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("collapsebody",function(rowNode, record, nextBd, widget){ this.lastId=-1;},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); end; //Вместо UniHiddenPanel2 напишите название Вашей контейнер панели. Думаю с гридом получится также "Я нашёл этому поистине чудесное доказательство, но поля книги слишком узки для него." Всего доброго. 1 Quote
turan Posted December 7, 2018 Author Posted December 7, 2018 14 hours ago, stas said: Добрый вечер. Проанализировал я Ваш вопрос. Постулируем следующее : В один момент открыта только одна подчиненная строчка (остальные закрываются) Используя плагин RowWidget Вы можете это сделать. Возьмите демку gedit киньте туда контейнер панель, закиньте туда два дбедита с FirstName и LastName После этого допишите в код следующий текст type TMyGrid=class(TUniDBGrid); procedure TMainForm.UniFormCreate(Sender: TObject); begin TMyGrid(UniDBGrid1).JSConfigPlugin('Ext.grid.plugin.RowWidget',['pluginId',-100,'selectRowOnExpand',true,'widget',TMyGrid(UniDBGrid1).JsObject('xtype:"panel", height:200')]); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().lastId=-1;'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("expandbody",function(rowNode, record, nextBd, widget)'+'{if (this.grid.getPlugin(-100) && this.lastId!=-1) this.grid.getPlugin(-100).toggleRow(this.lastId,record); this.lastId=record.id; widget.setHeight('+IntToStr(UniHiddenPanel2.Height)+');'+UniHiddenPanel2.JsName+'.setPosition(0,0); widget.add('+UniHiddenPanel2.JSName+');},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); UniSession.AddJS(TMyGrid(UniDBGrid1).JSName+'.getView().addListener("collapsebody",function(rowNode, record, nextBd, widget){ this.lastId=-1;},'+TMyGrid(UniDBGrid1).JSName+'.getView());'); end; //Вместо UniHiddenPanel2 напишите название Вашей контейнер панели. Думаю с гридом получится также "Я нашёл этому поистине чудесное доказательство, но поля книги слишком узки для него." Всего доброго. Доброе время суток! Спасибо за идею! Буду дальше пробовать, что получится Quote
stas Posted December 8, 2018 Posted December 8, 2018 Расскажете о результатах? Там ещё select нужно обрабатывать И реалигн контролов нужно делать Грид встал отлично Quote
Sherzod Posted April 26, 2022 Posted April 26, 2022 1 hour ago, Tokay said: Up On 12/7/2018 at 1:39 AM, stas said: Используя плагин RowWidget Вы можете это сделать. ? Quote
Tokay Posted April 26, 2022 Posted April 26, 2022 50 minutes ago, Sherzod said: On 12/6/2018 at 11:39 PM, stas said: Используя плагин RowWidget Вы можете это сделать. Есть где-то пример может? Quote
Sherzod Posted April 26, 2022 Posted April 26, 2022 3 minutes ago, Tokay said: Есть где-то пример может? \FMSoft\Framework\uniGUI\Demos\Desktop\Grid - RowWidget Quote
Tokay Posted April 26, 2022 Posted April 26, 2022 Благодарю! Вроде бы то, что нужно. Буду разбираться. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.