📄 sys500_01.pas.svn-base
字号:
if tsItem.TabVisible then
begin
qryInv120.DisableControls;
qryInv120.Close;
qryInv120.Parameters[0].Value:=qrySys500AS500A_001.Value;
qryInv120.Open;
qryInv120.EnableControls;
dbgItem.Enabled:=not qryInv120.IsEmpty;
end;
//客户权限
if tsCust.TabVisible then
begin
qryOrd110.DisableControls;
qryOrd110.Close;
qryOrd110.Parameters[0].Value:=qrySys500AS500A_001.Value;
qryOrd110.Open;
qryOrd110.EnableControls;
dbgCust.Enabled:=not qryOrd110.IsEmpty;
end;
//科目权限
if tsAccount.TabVisible then
begin
qryGld150.DisableControls;
qryGld150.Close;
qryGld150.Parameters[0].Value:=qrySys500AS500A_001.Value;
qryGld150.Open;
qryGld150.EnableControls;
dbgAccount.Enabled:=not qryGld150.IsEmpty;
end;
end;
procedure TSys500_01Form.qrySys500ANewRecord(DataSet: TDataSet);
begin
qrySys500A.FieldByName('S500A_004').Value:=False;
qrySys500A.FieldByName('S500A_005').Value:=True;
qrySys500A.FieldByName('S500A_006').Value:=False;
end;
procedure TSys500_01Form.dbgProgramClick(Sender: TObject);
begin
if dbgProgram.FocusedField.FieldName='S500D_007' then Exit;
if qrySys500B.IsEmpty then Exit;
if qrySys500B.State in [dsInsert,dsEdit] then qrySys500B.Post;
SetRights;
end;
procedure TSys500_01Form.dbgProgramKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
AFieldName:string;
begin
//按空格鍵
if qrySys500B.IsEmpty then Exit;
AFieldName:=dbgProgram.FocusedField.FieldName;
if AFieldName='S500D_007' then Exit;
if Key=VK_Space then
begin
qrySys500B.Edit;
qrySys500B.FieldByName(AFieldName).Value:=not qrySys500B.FieldByName(AFieldName).Value;
qrySys500B.Post;
SetRights;
end;
dbgProgram.SetFocus;
end;
procedure TSys500_01Form.ActFirstExecute(Sender: TObject);
begin
//最前
if qrySys500A.IsEmpty then Exit;
qrySys500A.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TSys500_01Form.ActPriorExecute(Sender: TObject);
begin
//上移
if qrySys500A.IsEmpty then Exit;
qrySys500A.Prior;
ActNext.Enabled:=not qrySys500A.Eof;
ActLast.Enabled:=not qrySys500A.Eof;
ActFirst.Enabled:=not qrySys500A.Bof;
ActPrior.Enabled:=not qrySys500A.Bof;
end;
procedure TSys500_01Form.ActNextExecute(Sender: TObject);
begin
//下移
if qrySys500A.IsEmpty then Exit;
qrySys500A.Next;
ActNext.Enabled:=not qrySys500A.Eof;
ActLast.Enabled:=not qrySys500A.Eof;
ActFirst.Enabled:=not qrySys500A.Bof;
ActPrior.Enabled:=not qrySys500A.Bof;
end;
procedure TSys500_01Form.ActLastExecute(Sender: TObject);
begin
//最后
if qrySys500A.IsEmpty then Exit;
qrySys500A.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TSys500_01Form.ActInsertExecute(Sender: TObject);
begin
//新增
Sys500_02Form:=TSys500_02Form.Create(Application);
Sys500_02Form.OpenData(0,qrySys500A);
Sys500_02Form.ShowModal;
ActRefresh.Execute;
end;
procedure TSys500_01Form.ActUpdateExecute(Sender: TObject);
begin
//修改
if qrySys500A.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
Sys500_02Form:=TSys500_02Form.Create(Application);
Sys500_02Form.OpenData(qrySys500AS500A_001.AsInteger,qrySys500A);
Sys500_02Form.ShowModal;
ActRefresh.Execute;
end;
procedure TSys500_01Form.ActDeleteExecute(Sender: TObject);
begin
//删除
if qrySys500A.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if IsExists('select 1 from SYS500E where S500E_001='+qrySys500AS500A_001.AsString) then
begin
ShowMsg('UMS10000034'); //不能删除在线用户
Abort;
end;
if qrySys500A.FieldByName('S500A_006').AsBoolean then
begin
ShowMsg('UMS10000035'); //不能删除超级用户');
Abort;
end;
if ShowDialog('UMS10000008')=IDNO then Abort; //确定要删除此记录吗?
try
SYSDM.ADOC.BeginTrans;
//删除权限表
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from SYS500B where S500B_001='+qrySys500AS500A_001.AsString);
SYSDM.qryQuery.ExecSQL;
//帐户&部门&仓库权限
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from SYS500C where S500C_001='+qrySys500AS500A_001.AsString);
SYSDM.qryQuery.ExecSQL;
//删上机日志
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from SYS300 where S300_001='+qrySys500AS500A_001.AsString);
SYSDM.qryQuery.ExecSQL;
qrySys500A.Delete;
SYSDM.ADOC.CommitTrans;
ActRefresh.Execute;
except
SYSDM.ADOC.RollbackTrans;
ShowMsg('UMS10000116'); //删除记录失败
Abort;
end;
end;
procedure TSys500_01Form.ActRefreshExecute(Sender: TObject);
begin
//刷新
qrySys500A.Close;
qrySys500A.Open;
end;
procedure TSys500_01Form.ActLocateExecute(Sender: TObject);
begin
//查找
if qrySys500A.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
LocateDialog(dsSys500A);
end;
procedure TSys500_01Form.ActSearchExecute(Sender: TObject);
begin
//查询
FilterDialog(dsSys500A);
end;
procedure TSys500_01Form.ActExitExecute(Sender: TObject);
begin
//退出
Close;
end;
procedure TSys500_01Form.TreeView1GetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
Node.ImageIndex:=1;
end;
procedure TSys500_01Form.qrySys500DCalcFields(DataSet: TDataSet);
begin
if SYSDM.qryLangs.Locate('LangID;Type',VarArrayOf([qrySys500DS500D_001.Value,3]),[]) then
qrySys500DS500D_007.Value:=SYSDM.qryLangs.FieldByName('Name').Value;
end;
procedure TSys500_01Form.qrySys500BCalcFields(DataSet: TDataSet);
begin
if SYSDM.qryLangs.Locate('LangID;Type',VarArrayOf([qrySys500BS500D_001.Value,3]),[]) then
qrySys500BS500D_007.Value:=SYSDM.qryLangs.FieldByName('Name').Value;
end;
procedure TSys500_01Form.dbgCshClick(Sender: TObject);
var
ADataSet:TDataSet;
AFieldName:string;
begin
ADataSet:=TdxDBGrid(Sender).DataSource.DataSet;
if ADataSet.IsEmpty then Exit;
AFieldName:=TdxDBGrid(Sender).FocusedField.FieldName;
if (AFieldName='S500C_004') and (ADataSet.State in [dsInsert,dsEdit]) then ADataSet.Post;
end;
procedure TSys500_01Form.dbgCshKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
ADataSet:TDataSet;
AFieldName:string;
begin
//按空格鍵
ADataSet:=TdxDBGrid(Sender).DataSource.DataSet;
if ADataSet.IsEmpty then Exit;
AFieldName:=TdxDBGrid(Sender).FocusedField.FieldName;
if (AFieldName='S500C_004') and (Key=VK_Space) then
begin
ADataSet.Edit;
ADataSet.FieldByName(AFieldName).Value:=not ADataSet.FieldByName(AFieldName).Value;
ADataSet.Post;
end;
end;
procedure TSys500_01Form.ActPrintExecute(Sender: TObject);
begin
//打印
SelectReport(qrySys500A,AProgramID,AReportName,ReportGetValue);
end;
procedure TSys500_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName='USENM' then ParValue:=AUserName
else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006') //列印日期
else if ParName='PRNNM' then ParValue:=GetDBString('COM00006007') //列印人員
else if ParName='REPNM' then ParValue:=AReportTitle
else if ParName='S500A_002' then ParValue:=qrySys500AS500A_002.DisplayLabel //用户名称
end;
procedure TSys500_01Form.ActCopyExecute(Sender: TObject);
begin
//复制
if qrySys500A.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
end;
initialization
RegisterClass(TSys500_01Form);
finalization
UnRegisterClass(TSys500_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -