📄 complaint.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 + -