📄 untopenlbl.pas
字号:
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 + -