Разное

Из dbgrid в dbgrid: delphi — Как во втором DBGrid-е отобразить все записи, которые принадлежат выделенной строке в первом DBGrid-е?

delphi — Как во втором DBGrid-е отобразить все записи, которые принадлежат выделенной строке в первом DBGrid-е?

Вопрос задан

Изменён 3 года 2 месяца назад

Просмотрен 116 раз

В БД есть две таблицы:

1 - менеджеры (ид, имя)
2 - клиенты (ид, ид_менеджера, имя)

Каждый клиент закреплен за одним и только одним менеджером.

На форме два `DBGrid, первый отвечает за таблицу менеджеров, второй — за таблицу клиентов.

Как во втором DBGrid-е отобразить все записи, которые принадлежат выделенной строке в первом DBGrid-е ?

DBGrid1 — Query1 — ‘select имя from менеджеры’

DBGrid2 — Query2 — ‘select имя from клиенты where ид_менеджера = :ид_менеджера’

Я понимаю, как это сделать в принципе, но не понимаю, как сделать это при помощи DBGrid-ов.

  • delphi
  • pascal
  • freepascal
  • lazarus

Можно через обработку события CellClick у первого DBGrid. Но это как-то некрасиво и требует пассов руками и ненужных, на мой вкус, действий.

Проще по-другому — через использование MasterSource, он для таких вот авто-действий и разрабатывался:

У вас на форме уже есть компоненты:

TADOConnection, TADOTable — 2 экземпляра, TDBGrid — 2 экземпляра, TDataSource — 2 экземпляра

Считаем, что все связи прописаны для 2х наборов ADOTable1 - DataSource1 - DBGrid1 (менеджеры) и ADOTable2 - DataSource2 - DBGrid2 (клиенты), ADOConnection к ним также привязан, а Active у ADOTable1 установлен в true.

Теперь для ADOTable2 свойство MasterSource устанавливаем в DataSource1 (вашу таблицу с менеджерами), а в свойстве

MasterFields указываем связующие поля. Теперь также устанавливаете Active у ADOTable2 в true, и всё должно заработать.

К сожалению, я далёк от компьютера с Delphi, показал бы с картинками 🙂

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

DBGrid

 

 Имя свойства

Краткое описание

Align

Свойство Align определяет выравнивание компонента в рамках содержащего его родительского компонента.

Свойство унаследовано от IControl.

AllowDrag

Свойство AllowDrag определяет возможность взять у компонента перетаскиваемый объект. Свойство унаследовано от IControl.

AllowDrop

Свойства AllowDrop определяет, будет ли возможность у компонента принять перетаскиваемый объект. Свойство унаследовано от IControl.

Anchors

Свойство Anchors определяет в процентном соотношении изменение размеров дочерних компонентов при изменении размеров родительского компонента. Свойство унаследовано от IControl.

BorderStyle

Свойство BorderStyle определяет стиль границы компонента DBGrid. Свойство унаследовано от IDBGrid.

ClientHeight

Свойство ClientHeight определяет высоту клиентской области компонента. Свойство унаследовано от IControl.

ClientWidth

Свойство ClientWidth определяет ширины клиентской области компонента. Свойство унаследовано от IControl.

Color

Свойство Color определяет цвет фона компонента. Свойство унаследовано от IControl.

Columns

Свойство Соlumns возвращает коллекцию столбцов компонента DBGrid. Свойство унаследовано от IDBGrid.

ComponentCount

Свойство ComponentCount возвращает количество дочерних компонентов, расположенных на родительском компоненте. Свойство унаследовано от IComponent.

Components

Свойство Components возвращает дочерний компонент,  индекс которого передается посредством входного параметра. Свойство унаследовано от IComponent.

Cursor

Свойство Cursor определяет вид курсора, отображаемого при наведении курсора мыши на компонент, во время выполнения формы. Свойство унаследовано от IControl.

Data

Свойство Data предназначено для хранения любых пользовательских данных. Свойство унаследовано от IComponent.

DataSource

Свойство DataSource связывает компонент DbGrid с набором данных, который содержит поле DataField. Свойство унаследовано от IDBGrid.

Enabled

Свойство Enabled определяет доступность компонента для пользователя. Свойство унаследовано от IControl.

EnableEdit

Свойство EnableEdit определяет, разрешено ли редактирование данных таблицы. Свойство унаследовано от IDBGrid.

FixedColor

Свойств FixedColor определяет цвет фона заголовка столбца. Свойство унаследовано от IDBGrid.

Focused

Свойство Focused возвращает True, если фокус установлен на данном компоненте. Свойство унаследовано от IControl.

Font

Свойство Font определяет параметры шрифта, используемого при отображении текста в компоненте. Свойство унаследовано от IControl.

Height

Свойство Height определяет высоту компонента в пикселях. Свойство унаследовано от IControl.

HelpContext

Свойство HelpContext определяет уникальный индекс раздела контекстно-зависимой справки для данного компонента. Свойство унаследовано от IControl.

Hint

Свойство Hint определяет текст подсказки, появляющийся при задержке указателя мыши над компонентом. Свойство унаследовано от IControl.

Left

Свойство Left определяет координату левого края компонента в пикселях. Свойство унаследовано от IControl.

MultiSelect

Свойство MultiSelect определяет, будет ли присутствовать возможность множественной отметки строк.

Свойство унаследовано от IDBGrid.

Name

Свойство Name определяет наименование компонента. Свойство унаследовано от IComponent.

Parent

Свойство Parent определяет родительский компонент. Свойство унаследовано от IControl.

ParentColor

Свойство ParentColor определяет, будет ли для компонента заимствован цвет родительского компонента. Свойство унаследовано от IControl.

ParentFont

Свойство ParentFont определяет, будет ли для компонента использоваться шрифт родительского компонента. Свойство унаследовано от IControl.

ParentShowHint

Свойство ParentShowHint определяет признак отображения всплывающей подсказки. Свойство унаследовано от IControl.

PopupMenu

Свойство PopupMenu определяет контекстное меню, которое будет появляться при клике правой клавишей мыши на компоненте. Свойство унаследовано от IControl.

ReadOnly

Свойство ReadOnly определяет, будет ли у пользователя возможность изменять содержимое таблицы. Свойство унаследовано от IDBGrid.

ResizeColumns

Свойство ResizeColumns определяет возможно ли изменение размеров колонок. Свойство унаследовано от IDBGrid.

Selection

Свойство Selection возвращает коллекцию отмеченных строк компонента DBGrid. Свойство унаследовано от IDBGrid.

ShowColumnHeaders

Свойстово ShowColumnHeaders определяет, будут ли отображаться заголовки столбцов. Свойство унаследовано от IDBGrid.

ShowHint

Свойство ShowHint определяет, будет ли показываться всплывающая подсказка при задержке курсора мыши над компонентом. Свойство унаследовано от IControl.

ShowHorzLines

Свойство ShowHorzLines определяет, будут ли в таблице отображаться горизонтальные линии. Свойство унаследовано от IDBGrid.

ShowRowHeaders

Свойстово ShowRowHeaders определяет, будут ли отображаться заголовки строк. Свойство унаследовано от IDBGrid.

ShowVertLines

Свойство ShowVertLines определяет, будут ли в таблице отображаться вертикальные линии. Свойство унаследовано от IDBGrid.

TableColor

Свойств TableColor определяет цвет фона таблицы. Свойство унаследовано от IDBGrid.

TabOrder

Свойство TabOrder определяет позицию компонента в последовательности табуляции. Свойство унаследовано от IControl.

TabStop

Свойство TabStop определяет признак необходимости компоненту получать фокус при нажатии кнопки «Tab». Свойство унаследовано от IControl.

Tag

Свойство Tag не используется компилятором. Пользователь может изменить значение свойства Tag и использовать его по своему усмотрению. Свойство унаследовано от IComponent.

Text

Свойство Text определяет строку, идентифицирующую компонент для пользователя. Свойство унаследовано от IControl.

Top

Свойство Top определяет координату верхнего края компонента в пикселях. Свойство унаследовано от IControl.

Visible

Свойство Visible определяет видимость компонента во время выполнения формы. Свойство унаследовано от IControl.

Width

Свойство Width определяет горизонтальный размер компонента в пикселях. Свойство унаследовано от IControl.

 

 Имя события

Краткое описание

OnBeginDrag

Событие OnBeginDrag для компонента наступает, когда пользователь начинает перетаскивать объект от компонента. Событие унаследовано от IControl.

OnClick

Событие OnClick наступает, если пользователь нажал и отпустил основную кнопку мыши, в момент когда указатель мыши находился на компоненте. Событие унаследовано от IControl.

OnDblClick

Событие OnDblClick наступает, если пользователь осуществил двойной щелчек основной кнопкой мыши на компоненте. Событие унаследовано от IControl.

OnDragDrop

Событие OnDragDrop для компонента наступает, когда пользователь отпускает над ним перетаскиваемый объект. Событие унаследовано от IControl.

OnDragEnter

Событие OnDragEnter наступает при завершении операции перетаскивания. Событие унаследовано от IControl.

OnDragLeave

Событие OnDragLeave наступает, когда перетаскиваемый объект выходит за границы компонента. Событие унаследовано от IControl.

OnDragOver

Событие OnDragOver для компонента наступает, когда пользователь протаскивает над ним перетаскиваемый объект. Событие унаследовано от IControl.

OnEnter

Событие OnEnter наступает в момент получения фокуса компонентом. Событие унаследовано от IControl.

OnExit

Событие OnExit наступает в момент потери фокуса компонентом. Событие унаследовано от IControl.

OnKeyDown

Событие OnKeyDown наступает, если компонент находится в фокусе и производится нажатие клавиши на клавиатуре. Событие унаследовано от IControl.

OnKeyPress

Событие OnKeyPress наступает, если компонент находится в фокусе, при нажатии пользователем символьной клавиши. Событие унаследовано от IControl.

OnKeyUp

Событие OnKeyUp наступает, если компонент находится в фокусе, при отпускании пользователем любой, ранее нажатой клавиши. Событие унаследовано от IControl.

OnMouseDown

Событие OnMouseDown наступает, если компонент находится в фокусе и на компоненте произведено нажатие любой из кнопок мыши. Событие унаследовано от IControl.

OnMouseMove

Событие OnMouseMove наступает при перемещении пользователем курсора мыши над компонентом. Событие унаследовано от IControl.

OnMouseUp

Событие OnMouseUp наступает, если компонент находится в фокусе и на компоненте, была отпущена любая из ранее нажатых кнопок мыши. Событие унаследовано от IControl.

OnMouseWheel

Событие OnMouseWheel наступает, если компонент находится в фокусе при вращении колеса мыши. Событие унаследовано от IControl.

Класс: dbGrid

Класс: dbGrid Свойства  События  Методы Указатель классов

Позволяет пользователям просматривать и редактировать прокручиваемый список значений полей из нескольких столбцов из файла базы данных

Иерархия

cОбъект
—cUIObject
——DfBaseObject
———DfBaseWindow
————DfBaseUIWindow
—————DfBaseControl
——————DfBaseList
———————DfBaseForm
————————DfBaseEntry
—————————DfBaseEntryList
——————————EntryList
——————Широкий список_
————————————Широкий список
—————————————DataList_
——————————————Список данных
————————————————————dbGrid_
————————————————dbGridDS
————————————————— -dbGridDD
————————————————— —- dbGrid

Библиотека: Библиотека классов приложений Windows

Пакет: Dftable. pkg

Описание

Этот класс устарел. Он был заменен классом cDbCJGrid.

Начиная с версии 16.0, DataFlex включает полную поддержку пакета COM Report Control от Codejock Software для создания сеток. Дополнительную информацию см. в разделе Использование сеток.

dbGrid позволяет пользователям просматривать и редактировать прокручиваемый многоколоночный список значений столбцов из таблицы базы данных. Класс dbGrid поддерживает комбинированные формы, флажки, вращающиеся формы и кнопки подсказок в отдельных столбцах или ячейках.

Образец

 Объект OrderDtl_Grid является dbGrid
    Установите для Main_File значение Orderdtl.File_Number.
    Установите для сервера значение Orderdtl_DD
    Установить порядок на 1
    Установите для Wrap_State значение True
    Установите Размер на 63 377
    Установите местоположение на 90 3
 
    Begin_Row
        Entry_Item Invt.Item_id
        Entry_Item Invt.Description
        Entry_Item Invt. Unit_price
        Entry_Item Orderdtl.Price
        Entry_Item Orderdtl.Qty_ordered
        Entry_Item Orderdtl.Extended_price
    End_Row
 
    Установите Form_Width от 0 до 55
    Установите для Header_Label 0 значение «Идентификатор элемента».
 
    Установите Form_Width от 1 до 116
    Установите для Header_Label 1 значение «Описание».
 
    Установите Form_Width 2 на 55
    Установите для Header_Label 2 значение «Цена за единицу».
 
    Установите Form_Width от 3 до 43
    Установите для Header_Label 3 значение «Цена».
 
    Установите Form_Width от 4 до 43
    Установите для Header_Label 4 значение "Кол-во"
 
    Установите Form_Width от 5 до 55
    Установите для Header_Label 5 значение «Всего»
 
    Установите для Child_Table_State значение True // Сохраняет при выходе из объекта
End_Object // OrderDtl_Grid 

Синтаксис

Использовать dftable

 Объект oObjectName является dbGrid
    Установить размер на ширину высоты
    Установить местоположение для столбца строки
    Установите для Main_File значение FileName. File_Number.
    Установить порядок на индекс #
    Установите для сервера значение DDOName.
 
    Установите для Child_Table_State значение true|false
    Установите для Wrap_State значение true|false
    Установите для параметра Allow_Bottom_Add_State значение true|false.
    Установите для параметра Allow_Top_Add_State значение true|false.
    Установите для параметра Allow_Insert_State значение true|false.
    Установите для параметра No_Create_State значение true|false.
    Установите для параметра No_Delete_State значение true|false.
    Установите для Read_Only_State значение true|false
    Установите для Auto_Regenerate_State значение true|false.
    :
    Begin_Row
        entry_item {таблица.поле | выражение}
        :
    End_Row
    :
    Установите Highlight_Row_State в true|false
    Установите для Gridline_Mode значение GridVisibleMode.
 
    Установите для Header_Visible_State значение true|false
    Установите для параметра Resize_Column_State значение true|false. 
 
    Установите для CurrentCellColor значение RGBColor.
    Установите CurrentCellTextColor в RGBColor
    Установите для CurrentRowColor значение RGBColor.
    Установите для CurrentRowTextColor значение RGBColor.
    Установите Highlight_Row_State в true|false
    Установите для Gridline_Mode значение GridVisibleMode.
 
    Установите столбец Form_width # в ColumnWidth
 
    Установите для столбца Header_Label # значение HeaderLabel
    Установите столбец Header_Justification_Mode в режим Mode
    
    // Они устанавливаются, когда нет словаря данных
    Установите столбец Status_Help # в StatusHelpText
    Установите столбец Form_DataType для ввода типа
    Установите столбец Form_Mask # в маску
    Установите для столбца Numeric_Mask значение leftDigits rightDigits {шаблон}
    Задайте для столбца Currency_Mask значение leftDigits rightDigits {шаблон}
Конечный_Объект 

Особое примечание

dbGrid отображает несколько записей из основного файла и любых предков (родительских) файлов и позволяет пользователям редактировать их по одной. В любой момент строка сетки, на которой находится курсор, считается текущей строкой, а запись в основном файле, данные которой отображаются в нем, текущей записью. Таким образом, dbGrid появляется для редактирования и отображения так же, как dbForm.

DbGrids всегда следует размещать внутри объекта dbView или контейнера с поддержкой данных (dbContainer3d, dbGroup, dbTabPage, dbTabView). DataDictionary, используемый объектом, должен находиться над сеткой ввода и внутри контейнера представления ввода.

Объект ввода данных

dbGrid — это многоэлементный объект ввода данных (DEO). DEO — это объект, чьи собственные возможности (в данном случае сетка) дополнены поведением с учетом данных. Эти действия включают:

  • Поиск, очистку, сохранение и удаление записей (и наборов записей)
  • Подсказка и поддержка масштабирования объекта
  • Проверка изменений (проверки сохранения, удаления и потери данных)
  • Объект и вход, выход и проверка элемента
  • Поддержка сервера: DEO подключаются к структурам сервера данных
Настройка входных параметров для столбцов

Предыдущие версии DataFlex позволяли устанавливать параметры столбцов путем помещения специальных параметров в командную строку entry_item. Эти параметры будут помещены во французские фигурные скобки (entry_item file.field {capslock, iPrompt =(myObj(Self)), iEntry =msg_MyMessage}). Словари данных практически избавляют от необходимости в этих настройках. Обычно эти настройки могут и должны быть помещены в подклассы вашего словаря данных. Кроме того, Studio не поддерживает использование этих параметров командной строки.

В тех редких случаях, когда вам нужно установить любой из этих параметров для столбцов в вашем объекте ввода данных, предоставляется полный интерфейс для получения и установки любого из них. Классы ввода данных с одним элементом используют один набор сообщений для установки этих параметров, в то время как классы ввода данных на основе строк (например, этот класс) предоставляют параллельный набор сообщений для установки этих параметров по столбцам. Эти сообщения задокументированы в классе datalist. Ниже приводится сводка всех этих сообщений. Этот список показывает сообщение на основе одного элемента, его эквивалентное сообщение на основе строки и параметр entry_item, который он заменяет. Каждое из этих сообщений поддерживает синтаксис get и set.

Сообщения на основе форм, основанные на форме, DBCOMBOFORM Сообщения на основе столбцов DBGRID, DBLIST OLD ENTRY_ITEM {OPTION} (больше не использовался)
ITEM_OPTIONS} (не используется)
inection_options} (больше не использовался)
. NoEnter, NoPut, DisplayOnly, AutoFind и т. д.
Item_Option Column_Option (аналогично предыдущему)
0104
Enabled_State (formerly object_shadow_state) Column_Shadow_State DisplayOnly
Capslock_State Column_Capslock_State Capslock
Prompt_Object Column_Prompt_Object iPrompt=
Zoom_Object Column_Zoom_Object iZoom=
Item_Entry_msg Column_Entry_msg iEntry=
Item_Exit_msg Column_Exit_msg iExit=
Item_Validate_msg Column_Validate_msg iValidate=
Использование словарей данных

Если сервер этого объекта является словарем данных, этот объект получит от сервера большое количество «знаний». Он будет «знать» типы данных, маски ввода, объекты справки о состоянии и подсказки, правила проверки, правила входа, правила выхода, форматы отображения (capslock и т. д., noput, только отображение и т. д.) и многое другое, касающееся файла данных и его поля. Если вы используете наборы данных, всеми этими настройками можно управлять, задавая свойства. Хотя это возможно, это требует гораздо больше работы и значительно увеличивает вероятность ошибок и несоответствий.

Навигация с помощью клавиш со стрелками

По умолчанию для навигации по раскрывающемуся списку используются клавиши со стрелками вверх и вниз. Это можно изменить для навигации между строками в сетке, установив для свойства pbComboNavigation значение False.

Маскирование

Этот класс поддерживает маскирование ввода и отображения для различных типов данных (текстовых, числовых, валютных и дат). При использовании словарей данных маска и тип маски элементов объекта обычно определяются в подклассе словаря данных файла данных. Единственный раз, когда вам нужно иметь дело с масками, это когда вы создаете маски для элементов, не основанных на словаре данных (выражений и переменных).

При установке масок вручную тип используемой маскировки определяется столбцом form_datatype объекта (который поддерживает как маскированные, так и немаскированные типы) и столбцом объекта form_mask. Два дополнительных сообщения, currency_mask и numeric_mask, упрощают определение валютных и числовых типов данных и полей с помощью одного сообщения.

Сохранение и удаление строки

Каждый раз, когда пользователь выходит за пределы линии сетки, любые сделанные изменения должны быть сохранены или удалены. Auto_save_state dbGrid по умолчанию имеет значение true Каждый раз, когда пользователь пытается покинуть строку, в которой он сделал изменение, выполняется сохранение. Таблицы обычно наиболее интуитивно понятны, когда сохранение происходит автоматически.

Для verify_save_msg задано значение get_no_confirmation. Это отключает проверочное сообщение при каждом сохранении записи. При желании вы можете установить для этого свойства значение get_line_save_confirmation, что приведет к появлению подтверждения сохранения строки каждый раз, когда запись собирается быть сохраненной. Verify_delete_msg был изменен на get_line_delete_confirmation, что вызывает появление подтверждения удаления строки перед удалением.

Заголовки подсказок

Этот класс автоматически поддерживает метки кнопок подсказок. Если для этого объекта определен объект подсказки, его заголовок становится «кнопкой подсказки с поддержкой». При щелчке заголовка любого столбца будет отправлено сообщение с подсказкой и появится объект подсказки (обычно список выбора). Объекты приглашения обычно получаются из объекта словаря данных, но могут быть указаны в этом объекте путем установки свойства prompt_object. Когда заголовок поддерживает кнопку подсказки, символы >> добавляются справа от метки заголовка, чтобы указать, что подсказка доступна.

Если вы не хотите автоматически создавать кнопки подсказок, вы можете отключить эту функцию, установив для свойства prompt_button_mode значение PB_PromptOff .

Сервер

Все объекты dbGrid всегда должны быть подключены к серверу (объекту словаря данных). При использовании в качестве дочерней таблицы (например, таблицы сведений о записях заказов) вполне вероятно, что свойство сервера будет задано явно в объекте dbGrid. Если он не установлен в объекте, он должен быть установлен в родительском (или другом родительском) объекте-контейнере.

Основной файл, DDO сервера и индекс

Для этого объекта необходимо указать основной файл либо с помощью явного объявления main_file, либо с помощью main_file DDOname через свойство сервера. Точно так же индекс должен быть назван, если он не указан в DDOname. Список выбора может использовать другой main_file и индекс, отличный от названного DDO, но индекс должен быть одним из индексов main_file. Если индекс не указан ни на одном уровне, записи перечислены в порядке recnum.

Потомок суперкласса Grid

Класс dbGrid является потомком класса grid. Существует множество сообщений, поддерживающих метки заголовков, ширину формы, линии сетки и т. д. Полное описание этих свойств см. в классе Grid.

Большинство настроек свойств столбца по умолчанию будут выполняться по желанию. Обычно вам нужно будет только установить свойства form_width и header_label.

Цвет элемента и строки и линии сетки

Цвет текущей строки и текущего элемента задается параметрами CurrentCellColor и CurrentRowColor. Это цвета rgb. По умолчанию эти значения устанавливаются путем чтения ключей из реестра. Это позволяет настраивать цвета без перекомпиляции. Цвета должны быть установлены в реестре, поскольку для выделенных строк и ячеек нет стандартного цвета Windows по умолчанию.

Сообщение ItemColor позволяет управлять цветом фона любой ячейки или ячеек в сетке. При использовании внутри процедуры entry_display это сообщение можно использовать для окрашивания элементов в соответствии со значением поля. Сообщение entry_display вызывается каждый раз, когда строка обновляется информацией из базы данных. Используя значение в текущем буфере записи, оператор set ItemColor, оператор get base_item (для определения первой ячейки в текущей строке) и оператор get item_limit (для определения количества ячеек в строке), вы можете управлять цветами строк и ячеек.

Цвет фона элемента определяется тремя состояниями. Элемент может быть текущим элементом, элементом может быть элемент в текущей строке или элемент может быть элементом не текущей строки. Приоритет назначения цвета следующий:

1. CurrentCellColor имеет приоритет над всеми другими цветами.
2. CurrentRowColor, если он используется (highlight_row_state имеет значение true), переопределяет нетекущий цвет строки.
3. Нетекущая строка использует ItemColor.

Если вы хотите использовать ItemColor для создания пользовательских цветов строк, вы, вероятно, захотите установить для свойства highlight_row_state значение false.

В следующем примере, который можно добавить к dbGrid или dbList, показано, как можно использовать ItemColor для установки пользовательского цвета для строки и ячейки.

 // Изменяет цвет всех элементов в текущей строке на цвет RGB 'iColor'
// Это должно быть отправлено из Entry_Display, как показано ниже...
Процедура Change_Row_Color Integer iColor
    Integer iBase iItem iItems
 
    Получить Base_Item в iBase // первый элемент текущей строки
    Получить Item_Limit для iItems // элементов в строке
    Переместить (iBase+iItems-1) в iItems // последний элемент в текущей строке
 
    Для iItem из iBase в iItems // установить цвет для всех элементов в строке
        Установите ItemColor iItem на iColor
    Петля
End_Procedure // Change_Row_Color
 
// Дополнено, чтобы выделить строку и, возможно, ячейку
// с определенным цветом в зависимости от значений его файлового буфера
Процедура Entry_Display Integer iFile Integer iType
    целочисленный iColor iItem
 
    // устанавливаем цвет текущей строки на основе значения расширенной цены
    Если (OrderDtl. Extended_Price < 0);
        Переместить clRed в iColor
    Еще ;
        Если (OrderDtl.Extended_Price = 0);
            Переместить clYellow в iColor
        Еще ;
            Переместите clTeal в iColor

    Отправить Change_Row_Color iColor
    
    // Установить одну ячейку (столбец 5) на основе содержимого qty_ordered
    Если OrderDtl.Qty_Ordered ge 10 Начало
        Получить Base_Item в iItem // первый элемент текущей строки
        Установите для ItemColor (iItem+4) значение clPurple // Пятый столбец
    Конец
 
    Переслать Отправить Entry_Display iFile iType
End_Procedure // Entry_Display 


Параметр gridline_mode, который указывает, должны ли отображаться в списке горизонтальные и вертикальные линии, также можно задать с помощью параметра реестра. Если вы задали ключ TableGrid в реестре, вы должны использовать значения от 0 до 3 (0=Grid_Visible_none, 1=Grid_Visible_Horz, 2=Grid_Visible_Vert, 3=Grid_Visible_Both).

Дополнительные сведения об этих свойствах см. в классе Grid.

Целью поддержки уникальных настроек цветов в dbGrids и dbList (у которых есть собственные значения ключей реестра) является предоставление механизма для различения списков выбора (dbLists) и таблиц ввода (dbGrids). DbGrid использует стандартную сетку и цвет, предоставляемые классом сетки.

Создание столбцов флажков в dbGrids

Любой столбец в dbGrid можно представить в виде флажка, установив для свойства столбца column_checkbox_state значение true. Если поле этого столбца определено как поле флажка в его словаре данных, столбец будет отображать истинные и ложные значения поля (которые определены в словаре данных) в формате флажка.

В следующем примере предполагается, что столбец 3 в dbGrid представляет поле данных Customer.Active. В словаре данных это поле определяется как поле флажка с истинным значением T и ложным значением F. Если это поле представлено в обычном формате без флажка, столбец 3 будет отображаться как столбец Ts и Фс. Пользователи могут редактировать эти значения, изменив их значение на T или F. Все другие значения приведут к ошибке проверки. Этот столбец можно преобразовать в столбец флажка с помощью следующего кода.

 Установите для Column_CheckBox_State 3 значение True 

При такой установке все значения данных T будут отображаться как отмеченные элементы, а все значения данных F будут отображаться как неотмеченные элементы. Если пользователь изменил проверенное состояние ячейки, базовое значение данных также будет соответствующим образом изменено на T или F. add_or_remove_row kbegin_of_data beginning_of_data kclear request_clear kclear_all request_clear_all kdelete_record request_delete kend_of_data end_of_data kfind find_ge kfind_next find_next kfind_previous find_previous ksave_record request_save ksuper_find superfind ksuper_find_next superfind_next ksuper_find_previous superfind_previous

Компоненты BergSoft Delphi и .

NET Возможности · Загрузки · Купить сейчас

NextDBGrid — это мощная сетка данных Delphi/C++ Builder, основанная на нашем популярном компоненте NextGrid. Почти все замечательные функции NextGrid доступны в NextDBGrid, дополненном поддержкой баз данных. Если вы знаете, как работать с NextGrid, вы будете знать, как работать и с NextDBGrid.

  • Простота подключения Столбцы с полями набора данных
  • 18 различных типов столбцов, а в будущем планируется добавить больше.
  • Мощный компонент DBGrid, написанный с нуля
При использовании следующего пакета моя программа сразу же превратилась из типичного приложения Windows в перспективное приложение с современным дизайном. Это было похоже на чудо, простая замена моих существующих компонентов на следующие, и пользовательский интерфейс переместился в новый век. Я очень рекомендую это! — www. aperitto.com
  • NextSuite v6 Exe DemoBig Demo с компонентами из Next Suite v6
  • Руководство по Next Suite v6PDF Руководство по Next Suite 6
  • Delphi 7, Delphi 6, Delphi 2005, Delphi 2007, Delphi 2010, Delphi XE, Delphi XE2 (VCL), Delphi XE3 (VCL), Delphi XE4 (VCL), Delphi XE5 (VCL), Delphi XE6 (VCL), Delphi XE7 (VCL), Delphi XE8 (VCL), Delphi 10 Seattle (VCL), Delphi 10.1 Berlin, Delphi 10.2 Tokyo (VCL), Delphi 10.3 Rio (VCL), Delphi 10.4 (Сидней), Delphi 11 (VCL), C++ Builder XE4 , C++ Builder XE5, C++ Builder XE6, C++ Builder 10.1 Berlin, C++ Builder 10.2 Tokyo, C++ Builder 10.3 Rio, C++ Builder 10.4 Tokyo, C++ Builder 11

    Поля Memo

    Содержимое поля Memo Blob можно полностью отобразить, просто установив для свойства ExpandContent значение True . Теперь вместо строки (MEMO) ячейка будет отображать полное содержимое поля.

    Буферный и небуферизованный режим

    NextDBGrid может работать в 2 режимах данных, указанных в свойстве BufferRecords .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *