Curl Global Community
RecordGridでレコード(行) を選択しても選択時の色にならない - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: RecordGridでレコード(行) を選択しても選択時の色にならない (/showthread.php?tid=909)



RecordGridでレコード(行) を選択しても選択時の色にならない - NISHIKIDA - 06-11-2013

こんにちは。

RecordGridでセルの値を変更すると該当レコード(行) の背景色が黄色になるプログラムを作っています。

入力してセルの値を変えると該当レコード(行) の背景色が変更するようにはできたのですが
背景色を変更したレコード(行) を選択したとき、変更した背景色のまま表示されてしまいます。

背景色を変更したレコード(行) も、背景色を変更していないレコード(行) を選択したときと同じような色にしたいです。

解決方法がありましたら教えていただけると幸いです。

Code:
{curl 8.0 applet}
{import * from CURL.GUI.CHARTS}
{import * from CURL.GUI.STANDARD}

{define-class public ClassA {inherits StandardStringCell}
  
  {constructor public {default}
    {construct-super}
  }
  
  {method public {refresh-data}:void
    
    {super.refresh-data}


    {if-non-null record:Record = self.record  then
        {if record.pending-update?
         then
            set self.background = "yellow"
            set self.selected-background="blue"
         else             
            
            {unset self.selected-background}
            {unset self.selected-color}
        }
    }
  }
}

{let RS:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "BASE", domain = String},
            {RecordField "Month_4", domain = int},
            {RecordField "Month_5", domain = int},
            {RecordField "Month_6", domain = int}
        },
        {RecordData BASE = "A", Month_4 = 120, Month_5 = 150, Month_6 = 200},
        {RecordData BASE = "B", Month_4 = 100, Month_5 = 130, Month_6 = 115},
        {RecordData BASE = "C", Month_4 = 90, Month_5 = 70, Month_6 = 80},
        {RecordData BASE = "D", Month_4 = 130, Month_5 = 170, Month_6 = 150},
        {RecordData BASE = "E", Month_4 = 500, Month_5 = 450, Month_6 = 500}        
    }
}       

{def rg = {RecordGrid
              record-source = RS,
              height = 200,
              width = 500,
              {RecordGridColumn "BASE",cell-spec= ClassA},
              {RecordGridColumn "Month_4",cell-spec= ClassA},
              {RecordGridColumn "Month_5",cell-spec= ClassA},
              {RecordGridColumn "Month_6",cell-spec= ClassA}
          }
}

{value rg}





RE: RecordGridでレコード(行) を選択しても選択時の色にならない - umemura - 06-12-2013

super.refresh の後で、選択されていたら、リターンする方法でどうでしょう。

{if self.selected? then
{return}
}





RE: RecordGridでレコード(行) を選択しても選択時の色にならない - NISHIKIDA - 06-12-2013

ありがとうございます。

アドバイスのとおり実行したらイメージどおりの表示になりました。

Code:
{curl 8.0 applet}
{import * from CURL.GUI.CHARTS}
{import * from CURL.GUI.STANDARD}

{define-class public ClassA {inherits StandardStringCell}
  
  {constructor public {default}
    {construct-super}
  }
  
  {method public {refresh-data}:void
    
    {super.refresh-data}
    {if self.selected? then
        {return}
    }

    {if-non-null record:Record = self.record  then
        {if record.pending-update?
         then
            set self.background = "yellow"
         else             
            {unset self.selected-background}
            {unset self.selected-color}
        }
    }
  }
}

{let RS:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "BASE", domain = String},
            {RecordField "Month_4", domain = int},
            {RecordField "Month_5", domain = int},
            {RecordField "Month_6", domain = int}
        },
        {RecordData BASE = "A", Month_4 = 120, Month_5 = 150, Month_6 = 200},
        {RecordData BASE = "B", Month_4 = 100, Month_5 = 130, Month_6 = 115},
        {RecordData BASE = "C", Month_4 = 90, Month_5 = 70, Month_6 = 80},
        {RecordData BASE = "D", Month_4 = 130, Month_5 = 170, Month_6 = 150},
        {RecordData BASE = "E", Month_4 = 500, Month_5 = 450, Month_6 = 500}        
    }
}       

{def rg = {RecordGrid
              record-source = RS,
              height = 200,
              width = 500,
              {RecordGridColumn "BASE",cell-spec= ClassA},
              {RecordGridColumn "Month_4",cell-spec= ClassA},
              {RecordGridColumn "Month_5",cell-spec= ClassA},
              {RecordGridColumn "Month_6",cell-spec= ClassA}
          }
}

{value rg}