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

📄 unitevlo.pas

📁 评估系统
💻 PAS
字号:
unit unitEvlo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XPMan, ComCtrls, DB, ADODB, ImgList, StdCtrls, ExtCtrls;

type
  TfrmDM = class(TForm)
    tv: TTreeView;
    XPManifest1: TXPManifest;
    ImageList1: TImageList;
    fdType: TRadioGroup;
    edtVR: TLabeledEdit;
    tabEV: TTabControl;
    memEV: TMemo;
    edtWe: TLabeledEdit;
    Label1: TLabel;
    btnOK: TButton;
    btnCancel: TButton;
    btnApp: TButton;
    procedure tvMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure fdTypeClick(Sender: TObject);
    procedure tabEVChange(Sender: TObject);
    procedure tvChange(Sender: TObject; Node: TTreeNode);
    procedure edtVRChange(Sender: TObject);
    procedure memEVChange(Sender: TObject);
    procedure tvEdited(Sender: TObject; Node: TTreeNode; var S: String);
    procedure edtWeChange(Sender: TObject);
    procedure btnAppClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
  private
    { Private declarations }
    evMemo: TList;
    tabName: string;
    procedure CreateTree;
    procedure GetVal(temp:TTreeNode);
    //procedure SetVal(temp:TTreeNode);
    procedure ExeSQL(sql:String);
  public
    { Public declarations }
  end;

var
  frmDM: TfrmDM;

function CreEvMana(evMe: TList;tabNa:string):integer;

implementation

uses unitDataType,unitDM;

{$R *.dfm}
function CreEvMana(evMe: TList;tabNa:string):integer;
var
  temp: TfrmDM;
begin
  temp:=TfrmDM.Create(Application);
  temp.evMemo := evMe;
  temp.CreateTree;
  temp.tabName:=tabNa;   
  try
    temp.ShowModal;
  finally
    temp.Free;
  end;
  result:=0;
end;

procedure TfrmDM.ExeSQL(sql:String);
var
  ao:TADOQuery;
begin
  ao:=TADOQuery.Create(nil);
  ao.Connection:= DM.AC;
  ao.SQL.Add (sql);
  ao.ExecSQL;
  ao.Free;
end;

procedure TfrmDM.CreateTree;
var
  t0,t1,t2,t3: TTreeNode;
  MyRec: PDes;
  i,j,k: integer;
begin
 with tv do
 begin
  //建立根结点
  Items.Clear;
  t0:=nil;
  for i:=0 to evMemo.Count-1 do
  begin
    myrec:=evMemo.Items[i];
    if myRec^.FPID = 0 then
    begin
      t0:=Items.AddObjectFirst(nil,myRec^.FFNa,myRec);
      t0.ImageIndex :=1;
      t0.SelectedIndex :=2;
    end;
  end;
  //一级指标
  for i:=0 to evMemo.Count-1 do
  begin
    myrec:=evMemo.Items[i];
    if myRec^.FPID = PDes(t0.Data)^.FID then
    begin
      t1:=Items.AddChildObject(t0,myRec^.FFNa,myRec);
      t1.ImageIndex :=1;
      t1.SelectedIndex :=2;
      //二级指标
      for j:=0 to evMemo.Count -1 do
      begin
        myrec:=evMemo.Items[j];
        if myRec^.FPID = PDes(t1.Data)^.FID then
        begin
          t2:=Items.AddChildObject(t1,myRec^.FFNa,myRec);
          t2.ImageIndex :=1;
          t2.SelectedIndex :=2;
          //三级指标
          for k:=0 to evMemo.Count - 1 do
          begin
            myRec:=evMemo.Items[k];
            if myRec^.FPID = PDes(t2.Data)^.FID then
            begin
              t3:=Items.AddChildObject(t2,myRec^.FFNa,myRec);
              t3.ImageIndex :=1;
              t3.SelectedIndex :=2;
            end;
          end;
        end;
      end;
    end;
  end;
  t0.Expand(true);
  t0.Selected :=true;
 end;
end;

procedure TfrmDM.GetVal(temp:TTreeNode);
var
  s:string;
begin
    fdType.ItemIndex := ord(PDes(temp.Data)^.FFFt);
    edtVR.Text := PDes(temp.Data)^.FVal;
    edtWe.Text := format('%.2f',[PDes(temp.Data)^.FFWe]);
    case tabEV.TabIndex of
      0: s:=PDes(temp.Data)^.FFTa;
      1: s:=PDes(temp.Data)^.FFEv;
      2: s:=PDes(temp.Data)^.FFDj;
    end;
    memEV.Lines.Clear;
    memEV.Lines.Text := s;
end;

procedure TfrmDM.tvMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  temp: TTreeNode;
begin
  if Button=mbLeft then
  begin
    temp:=tv.GetNodeAt(x,y);
    temp.Selected := true;
    GetVal(temp);
  end;
end;

procedure TfrmDM.fdTypeClick(Sender: TObject);
var
  temp: TTreeNode;
begin
  temp:=tv.Selected;
  PDes(temp.Data)^.FFFt := fdType.ItemIndex = 1;
end;

procedure TfrmDM.tabEVChange(Sender: TObject);
var
  temp: TTreeNode;
  s:string;
begin
  temp:=tv.Selected;
  case tabEV.TabIndex of
    0: s:=PDes(temp.Data)^.FFTa;
    1: s:=PDes(temp.Data)^.FFEv;
    2: s:=PDes(temp.Data)^.FFDj;
  end;
  memEV.Lines.Clear;
  memEV.Lines.Text := s;
end;

procedure TfrmDM.tvChange(Sender: TObject; Node: TTreeNode);
begin
  GetVal(node);
end;

procedure TfrmDM.edtVRChange(Sender: TObject);
var
  temp: TTreeNode;
begin
  temp:=tv.Selected;
  PDes(temp.Data)^.FVal := edtVR.Text;
end;

procedure TfrmDM.memEVChange(Sender: TObject);
var
  temp: TTreeNode;
  s: string;
begin
  temp:=tv.Selected;
  s:=memEV.Lines.Text;
  case tabEV.TabIndex of
    0: PDes(temp.Data)^.FFTa:=s;
    1: PDes(temp.Data)^.FFEv:=s;
    2: PDes(temp.Data)^.FFDj:=s;
  end;
end;

procedure TfrmDM.tvEdited(Sender: TObject; Node: TTreeNode; var S: String);
begin
  PDes(Node.Data)^.FFNa := S;
end;

procedure TfrmDM.edtWeChange(Sender: TObject);
var
  temp: TTreeNode;
begin
  temp:=tv.Selected;
  try
    PDes(temp.Data)^.FFWe := strtofloat(edtWe.Text);
  except
    Application.MessageBox('adf','weewr');
    edtWe.Text := format('%.2f',[PDes(temp.Data)^.FFWe]);
  end;
end;

procedure TfrmDM.btnAppClick(Sender: TObject);
var
  i:integer;
  temp: TTreeNode;
  sql:String;
  myRec: PDes;
begin
  for i:=0 to tv.Items.Count-1 do
  begin
    temp:=tv.Items.Item[i];
    myRec:=temp.Data;
    sql:='UPDATE '+tabName+' SET parentID='+ inttostr(myRec^.FPID);
    sql:=sql+', Fieldname="'+myRec^.FFNa;
    sql:=sql+'", Valuerange="'+myRec^.FVal;
    sql:=sql+'", Targetdescription="'+myRec^.FFTa;
    sql:=sql+'", Evaluatestandard="'+myRec^.FFEv;
    sql:=sql+'", fieldtype='+inttostr(ord(myRec^.FFFt));
    sql:=sql+', fieldweight='+format('%.2f',[myRec^.FFWe]);
    //sql:=sql+', fieldcount="'+myRec^.FFCo;
    sql:=sql+', datajudge="'+myRec^.FFDj;
    sql:=sql+'" WHERE ID='+inttostr(myRec^.FID);
    ExeSQL(sql); 
  end;
end;

procedure TfrmDM.btnOKClick(Sender: TObject);
begin
  btnAppClick(sender);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -