Скачиваний:
28
Добавлен:
01.05.2014
Размер:
1.9 Кб
Скачать
unit Core;

interface

uses
Classes, Instances, Attribute, RuleItem, Grids, FastVector, DmmConstants;

type TDMCore = class

private

m_instances: TDMInstances;

m_rules: TList;

public

constructor Create;

procedure SetData(var inst: TDMInstances);

function GetData(): TDMInstances;

procedure SetRules(rules: TList);

function GetRules(): TList;

procedure UpdateTable(StringGrid: TStringGrid);

end;

implementation

uses SysUtils;

constructor TDMCore.Create;
begin
m_instances:=nil;
m_rules:=nil;
end;

procedure TDMCore.SetData(var inst: TDMInstances);
begin
m_instances:=inst;
end;

procedure TDMCore.SetRules(rules: TList);
begin
m_rules:=rules;
end;

function TDMCore.GetData(): TDMInstances;
begin
GetData:=m_instances;
end;

function TDMCore.GetRules(): TList;
begin
GetRules:=m_rules;
end;

procedure TDMCore.UpdateTable(stringGrid: TStringGrid);
var
attrNum: integer;
instancesNum: integer;
attrs: TDMFastVector;
inst: TDMInstances;
cur: TDMInstance;
attr: TDMAttribute;
i,j: integer;
begin
attrs:=m_instances.attributes();
attrNum:=attrs.size();
instancesNum:=m_instances.numInstances();
stringGrid.ColCount:=attrNum+1;
stringGrid.RowCount:=instancesNum+1;
for i:=0 to attrNum-1 do
begin
StringGrid.Cells[i+1, 0]:=(attrs.elementAt(i) as TDMAttribute).name();
end;
for j:=0 to instancesNum-1 do
begin
StringGrid.Cells[0, j+1]:=IntToStr(j);
cur:=m_instances.instance(j);
for i:=0 to attrNum-1 do
begin
attr:=cur.attribute(i);
if cur.isMissing(i) then
StringGrid.Cells[i+1, j+1]:='?'
else if attr.attrType=ATTRIBUTE_TYPE_NUMERIC then
StringGrid.Cells[i+1, j+1]:=FloatToStr(cur.value(i))
else
StringGrid.Cells[i+1, j+1]:=cur.stringValue(i);;
end;
end;
end;

end.
Соседние файлы в папке DMModules