Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Interface. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Читайте также:
  1. Interface
  2. Interface
  3. Interface
  4. Interface
  5. Interface

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Grids, ActnList, XPStyleActnCtrls, ActnMan,

ToolWin, ActnCtrls, ActnMenus;

Type

TForm19 = class (TForm)

StringGrid1: TStringGrid;

lbCaption: TLabel;

ActionMainMenuBar1: TActionMainMenuBar;

ActionManager2: TActionManager;

Action11: TAction;

Action12: TAction;

Action13: TAction;

procedure FormShow(Sender: TObject);

procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

procedure Action11Execute(Sender: TObject);

procedure Action12Execute(Sender: TObject);

procedure Action13Execute(Sender: TObject);

procedure Shapka;

procedure Zapolnenie;

Private

Public

end;

Var

Form19: TForm19;

Implementation

uses Small_Business, PrnGridUnit, Programm, ShellAPI;

{**** Появление формы ****}

procedure TForm19.FormShow(Sender: TObject);

Begin

Shapka;

Zapolnenie;

end;

{**** Шапка таблиц ****}

procedure TForm19.Shapka;

Var

i: Byte;

Begin

// Ширина столбцов

StringGrid1.ColWidths[0]:= 400;

StringGrid1.ColWidths[1]:= 120;

StringGrid1.ColWidths[2]:= 120;

StringGrid1.ColWidths[3]:= 120;

StringGrid1.ColWidths[4]:= 120;

StringGrid1.ColWidths[5]:= 120;

// Шапка таблицы

i:= 0; StringGrid1.Cells[i, 0]:= ' Показатели';

inc(i); StringGrid1.Cells[i, 0]:= ' 1 год (берутся данные на начало аналогичного предыдущего периода)';

inc(i); StringGrid1.Cells[i, 0]:= ' 2 год (берутся данные на начало отчётного периода)';

inc(i); StringGrid1.Cells[i, 0]:= ' Изменения (+/-)';

inc(i); StringGrid1.Cells[i, 0]:= ' 3 год (берутся данные на конец отчётного периода)';;

inc(i); StringGrid1.Cells[i, 0]:= ' Изменения (+/-)';

i:= 1; StringGrid1.Cells[0, i]:= ' Показатели, характеризующие ликвидность:';

inc(i); StringGrid1.Cells[0, i]:= ' Коэффициент абсолютной ликвидности (Кал)';

inc(i); StringGrid1.Cells[0, i]:= ' Коэффициент текущей ликвидности(Ктл)';

inc(i); StringGrid1.Cells[0, i]:= ' Показатель обеспеченности обязательств предприятия его активами (Коо)';

inc(i); StringGrid1.Cells[0, i]:= ' Степень платежеспособности по текущим обязательствам (Кпто)';

inc(i); StringGrid1.Cells[0, i]:= ' Показатели, характеризующие финансовую устойчивость:';

inc(i); StringGrid1.Cells[0, i]:= ' Коэффициент автономии (финансовой независимости) (Кфн)';

inc(i); StringGrid1.Cells[0, i]:= ' Коэффициент обеспеченности собственными оборотными средствами (Ксос)';

inc(i); StringGrid1.Cells[0, i]:= ' Доля просроченной кредиторской задолженности (ПКЗ) в пассивах (Ккрз)';

inc(i); StringGrid1.Cells[0, i]:= ' Показатель отношения дебиторской задолженности к совокупным активам (Кдз)';

inc(i); StringGrid1.Cells[0, i]:= ' Показатели, характеризующие деловую активность:';

inc(i); StringGrid1.Cells[0, i]:= ' Рентабельность активов (Кра)';

inc(i); StringGrid1.Cells[0, i]:= ' Норма чистой прибыли (Кчпр)';

inc(i); StringGrid1.Cells[0, i]:= ' Рентабельность доходов (Кд)';

end;

{**** Заполнение таблиц ****}

procedure TForm19.Zapolnenie;

Type

T_K = Array [60..70, 1..3] of Double;

Var

i, j, m, f: Byte;

k: T_K;

Begin

// Рассчитаем коэффициенты

for i:= 1 to 3 do

Begin

k[60, i]:= b[NLOA, i] / b[TKO, i];

k[61, i]:= b[LA, i] / b[TKO, i];

k[62, i]:= (b[LA, i] + b[SVA, i]) / b[OD, i];

k[63, i]:= b[TKO, i] / b[VPr, i];

k[64, i]:= b[SS, i] / b[SA, i];

k[65, i]:= (b[SS, i] - b[SVA, i]) / b[OA, i];

k[66, i]:= b[PKZ, i] / b[SA, i];

k[67, i]:= (b[DZ, i] + b[POAV, i]) / b[SA, i];

k[68, i]:= b[CHPr, i] / b[SA, i];

k[69, i]:= b[CHPr, i] / b[OA, i];

k[70, i]:= b[CHPr, i] / b[D, i];

end;

// 1 год

i:= 3; // элемент

m:= 1; // столбец

f:= 2; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[60, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[61, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[62, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[63, i]);

f:= 7; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[64, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[65, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[66, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[67, i]);

f:= 12; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[68, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[69, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[70, i]);

// 2 год

i:= 2; // элементm

m:= 2; // столбец

f:= 2; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[60, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[61, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[62, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[63, i]);

f:= 7; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[64, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[65, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[66, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[67, i]);

f:= 12; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[68, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[69, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[70, i]);

// 3 год

i:= 1; // элементm

m:= 4; // столбец

f:= 2; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[60, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[61, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[62, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[63, i]);

f:= 7; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[64, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[65, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[66, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[67, i]);

f:= 12; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[68, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[69, i]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[70, i]);

// Изменения # 1

i:= 3; // элементm

j:= 2; // элементm

m:= 3; // столбец

f:= 2; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[60, i] - k[60, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[61, i] - k[61, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[62, i] - k[62, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[63, i] - k[63, j]);

f:= 7; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[64, i] - k[64, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[65, i] - k[65, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[66, i] - k[66, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[67, i] - k[67, j]);

f:= 12; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[68, i] - k[68, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[69, i] - k[69, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[70, i] - k[70, j]);

// Изменения # 2

i:= 1; // элементm

j:= 2; // элементm

m:= 5; // столбец

f:= 2; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[60, i] - k[60, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[61, i] - k[61, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[62, i] - k[62, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[63, i] - k[63, j]);

f:= 7; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[64, i] - k[64, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[65, i] - k[65, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[66, i] - k[66, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[67, i] - k[67, j]);

f:= 12; StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[68, i] - k[68, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[69, i] - k[69, j]);

inc(f); StringGrid1.Cells[m, f]:= FormatFloat('0.00', k[70, i] - k[70, j]);

end;

{**** Форматирование таблицы ****}

procedure TForm19.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

Var

s: String;

Flag: Cardinal;

H: Integer;

i, j, m: Byte;

Begin

{___________________Цветные строчки в нулевом столбике_________________________}

// Для показателей, характеризующих ликвидность:

i:= 0; // 0й столбик

j:= 1; // 1ая строчка

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(0, 205, 0); // тёмно-зелёный

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

for j:= 2 to 5 do // со 2ой по 5ую строчку

Begin

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(154, 255, 154); // салатовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

// Для показателей, характеризующих финансовую устойчивость:

i:= 0; // 0й столбик

j:= 6; // 6ая строчка

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(67, 110, 238); // тёмно-синий

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

for j:= 7 to 10 do // со 7ой по 10ую строчку

Begin

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(135, 206, 235); // голубой

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

// Для показателей, характеризующих деловую активность:

i:= 0; // 0й столбик

j:= 11; // 11ая строчка

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(238, 44, 44); // тёмно-красный

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

for j:= 12 to 15 do // со 12ой по 15ую строчку

Begin

if (ACol = i) and (ARow = j) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(250, 128, 114); // розовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

{_________________Выделение цветом ячеек (для изменений #1 и #2)_______________}

for m:= 1 to 2 do // для того, чтобы заполнить два раза (т.е. два столбика)

Begin

// Для показателей, характеризующих ликвидность:

for j:= 2 to 5 do // от 2 до 5 строчки

Begin

if m = 1 then i:= 3 // заполняем 3ий столбик

else i:= 5; // заполняем 5ый столбик

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) >= 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(154, 255, 154); // салатовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) < 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(250, 128, 114); // розовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

// Для показателей, характеризующих финансовую устойчивость:

for j:= 7 to 10 do // от 7 до 10 строчки

Begin

if m = 1 then i:= 3 // заполняем 3ий столбик

else i:= 5; // заполняем 5ый столбик

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) >= 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(154, 255, 154); // салатовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) < 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(250, 128, 114); // розовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

// Для показателей, характеризующих деловую активность:

for j:= 12 to 15 do // от 12 до 15 строчки

Begin

if m = 1 then i:= 3 // заполняем 3ий столбик

else i:= 5; // заполняем 5ый столбик

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) >= 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(154, 255, 154); // салатовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

if (ACol = i) and (ARow = j) and (StrToFloat(StringGrid1.Cells[i, j]) < 0) then

Begin

StringGrid1.Canvas.Brush.Color:= rgb(250, 128, 114); // розовый

StringGrid1.Canvas.FillRect(Rect);

StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);

end;

end;

end;

{________________________________________Выравнивание ячеек____________________}

StringGrid1.Canvas.FillRect(Rect);

s:= StringGrid1.Cells[ACol, ARow];

Flag:= DT_LEFT;

Flag:= Flag or DT_WORDBREAK;

Inc(Rect.Left, 0);

Dec(Rect.Right, 0);

H:= DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, Flag);

if H > StringGrid1.RowHeights[ARow] then

StringGrid1.RowHeights[ARow]:= H; // Увеличиваем

end;

{**** Панель - Печать ****}

procedure TForm19.Action11Execute(Sender: TObject);

Begin

PrintGrid(StringGrid1, lbCaption);

end;

{**** Панель - Помощь ****}

procedure TForm19.Action12Execute(Sender: TObject);

Begin

ShellExecute(handle, 'open', 'helpfile.pdf', nil, nil, SW_SHOWNORMAL);

end;

{**** Панель - О программе ****}

procedure TForm19.Action13Execute(Sender: TObject);

Begin

Form22.Show;

end;

end.

 

2.1.3 UNIT SMALL_TABL_3

unit Small_Tabl_3;


Дата добавления: 2015-10-13; просмотров: 69 | Нарушение авторских прав


Читайте в этой же книге: Основные показатели, характеризующие деловую активность | Коэффициенты эффективности деятельности | Диагностика банкротства предприятия | Исследовательский раздел | Модель TO-BE | Обоснование выбора языка и среды программирования | Описание главной формы | СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ | Private | Implementation |
<== предыдущая страница | следующая страница ==>
Interface| Interface

mybiblioteka.su - 2015-2024 год. (0.03 сек.)