powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
6 сообщений из 31, страница 2 из 2
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018550
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Именно с Calculated Fields я и экспериментировал и получил ошибку, вышеуказанную.

Какова дальнейшая судьба значений, веденных пользователем?

P.S. В FibDataset-е можно определить UpdateSQL, в котором писать в базу только, что нужно. И куда нужно. Только поля должны содержаться в запросе.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018667
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Генерируется некая http-ссылка и пользователь по ней переходит, если нажмет вторую кнопку.
Скажем так. Пользователь выбирает имя бота и переходит к нему по нажатию на кнопку, чтобы было чуть понятней.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018724
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Генерируется некая http-ссылка и пользователь по ней переходит, если нажмет вторую кнопку.
Скажем так. Пользователь выбирает имя бота и переходит к нему по нажатию на кнопку, чтобы было чуть понятней.
Так а почему нельзя генерировать эту ссылку в OnCalcFields?
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018727
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не проблема, но где, как отображать выбор, имя бота, ссылку и т.д.?

пользователь должен видеть сделанный выбор и возможность нажать кнопку и очень желательно в одной и той же строки сетки
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018744
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Генерируется некая http-ссылка и пользователь по ней переходит, если нажмет вторую кнопку.
Скажем так. Пользователь выбирает имя бота и переходит к нему по нажатию на кнопку, чтобы было чуть понятней.


В SQL-запрос добавляем фиктивное поле, например:

Код: sql
1.
       cast( null as varchar( 32 ) ) as BOT_NAME



На добавленное поле назначаем строку в DbVerticalGrid c EditProperties ComboBox, список которого заполняем, например, в OnCreate формы.
Всем строкам, которые нельзя менять, присваиваем Properties.EditProperties.ReadOnly := True;


В UpdateSQL DataSet-а пишем холостой запрос, что бы можно было вводить значения:
Код: sql
1.
2.
select 1
  from RDB$DATABASE



Ниже исходные тексты (D-XE7, ежли чо):
создание таблицы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table B (
    ID   integer not null,
    VAL  varchar( 10 )
);

alter table B
  add constraint PK_B primary key ( ID );

insert into B ( ID, VAL )
       values (  1, 'VALUE #1' );
commit;




текст dpr
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
program Project8;

uses
  Vcl.Forms,
  Unit14 in 'Unit14.pas' {Form14};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm14, Form14);
  Application.Run;
end.



текст pas


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
unit Unit14;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, cxEdit, dxSkinsCore,
  dxSkinOffice2010Blue, Data.DB, FIBDataSet, pFIBDataSet, FIBDatabase, pFIBDatabase, cxVGrid, cxDBVGrid, cxInplaceContainer, Vcl.StdCtrls, cxLabel,
  cxDropDownEdit, cxTextEdit;

type
  TForm14 = class(TForm)
    cxDBVerticalGrid1: TcxDBVerticalGrid;
    cxDBVerticalGrid1DBEditorRow1: TcxDBEditorRow;
    cxDBVerticalGrid1DBEditorRow2: TcxDBEditorRow;
    rowBotName: TcxDBEditorRow;
    db: TpFIBDatabase;
    tr: TpFIBTransaction;
    ds: TpFIBDataSet;
    sr: TDataSource;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;

implementation

{$R *.dfm}

procedure TForm14.Button1Click(Sender: TObject);
begin
  Caption := ds.fieldByName( 'BOT_NAME' ).AsString;
end;

procedure TForm14.FormCreate(Sender: TObject);
begin
  with TcxComboBoxProperties( rowBotName.Properties.EditProperties ).Items do
  begin
    Add( 'BOT NAME #1' );
    Add( 'BOT NAME #2' );
    Add( 'BOT NAME #3' );
  end;
end;

end.




текст dfm


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
object Form14: TForm14
  Left = 0
  Top = 0
  Caption = 'Form14'
  ClientHeight = 299
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object cxDBVerticalGrid1: TcxDBVerticalGrid
    Left = 32
    Top = 24
    Width = 417
    Height = 121
    OptionsView.RowHeaderWidth = 154
    Navigator.Buttons.CustomButtons = <>
    TabOrder = 0
    DataController.DataSource = sr
    Version = 1
    object cxDBVerticalGrid1DBEditorRow1: TcxDBEditorRow
      Properties.EditPropertiesClassName = 'TcxTextEditProperties'
      Properties.EditProperties.ReadOnly = True
      Properties.DataBinding.FieldName = 'ID'
      Properties.Options.Editing = False
      ID = 0
      ParentID = -1
      Index = 0
      Version = 1
    end
    object cxDBVerticalGrid1DBEditorRow2: TcxDBEditorRow
      Properties.EditPropertiesClassName = 'TcxTextEditProperties'
      Properties.EditProperties.ReadOnly = True
      Properties.DataBinding.FieldName = 'VAL'
      ID = 1
      ParentID = -1
      Index = 1
      Version = 1
    end
    object rowBotName: TcxDBEditorRow
      Properties.EditPropertiesClassName = 'TcxComboBoxProperties'
      Properties.DataBinding.FieldName = 'BOT_NAME'
      ID = 2
      ParentID = -1
      Index = 2
      Version = 1
    end
  end
  object Button1: TButton
    Left = 480
    Top = 24
    Width = 137
    Height = 25
    Caption = 'Get Bot Name'
    TabOrder = 1
    OnClick = Button1Click
  end
  object db: TpFIBDatabase
    Connected = True
    DBName = 'test'
    DBParams.Strings = (
      'user_name=SYSDBA'
      'password=masterkey'
      'lc_ctype=WIN1251')
    DefaultTransaction = tr
    DefaultUpdateTransaction = tr
    SQLDialect = 3
    Timeout = 0
    LibraryName = 'fbclient.dll'
    WaitForRestoreConnect = 0
    Left = 32
    Top = 168
  end
  object tr: TpFIBTransaction
    Active = True
    DefaultDatabase = db
    Left = 32
    Top = 224
  end
  object ds: TpFIBDataSet
    UpdateSQL.Strings = (
      'select 1'
      '  from RDB$DATABASE')
    SelectSQL.Strings = (
      'select ID,'
      '       VAL,'
      '       cast( null as varchar( 32 ) ) as BOT_NAME'
      '  from B')
    Active = True
    Transaction = tr
    Database = db
    Left = 80
    Top = 168
  end
  object sr: TDataSource
    DataSet = ds
    Left = 128
    Top = 168
  end
end


...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018751
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov
В UpdateSQL DataSet-а пишем холостой запрос


спасибо, та сработало
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]