⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 history.pas

📁 这是一个正式的项目工程
💻 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 + -