📄 u_bill_base.pas
字号:
unit U_Bill_Base;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_base, DBCtrls, Buttons, ExtCtrls, WinSkinData, DB, ADODB,
Grids, DBGridEh;
type
TF_Bill_Base = class(TF_base)
pnl_operate: TPanel;
btn_insert: TSpeedButton;
btn_find: TSpeedButton;
btn_save: TSpeedButton;
btn_cancel: TSpeedButton;
btn_delete: TSpeedButton;
btn_edit: TSpeedButton;
btn_refresh: TSpeedButton;
btn_print: TSpeedButton;
Ds_Master: TDataSource;
DS_Detail: TDataSource;
Panel1: TPanel;
DBGridEh: TDBGridEh;
DBNavigator: TDBNavigator;
Ado_Master: TADOTable;
ADO_Detail: TADOTable;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_insertClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure btn_editClick(Sender: TObject);
procedure Ado_MasterPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure btn_cancelClick(Sender: TObject);
procedure ADO_DetailPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure DBGridEhTitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
procedure btn_saveClick(Sender: TObject);
procedure DBGridEhDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_Bill_Base: TF_Bill_Base;
implementation
uses U_Function;
{$R *.dfm}
procedure TF_Bill_Base.FormCreate(Sender: TObject);
var i:integer;
begin
inherited;
if ISConnected then
Begin
if ActiveConnect<>nil then
Begin
Ado_Master.Connection:=ActiveConnect;
Ado_Detail.Connection:=ActiveConnect;
if Ado_Master.TableName<>'' then
Ado_master.Open;
if Ado_Detail.TableName<>'' then
Ado_Detail.Open;
end
Else
Begin
MessageDlg('对不起,数据源没有连接!', mtInformation, [mbOK], 0);
exit;
end;
end
else
Begin
MessageDlg('对不起,没有连接数据库,请与管理员联系!', mtInformation, [mbOK], 0);
exit;
end;
for i:=0 to Dbgrideh.Columns.Count-1 do
Begin
Dbgrideh.Columns[i].Title.TitleButton:=True;
end;
DBNavigator.DataSource:=DS_Master;
Ado_master.Connection:=ActiveConnect;
Ado_Detail.Connection:=ActiveConnect;
end;
procedure TF_Bill_Base.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Action:=Cafree;
end;
procedure TF_Bill_Base.btn_insertClick(Sender: TObject);
begin
inherited;
// Ado_master.ReadOnly:=False;
// Ado_Detail.ReadOnly:=False;
Ado_Master.Append;
Dbgrideh.ReadOnly:=False;
Btn_insert.Enabled := False;
Btn_Delete.Enabled := False;
Btn_Edit.Enabled := false;
Btn_Cancel.Enabled := True; ;
Btn_Save.Enabled := True;
end;
procedure TF_Bill_Base.btn_deleteClick(Sender: TObject);
begin
inherited;
if Ado_master.RecordCount=0 then
Begin
Application.MessageBox('没有记录可删除!','提示信息',MB_iconError+MB_OK);
Exit;
end;
if Application.MessageBox('确认要删除这笔记录吗?这将会其关联数据!','确认信息',MB_ICONQuestion+MB_YESNO)=ID_NO then
Abort;
//Ado_Master.ReadOnly:=false;
//Ado_Detail.ReadOnly:=False;
end;
procedure TF_Bill_Base.btn_editClick(Sender: TObject);
begin
inherited;
if Ado_master.RecordCount=0 then
Begin
Application.MessageBox('没有记录可修改!','提示信息',MB_iconError+MB_OK);
Exit;
end;
//Ado_master.ReadOnly:=False;
//Ado_Detail.ReadOnly:=False;
Ado_Master.Edit;
dbgrideh.ReadOnly:=False;
Btn_insert.Enabled := False;
Btn_Delete.Enabled := False;
Btn_Edit.Enabled := False;
Btn_Cancel.Enabled := True; ;
Btn_Save.Enabled := True;
end;
procedure TF_Bill_Base.Ado_MasterPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
inherited;
if Activeconnect.Errors.Item[0].NativeError =2627 then
begin
Application.MessageBox('出现相同的单据编号,请检查后再保存!', '提示信息', MB_ICONERROR + MB_OK);
Abort;
end;
end;
procedure TF_Bill_Base.btn_cancelClick(Sender: TObject);
begin
inherited;
Ado_Master.Cancel;
Dbgrideh.ReadOnly:=True;
Btn_insert.Enabled := True;
Btn_Delete.Enabled := True;
Btn_Edit.Enabled := True;
Btn_Cancel.Enabled := False; ;
Btn_Save.Enabled := False;
// Ado_Master.ReadOnly:=True;
// Ado_Master.ReadOnly:=True;
end;
procedure TF_Bill_Base.ADO_DetailPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
inherited;
if Activeconnect.Errors.Item[0].NativeError =1010 then
begin
Application.MessageBox('有不能为空的资料,请你录入!', '提示信息', MB_ICONERROR + MB_OK);
Abort;
end;
end;
procedure TF_Bill_Base.DBGridEhTitleBtnClick(Sender: TObject;
ACol: Integer; Column: TColumnEh);
begin
inherited;
// if column.Title.SortMarker =smDownEh then
// Column.Title.SortMarker:=smUpeh
// else
// Column.Title.SortMarker:
end;
procedure TF_Bill_Base.btn_saveClick(Sender: TObject);
begin
inherited;
Btn_insert.Enabled := True;
Btn_Delete.Enabled := True;
Btn_Edit.Enabled := True;
Btn_Cancel.Enabled := False;
Btn_Save.Enabled := False;
dbgrideh.ReadOnly:=True;
// Ado_master.ReadOnly:=true;
// Ado_detail.ReadOnly:=True;
end;
procedure TF_Bill_Base.DBGridEhDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
inherited;
if gdSelected in state then
DBGrideh.Canvas.brush.Color := clNavy
else
begin
with DBGrideh do
begin
begin
if DataSource.DataSet.RecNo mod 2 <> 0 then
Canvas.brush.Color := ClWhite
else
Canvas.brush.Color := $00EAEAEA;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -