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

📄 untopenlbl.pas

📁 自动创建带密码的Access数据库及表,第三方控件主要有: ReportMachine3.67 ,WinSkin4.22, DBGridEh等
💻 PAS
📖 第 1 页 / 共 2 页
字号:
var
  DeleteTblSQL : String;
begin
  TblName := Trim(TblName);
  DeleteTblSQL  := '';
  if not TestTblExists(TblName) then Exit;
  DeleteTblSQL  := ' Drop Table '+TblName ;
  with qrytmp do
  begin
    Close;
    SQL.Clear;
    SQL.Add(DeleteTblSQL);
    ExecSQL;
  end;
  if not TestTblExists(TblName+'His') then Exit;
  DeleteTblSQL  := ' Drop Table '+TblName+'His' ;
  with qrytmp do
  begin
    Close;
    SQL.Clear;
    SQL.Add(DeleteTblSQL);
    ExecSQL;
  end;
end;

procedure TfrmOpenLabel.mmRbdTblClick(Sender: TObject);
begin
  if MessageDlg('重建将导致当前的表信息全部初始化,一般是在标签内容进行更改后才需要重建,真得要重建?',mtConfirmation,[mbYes,mbNo],0)<> mrYes then
     exit;

  If TestTblExists(Trim(lvLabel.Selected.Caption)) then
  try
    Deletetbl(Trim(lvLabel.Selected.Caption));
    ShowMessage('请再点击你重建的标签');
  except
    ShowMessage('有点惊讶,你能看得到我的出现?通知电脑课吧!');
  end;
end;

procedure TfrmOpenLabel.pmRebuildTablePopup(Sender: TObject);
begin
  if lvLabel.Selected = nil then Exit;
  If Length(Trim(lvLabel.Selected.Caption)) < 10 then
     mmRbdTbl.Enabled := False
  else
     mmRbdTbl.Enabled := True;
end;

procedure TfrmOpenLabel.SetBtnStatus;
begin
  If (qryLblInput.State in [dsedit,dsinsert]) then
     begin
       btnAdd.Enabled     := False;
       btnModify.Enabled  := False;
       btnDelete.Enabled  := False;
       btnAllDelete.Enabled := False;
       btnSave.Enabled    := True;
       btnCancel.Enabled  := True;
       btnPriview.Enabled := False;
       btnExit.Enabled    := False;
     end
  else
     begin
       btnAdd.Enabled     := True;
       if qryLblInput.RecordCount >0 then
         begin
           btnModify.Enabled  := True;
           btnDelete.Enabled  := True;
           btnAllDelete.Enabled := True;
         end
       else
         begin
           btnModify.Enabled  := False;
           btnDelete.Enabled  := False;
           btnAllDelete.Enabled := True;
         end;
       btnSave.Enabled    := False;
       btnCancel.Enabled  := False;
       btnPriview.Enabled := True;
       btnExit.Enabled    := True;
     end;
end;

procedure TfrmOpenLabel.lvLabelChange(Sender: TObject; Item: TListItem;
  Change: TItemChange);
var
    OpenTblName : string;
begin
  if lvLabel.Selected = nil then Exit;
  pnlShInput.Enabled := False;
  pnlBot.Enabled     := False;
  If Length(trim(lvLabel.Selected.Caption)) < 10 then Exit; //没有选择表则退出;

  While pnlShInput.ControlCount > 0 do
     pnlShInput.Controls[0].Destroy; //删除Pnl1上所有的控件;

  OpenTblName := Trim(lvLabel.Selected.Caption);  //给需要打开的表赋值;
  if not TestTblExists(OpenTblName) then
     CreateLblTblAndHisTbl(OpenTblName);

  AutoShowInput(OpenTblName);  //显示表录入界面;
  pgcDataShow.ActivePageIndex := 0;
end;

procedure TfrmOpenLabel.lvLabelChanging(Sender: TObject; Item: TListItem;
  Change: TItemChange; var AllowChange: Boolean);
begin
  If (qryLblInput.State in [dsedit,dsinsert]) then
     begin
       ShowMessage('请保存当前的数据编辑!');
       AllowChange := False;
     end;
end;

procedure TfrmOpenLabel.btnAddClick(Sender: TObject);

begin
  with qryLblInput do
  begin
    if not Active then SetLblInputOpen;
    Append;
    SetBtnStatus;
    pnlShInput.Enabled := True;
  end;

  setDBeditFocus;
end;

procedure Tfrmopenlabel.setDbeditFocus;
var
  i:integer;
begin
  for i:= 0 to pnlShInput.ControlCount -1 do
  begin
    if pnlShInput.Controls[i] is TDBEdit then
      begin
        (pnlShInput.Controls[i] as TDBEdit).SetFocus;
        Exit;
      end;
  end;
end;

procedure TfrmOpenLabel.SetLblInputOpen;
begin
  With qryLblInput do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from '+CurrOpenTblName );
    open;
    Last;
  end;
end;

procedure TfrmOpenLabel.btnModifyClick(Sender: TObject);
begin
  with qryLblInput do
  begin
    If not Active then SetLblInputOpen;
    edit;
    FindInHistory := False;
    SetBtnStatus;
    pnlShInput.Enabled := True;
  end;

  setDBeditFocus;
end;

procedure TfrmOpenLabel.btnDeleteClick(Sender: TObject);
begin
  with qryLblInput do
  begin
    if not Active then exit;
    if RecordCount < 1 then Exit;
       If (Sender as TSpeedButton).Name = 'btnAllDelete' then
          begin
            ShowMessage('All Delete');
          end
       else
          Delete;
    SetBtnStatus;
  end;
end;

procedure TfrmOpenLabel.btnSaveClick(Sender: TObject);
var
  i:integer;
  IsInsert : Boolean;
begin
  with qryLblInput do
  begin
    If not (state in [dsedit,dsinsert]) then exit;

    If (State in [dsinsert]) then
       IsInsert := True
    else
       IsInsert := False;

    Post;
    SetBtnStatus;
    pnlShInput.Enabled := False;
  end;


 If IsInsert then
   begin
     If FindinHistory then Exit;
     with qryLblInputHis do
       begin
         If not Active then
           Begin
             SQL.Clear;
             SQL.Add(' select * from '+CurropenTblName+'His');
             SQL.Add(' where '+ QryLblInput.Fields[1].FieldName);
             SQL.Add(' = ""');
             Open;
           end;
         Append;
         for I:=1 to FieldCount -1 do
           begin
             Fields[i].AsString := qryLblInput.Fields[i].AsString;
           end;
         Post;
      end;
  end;
end;

procedure TfrmOpenLabel.btnCancelClick(Sender: TObject);
begin
  FindInHistory := False;
  qryLblInput.Cancel;
  SetBtnStatus;
  pnlShInput.Enabled := False;
end;

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

procedure TfrmOpenLabel.FindItInHistory(Sender: TObject);
var
  i:integer;
begin
  If not (qryLblInput.State in [dsinsert]) then exit;

  with qryLblInputHis do
  begin
    Close;
    sql.Clear;
    sql.Add(' select * from '+CurropenTblName+'His');
    Sql.Add(' where '+QryLblInput.Fields[1].FieldName);
    SQL.Add(' = '+Quotedstr((Sender as TDBEdit).Text));
    Open;
    If recordcount > 0 then
       FindInHistory := True
    else
       FindInHistory := False;

    If FindInHistory then
       begin
         for i:=1 to FieldCount -1 do
            qryLblInput.Fields[i].AsString := Fields[i].AsString; 
       end;
    Close;
  end;
  qrylblInput.edit;
end;

procedure TfrmOpenLabel.btnPriviewClick(Sender: TObject);
var
  lblFileName   : string;
  LblNormalFile : string;
begin
  lblFileName   := ExtractFilePath(Application.ExeName)+'\Report\Rpt'+CurrOpenTblName+'.rmf';
  LblNormalFile := ExtractFilePath(application.ExeName)+'\Report\'+'Normal.rmf';

  If not FileExists(lblFileName) then
     begin
       If FileExists(LblNormalFile) then
          CopyFile(PChar(LblNormalFile),PChar(lblFileName),False)
       else
          ShowMessage('模板文件不存在,请联系电脑课!');
     end;
  RmRptLbl.LoadFromFile(lblFileName);
  RmRptLbl.ShowReport;
end;

procedure TfrmOpenLabel.N1Click(Sender: TObject);
begin
  If not (InputBox('清除历史库功能需要密码,请输入密码','','') = 'administrator') then
     begin
       ShowMessage('密码错误');
       exit;
     end;
  with qrytmp do
    begin
      Close;
      SQL.Clear;
      SQL.Add(' Delete * from ' + CurrOpenTblName +'His');
      ExecSQL;
      Showmessage('历史库清除完成!');
    end;
end;

procedure TfrmOpenLabel.FormKeyPress(Sender: TObject; var Key: Char);
begin
  If key = #13 then
    PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;

procedure TfrmOpenLabel.FindHistory(Sender: TObject);
begin
  ;
end;

end.

⌨️ 快捷键说明

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