Jump to content

Отображение uniButtonWidget в гриде по определенному условию


MSMK

Recommended Posts

9 hours ago, Sherzod said:

 

image.png.71aff6f5fc245e8f50f454d328477f25.png

image.png.311bdd0eb3d30db06f0aaef443ac6892.png


procedure TMainForm.UniFormShow(Sender: TObject);
begin
    cdsData.close;
    cdsData.createDataSet;

    cdsData.Append;
    cdsDataCustomVariant.AsInteger := 1;
    cdsDataDocVariant.AsInteger := 1;
    cdsDatainvisibleCol.AsInteger := 1; //<---------
    cdsData.Post;
    ...

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{
    var widgetColIndx=0;
    var inVisibleColIndx=2;
  
    columns[inVisibleColIndx].hideable=false;
  
    columns[widgetColIndx].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(inVisibleColIndx) != 0);
    };   
}

image.png.a649c20c4a11df48a2fa1a15c415aa37.png

Спасибо! я думал обойдется без костыля)

Link to comment
Share on other sites

10 hours ago, Sherzod said:

 

image.png.71aff6f5fc245e8f50f454d328477f25.png

image.png.311bdd0eb3d30db06f0aaef443ac6892.png


procedure TMainForm.UniFormShow(Sender: TObject);
begin
    cdsData.close;
    cdsData.createDataSet;

    cdsData.Append;
    cdsDataCustomVariant.AsInteger := 1;
    cdsDataDocVariant.AsInteger := 1;
    cdsDatainvisibleCol.AsInteger := 1; //<---------
    cdsData.Post;
    ...

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{
    var widgetColIndx=0;
    var inVisibleColIndx=2;
  
    columns[inVisibleColIndx].hideable=false;
  
    columns[widgetColIndx].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(inVisibleColIndx) != 0);
    };   
}

image.png.a649c20c4a11df48a2fa1a15c415aa37.png

967341294_.png.df4219c0870090039c540a2a580342af.png что если прописать используя JSConfig размеры иконки 16х16

 

Link to comment
Share on other sites

9 minutes ago, =GGG= said:

967341294_.png.df4219c0870090039c540a2a580342af.png что если прописать используя JSConfig размеры иконки 16х16

 

.x-btn-icon-el-grid-cell-small {
    width: 16px !important;
    height: 16px !important;
}

 

Link to comment
Share on other sites

10 hours ago, Sherzod said:

 

image.png.71aff6f5fc245e8f50f454d328477f25.png

image.png.311bdd0eb3d30db06f0aaef443ac6892.png


procedure TMainForm.UniFormShow(Sender: TObject);
begin
    cdsData.close;
    cdsData.createDataSet;

    cdsData.Append;
    cdsDataCustomVariant.AsInteger := 1;
    cdsDataDocVariant.AsInteger := 1;
    cdsDatainvisibleCol.AsInteger := 1; //<---------
    cdsData.Post;
    ...

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{
    var widgetColIndx=0;
    var inVisibleColIndx=2;
  
    columns[inVisibleColIndx].hideable=false;
  
    columns[widgetColIndx].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(inVisibleColIndx) != 0);
    };   
}

image.png.a649c20c4a11df48a2fa1a15c415aa37.png

как обратиться к столбцу по имени, а не по индексу, так как при переносе столбцов по гриду сбиваются индексы

Link to comment
Share on other sites

19 minutes ago, =GGG= said:

как обратиться к столбцу по имени, а не по индексу, так как при переносе столбцов по гриду сбиваются индексы

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{       
    var findColumnIndex = function(columns, dataIndex) {
    var index;
    for (index = 0; index < columns.length; ++index) {
        if (columns[index].dataIndex == dataIndex) { break; }
    }
    return index == columns.length ? -1 : index;
    }
    
    var widgetColIndx1=0;
    var widgetColIndx2=findColumnIndex(columns, 'DocVariant');
      
    columns[widgetColIndx1].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(widgetColIndx1) != 0);
    };
       
    columns[widgetColIndx2].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(widgetColIndx2) != 1);
    };
} не помогло

Link to comment
Share on other sites

9 hours ago, =GGG= said:

что если прописать используя JSConfig размеры иконки 16х16

1. CustomCSS:

.customGrid .x-btn-icon-el {
    width: 16px;
    height: 16px;
}

2. UniDBGrid -> LayoutConfig -> Cls = customGrid

Link to comment
Share on other sites

21 hours ago, =GGG= said:

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{       
    var findColumnIndex = function(columns, dataIndex) {
    var index;
    for (index = 0; index < columns.length; ++index) {
        if (columns[index].dataIndex == dataIndex) { break; }
    }
    return index == columns.length ? -1 : index;
    }
    
    var widgetColIndx1=0;
    var widgetColIndx2=findColumnIndex(columns, 'DocVariant');
      
    columns[widgetColIndx1].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(widgetColIndx1) != 0);
    };
       
    columns[widgetColIndx2].onWidgetAttach = function(column, widget, record) {
       widget.setVisible(record.get(widgetColIndx2) != 1);
    };
} не помогло

а как насчет этого? у меня проблема в случае переноса столбцов

Link to comment
Share on other sites

13 hours ago, Sherzod said:

1. CustomCSS:


.customGrid .x-btn-icon-el {
    width: 16px;
    height: 16px;
}

2. UniDBGrid -> LayoutConfig -> Cls = customGrid

Спасибо, с этим моментом  разобрался

Link to comment
Share on other sites

1 hour ago, =GGG= said:

а как насчет этого? у меня проблема в случае переноса столбцов

Попробуйте проанализировать следующий подход:

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  grdData.JSInterface.JSAddListener(
    'beforereconfigure',
    '  function(sender, store, columns){'+
    '    columns[0].colName="'+ grdData.Columns[0].FieldName +'",'+
    '    ...'+
    '  }'
  );
end;

 

Link to comment
Share on other sites

1 hour ago, Sherzod said:

Попробуйте проанализировать следующий подход:


procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  grdData.JSInterface.JSAddListener(
    'beforereconfigure',
    '  function(sender, store, columns){'+
    '    columns[0].colName="'+ grdData.Columns[0].FieldName +'",'+
    '    ...'+
    '  }'
  );
end;

 

получается прописать имена столбцам вручную?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...