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

📄 complaint.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
字号:
unit complaint;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls, DBCtrls, Mask, ExtCtrls,
  ComCtrls;

type
  Tfrm_complaint = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel3: TPanel;
    Panel1: TPanel;
    btn_first: TButton;
    btn_prev: TButton;
    btn_next: TButton;
    btn_last: TButton;
    btn_addnew: TButton;
    btn_edit: TButton;
    btn_save: TButton;
    btn_cancel: TButton;
    btn_delete: TButton;
    TabSheet2: TTabSheet;
    Panel2: TPanel;
    btn_brs: TButton;
    btn_qry: TButton;
    btn_clr: TButton;
    btn_prt: TButton;
    GroupBox2: TGroupBox;
    DBGrid1: TDBGrid;
    qcomplaint: TQuery;
    dscomplaint: TDataSource;
    Udcomplaint: TUpdateSQL;
    Quse: TQuery;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    EditDBEdit2: TDBEdit;
    MemoDBMemo: TDBMemo;
    EditDBEdit3: TDBEdit;
    EditDBEdit4: TDBEdit;
    EditDBEdit6: TDBEdit;
    MemoDBMemo2: TDBMemo;
    EditDBEdit7: TDBEdit;
    MemoDBMemo3: TDBMemo;
    EditDBEdit8: TDBEdit;
    MemoDBMemo4: TDBMemo;
    EditDBEdit9: TDBEdit;
    EditDBEdit10: TDBEdit;
    Label19: TLabel;
    DBEdit2: TDBEdit;
    Label20: TLabel;
    DBEdit6: TDBEdit;
    Label21: TLabel;
    DBEdit7: TDBEdit;
    Label22: TLabel;
    DBEdit8: TDBEdit;
    qcomplaintBDEDesigner: TAutoIncField;
    qcomplaintBDEDesigner2: TStringField;
    qcomplaintBDEDesigner3: TDateTimeField;
    qcomplaintBDEDesigner4: TMemoField;
    qcomplaintBDEDesigner5: TStringField;
    qcomplaintBDEDesigner6: TDateTimeField;
    qcomplaintBDEDesigner8: TDateTimeField;
    qcomplaintBDEDesigner9: TMemoField;
    qcomplaintBDEDesigner10: TStringField;
    qcomplaintBDEDesigner11: TMemoField;
    qcomplaintBDEDesigner12: TStringField;
    qcomplaintBDEDesigner13: TMemoField;
    qcomplaintBDEDesigner14: TStringField;
    qcomplaintBDEDesigner15: TDateTimeField;
    qcomplaintBDEDesigner16: TStringField;
    qcomplaintBDEDesigner17: TStringField;
    qcomplaintBDEDesigner18: TStringField;
    qcomplaintBDEDesigner19: TDateTimeField;
    qcomplaintBDEDesigner20: TStringField;
    qcomplaintBDEDesigner21: TStringField;
    qcomplaintBDEDesigner22: TStringField;
    qcomplaintBDEDesigner23: TStringField;
    GroupBox4: TGroupBox;
    cbcstmname: TComboBox;
    GroupBox3: TGroupBox;
    cbbsc: TComboBox;
    DBComboBox1: TDBComboBox;
    DBCheckBox1: TDBCheckBox;
    qcomplaintBDEDesigner7: TStringField;
    qcomplaintBDEDesigner24: TDateTimeField;
    qcomplaintBDEDesigner26: TStringField;
    qcomplaintBDEDesigner27: TStringField;
    GroupBox1: TGroupBox;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label25: TLabel;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit9: TDBEdit;
    Label9: TLabel;
    DBComboBox5: TDBComboBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure btn_firstClick(Sender: TObject);
    procedure btn_lastClick(Sender: TObject);
    procedure btn_addnewClick(Sender: TObject);
    procedure btn_saveClick(Sender: TObject);
    procedure btn_prevClick(Sender: TObject);
    procedure btn_nextClick(Sender: TObject);
    procedure btn_editClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBComboBox1Exit(Sender: TObject);
    procedure qcomplaintAfterScroll(DataSet: TDataSet);
    procedure TabSheet2Enter(Sender: TObject);
    procedure btn_brsClick(Sender: TObject);
    procedure btn_qryClick(Sender: TObject);
    procedure btn_clrClick(Sender: TObject);
    procedure btn_prtClick(Sender: TObject);
    procedure DBComboBox5Exit(Sender: TObject);
    procedure DBComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    procedure LockEdit;
    //定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
    //或者编辑记录以前,不可以修改
    procedure UnlockEdit;
    //定义函数,用来让输入文本框可以编辑
    procedure DisableBtn;
    //定义过程,用来使某些按钮失效
    procedure EnableBtn;
    //定义过程,用来使某些按钮有效
  public
    { Public declarations }

  end;

var
  frm_complaint: Tfrm_complaint;

implementation

uses  data, basepay, rp_complaint, Unit_wxp;



{$R *.dfm}
//***************释放空间********************
procedure Tfrm_complaint.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
        Action:=cafree;
end;

//***************以下是自定义的按纽和编辑的可否应用部分*********************
//自定义过程,用来确定每个Edit空间是否可以编辑
procedure Tfrm_complaint.LockEdit;
begin

panel3.Enabled :=false;
DBEdit2.Enabled :=false;
DBEdit6.Enabled :=false;
DBEdit7.Enabled :=false;
DBEdit8.Enabled :=false;
end;

procedure Tfrm_complaint.UnlockEdit ;
begin
panel3.Enabled :=true;
DBEdit2.Enabled :=false;
DBEdit6.Enabled :=false;
DBEdit7.Enabled :=false;
DBEdit8.Enabled :=false;

end;


procedure Tfrm_complaint.DisableBtn ;
begin
    btn_first.Enabled :=false;
    btn_prev.Enabled :=false;
    btn_next.Enabled :=false;
    btn_last.Enabled :=false;

    btn_addnew.Enabled :=false;
    btn_edit.Enabled :=false;
end;

procedure Tfrm_complaint.EnableBtn ;
begin
    btn_first.Enabled :=true;
    btn_prev.Enabled :=true;
    btn_next.Enabled :=true;
    btn_last.Enabled :=true;

    btn_addnew.Enabled :=true;
    btn_edit.Enabled :=true;

end;

//***************以上是自定义的按纽和编辑的可否应用部分*********************

//***************以下是按纽操作。*********************

procedure Tfrm_complaint.btn_firstClick(Sender: TObject);
begin
        if not qcomplaint.Bof then qcomplaint.First;
end;

procedure Tfrm_complaint.btn_lastClick(Sender: TObject);
begin
        if not qcomplaint.eof then qcomplaint.Last;
end;
 procedure Tfrm_complaint.btn_prevClick(Sender: TObject);
begin
        if not qcomplaint.Bof then qcomplaint.Prior;
end;

procedure Tfrm_complaint.btn_nextClick(Sender: TObject);
begin
        if not qcomplaint.Eof then qcomplaint.Next;
end;
procedure Tfrm_complaint.btn_addnewClick(Sender: TObject);
var
  Present: TDateTime;
begin
        UnlockEdit;
        qcomplaint.append;
        dbcombobox5.SetFocus ;

        DisableBtn;
        btn_save.Enabled :=true;
        btn_cancel.Enabled :=true;
//给下面审核栏默认值:

//日期:
    Present:= Now;
    qcomplaint.fieldbyname('录入日期').AsString:=datetimetostr(present);
//人名:
  with quse do begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select 主管,审核,录入 from pub_z_complaint');
    prepare;
    open;
    last;
    qcomplaint.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
    qcomplaint.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
    qcomplaint.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;

  end;
end;


procedure Tfrm_complaint.btn_saveClick(Sender: TObject);
begin
//if  RadioButton1.checked=true then  DBEdit10.Text :='是'
//    else DBEdit10.Text :='否';
//$%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{if  RadioButton1.checked=true then  DBEdit10.Text :='1111'
    else DBEdit10.Text :='2000';
 }
      qcomplaint.fieldbyname('办事处').AsString:=qcomplaint.fieldbyname('所属办事处').AsString;
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
      qcomplaint.ApplyUpdates;
      DatabaseJxw.commit;
       qcomplaint.CommitUpdates  ;
        //使编辑框和按钮有反应:
        LockEdit;
        EnableBtn ;
        btn_save.Enabled :=false;
        btn_cancel.Enabled :=false;
      except
        DatabaseJxw.Rollback;
        raise;
      end;

    end;
{    qcomplaint.Close ;
    qcomplaint.Open;}
end;



procedure Tfrm_complaint.btn_editClick(Sender: TObject);
begin
        qcomplaint.Edit ;
        //让文本框可以编辑
        UnlockEdit;
        //使一些按钮失效
        DisableBtn;
        btn_save.Enabled :=true;
        btn_cancel.Enabled :=true;

end;


procedure Tfrm_complaint.btn_cancelClick(Sender: TObject);
begin
        qcomplaint.Cancel ;

        lockedit;

        enablebtn;
        btn_cancel.Enabled :=false;
        btn_save.Enabled :=false;

end;


procedure Tfrm_complaint.btn_deleteClick(Sender: TObject);
begin
     qcomplaint.Delete;
      qcomplaint.ApplyUpdates ;
     lockedit;

     enablebtn;
     btn_delete.Enabled :=false;
     btn_save.Enabled :=false;

end;
//***************以上是按纽操作。*********************

procedure Tfrm_complaint.FormCreate(Sender: TObject);
begin
    lockedit;
    enablebtn;
  //通过quse读出客户号列表
  with quse do begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select 客户名称 from pub_z_client');
    prepare;
    open;
    while not eof do begin
      DBComboBox5.Items.Add(fieldbyname('客户名称').AsString);
      next;
    end;
  end;

    with qcomplaint do begin
    open;
    first;
    end;
end;



procedure Tfrm_complaint.DBComboBox1Exit(Sender: TObject);
begin
    //通过客户号 给出...。
    with quse do begin
      if active then close;
      sql.Clear;
      sql.Add('select * from pub_z_client where 客户号=:cstmno');
      parambyname('cstmno').AsString:=qcomplaint.fieldbyname('客户号').AsString ;
      open;
      while not eof do begin
      qcomplaint.fieldbyname('客户地址').AsString:=fieldbyname('客户地址').AsString;
      qcomplaint.fieldbyname('负责人').AsString:=fieldbyname('负责人').AsString;
      qcomplaint.fieldbyname('办事处').AsString:=fieldbyname('办事处').AsString;
      qcomplaint.fieldbyname('电话号码').AsString:=fieldbyname('电话号码').AsString;
      next;
      end;
   end;

end;

procedure Tfrm_complaint.qcomplaintAfterScroll(DataSet: TDataSet);
begin
{  with qcomplaint do begin
          RadioButton1.Checked :=false;
          RadioButton2.Checked :=false;
    if fieldbyname('是否调查').AsString ='是'
     then RadioButton1.Checked :=true
     else RadioButton2.Checked :=true;
  end;}
end;

procedure Tfrm_complaint.TabSheet2Enter(Sender: TObject);
begin
   with quse do begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select 客户名称 from pub_z_client');
    prepare;
    open;
      cbcstmname.Items.Clear ;
      while not Eof do begin
      cbcstmname.Items.Add(FieldByName('客户名称').AsString);
      Next;
      end;
    end;

  with quse do begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select 办事处名称 from pub_z_office');
    prepare;
    open;
      cbbsc.Items.Clear ;
      while not Eof do begin
      cbbsc.Items.Add(FieldByName('办事处名称').AsString);
      Next;
      end;
    end;
   //给出查询页的下拉列表。

end;

procedure Tfrm_complaint.btn_brsClick(Sender: TObject);
begin
    DBGrid1.DataSource :=dscomplaint;
    qcomplaint.filtered:=false;
end;

procedure Tfrm_complaint.btn_qryClick(Sender: TObject);
var
  qitem,q1,q2:string;
begin
     q1 :=cbbsc.Text;
     q2 :=cbcstmname.Text;
   //如果没有设置条件,给出提示:
  if (q1='') and (q2='')
  then  application.MessageBox('您还没有设置查询条件呢!','提示',MB_OK)
  else  begin //将输入加工成条件段

    if not(cbbsc.Text='') then
      begin
      q1:=cbbsc.Text;
      q1:=' 所属办事处='''+q1+''' ';
      end
    else
      q1:='';
    if not(cbcstmname.Text='') then
      begin
      q2:=cbcstmname.Text;
      q2:=' 客户名称='''+q2+''' ';
      end
    else
      q2:='';


     //将条件累加成where 子句
     qitem:=q1;
     if qitem='' then
         if q2<>'' then qitem:=q2 else qitem:=''
     else
         if q2<>'' then qitem:=qitem+' and '+q2 ;

   //根据条件过滤
    with qcomplaint do begin

      filter:=qitem;
      filtered:=true;

      if not findfirst then  begin
        application.MessageBox('没有您要的信息!','提示',MB_OK);
        btn_clrClick(btn_clr);
        end ;
    end;

end;

end;

procedure Tfrm_complaint.btn_clrClick(Sender: TObject);
begin
      cbbsc.Text :='';
      cbcstmname.Text :='';

end;

procedure Tfrm_complaint.btn_prtClick(Sender: TObject);
begin
     frp_complaint:=Tfrp_complaint.Create(application);
     frp_complaint.QuickRep1.Preview;
     frp_complaint.free;

end;

procedure Tfrm_complaint.DBComboBox5Exit(Sender: TObject);
begin
    //通过客户号 给出...。
    with quse do begin
      if active then close;
      sql.Clear;
      sql.Add('select * from pub_z_client where 客户名称=:cstm');
      parambyname('cstm').AsString:=qcomplaint.fieldbyname('客户名称').AsString ;
      open;
      DBComboBox1.Items.Clear  ;

      if findfirst then begin
      qcomplaint.fieldbyname('客户号').AsString:=fieldbyname('客户号').AsString;

      qcomplaint.fieldbyname('客户地址').AsString:=fieldbyname('客户地址').AsString;
      qcomplaint.fieldbyname('负责人').AsString:=fieldbyname('负责人').AsString;
      qcomplaint.fieldbyname('办事处').AsString:=fieldbyname('办事处').AsString;
      qcomplaint.fieldbyname('电话号码').AsString:=fieldbyname('电话号码').AsString;
      end;

      first;
      while not eof do begin
      DBComboBox1.Items.Add(fieldbyname('客户号').AsString);
      next;
      end;
   end;

end;

procedure Tfrm_complaint.DBComboBox1KeyPress(Sender: TObject;
  var Key: Char);
begin
 if Key = #13 then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end;
end;

procedure Tfrm_complaint.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if Key = #13 then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end;
end;

procedure Tfrm_complaint.FormDestroy(Sender: TObject);
begin
frm_complaint:=nil
end;

end.

⌨️ 快捷键说明

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