Delphi 3 и создание приложений баз данных


Свойства и события, управляющие поведением TDecisionGrid в целом


Свойства

property CaptionColor: TColor;

определяет цвет фона для заголовков столбцов и строк.

property CaptionFont: TFont;

определяет шрифт для заголовков столбцов и строк.

property CelIs[ACol, ARow: Integer]: String;

возвращает в строковом виде содержимое ячейки на пересечении столбца АСоl и строки ARow.

ro property ColCount: Integer;

возвращает текущее число столбцов.

property DataCoIor: TColor;

определяет цвет фона во всех ячейках.

property DataFont: TFont;

определяет шрифт во всех ячейках.

property DataSumColor: TColor;

определяет цвет фона - только в ячейках, где показываются суммы.

property DecisionSource: TDecisionSource;

содержит имя компонента TDecisionSource.

property DefauItColWidth: Integer;

определяет умалчиваемую ширину (в пикселях) всех ячеек TDecisionGrid. Установка нового значения этого свойства приводит к изменению ширины сразу всех ячеек компонента.

property DefaultRowHeight: Integer;

определяет высоту (в пикселях) всех ячеек TDecisionGrid Установка нового значения свойства приводит к изменению высоты сразу всех ячеек компонента.

property FixedCols:Integer;

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

rо property FixedRows:Integer;

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

property GridLineColor: TColor;

определяет цвет линий, отделяющих ячейки друг от друга.

property GridLineWidth: Integer;

определяет в пикселях ширину линий, отделяющих ячейки друг от друга.

property LabelColor: TColor;

определяет цвет фона ячеек, в которых показываются заголовки столбцов и строк.

property LabelFont: TFont;

определяет шрифт ячеек, в которых показываются заголовки столбцов и строк.

property LabelSumColor: TColor;

определяет цвет фона ячеек, в которых показываются заголовки сумм.

property Options: TDecisionGridOptions;

TDecisionGridOptions = set of TDecisionGridOption; представляет собой множество, которое определяет параметры показа в TDecisionGrid. В множество могут входить значения:

cgGridLines -

выводятся вертикальные и горизонтальные линии, отделяющие ячейки друг от друга.

cgOutliner -

заголовки измерений куба содержат знаки "+" и "-", которые позволяют открывать или закрывать измерения без помощи компонента TDecisionPivot.

cgPivotable -

разрешается перетаскивать измерения способом darg and drop.

ro property RowCount:Integer;

возвращает число строк в TDecisionGrid.

property Totals: Boolean;

определяет, показываются (True) или нет (False) значения подсумм по измерениям.

События

TDecisionDrawCeIlEvent = procedure (Sender: TObject; Col, Row: Longint;

var Value: string; var AFont: TFont; var AColor: TColor; AState: TGridDrawState;

ADrawState: TDecisionDrawState) of Object;

наступает при прорисовке ячейки в TDecisionGrid. Параметры:

Соl - номер столбца;

Row - номер строки;

Value - символьное представление значения, показываемого в ячейке;

AFont -

шрифт, которым показывается значение в ячейке;

A Color - цвет фона в ячейке;

AState -

состояние ячейки. TGridDrawState = set of (gdSelected, gdFocused, gdFixed);

A DrawState - множество, определяющее вид показываемых в ячейке данных. Может включать в себя значения:

• dsGroupStart - ячейка - первая строка или первый столбец для измерения. В этом случае в множество ADrawState входят также значения dsRow Value или dsCol Value.

• dsRowCaption - в ячейке показывается заголовок строки, то есть имя измерения, значения которого показываются горизонтально.

• dsColCaption - в ячейке показывается заголовок столбца, то есть имя измерения, значения которого показываются вертикально.

• dsSum - в ячейке показывается метка или значение промежуточной суммы. В этом случае в множество ADrawState входят также значения dsRow Value, dsCol Value и dsData.

• dsRow Value - в ячейке показывается одно из значений измерения (метка), а не собственно данные. Название измерения в этом случае расположено в ячейке слева.

• dsColValue - в ячейке показывается одно из значений измерения (метка), а не собственно данные. Название измерения в этом случае расположено в ячейке сверху.

• dsData - в ячейке показываются только данные.

• dsOpenAfter - ячейка имеет знак "+" в правой части, использующийся для раскрытия данных по следующему измерению. В этом случае в множество ADrawState входят также значения dsRowCaption, dsColCaption, dsRow Plus и dsColPlus.

• dsCloseAfter - ячейка имеет знак "-" в правой части, использующийся для сокрытия данных по следующему измерению. В этом случае в множество ADrawState входят также значения dsRowCaption, dsColCaption, dsRowPlus и dsColPlus.

• dsRowIndicator - ячейка используется только для показа знаков "+" или "-" и располагается в самом левом столбце TDecisionGrid. dsColIndicalor - ячейка используется только для показа знаков "+" или "-" и располагается в самой верхней строке TDecisionGrid.

• dsRowPlus - ячейка, определяемая dsRowIndicator, содержит значение "+". Появляется только совместно с dsRowIndicator.

• dsColPlus - ячейка, определяемая dsColIndicator, содержит значение "+". Появляется только совместно с dsColIndicator.

• dsNone - у ячейки нет никакого предназначения.

Пример.

Показать на красном фоне те значения в области данных (но не значений измерений!), где значение больше 2000. Сделать это для всех ячеек, кроме текущей (пусть в ней используется стандартный фон выбора - по умолчанию это синий). Для тех полей области данных, которые содержат пустые значения, выводить 0.

procedure TForm1.DecisionGrid1DecisionDrawCell (Sender: TObject; Col, Row: Integer; var Value: String; var aFont: TFont; var aColor:

TColor;

AState: TGridDrawState; aDrawState: TDecisionDrawState) ;

begin

IF dsData in aDrawState THEN begin

IF Value = " THEN Value := '0';

IF not(gdFocused in AState)AND (StrToInt(Value) > 2000) THEN

AColor := cIRed;

END;//if

end;

property OnDecisionExamineCell: TDecisionExamineCellEvent;

TDecisionExamineCellEvent = procedure (Sender: TObject; ICol, IRow: Longint; ISum: Integer; const ValueArray: TSmallIntArray) of Object;

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

ICol - номер столбца ячейки;

IRon - номер строки ячейки;

ISum - номер текущей суммы;

ValueArray -

массив координат в координатной сетке TDecisionSource (а не TDecisionGrid). Для получения имени измерения, соответствующего конкретному элементу массива, следует использовать метод GetDimensionName.

property OnTopLeftChanged: TNotifyEvent;

наступает при скроллинге данных в сетке TDecisionGrid.

TNotifyEvent = procedure(Sender: TObject) of object;



Содержание раздела