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

📄 basedept01p.pas

📁 DELPHI DFM资源文件内码批量转换程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit basedept01p;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, ToolWin, ComCtrls, ImgList,
  DB, DBTables, STRUTILS, rmBaseEdit, rmBtnEdit, rmTVComboBox, ExtCtrls;

type
  Tbasedept01f = class(TForm)
    cbcszl: TCoolBar;
    spappend: TSpeedButton;
    Label56: TLabel;
    spexit: TSpeedButton;
    sppost: TSpeedButton;
    spedit: TSpeedButton;
    spcancel: TSpeedButton;
    Label57: TLabel;
    spdelete: TSpeedButton;
    Query1: TQuery;
    Query2: TQuery;
    ImageList1: TImageList;
    Splitter1: TSplitter;
    Panel1: TPanel;
    Label3: TLabel;
    Edit3: TEdit;
    Label1: TLabel;
    Edit1: TEdit;
    StatusBar1: TStatusBar;
    gb2: TLabel;
    workmantxt: TEdit;
    Panel2: TPanel;
    TreeView1: TTreeView;
    Cbtmp: TComboBox;
    Label2: TLabel;
    SpeedButton1: TSpeedButton;
    Tbasedept: TTable;
    Label4: TLabel;
    StateNum: TEdit;
    procedure spexitClick(Sender: TObject);
    procedure spappendClick(Sender: TObject);
    procedure REFRESHDATA;
    procedure REFRESHTREEVIEW;
    procedure FormShow(Sender: TObject);
    procedure spcancelClick(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure sppostClick(Sender: TObject);
    procedure spdeleteClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure TreeView1DblClick(Sender: TObject);
    procedure speditClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function checkdata:boolean;
  end;

var
  basedept01f: Tbasedept01f;
  flag,ADDMODE, EDITMODE: BOOLEAN;
  seltxt: string;
implementation
uses global, basedept02p;

{$R *.dfm}

procedure Tbasedept01f.spexitClick(Sender: TObject);
begin
  CLOSE;
end;

function tbasedept01f.checkdata:boolean;
var
  sql:string;
  i:integer;
begin
  perform(WM_NEXTDLGCTL,0,0);
  result:=true;
  flag:=true;
  // 编号,部门是否为空
  if edit3.Text='' then
  begin
    showmessage('部门编号不能为空');
    edit3.SetFocus;
    flag:=false;
    result:=flag;
    exit;
  end;
  if edit1.Text='' then
  begin
    showmessage('部门名称不能为空');
    edit1.SetFocus;
    flag:=false;
    result:=flag;
    exit;
  end;
  // 编号是否已存在
  if addmode then
  begin
    sql:='select * from basedept where dept_no='+''''+edit3.text+'''';
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add(sql);
    query1.Open;
    if not query1.IsEmpty then
    begin
      showmessage('该编号已存在');
      edit3.SetFocus;
      flag:=false;
      result:=flag;
      exit;
    end;
  end;
  //现场作业员工数栏是否合法
  if workmantxt.Text<>'' then
  begin
    try
      strtoint(workmantxt.Text);//是否全为数字型
    except
      showmessage('错误,输入的员工数包含非数字型字符!');
      workmantxt.SetFocus;
      flag:=false;
      result:=flag;
      exit;
    end;
  end;
end;

procedure Tbasedept01f.REFRESHData;
var
  POS, LEN, STR: INTEGER;
  SQL: string;
begin
  try
    if Tbasedept.State=dsinactive then
      Tbasedept.Open;
  except
  end;
  StatusBar1.Panels[0].text := '当前用户名:' + global.puser;
  StatusBar1.Panels[1].Text := '登录时间:' + global.logintime;
  StatusBar1.Panels[2].Text := '总部门数:' + inttostr(Tbasedept.RecordCount);
  if ADDMODE then
  begin
    EDIT1.Text := '';
    edit3.Text := '';
    workmantxt.Text :='';
    cbtmp.ItemIndex:=0;
    EDIT1.ReadOnly := FALSE;
    edit3.ReadOnly := false;
    workmantxt.ReadOnly :=FALSE;
  end
  else
  begin
    if treeview1.Selected = nil then
    begin
      edit1.Text := '';
      edit3.Text := '';
      workmantxt.Text :='';
      cbtmp.ItemIndex:=0;
    end // END   if treeview1.Selected = nil then
    else
    begin
      SQL := ' SELECT * FROM BASEDEPT WHERE ID=' +
             INTTOSTR(INTEGER(TREEVIEW1.Selected.DATA));
      QUERY1.CLOSE;
      QUERY1.SQL.Clear;
      QUERY1.SQL.ADD(SQL);
      QUERY1.Open;
      sql:='select count(*) as statenum from person where state=''是'' and '+
           ' depart_no='+''''+query1.fieldbyname('Dept_no').AsString+'''';
      query2.Close;
      query2.SQL.Clear;
      query2.SQL.Add(sql);
      query2.Open;
      if not QUERY1.IsEmpty then
      begin
        EDIT3.Text := QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING;
        EDIT1.Text := QUERY1.FIELDBYNAME('DEPART').ASSTRING;
        workmantxt.TEXT:= QUERY1.FIELDBYNAME('WORKMAN').ASSTRING;
        stateNum.Text:=Query2.fieldbyname('statenum').AsString;
        if QUERY1.FieldByName('TYPE').ASSTRING = 'Y' then
          cbtmp.ItemIndex := 0
        else
          cbtmp.ItemIndex := 1;
      end;
    end; //  if treeview1.Selected = nil then
  end;

  if ADDMODE or EDITMODE then
  begin
    SPPOST.Visible := TRUE;
    SPAPPEND.Visible := FALSE;
    SPCANCEL.Visible := TRUE;
    SPEDIT.Visible := FALSE;
    SPDELETE.Enabled := FALSE;
    EDIT1.ReadOnly := FALSE;
    PANEL1.Enabled := TRUE;
    panel2.Enabled:=false;
  end
  else
  begin
    SPPOST.Visible := FALSE;
    SPAPPEND.Visible := TRUE;
    SPCANCEL.Visible := FALSE;
    SPEDIT.Visible := TRUE;
    SPDELETE.Enabled := TRUE;
    PANEL1.Enabled := FALSE;
    panel2.Enabled:=true;
  end;
end;

procedure Tbasedept01f.spappendClick(Sender: TObject);
begin
  ADDMODE := TRUE;
  REFRESHDATA;
  if PANEL1.Enabled then
    EDIT3.SetFocus;
end;

procedure Tbasedept01f.REFRESHTREEVIEW;
var
  SQL, STR: string;
  len, i: INTEGER;
  NODE: TTREENODE;
begin
  TREEVIEW1.Items.Clear;
  SQL := 'SELECT * FROM BASEDEPT ORDER BY len(TYPE_NO),TYPE_NO';
  QUERY1.Close;
  QUERY1.SQL.Clear;
  QUERY1.SQL.Add(SQL);
  QUERY1.OPEN;
  while not QUERY1.Eof do
  begin
    //定位其父节点
    len := LENGTH(QUERY1.FIELDBYNAME('TYPE_NO').AsString);
    //如果为第一层
    case len of
      2:
        begin
          TREEVIEW1.Selected := nil;
          STR := '(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
                 ')' + QUERY1.FIELDBYNAME('DEPART').AsString;
          NODE := TREEVIEW1.Items.Add(nil, STR);
          NODE.Data := POINTER(QUERY1.FIELDBYNAME('ID').ASINTEGER);
        end;
      4:
        begin // 4 case
          //找出父节点
          SQL := MIDSTR(QUERY1.FIELDBYNAME('TYPE_NO').AsString, 0, 2);
          SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + SQL + '''';
          QUERY2.Close;
          QUERY2.SQL.Clear;
          QUERY2.SQL.Add(SQL);
          QUERY2.Open;
          if not QUERY2.IsEmpty then
          begin
            I := 0;
            while I < TREEVIEW1.Items.Count do
            begin
              NODE := TREEVIEW1.Items[I];
              if INTEGER(TREEVIEW1.Items[I].Data) =
                QUERY2.FieldByName('ID').AsInteger then
              begin
                STR := '(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
                  ')' + QUERY1.FIELDBYNAME('DEPART').AsString;
                NODE := TREEVIEW1.Items.AddChild(NODE, STR);
                NODE.Data := POINTER(QUERY1.FieldByName('ID').AsInteger);
              end; //  end if INTEGER(TREEVIEW1.Items[I].Data) =
              I := I + 1;
            end; // end   while I < TREEVIEW1.Items.Count do
          end; // end   if not QUERY2.IsEmpty then
        end; // end case 4
      6:
        begin // 6 case
          //找出父节点
          SQL := MIDSTR(QUERY1.FIELDBYNAME('TYPE_NO').AsString, 0, 4);
          SQL := ' SELECT * FROM BASEDEPT WHERE TYPE_NO=' + '''' + SQL + '''';
          QUERY2.Close;
          QUERY2.SQL.Clear;
          QUERY2.SQL.Add(SQL);
          QUERY2.Open;
          if not QUERY2.IsEmpty then
          begin
            I := 0;
            while I < TREEVIEW1.Items.Count do
            begin
              NODE := TREEVIEW1.Items[I];
              if INTEGER(TREEVIEW1.Items[I].Data) =
                QUERY2.FieldByName('ID').AsInteger then
              begin
                STR := '(' + QUERY1.FIELDBYNAME('DEPT_NO').ASSTRING +
                  ')' + QUERY1.FIELDBYNAME('DEPART').AsString;
                NODE := TREEVIEW1.Items.AddChild(NODE, STR);
                NODE.Data := POINTER(QUERY1.FieldByName('ID').AsInteger);
              end; //  end if INTEGER(TREEVIEW1.Items[I].Data) =
              I := I + 1;
            end; // end   while I < TREEVIEW1.Items.Count do
          end; // end   if not QUERY2.IsEmpty then
        end; // end case 6
    end; // end case
    QUERY1.Next;
  end; // end   while not QUERY1.Eof do
  TREEVIEW1.FullExpand;
end;

procedure Tbasedept01f.FormShow(Sender: TObject);
begin
  REFRESHTREEVIEW;
  REFRESHDATA;
end;

procedure Tbasedept01f.spcancelClick(Sender: TObject);
begin
  ADDMODE := FALSE;
  EDITMODE := FALSE;
  REFRESHDATA;
end;

procedure Tbasedept01f.TreeView1Click(Sender: TObject);
begin
  refreshdata;
end;

procedure Tbasedept01f.sppostClick(Sender: TObject);
var
  SQL, LSQL,FTYPE_NO, deptno, deptname,ftype,ftmp,workmen:string;
  I, len: INTEGER;
  FLAG: BOOLEAN;
  NODE: TTREENODE;
begin
  if cbtmp.ItemIndex=0 then
  begin
    ftype:='Y';
    ftmp:='本厂';
  end;
  if cbtmp.ItemIndex=1 then
  begin

⌨️ 快捷键说明

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