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

📄 u_bill_base.pas

📁 这是一个用条码录入的数据的进销存(只对成品)---做童装的
💻 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 + -