powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DexExpress использование TcxGridTableView + TcxEditRepository
1 сообщений из 1, страница 1 из 1
DexExpress использование TcxGridTableView + TcxEditRepository
    #40043533
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

В TcxGridTableView создаю 3 колонки: тип, название и значение.
Колонке значение присваиваю тип variant.
В TcxEditRepository создаю несколько контролов для текста, даты и т.п. и (главное) создаю контрол для изображений (TcxEditRepositoryImageItem).

Используя событие "OnGetProperties", для каждой записи в гриде появляется возможность вносить тот тип данных, который нужен:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TCard.ColValueGetProperties(Sender: TcxCustomGridTableItem;
  ARecord: TcxCustomGridRecord; var AProperties: TcxCustomEditProperties);
begin
  if Assigned(ARecord) = False then Exit;

  case Integer(ARecord.Values[ColParameterTypeKey.Index]) of
    prtText: AProperties     := erTypeText.Properties;
    prtInteger: AProperties := erTypeInteger.Properties;
    prtFloat,
    prtFormula: AProperties := erTypeFloat.Properties;
    prtDate   : AProperties := erTypeDate.Properties;
    prtBoolean: AProperties := erTypeBoolean.Properties;
    prtImage  : AProperties := erTypeImage.Properties;
  end;
end;



Указываю значения для каждой записи.. текст, дату, числа и изображения т.е. в каждой ячейке поля "значение" свой тип данных, всё работает как надо...

Теперь все эти записи нужно сохранить в базе данных передав их через JSON.
Сейчас код выглядит так:
Код: 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.
// Параметры.
function TOutpatientCard.GetParametersJSON: string;
  var Count  : Integer;
      JSONArr: TJSONArray;
      JSONObj: TJSONObject;
      S      : string;
      B      : Boolean;
      Base64 : TBase64Encoding;
begin
  JSONArr := TJSONArray.Create;
  try
    with Parameters.DataController do
      for Count := 0 to RecordCount - 1 do
      begin
        JSONObj := TJSONObject.Create;

        if (VarIsNull(Values[Count, ColValue.Index]) = False) then
          case Integer(Values[Count, ColParameterTypeKey.Index]) of
            prtText     : JSONObj.AddPair(TJSONPair.Create(fnMDL_PrText,            string(Values[Count, ColValue.Index])));
            prtInteger: JSONObj.AddPair(TJSONPair.Create(fnMDL_PrInteger, TJSONNumber.Create(Integer(Values[Count, ColValue.Index]))));
            prtFloat,
            prtFormula: JSONObj.AddPair(TJSONPair.Create(fnMDL_PrFloat,   TJSONNumber.Create(Currency(Values[Count, ColValue.Index]))));
            ...
            ...
            // ТУТ ВОПРОС:
            prtImage  :
            begin
              Base64 := TBase64Encoding.Create(-1, '');
              try                                              
                JSONObj.AddPair(TJSONPair.Create(fnMDL_PrImage, Base64.EncodeBytesToString(Values[Count, ColValue.Index])));
              finally
                Base64.Free;
              end;
            end;
          end;

        // Сохраняем объект в массив.
       JSONArr.AddElement(JSONObj);
      end;

      Result := JSONArr.ToString;
  finally
    JSONArr.Free;
  end;



Я понимаю, что код для сохранения изображения не правильный, но не могу разобраться как добраться до "потока данных" изображения правильно, чтоб передать его в Base64?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DexExpress использование TcxGridTableView + TcxEditRepository
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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