powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DatsSet: как узнать одинаковые ли значения в строках одного столбца
11 сообщений из 11, страница 1 из 1
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886259
Crazy_Wolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, All
Есть такая задача. Имеется выборка по редактировании строки в таблице (назовем это журналированием). Все работает за исключением одного неудобства. В таблице куча столбцов, и хотелось бы показывать пользователю только те столбцы, где есть изменения.
Есть ли какие простые и быстрые методы пробежаться по гриду и выделить те столбцы где есть различия, остальные скрыть в гриде
пока две идеи
1. Бегать циклами по самому дата сету
2. Выгрузить датасет в массив, бегать по нему и по номерам столбцов массива где будут различия показывать / скрывать колонки грида
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886297
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DISTINCT (UNIQUE)?
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886304
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crazy_Wolf,

3. Выбирать из БД только нужные записи
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886325
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.11.2019 16:17, _Vasilisk_ пишет:
> 3. Выбирать из БД только нужные записи

не взлетит.
тут программист нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886329
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
тут программист нужен.
4. Нанять программиста
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886535
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crazy_Wolf,

я вас правильно понял, у вас есть 2 таблицы, первую редактируют, а во второй "для журналирования" отмечаются какие именно столбцы? Так?


или для каждого столбца в той же таблице есть столбец-клон, в котором хранится "старое" значение?
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886554
Crazy_Wolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён,
да, второй вариант.
данные уже получены (с этим нет проблем), просто проглядывать таблицу в 30 столбцов, если в ней менялось (пускай 5 раз) одно и тоже поле неудобно. Хотелось бы просто в гриде скрыть столбцы, которые не менялись.
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886632
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее этот механизм уже имеется хотя бы для обеспечения CachedUpdates. Но реализация может находиться не в родительском классе, а отдаваться потомкам
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886760
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crazy_Wolf,


я бы так поступил: пробежался бы по датасету и определял бы для всех пар полей (оригинал+клон) для каждой записи датасета, есть ли изменение. Если нет измемений во всех строках, можно оба поля сделать невидимыми. Причем от вашей задачи зависит, делаете ли вы Dataset.FieldByName('XYZ_FIELD').Visible:=false или GridColumnXYZ.Visible:=false.

Для того, чтобы было быстрее и не раздражало пользователя, можно применить DisableControls/EnableControls.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var
   DS    : TDataSet;
begin
   DS.DisableControls();
   try
      DS.First();
      while not DS.Eof do
      begin
         ... здесь проверяем поля ...


         DS.Next();
      end;

      DS.First();
   finally
      DS.EnableControls();
   end;
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886764
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
Кстати, гриды позволяют расцвечивать ячейки. Не все же ячейки какого-то столбца грида менялись, даже если он видим. Может только в одной строчке из 100 изменилось. Вот эту ячейку хорошо бы как-нибудь выделить цветом.
...
Рейтинг: 0 / 0
DatsSet: как узнать одинаковые ли значения в строках одного столбца
    #39886765
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скрыть столбцы, которые не менялись ?
А как же их поменять, если они скрыты и для пользователя нет к ним доступа ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DatsSet: как узнать одинаковые ли значения в строках одного столбца
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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