Студопедия
Случайная страница | ТОМ-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, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

Type

TForm8 = class (TForm)

Chart1: TChart;

Series1: TBarSeries;

Series2: TBarSeries;

Series3: TBarSeries;

Label1: TLabel;

Private

Public

end;

Var

Form8: TForm8;

Implementation

uses main;

end.

 

2.2.6 UNIT TABL_4

unit Tabl_4;

Interface

Uses

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

Dialogs, ExtCtrls, Grids, StdCtrls, ActnList, ToolWin, ActnMan,

ActnCtrls, ActnMenus, XPStyleActnCtrls;

Type

TForm10 = class (TForm)

StringGrid1: TStringGrid;

StaticText1: TStaticText;

Label4: TLabel;

Label5: TLabel;

StaticText2: TStaticText;

Label6: TLabel;

Label7: TLabel;

StaticText3: TStaticText;

Label8: TLabel;

Label9: TLabel;

ActionManager1: TActionManager;

ActionMainMenuBar1: TActionMainMenuBar;

Action1: TAction;

Action2: TAction;

Action3: TAction;

Action4: TAction;

lbCaption: TLabel;

procedure FormShow(Sender: TObject);

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

Rect: TRect; State: TGridDrawState);

procedure Action1Execute(Sender: TObject);

procedure Action2Execute(Sender: TObject);

procedure Action3Execute(Sender: TObject);

procedure Action4Execute(Sender: TObject);

procedure Shapka;

procedure Zapolnenie;

Private

Public

end;

Var

Form10: TForm10;

Implementation

uses Enterprise, Tabl_3_Graph, Tabl_4_Graph, PrnGridUnit, Programm, ShellAPI;

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

procedure TForm10.FormShow(Sender: TObject);

Begin

Shapka;

Zapolnenie;

end;

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

procedure TForm10.Shapka;

Var

i, j: 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 - столб, j - строка

j:= 0;

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

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

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

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

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

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

i:= 0;

j:= 1; StringGrid1.Cells[i, j]:= ' Коэффициент концентрации собственного капитала (Кск)';

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

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент маневренности собственного капитала (Кмск)';

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент концентрации заёмного капитала (Ккзк)';

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент структуры долгосрочных вложений (Ксдв)';

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент долгосрочного привлечения заёмных средств (Кдп)';

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент структуры заёмного капитала (Кскз)';

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент соотношения заёмных и собственных средств (Кс/з)';

inc(j); StringGrid1.Cells[i, j]:= ' Скорость оборота материальных оборотных средств (Кмс)';

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

inc(j); StringGrid1.Cells[i, j]:= ' Коэффициент реальной стоимости имущества (Кр)';

end;

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

procedure TForm10.Zapolnenie;

Type

T_F1 = (Fs, Ft, Fo);

T_F2 = Array [T_F1, 1..3] of Double;

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

Var

i, m, n: Byte;

f: T_F2;

k: T_K;

Begin

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

for i:= 1 to 3 do

Begin

f[Fs, i]:= b[SOS, i] - b[ZZ, i];

f[Ft, i]:= b[FKo, i] - b[ZZ, i];

f[Fo, i]:= b[WI, i] - b[ZZ, i];

 

k[ 1, i]:= b[KiR, i] / b[SA, i];

k[ 2, i]:= b[SA, i] / b[KiR, i];

k[ 3, i]:= b[SOS, i] / b[KiR, i];

k[ 4, i]:= b[OD, i] / b[SA, i];

k[ 5, i]:= b[FK, i] / b[VOA, i];

k[ 6, i]:= b[DOO, i] / b[FK, i];

k[ 7, i]:= b[DOO, i] / b[OD, i];

k[ 8, i]:= b[OD, i] / b[KiR, i];

k[ 9, i]:= b[Vpr, i] / _ZZ;

k[10, i]:= b[Vpr, i] / _DZ;

k[11, i]:= b[Ri, i] / b[SA, i];

end;

// Заполняем в таблицу относительные показатели

for i:= 3 downto 1 do // нужно заполнить 1ый, 2ой и 3й год

Begin

if i = 3 then m:= 1; // заполняем 1 год

if i = 2 then m:= 2; // заполняем 2 год

if i = 1 then m:= 4; // заполняем 3 год

n:= 1; StringGrid1.Cells[m, n]:= FormatFloat('0.00', k[ 1, i]);

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

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

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

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

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

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

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

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

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

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

end;

// Заполняем в таблицу изменения #1

m:= 3; // столбик

n:= 1; // начинаем с 1ой строчки

for i:= 1 to 11 do

Begin

StringGrid1.Cells[m, n]:= FormatFloat('0.00', k[i, 3] - k[i, 2]);

inc(n);

end;

// Заполняем в таблицу изменения #1

m:= 5; // столбик

n:= 1; // начинаем с 1ой строчки

for i:= 1 to 11 do

Begin

StringGrid1.Cells[m, n]:= FormatFloat('0.00', k[i, 1] - k[i, 2]);

inc(n);

end;

// Заполняем комментарий внизу таблицы на счёт типа фин. устойчивости

for i:= 3 downto 1 do // нужно заполнить 1ый, 2ой и 3й год

Begin

// 1 тип

if (f[Fs, i] >= 0) and (f[Ft, i] >= 0) and (f[Fo, i] >= 0) then

Begin

if i = 3 then // 1 год

Begin

Label4.Caption:= '1 тип - Абсолютная устойчивость финансового состояния:';

Label5.Caption:= 'Фс >= 0; Фт >= 0; Фо >= 0; т.е. S = {1, 1, 1}';

end;

if i = 2 then // 2 год

Begin

Label6.Caption:= '1 тип - Абсолютная устойчивость финансового состояния:';

Label7.Caption:= 'Фс >= 0; Фт >= 0; Фо >= 0; т.е. S = {1, 1, 1}';

end;

if i = 1 then // 3 год

Begin

Label8.Caption:= '1 тип - Абсолютная устойчивость финансового состояния:';

Label9.Caption:= 'Фс >= 0; Фт >= 0; Фо >= 0; т.е. S = {1, 1, 1}';

end;

end;

// 2 тип

if (f[Fs, i] < 0) and (f[Ft, i] >= 0) and (f[Fo, i] >= 0) then

Begin

if i = 3 then // 1 год

Begin

Label4.Caption:= '2 тип - Нормальная устойчивость финансового состояния:';

Label5.Caption:= 'Фс < 0; Фт >= 0; Фо >= 0; т.е. S = {0, 1, 1}';

end;

if i = 2 then // 2 год

Begin

Label6.Caption:= '2 тип - Нормальная устойчивость финансового состояния:';

Label7.Caption:= 'Фс < 0; Фт >= 0; Фо >= 0; т.е. S = {0, 1, 1}';

end;

if i = 1 then // 3 год

Begin

Label8.Caption:= '2 тип - Нормальная устойчивость финансового состояния:';

Label9.Caption:= 'Фс < 0; Фт >= 0; Фо >= 0; т.е. S = {0, 1, 1}';

end;

end;

// 3 тип

if (f[Fs, i] < 0) and (f[Ft, i] < 0) and (f[Fo, i] >= 0) then

Begin

if i = 3 then // 1 год

Begin

Label4.Caption:= '3 тип - Неустойчивое финансовое состояние:';

Label5.Caption:= 'Фс < 0; Фт < 0; Фо >= 0; т.е. S = {0, 0, 1}';

end;

if i = 2 then // 2 год

Begin

Label6.Caption:= '3 тип - Неустойчивое финансовое состояние:';

Label7.Caption:= 'Фс < 0; Фт < 0; Фо >= 0; т.е. S = {0, 0, 1}';

end;

if i = 1 then // 3 год

Begin

Label8.Caption:= '3 тип - Неустойчивое финансовое состояние:';

Label9.Caption:= 'Фс < 0; Фт < 0; Фо >= 0; т.е. S = {0, 0, 1}';

end;

end;

// 4 тип

if (f[Fs, i] < 0) and (f[Ft, i] < 0) and (f[Fo, i] < 0) then

Begin

if i = 3 then // 1 год

Begin

Label4.Caption:= '4 тип - Кризисное финансовое состояние:';

Label5.Caption:= 'Фс < 0; Фт < 0; Фо < 0; т.е. S = {0, 0, 0}';

end;

if i = 2 then // 2 год

Begin

Label6.Caption:= '4 тип - Кризисное финансовое состояние:';

Label7.Caption:= 'Фс < 0; Фт < 0; Фо < 0; т.е. S = {0, 0, 0}';

end;

if i = 1 then // 3 год

Begin

Label8.Caption:= '4 тип - Кризисное финансовое состояние:';

Label9.Caption:= 'Фс < 0; Фт < 0; Фо < 0; т.е. S = {0, 0, 0}';

end;

end;

end;

end;

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

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

Rect: TRect; State: TGridDrawState);

Var

s: String;

Flag: Cardinal;

H: Integer;

i, j, m: Byte;

Begin

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

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

Begin

for j:= 1 to 11 do // от 1 до 11 строчки

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 TForm10.Action1Execute(Sender: TObject);

Begin

PrintGrid(StringGrid1, lbCaption);

end;

{**** Панель - Диаграмма ****}

procedure TForm10.Action2Execute(Sender: TObject);

var i, j: Byte;

Begin

i:= 1; // столбик (1ый год)

for j:= 1 to 11 do // от 1ой до 11ой строчки (всего 11 коэффициентов)

Form11.Series1.AddXY(j, (StrToFloat(StringGrid1.Cells[i, j])));

i:= 2; // столбик (2ой год)

for j:= 1 to 11 do // от 1ой до 11ой строчки (всего 11 коэффициентов)

Form11.Series2.AddXY(j, (StrToFloat(StringGrid1.Cells[i, j])));

i:= 4; // столбик (3ий год)

for j:= 1 to 11 do // от 1ой до 11ой строчки (всего 11 коэффициентов)

Form11.Series3.AddXY(j, (StrToFloat(StringGrid1.Cells[i, j])));

Form11.Show;

end;

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

procedure TForm10.Action3Execute(Sender: TObject);

Begin

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

end;

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

procedure TForm10.Action4Execute(Sender: TObject);

Begin

Form22.Show;

end;

end.

 

2.2.7 UNIT TABL_4_GRAPH

unit Tabl_4_Graph;


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


Читайте в этой же книге: Interface | Implementation 1 страница | Implementation 2 страница | Implementation 3 страница | Implementation 4 страница | Interface |
<== предыдущая страница | следующая страница ==>
Else begin| Interface

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