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

📄 untnewlabel.pas

📁 自动创建带密码的Access数据库及表,第三方控件主要有: ReportMachine3.67 ,WinSkin4.22, DBGridEh等
💻 PAS
字号:
unit UntNewLabel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UntMain, UDM, DB, ADODB, ExtCtrls, StdCtrls, Buttons, Mask,
  DBCtrlsEh, DBActns, ActnList, GridsEh, DBGridEh, Menus;

type
  TfrmNewLabel = class(TForm)
    qryLabel: TADOQuery;
    pnlTitle: TPanel;
    lblTitle: TLabel;
    lblTitle1: TLabel;
    imgLabel: TImage;
    dsLabel: TDataSource;
    pnlDH: TPanel;
    qryLblDetail: TADOQuery;
    dsLblDetail: TDataSource;
    dbgrdhLabelM: TDBGridEh;
    pnlLblDtl: TPanel;
    dbgrdhLabeld: TDBGridEh;
    pmMlbl: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnExitClick(Sender: TObject);
    procedure qryLblDetailBeforePost(DataSet: TDataSet);
    procedure qryLabelBeforePost(DataSet: TDataSet);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure pmMlblPopup(Sender: TObject);
    procedure dbgrdhLabelMMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure dbgrdhLabeldMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure qryLabelAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmNewLabel: TfrmNewLabel;

implementation

{$R *.dfm}

procedure TfrmNewLabel.FormCreate(Sender: TObject);
begin
  frmMain.ChildFrm.Add(self.Name);
  If not qryLabel.Active then
     qryLabel.Open;
end;

procedure TfrmNewLabel.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
  i:integer;
begin
  for i:=0 to frmMain.ChildFrm.Count-1 do
    if frmMain.ChildFrm.Strings[i] = Self.Name then
      frmMain.ChildFrm.Delete(i);
  frmNewLabel := nil;
end;

procedure TfrmNewLabel.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action := caFree;
end;

procedure TfrmNewLabel.btnExitClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmNewLabel.qryLblDetailBeforePost(DataSet: TDataSet);
begin
  If qryLabel.State in [dsEdit,dsInsert] then qryLabel.Post;
  qryLblDetail.FieldByName('LblID').AsString := qryLabel.fieldByName('LblID').AsString;

end;

procedure TfrmNewLabel.qryLabelBeforePost(DataSet: TDataSet);
begin
  if (qryLabel.State in [dsInsert]) then
      qryLabel.FieldByName('LblID').AsString := FormatDateTime('yymmddhhnnss',Now);
end;

procedure TfrmNewLabel.N1Click(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    if not Active then Open;
    Last;
    Append;
  end;
end;

procedure TfrmNewLabel.N2Click(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    if not Active then Exit;
    if Recordcount < 1 then Exit;
    Edit;
  end;
end;

procedure TfrmNewLabel.N3Click(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    if not Active then exit;
    if RecordCount < 1 then Exit;
    Delete;
  end;
end;

procedure TfrmNewLabel.N4Click(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    If not Active then Exit;
    If (State in [dsEdit,dsInsert]) then
       Post;
  end;
end;

procedure TfrmNewLabel.N5Click(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    If not Active then Exit;
    If (State in [dsEdit,dsInsert]) then
       Cancel;
  end;
end;

procedure TfrmNewLabel.pmMlblPopup(Sender: TObject);
begin
  with (pmMlbl.PopupComponent as TDBGridEh).DataSource.DataSet do
  begin
    If not Active then Exit;
    If (State in [dsEdit,dsInsert]) then
       begin
         pmMlbl.Items[0].Enabled := False;
         pmMlbl.Items[1].Enabled := False;
         pmMlbl.Items[2].Enabled := False;
         pmMlbl.Items[3].Enabled := True;
         pmMlbl.Items[4].Enabled := True;
       end
    else
       begin
         pmMlbl.Items[0].Enabled := True;
         pmMlbl.Items[1].Enabled := True;
         pmMlbl.Items[2].Enabled := True;
         pmMlbl.Items[3].Enabled := False;
         pmMlbl.Items[4].Enabled := False;
       end;
    if recordCount < 1 then
       begin
         pmMlbl.Items[1].Enabled := False;
         pmMlbl.Items[2].Enabled := False;
       end;
  end;
end;

procedure TfrmNewLabel.dbgrdhLabelMMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  dbgrdhLabelM.PopupMenu := pmMlbl;
end;

procedure TfrmNewLabel.dbgrdhLabeldMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  dbgrdhLabeld.PopupMenu := pmMlbl;
end;

procedure TfrmNewLabel.qryLabelAfterScroll(DataSet: TDataSet);
begin
  with qryLabel do
  begin
    if RecordCount <1 then
       begin
         dbgrdhLabeld.ReadOnly := True;
         Exit;
       end;
  end;

  with qryLblDetail do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from MLblFld where LblID = ');
    SQL.Add(QuotedStr((qryLabel.fieldByName('LblID').AsString)));
    Open;
    dbgrdhLabeld.ReadOnly := False;
  end;
end;

end.

⌨️ 快捷键说明

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