Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12559
Вижу по анимашке, что сохранение происходит только после перехода на др. запись.
2 дек 18, 09:44    [21751272]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3935
X11,

сохранение в базу (dataset.Post) -- да, после перехода на новую строчку (можно наблюдать по дб-навигатору или значку редактирования строки в дб-грида)... Сохранение в датасет же -- после перехода на соседнюю ячейку или нажатие энтер (там есть и то, и то на анимации -- проверяется по изменению этого же значения в других контролах).
2 дек 18, 09:52    [21751274]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12559
Так я о чем и пишу. Что нужно самому дописывать код отправки данных.
При этом, во время редактирования IdEditing в дереве возвращает False, а в сетке - True. Как-то нелогично.
2 дек 18, 10:08    [21751275]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3935
X11,

в этом тестовом приложении нет ни одной строчки кода, только dfm.

+ pas
unit Unit24;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxCustomData,
  cxStyles, cxTL, cxMaskEdit, cxTextEdit, cxTLdxBarBuiltInMenu, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator,
  Data.DB, cxDBData, dxmdaset, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
  cxGridCustomView, cxGrid, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, cxInplaceContainer, cxDBTL, cxTLData;

type
  TForm24 = class(TForm)
    cxDBTreeList1: TcxDBTreeList;
    dxMemData1: TdxMemData;
    DataSource1: TDataSource;
    dxMemData1a1: TStringField;
    dxMemData1a2: TIntegerField;
    dxMemData1a3: TSmallintField;
    cxDBTreeList1RecId: TcxDBTreeListColumn;
    cxDBTreeList1a1: TcxDBTreeListColumn;
    cxDBTreeList1a2: TcxDBTreeListColumn;
    cxDBTreeList1a3: TcxDBTreeListColumn;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxGrid1DBTableView1RecId: TcxGridDBColumn;
    cxGrid1DBTableView1a1: TcxGridDBColumn;
    cxGrid1DBTableView1a2: TcxGridDBColumn;
    cxGrid1DBTableView1a3: TcxGridDBColumn;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form24: TForm24;

implementation

{$R *.dfm}

end.


+ dfm
object Form24: TForm24
  Left = 0
  Top = 0
  Caption = 'Form24'
  ClientHeight = 456
  ClientWidth = 1044
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object cxDBTreeList1: TcxDBTreeList
    Left = 8
    Top = 8
    Width = 337
    Height = 129
    Bands = <
      item
      end>
    DataController.DataSource = DataSource1
    DataController.ParentField = 'RecId'
    DataController.KeyField = 'RecId'
    Navigator.Buttons.CustomButtons = <>
    RootValue = -1
    TabOrder = 0
    object cxDBTreeList1RecId: TcxDBTreeListColumn
      Visible = False
      DataBinding.FieldName = 'RecId'
      Position.ColIndex = 0
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1a1: TcxDBTreeListColumn
      PropertiesClassName = 'TcxTextEditProperties'
      DataBinding.FieldName = 'a1'
      Position.ColIndex = 1
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1a2: TcxDBTreeListColumn
      DataBinding.FieldName = 'a2'
      Position.ColIndex = 2
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
    object cxDBTreeList1a3: TcxDBTreeListColumn
      DataBinding.FieldName = 'a3'
      Position.ColIndex = 3
      Position.RowIndex = 0
      Position.BandIndex = 0
      Summary.FooterSummaryItems = <>
      Summary.GroupFooterSummaryItems = <>
    end
  end
  object DBGrid1: TDBGrid
    Left = 351
    Top = 8
    Width = 320
    Height = 129
    DataSource = DataSource1
    TabOrder = 1
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'Tahoma'
    TitleFont.Style = []
  end
  object DBNavigator1: TDBNavigator
    Left = 351
    Top = 143
    Width = 240
    Height = 25
    DataSource = DataSource1
    TabOrder = 2
  end
  object cxGrid1: TcxGrid
    Left = 8
    Top = 143
    Width = 337
    Height = 250
    TabOrder = 3
    object cxGrid1DBTableView1: TcxGridDBTableView
      Navigator.Buttons.CustomButtons = <>
      DataController.DataSource = DataSource1
      DataController.Summary.DefaultGroupSummaryItems = <>
      DataController.Summary.FooterSummaryItems = <>
      DataController.Summary.SummaryGroups = <>
      object cxGrid1DBTableView1RecId: TcxGridDBColumn
        DataBinding.FieldName = 'RecId'
        Visible = False
      end
      object cxGrid1DBTableView1a1: TcxGridDBColumn
        DataBinding.FieldName = 'a1'
      end
      object cxGrid1DBTableView1a2: TcxGridDBColumn
        DataBinding.FieldName = 'a2'
      end
      object cxGrid1DBTableView1a3: TcxGridDBColumn
        DataBinding.FieldName = 'a3'
      end
    end
    object cxGrid1Level1: TcxGridLevel
      GridView = cxGrid1DBTableView1
    end
  end
  object dxMemData1: TdxMemData
    Active = True
    Indexes = <>
    Persistent.Data = {
      5665728FC2F5285C8FFE3F030000001400000001000300613100040000000300
      030061320002000000020003006133000108000000F1F2F0EEEAE02031011700
      00000100000108000000F1F2F0EEEAE0203201580100000101000108000000F1
      F2F0EEEAE0203301060000000100000108000000F1F2F0EEEAE0203401370000
      00010000}
    SortOptions = []
    Left = 320
    Top = 32
    object dxMemData1a1: TStringField
      FieldName = 'a1'
    end
    object dxMemData1a2: TIntegerField
      FieldName = 'a2'
    end
    object dxMemData1a3: TSmallintField
      FieldName = 'a3'
    end
  end
  object DataSource1: TDataSource
    DataSet = dxMemData1
    Left = 320
    Top = 72
  end
end
2 дек 18, 10:36    [21751278]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3935
Если надо, чтобы в базу передавались значения после изменения в каждой ячейки, то можно на событии дерева OnEdited вызывать tree.Post:


Картинка с другого сайта.
2 дек 18, 10:52    [21751283]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12559
JaDi, я это и доказываю с самого начала, что нужно самому заботиться, а TcxDBTreeList(sender).DataController.IsEditing возвращает false.
2 дек 18, 12:06    [21751304]     Ответить | Цитировать Сообщить модератору
 Re: TcxDBTreeList.DataController.IsEditing возвращает False во время редактирования  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12559
JaDi
то можно на событии дерева OnEdited вызывать tree.Post:


ок, попробую, спасибо
2 дек 18, 12:06    [21751305]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить