📄 basesetup.pas
字号:
procedure TFrmBaseSetup.ReadWareData;
begin
with DM_Wjckgl.ADOQryWare do
begin
close;
sql.Text :=format(SSQLTY1,[STGoodsName,SFGoodsName]);
open;
end;
end;
procedure TFrmBaseSetup.S1Click(Sender: TObject);
var
sGoods:string;
label A ; //为使用 GOTO语句
begin
A:
sGoods:='';
sGoods:=inputbox(sTitleAdd,sMsgEnterGoodsName ,'');
if trim(sGoods)='' then exit;
if DataRepeat(SFGoodsName,sGoods) then
begin
msgbox(format(sMsgGoodsRepeat,[sGoods]),STitleError,1);
// exit;
goto A;
end;
//EnabledAddSubItme;
EdtWareName.Text :=sGoods;
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :='insert into 物品名称(根编号,物品种类,物品名称,规格,单位,单价,备注) '+
'Values(:pNo,:pClass,:pGoods,:pGuige,:pUnit,:pPrice,:pMemo)';
parameters.ParamByName('pNo').Value :=EdtID.Text;
parameters.ParamByName('pClass').Value := dxDBTV.Selected.Text;
parameters.ParamByName('pGoods').Value :=sGoods;
parameters.ParamByName('pGuige').Value :='无';
parameters.ParamByName('pUnit').Value :='';
parameters.ParamByName('pPrice').Value :=0;
parameters.ParamByName('pMemo').Value :='无';
execsql;
end;
//dxDBTV.Items.AddChildFirst(dxDBTV.Selected,sGoods);
ReadWareData;
//DM_Wjckgl.ADOQryWare.Locate('物品名称',sGoods,loCaseInsensitive );
end;
procedure TFrmBaseSetup.DisabledAddSubItme;
begin
label2.Enabled :=False;
label3.Enabled :=False;
label4.Enabled :=False;
label5.Enabled :=False;
label6.Enabled :=False;
label7.Enabled :=False;
label8.Enabled :=False;
CmbType.Enabled :=False;
EdtWareNo.Enabled :=False;
EdtWareName.Enabled :=False;
EdtGuige.Enabled :=False;
CmbUnit.Enabled :=False;
EdtPrice.Enabled :=False;
MemoGoods.Enabled :=False;
end;
procedure TFrmBaseSetup.EnabledAddSubItme;
begin
label2.Enabled :=true;
label3.Enabled :=true;
// label4.Enabled :=true;
label5.Enabled :=true;
label6.Enabled :=true;
label7.Enabled :=true;
label8.Enabled :=true;
CmbType.Enabled :=true;
EdtWareNo.Enabled :=true;
// EdtWareName.Enabled :=true;
EdtGuige.Enabled :=true;
CmbUnit.Enabled :=true;
EdtPrice.Enabled :=true;
MemoGoods.Enabled :=true;
end;
procedure TFrmBaseSetup.ReadAllClassName;
begin
CmbType.Clear;
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=sSQLReadAllClassName;
open;
first;
while not eof do
begin
if FieldValues[SFGoodsName]<>null then
CmbType.Items.Add(FieldValues[SFGoodsName]);
next;
end;
end;
end;
procedure TFrmBaseSetup.dxDBTVClick(Sender: TObject);
begin
dxDBTV.ReadOnly :=true;
if dxDBTV.Selected.Index =-1 then exit;
if dxDBTV.Selected= nil then exit;
if dxDBTV.Selected.Level=0 then
begin
CmbType.ItemIndex :=CmbType.Items.IndexOf(dxDBTV.Selected.Text);
DisabledAddSubItme;
end
else
begin
// CmbType.ItemIndex := CmbType.Items.IndexOf(dxDBTV.Selected.Parent.Text);
EnabledAddSubItme;
end;
end;
procedure TFrmBaseSetup.PopupMenu1Popup(Sender: TObject);
begin
if dxDBTV.Selected.Index =-1 then exit;
//showmessage(inttostr(dxDBTV.Selected.Index));
//showmessage(intTOStr(dxDBTV.Selected.Level));
if dxDBTV.Selected.Level=0 then
begin
S1.Enabled :=true ;
C1.Enabled :=true;
C1.Caption :=sMenuChangeItem1;
end
else
begin
S1.Enabled :=false;
C1.Enabled :=False;
C1.Caption :=sMenuChangeItem2;
end;
end;
procedure TFrmBaseSetup.N3Click(Sender: TObject);
begin
ReadWareData;
end;
procedure TFrmBaseSetup.C1Click(Sender: TObject);
begin
if (dxDBTV.Selected <> Nil) then
begin
dxDBTV.ReadOnly :=false;
dxDBTV.Selected.EditText;
end;
end;
procedure TFrmBaseSetup.dxDBTVDragDropTreeNode(Destination,
Source: TTreeNode; var Accept: Boolean);
begin
if Destination = nil then
begin
Accept := False;
exit;
end;
{ if Source.TreeView = dxDBTV then
begin
Accept := True;
exit;
end; }
//
Accept := Source.Level>Destination.Level;
end;
procedure TFrmBaseSetup.dxDBTVCustomDraw(Sender: TObject;
TreeNode: TTreeNode; AFont: TFont; var AColor, ABkColor: TColor);
begin
if TreeNode.Level =0 then
begin
AFont.Style:=[fsBold];
end
else
AFont.Style:=[];
end;
procedure TFrmBaseSetup.D1Click(Sender: TObject);
begin
if msgbox(sMsgImportantDelete ,sTitleImportantHint ,3)=IDNo then exit;
try
if dxDBTV.Selected.Level =0 then
DeleteClassAllDataFromDatabase
else
{ begin
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=sDeleteGoodsData;
parameters.ParamByName('pID').Value :=EdtID.Text ;
execsql;
end;
end; }
dxDBTV.Selected.Delete;
IsChanged:=True; //己经对基本信息进行过修改
except
msgbox(sMsgDeleteError,STitleError,1);
end;
end;
procedure TFrmBaseSetup.DeleteClassAllDataFromDatabase;
begin
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=sSQLDeleteAllData;
parameters.ParamByName('pID1').Value :=EdtID.Text ;
parameters.ParamByName('pID2').Value :=EdtID.Text ;
execsql;
end;
ReadWareData; //刷新 树表 数据
end;
function TFrmBaseSetup.DataRepeat(sField,sStr: string): boolean;
begin
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=format(SSQLStrTerm,[STGoodsName,sField,sStr]);
open;
if RecordCount=0 then
Result:=False
else
Result:=true;
close;
end;
end;
procedure TFrmBaseSetup.EdtWareNoExit(Sender: TObject);
begin
{if DataRepeat(SFGoodsNumber,EdtWareNo.Text) then
begin
msgbox(format(sMsgNumberRepeat,[EdtWareNo.Text]),STitleError,1);
EdtWareNo.SetFocus;
end; }
end;
procedure TFrmBaseSetup.EdtWareNameExit(Sender: TObject);
begin
if EdtWareName.Text=TempGoods then exit; //证明无变化
if DataRepeat(SFGoodsName,EdtWareName.Text) then
begin
msgbox(format(sMsgNameRepeat,[EdtWareName.Text]),STitleError,1);
EdtWareName.SetFocus;
end;
end;
function TFrmBaseSetup.OldpasswordIsRight(sPwd: string): boolean;
begin
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=format(SSQLTY0,[STLogin]);
open;
if (FieldValues[SFLoginPwd]=Encrypt(EdtOldPwd.Text)) or (FieldValues[SFLoginPwd]=null) then
Result:=true
else
Result:=False;
close;
end;
end;
procedure TFrmBaseSetup.BitBtn1Click(Sender: TObject);
begin
if not OldpasswordIsRight(EdtOldPwd.text) then
begin
Msgbox(sMsgOldPasswordError,sTitleError,1);
EdtOldPwd.SetFocus;
exit;
end;
if EdtNewPwd.Text <> EdtCfmPwd.Text then
begin
Msgbox(sMsgNewOrCfmPwdError,sTitleError,1);
EdtNewPwd.SetFocus;
exit;
end;
try
with DM_Wjckgl.ADOQry do
begin
close;
sql.Text :=sSQLUpdatePwd;
parameters.ParamByName('pPwd').Value :=Encrypt(EdtNewPwd.Text);
execsql;
end;
Msgbox(sMsgPwdSetupOk,sTitleHint,0);
except
Msgbox(sMsgPwdSetupError,sTitleError,1);
end;
end;
procedure TFrmBaseSetup.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if IsChanged then
msgbox(sMsgBaseSetupIsChanged,sTitleHint,0);
end;
procedure TFrmBaseSetup.EdtWareNameEnter(Sender: TObject);
begin
TempGoods:=EdtWareName.Text;
CmbType.ItemIndex := CmbType.Items.IndexOf(dxDBTV.Selected.Parent.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -