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

📄 pas_office.~pas

📁 比较详细的功能
💻 ~PAS
字号:
unit pas_office;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ComCtrls, Buttons, ToolWin, StdCtrls;

type
  TForm_office = class(TForm)
    ToolBar1: TToolBar;
    select: TSpeedButton;
    add: TSpeedButton;
    modify: TSpeedButton;
    del: TSpeedButton;
    edit_money: TEdit;
    dtp_end: TDateTimePicker;
    dtp_start: TDateTimePicker;
    Label4: TLabel;
    Label5: TLabel;
    Label3: TLabel;
    cb_thing: TComboBox;
    cb_depart: TComboBox;
    Label2: TLabel;
    Label1: TLabel;
    Label13: TLabel;
    Label9: TLabel;
    Label6: TLabel;
    Label11: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    edit_remarks: TEdit;
    dtp_optime: TDateTimePicker;
    edit_money2: TEdit;
    Edit_num: TEdit;
    cb_thing2: TComboBox;
    cb_depart2: TComboBox;
    Edit_no: TEdit;
    DBGrid: TDBGrid;
    procedure cb_depart2DropDown(Sender: TObject);
    procedure cb_thing2DropDown(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure addClick(Sender: TObject);
    procedure modifyClick(Sender: TObject);
    procedure selectClick(Sender: TObject);
    procedure delClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure cb_thingDropDown(Sender: TObject);
    procedure DBGridCellClick(Column: TColumn);
    procedure cb_departDropDown(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_office: TForm_office;

implementation
     uses pas_dm2, Pas_DM;
{$R *.dfm}

procedure TForm_office.cb_depart2DropDown(Sender: TObject);
var
   s:string;
begin
  try
   with dm2.query_office do
   begin
     close;
     sql.Clear;
     s:='select dp_no 部门 from depart';
     sql.Add(s);
     open;
     cb_depart2.Items.Clear;
     while not dm2.query_office.Eof do
     begin
      cb_depart2.Items.Add(fields.Fields[0].asstring);
      next;
    end;
   end;
  except 
  end;
end;

procedure TForm_office.cb_thing2DropDown(Sender: TObject);
var
   s:string;
begin
  try
   with dm2.query_office do
   begin
     close;
     sql.Clear;
     s:='select distinct os_thing 事物 from officesupplies';
     sql.Add(s);
     open;
     cb_thing2.Items.Clear;
     while not dm2.query_office.Eof do
     begin
      cb_thing2.Items.Add(fields.Fields[0].asstring);
      next;
    end;
   end;
  except
  end;
end;

procedure TForm_office.FormShow(Sender: TObject);
begin
  dtp_start.DateTime:=now();
  dtp_end.DateTime:=now();
  dtp_optime.DateTime:=now();
end;

procedure TForm_office.addClick(Sender: TObject);
var
   s:string;
begin

      if (cb_depart2.Text='') or (cb_thing2.Text='') or (edit_money2.Text='')
    then
    begin
        showmessage('不能为空');
        exit;
    end;

    with pas_dm2.DM2.Query_office do
    begin
      try
          Close;
          SQL.Clear;
          s:='insert into officesupplies(os_depart,os_thing,os_num,os_money,os_remarks,os_optime,os_now) values('''+trim(cb_depart2.Text)+''','''+
                trim(cb_thing2.Text)+''','''+trim(edit_num.Text)+''','''+trim(edit_money2.Text)+''','''+
                trim(edit_remarks.Text)+''','''+datetostr(dtp_optime.DateTime)+''','''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+''')';
                SQL.Add(s);

            ExecSQL;
            showmessage('添加 '+cb_thing2.Text+' 成功!');
           except
         end;
       end;



    s:= ' where os_depart like ''%' +
     trim(cb_depart2.Text)+'%'' and os_thing like ''%'+
     trim(cb_thing2.Text)+'%''';
     with pas_dm2.DM2.Query_office do
     begin
        close;
        sql.Clear;
        sql.Add(' select c as 自动编号,'+
          ' os_depart as 部门 ,'+
          ' os_thing as 事物,'+
          ' os_num as 数量,'+
          ' os_money as 金额,'+
          ' os_remarks as 备注,'+
          ' os_optime as 发生时间'+
          ' from officesupplies '+s);
        open;
     end;
end;

procedure TForm_office.modifyClick(Sender: TObject);
var
   s:string;
begin
    if (cb_depart2.Text='') or (cb_thing2.Text='') or (edit_money2.Text='')
    then
    begin
        showmessage('不能为空');
        exit;
    end;

    with pas_dm2.DM2.Query_office do
    begin
      try
          Close;
          SQL.Clear;
          s:='update officesupplies set '+
             ' os_depart ='''+trim(cb_depart2.Text)+
             ''',os_thing='''+trim(cb_thing2.Text)+
             ''',os_money='''+trim(edit_money2.Text)+
             ''',os_remarks='''+trim(edit_remarks.Text)+
             ''',os_num='''+trim(edit_num.Text)+
             ''',os_optime='''+datetostr(dtp_optime.DateTime)+
             ''',os_now='''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+''' where c='''+edit_no.Text+'''';
            SQL.Add(s);
            ExecSQL;
            showmessage('修改 '+cb_thing2.Text+' 成功!');
           except
         end;
       end;

     s:= ' where os_depart like ''%' +
     trim(cb_depart2.Text)+'%'' and os_thing like ''%'+
     trim(cb_thing2.Text)+'%''';
     with pas_dm2.DM2.Query_office do
     begin
        close;
        sql.Clear;
        sql.Add(' select c as 自动编号,'+
          ' os_depart as 部门 ,'+
          ' os_thing as 事物,'+
          ' os_num as 数量,'+
          ' os_money as 金额,'+
          ' os_remarks as 备注,'+
          ' os_optime as 发生时间'+
          ' from officesupplies '+s);
        open;
     end;

end;

procedure TForm_office.selectClick(Sender: TObject);
var
  s:string;
  i:integer;
begin
    i:=0;
     s:= ' where os_depart like ''%' +
     trim(cb_depart.Text)+'%'' and os_thing like ''%'+
     trim(cb_thing.Text)+'%'''+
     ' and datediff(day,os_optime,'''+datetostr(dtp_start.datetime)+''')<=0'+
     ' and datediff(day,os_optime,'''+datetostr(dtp_end.DateTime)+''')>=0';;
     with pas_dm2.DM2.Query_office do
     begin
        close;
        sql.Clear;
        sql.Add(' select c as 自动编号,'+
          ' os_depart as 部门 ,'+
          ' os_thing as 事物,'+
          ' os_num as 数量,'+
          ' os_money as 金额,'+
          ' os_remarks as 备注,'+
          ' os_optime as 发生时间'+
          ' from officesupplies '+s);
          open;
     end;

     dm2.query_office.First;
     while not dm2.Query_office.Eof do
     begin
      i:=i+dm2.Query_office.Fields.Fields[4].asinteger;
      dm2.Query_office.Next;
      end;
      edit_money.Text:=inttostr(i);  
end;

procedure TForm_office.delClick(Sender: TObject);
begin
   if edit_no.Text='' then
   begin
      showmessage('编号不能为空');
      exit;
   end;
   if IDOK=messagebox(handle,pchar(edit_no.text+'将被删除'),'警告', MB_OKCANCEL)
   then
   begin
   with pas_dm2.DM2.query_office do
   begin
   Close;
   SQL.Clear;
   SQL.Add('delete from officesupplies where c='''+edit_no.text+'''');
   ExecSQL;
   if RowsAffected=1 then
   begin
      showmessage(edit_no.text+'删除成功');
   end;
   end;
   
   end;
end;

procedure TForm_office.DBGrid1CellClick(Column: TColumn);
begin
   with pas_dm2.DM2.Query_office do
   begin
   if dbgrid.FieldCount=0 then
   begin
    showmessage('没有打开数据库');
    exit;
   end;
    if dbgrid.Fields[0].AsString='' then
    begin
    showmessage('数据库没有数据');
    exit;
    end;
    if dbgrid.Columns.Count=7 then
    begin
    edit_no.Text:=Fields.Fields[0].AsString;
    cb_depart2.Text:=Fields.Fields[1].AsString;
    cb_thing2.Text:=Fields.Fields[2].AsString;
    edit_num.Text:=Fields.Fields[3].AsString;
    edit_money2.Text:=Fields.Fields[4].AsString;
    edit_remarks.Text:=Fields.Fields[5].AsString;
    dtp_optime.DateTime:=fields.Fields[6].AsDateTime;
    end;
  end;
 end;


procedure TForm_office.cb_thingDropDown(Sender: TObject);
var
   s:string;
begin
  try
   with dm2.query_office do
   begin
     close;
     sql.Clear;
     s:='select distinct os_thing 事物 from officesupplies';
     sql.Add(s);
     open;
     cb_thing.Items.Clear;
     while not dm2.query_office.Eof do
     begin
      cb_thing.Items.Add(fields.Fields[0].asstring);
      next;
    end;
   end;
  except
  end;
end;

procedure TForm_office.DBGridCellClick(Column: TColumn);
 begin
   with pas_dm2.DM2.Query_office do
   begin
   if dbgrid.FieldCount=0 then
   begin
    showmessage('没有打开数据库');
    exit;
   end;
    if dbgrid.Fields[0].AsString='' then
    begin
    showmessage('数据库没有数据');
    exit;
    end;
    if dbgrid.Columns.Count=7 then
    begin
    edit_no.Text:=Fields.Fields[0].AsString;
    cb_depart.Text:=Fields.Fields[1].AsString;
    cb_thing.Text:=Fields.Fields[2].AsString;
    edit_num.Text:=Fields.Fields[3].AsString;
    edit_money.Text:=Fields.Fields[4].AsString;
    edit_remarks.Text:=Fields.Fields[5].AsString;
    dtp_optime.DateTime:=fields.Fields[6].AsDateTime;
    end;
  end;
 end;

procedure TForm_office.cb_departDropDown(Sender: TObject);
var
  s:string;
begin
  try
   with dm2.query_office do
   begin
     close;
     sql.Clear;
     s:='select dp_no 部门 from depart';
     sql.Add(s);
     open;
     cb_depart.Items.Clear;
     while not dm2.query_office.Eof do
     begin
      cb_depart.Items.Add(fields.Fields[0].asstring);
      next;
    end;
   end;
  except 
  end;
end;

procedure TForm_office.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if   Key   =   VK_F4   then
      begin
          add.Click;
          Key   :=   0;
          exit;
      end;
      if   Key   =   VK_F1  then
      begin
          select.Click;
          Key   :=   0;
          exit;
      end;
end;

end.

⌨️ 快捷键说明

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