📄 history.pas
字号:
unit History;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,wsTypes,wsCores,
ExtCtrls, Buttons, StdCtrls, TeEngine, Series, TeeProcs, Chart, DBChart,
ComCtrls, Db, DBTables,TeeFunci,Teeprevi,Registry,mmsystem,OleCtrls;
type
TfrmHistory = class(TForm)
PanelSecond: TPanel;
Panel2: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
TreeViewSelect: TTreeView;
Label1: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton2: TSpeedButton;
ViewGEMaster: TTable;
ViewGEMasterProjectID: TStringField;
ViewGEMasterHourseID: TStringField;
ViewGEMasterGroupID: TStringField;
ViewGEMasterGroupIdLookup: TStringField;
dsViewGEMaster: TDataSource;
dsViewGEDetail: TDataSource;
ViewGEDetail: TTable;
ViewGEDetailProjectID: TStringField;
ViewGEDetailHourseID: TStringField;
ViewGEDetailGroupID: TStringField;
ViewGEDetailExtensionID: TStringField;
ViewGEDetailExtensionIDLookup: TStringField;
Panel1: TPanel;
GroupBox2: TGroupBox;
DBChart1: TDBChart;
Series13: TLineSeries;
Series4: TLineSeries;
Series2: TLineSeries;
Splitter2: TSplitter;
Panel4: TPanel;
Button2: TButton;
Button9: TButton;
Button8: TButton;
tbExtension: TTable;
tbExtensionAutoInc: TAutoIncField;
tbExtensionDDate: TDateTimeField;
tbExtensionHourseID: TStringField;
tbExtensionExtensionID: TStringField;
tbExtensionGravity: TFloatField;
tbExtensionHeight: TFloatField;
tbExtensionHorizonDiff: TFloatField;
tbExtensionStandardG: TFloatField;
tbExtensionAverageG: TFloatField;
tbExtensionAverageH: TFloatField;
tbExtensionState: TStringField;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
tbExtensionStandardG17: TFloatField;
tbExtensionStandardG13: TFloatField;
tbExtensionStandardG07: TFloatField;
tbExtensionStandardG03: TFloatField;
Series1: TAreaSeries;
Series3: TAreaSeries;
Series5: TAreaSeries;
Series6: TAreaSeries;
Series7: TAreaSeries;
tbExtensionStandardG2: TFloatField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TreeViewSelectChange(Sender: TObject; Node: TTreeNode);
procedure TreeViewSelectChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
procedure FormDestroy(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure ScrollAxis(Axis:TChartAxis; Const Percent:Double);
procedure HorizScroll(Const Percent:Double);
procedure VertScroll(Const Percent:Double);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure tbExtensionCalcFields(DataSet: TDataSet);
private
{ Private declarations }
StrExtensionID :String;
public
{ Public declarations }
end;
var
frmHistory: TfrmHistory;
implementation
uses MainDB;
{$R *.DFM}
procedure TfrmHistory.FormCreate(Sender: TObject);
var
RootNode,CurrentNode,LastLayerNode:TTreeNode;
iSeq,iRow:Integer;
n :integer;
begin
Width:=799;
Height:=422;
Top:=2;
Left:=0;
StrExtensionId:='';
tbExtension.Open;
With dmMainDB do
begin
if ViewGEMaster.State=dsInactive then
ViewGEMaster.Open
else
ViewGEMaster.First;
if ViewGEDetail.State=dsInactive then
ViewGEDetail.Open
else
ViewGEDetail.First;
ViewGEMaster.Filter:='ProjectID='+''''+GProjectInfo.ProjectID+''''+' and HourseID='+''''+GProjectInfo.HourseID+'''';
ViewGEMaster.Filtered:=True;
try
TreeViewSelect.Items.BeginUpdate;
RootNode:=TreeViewSelect.Items.Add(nil,GProjectInfo.HourseName+' ['+GProjectInfo.HourseID+']');
RootNode.ImageIndex:=0;
RootNode.StateIndex:=1;
RootNode.SelectedIndex:=3;
while not ViewGEMaster.Eof do
begin
CurrentNode:=TreeViewSelect.Items.AddChild(RootNode,ViewGEMaster['GroupIDLookup']+' ['+ViewGEMaster['GroupID']+']');
CurrentNode.ImageIndex:=0;
CurrentNode.SelectedIndex:=3;
ViewGEDetail.First;
While not (ViewGEDetail.Eof) do
begin
LastLayerNode:=TreeViewSelect.Items.AddChild(CurrentNode,ViewGEDetail['ExtensionIDLookup']+' ['+ViewGEDetail['ExtensionID']+']');
LastLayerNode.ImageIndex:=2;
LastLayerNode.SelectedIndex:=3;
iSeq:=StrToInt(ViewGEDetail['ExtensionID']);
if (iSeq>MaxExtensionCount-1) then
iSeq:=MaxExtensionCount-1;
if (iSeq<0) then
iSeq:=0;
AllExtension[iSeq].GroupID:=ViewGEDetail['GroupID'];
AllExtension[iSeq].ExtensionID:=ViewGEDetail['ExtensionID'];
StateInfo.CurrentExtensionCount:=StateInfo.CurrentExtensionCount+1;
ViewGEDetail.Next;
end;
ViewGEMaster.Next;
end;
finally
TreeViewSelect.FullExpand;
TreeViewSelect.Items.EndUpdate;
CurrentNode:=RootNode.getFirstChild;
if CurrentNode<>nil then
begin
CurrentNode:=CurrentNode.getFirstChild;
if CurrentNode<>nil then
StrExtensionId:=GetID(CurrentNode.Text);
end;
ViewGEMaster.Close;
ViewGEDetail.Close;
end;
end;
//
DBChart1.Hint:='鼠标左键框选可实现图表缩放'+#13+'鼠标右键拖拽可实现坐标移动';
CurrentNode:=TreeViewSelect.Items.GetFirstNode;
if CurrentNode<>nil then
begin
CurrentNode:=CurrentNode.getFirstChild;
if CurrentNode<>nil then
CurrentNode:=CurrentNode.getFirstChild;
end;
if CurrentNode<>nil then
StrExtensionID:=GetID(CurrentNode.Text)
else
StrExtensionID:='000';
tbExtension.close;
tbExtension.filter:='hourseid='+GProjectInfo.HourseID+' And '+'extensionid='+StrExtensionID;
tbExtension.filtered:=true;
tbExtension.Open;
series2.YValues.ValueSource:='gravity';
Series13.YValues.ValueSource:='standardg';
dbchart1.Page:=dbchart1.NumPages;
end;
procedure TfrmHistory.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmHistory.TreeViewSelectChange(Sender: TObject;
Node: TTreeNode);
begin
StrExtensionID:=GetID(Node.Text);
tbExtension.close;
tbExtension.filter:='hourseid='+GProjectInfo.HourseID+' And '+'extensionid='+StrExtensionID;
tbExtension.filtered:=true;
tbExtension.Open;
series2.YValues.ValueSource:='gravity';
Series13.YValues.ValueSource:='standardg';
dbchart1.Page:=dbchart1.NumPages;
end;
procedure TfrmHistory.TreeViewSelectChanging(Sender: TObject;
Node: TTreeNode; var AllowChange: Boolean);
begin
if (Node.Level=0) or (Node.Level=1) then
AllowChange:=False
else
AllowChange:=True;
end;
procedure TfrmHistory.FormDestroy(Sender: TObject);
begin
tbExtension.Close;
end;
procedure TfrmHistory.SpeedButton7Click(Sender: TObject);
begin
VertScroll(-10);
end;
procedure TfrmHistory.SpeedButton6Click(Sender: TObject);
begin
HorizScroll(10);
end;
procedure TfrmHistory.SpeedButton10Click(Sender: TObject);
begin
VertScroll(10);
end;
procedure TfrmHistory.SpeedButton9Click(Sender: TObject);
begin
HorizScroll(-10);
end;
procedure TfrmHistory.SpeedButton8Click(Sender: TObject);
begin
dbchart1.UndoZoom;
dbchart1.Page:=dbchart1.NumPages;
end;
procedure TfrmHistory.ScrollAxis(Axis:TChartAxis; Const Percent:Double);
var Amount:Double;
begin
With Axis do
begin
Amount:=-((Maximum-Minimum)/(100.0/Percent));
SetMinMax(Minimum-Amount,Maximum-Amount);
end;
end;
procedure TfrmHistory.HorizScroll(Const Percent:Double);
begin
ScrollAxis(DBChart1.TopAxis,Percent);
ScrollAxis(DBChart1.BottomAxis,Percent);
// SpeedButton5.Enabled:=True;
end;
procedure TfrmHistory.VertScroll(Const Percent:Double);
begin
ScrollAxis(DBChart1.LeftAxis,Percent);
ScrollAxis(DBChart1.RightAxis,Percent);
// SpeedButton5.Enabled:=True;
end;
procedure TfrmHistory.Button8Click(Sender: TObject);
begin
DBChart1.ZoomPercent(125);
SpeedButton5.Enabled:=True;
end;
procedure TfrmHistory.Button9Click(Sender: TObject);
begin
DBChart1.ZoomPercent(80);
SpeedButton5.Enabled:=True;
end;
procedure TfrmHistory.Button2Click(Sender: TObject);
begin
ChartPreview(frmHistory,dbchart1);
end;
procedure TfrmHistory.tbExtensionCalcFields(DataSet: TDataSet);
begin
With tbExtension do
begin
Fieldbyname('StandardG17').asFloat:=Fieldbyname('StandardG').asFloat*1.7;
Fieldbyname('StandardG13').asFloat:=Fieldbyname('StandardG').asFloat*1.3;
Fieldbyname('StandardG07').asFloat:=Fieldbyname('StandardG').asFloat*0.7;
Fieldbyname('StandardG03').asFloat:=Fieldbyname('StandardG').asFloat*0.3;
FieldByName('StandardG2').asFloat:=FieldByName('StandardG').asFloat*2;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -