Jump to content

TUniDBGrid Объединение ячеек в строке


Dinkin

Recommended Posts

У меня есть выпадающие фильтры на колонках в таблице, и в зависимости что выбрано, мне надо подкрашивать в таблице красным (или прятать). То есть список все время меняется пользователем в реально времени.

То что Вы написал, очень клевый вариант, но он работает с данными которые загружаются с БД, но не находятся уже в прогруженном виде, и не понятно как с renderer  взаимодействовать с обычными функциями внутри программы (честно искал по форуму).

Link to comment
Share on other sites

1 hour ago, Dinkin said:

GridDrawColumnCell

Сможете сделать простой тестовый случай, с использованием этого метода, чтобы увидеть какую логику используете?

  • Like 1
Link to comment
Share on other sites

Я использую Ваш код в связке с этим (извиняюсь что Builder)...
 

//---------------------------------------------------------------------------
void __fastcall TGroupFrame::RightGridDrawColumnCell(TObject *Sender, int ACol, int ARow,
          TUniDBGridColumn *Column, TUniCellAttribs *Attribs)
{
    // Если строка является заголовком к задачам (это работает, так как остаетется не тронутая первая колонка и на нее работает событие)
    if(ACol == 1 && RightGrid->Columns->Items[10]->Field->AsBoolean)
        {
            Attribs->Font->Color = clWebTeal;
            Attribs->Font->Style = TFontStyles() << fsBold;
            Attribs->Color       = clWebWhiteSmoke;
        }

    // Обесцвечиваем строки которые были в фильтрах (work_lst и res_lst это глобальные TStringList списки)
    if(work_lst->IndexOf(RightGrid->Columns->Items[3]->Field->AsString) < 0 ||
        res_lst->IndexOf(RightGrid->Columns->Items[9]->Field->AsString) < 0)
            {
                Attribs->Color       = clWindow;
                Attribs->Font->Color = clWindow;
            }
}
//---------------------------------------------------------------------------

 

Link to comment
Share on other sites

Да, Вы можете перенести логику на клиентскую часть.

27 minutes ago, Dinkin said:
work_lst и res_lst

Но эти переменные также должны быть объявлены на стороне клиента.

 

Link to comment
Share on other sites

Даже если они постоянно перезапонляются(в них помещаю значения того что пользователь отметил из выпадающих фильтров в колонках)?  

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...