?? invuserprivilege.~pas
字號:
unit InvUserPrivilege;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, invDef, Ex2nmedt;
type
TfrmUser = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
ListviewUser: TListView;
Panel4: TPanel;
Panel5: TPanel;
edtPassWord: TLabeledEdit;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
chkbom: TCheckBox;
chkstk: TCheckBox;
chkmatin: TCheckBox;
chkmatout: TCheckBox;
chkothin: TCheckBox;
chkothout: TCheckBox;
chkiohis: TCheckBox;
chkrpt: TCheckBox;
chkInvoice: TCheckBox;
chkUndelivery: TCheckBox;
chkincheck: TCheckBox;
chkparams: TCheckBox;
chkiotype: TCheckBox;
chkpaperno: TCheckBox;
chkinvguage: TCheckBox;
chkdataexp: TCheckBox;
chkexprpt: TCheckBox;
SpeedButton1: TSpeedButton;
btnUpdate: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
chkrtnmana: TCheckBox;
chkuserprivi: TCheckBox;
cbxUser: TComboBox;
edtUserName: TEdit;
edtUserID: TEx2NumEdit;
Label2: TLabel;
stsBarCnt: TStatusBar;
Panel6: TPanel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure btnUpdateClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure ListviewUserChange(Sender: TObject; Item: TListItem; Change: TItemChange);
procedure cbxUserDropDown(Sender: TObject);
procedure cbxUserChange(Sender: TObject);
private
{ Private declarations }
Procedure Read_UserPriviListView(sListView: TListView);
function SetListColumn(listView: TListView): Integer;
function SetListView(lstView: TListView): Integer;
procedure ClearListView(lstView: TListView);
procedure MakeItemCaption(Item: TListItem);
procedure Set_currItem(Item: TListItem);
procedure SetNull;
public
{ Public declarations }
Procedure NewUserPrivilege(ListView: TListView);
Procedure Update_UserPrivilege(ListView: TListView);
procedure Delete_UserPrivilege(ListView: TListView);
Function GetIntValueofBool(ibool: Boolean): integer;
Function GetBoolofInteger(iValue: Integer): Boolean;
end;
var
frmUser: TfrmUser;
FUserPrivilegeList: TList;
FSelectedItem: TListItem;
FOnMakeItemCaption,
FListViewClear,
FOnCloseForm: Boolean;
FColCnt: integer;
implementation
uses InvDM, Main;
{$R *.dfm}
procedure TfrmUser.FormCreate(Sender: TObject);
begin
Top := 0;
Left := frmMain.Width;
Height := Height;
Width := Width;
FUserPrivilegeList := TList.Create;
FUserPrivilegeList.Clear;
end;
procedure TfrmUser.FormShow(Sender: TObject);
begin
FOnCloseForm := false;
Read_UserPriviListView(ListviewUser);
end;
procedure TfrmUser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FOnCloseForm := true;
dm_inventory.ListFreeMemory(FUserPrivilegeList);
end;
Procedure TfrmUser.Read_UserPriviListView(sListView: TListView);
var SaveCursor: TCursor;
begin
dm_inventory.ListFreeMemory(FUserPrivilegeList);
SaveCursor := Screen.Cursor;
Screen.Cursor := crSqlWait;
try
dm_inventory.Read_UserPrivilegeList(FUserPrivilegeList);
FListViewClear:=True;
FColCnt := SetListColumn(sListView); //--
sListView.Selected := nil;
if SetListView(sListView) > 0 then
begin
sListView.TopItem.Selected := True;
sListView.TopItem.Focused := True;
sListView.SetFocus;
FSelectedItem := sListView.TopItem;
Set_currItem(FSelectedItem);
end;
FListViewClear := False;
finally
Screen.Cursor := SaveCursor;
end;
end;
function TfrmUser.SetListColumn(listView: TListView): Integer;
var
Column: TListColumn;
Count: Integer;
begin
ListView.Columns.Clear;
ListView.Items.BeginUpdate; //--
ListView.RowSelect := False;
Count := 0;
try
Column := ListView.Columns.Add;
Column.Caption := '員工工號';
Column.Width := ListView.Font.Size * 12;
Inc(Count);
Column := ListView.Columns.Add;
Column.Caption := '用戶名稱';
Column.Width := ListView.Font.Size * 16;
Inc(Count);
Column := ListView.Columns.Add;
Column.Caption := '用戶密碼';
Column.Width := ListView.Font.Size * 14;
Column.Alignment := taLeftJustify;
Inc(Count);
finally
ListView.RowSelect := True;
ListView.Items.EndUpdate; //--
end;
Result := Count;
end;
function TfrmUser.SetListView(lstView: TListView): Integer;
var
i, j, ItemCount: Integer;
lcP: PUserPrivilege;
Item: TListItem;
begin
ItemCount := 0;
FListViewClear := True;
ClearListView(lstView);
FListViewClear := False;
LockWindowUpdate(lstView.Handle);
try
for i := 0 to FUserPrivilegeList.Count - 1 do begin
lcP := FUserPrivilegeList[i];
Item := lstView.Items.Add;
for j := 0 to FColCnt - 2 do
Item.Subitems.Add('');
lcP^.item := Item;
Item.Data := lcP;
MakeItemCaption(Item);
Inc(ItemCount);
end;
finally
LockWindowUpdate(0);
stsBarCnt.Panels[0].Text := '符合條件的記錄有:'+ IntToStr(lstView.Items.Count)+' 條';
end;
Result := ItemCount;
end;
procedure TfrmUser.ClearListView(lstView: TListView);
begin
lstView.Items.BeginUpdate;
try
lstView.Items.Clear;
finally
lstView.Items.EndUpdate;
end;
end;
procedure TfrmUser.MakeItemCaption(Item: TListItem);
var
lcP: PUserPrivilege;
begin
if Item = nil then Exit;
lcP := Item.Data;
if lcP = nil then Exit;
FOnMakeItemCaption := True; //--
Item.Caption := IntToStr(lcP^.user_id);
Item.SubItems[0] := dm_inventory.Get_EmpName(inttostr(lcp^.user_id));
Item.SubItems[1] := lcp^.password;
FOnMakeItemCaption := False;
end;
procedure TfrmUser.Set_currItem(Item: TListItem);
var
lcp: PUserPrivilege;
begin
if (Item = nil) or ((item = nil) and (Item.Data <> nil)) then
begin
SetNull;
exit;
end
else begin
FSelectedItem := nil;
FSelectedItem := Item;
lcp := Item.Data;
edtUserID.Value := lcp^.user_id;
edtUserName.Text := dm_inventory.Get_EmpName(inttostr(lcp^.user_id));
edtPassWord.Text := lcp^.password;
chkbom.Checked := (lcp^.bom_func=1);
chkstk.Checked := (lcp^.stk_func=1);
chkmatin.Checked := (lcp^.matin_func=1);
chkmatout.Checked := (lcp^.matout_func=1);
chkothin.Checked := (lcp^.othin_func=1);
chkothout.Checked := (lcp^.othout_func=1);
chkiohis.Checked := (lcp^.iohis_func=1);
chkrpt.Checked := (lcp^.rpt_func=1);
chkInvoice.Checked := (lcp^.invoice_func=1);
chkUndelivery.Checked := (lcp^.undelivery_func=1);
chkincheck.Checked := (lcp^.incheck_func=1);
chkrtnmana.Checked := (lcp^.rtnmana_func=1);
chkparams.Checked := (lcp^.params_func=1);
chkiotype.Checked := (lcp^.iotype_func=1);
chkpaperno.Checked := (lcp^.paperno_func=1);
chkinvguage.Checked := (lcp^.invguage_func=1);
chkdataexp.Checked := (lcp^.dataexport_func=1);
chkexprpt.Checked := (lcp^.expdatarpt_func=1);
chkuserprivi.Checked := (lcp^.userprivilege_func=1);
end;
end;
procedure TfrmUser.SetNull;
begin
FSelectedItem := nil;
edtUserID.Value := 0;
edtUserName.Text := '';
cbxUser.Text := '';
edtPassWord.Text := '';
chkbom.Checked := false;
chkstk.Checked := false;
chkmatin.Checked := false;
chkmatout.Checked := false;
chkothin.Checked := false;
chkothout.Checked := false;
chkiohis.Checked := false;
chkrpt.Checked := false;
chkInvoice.Checked := false;
chkUndelivery.Checked := false;
chkincheck.Checked := false;
chkrtnmana.Checked := false;
chkparams.Checked := false;
chkiotype.Checked := false;
chkpaperno.Checked := false;
chkinvguage.Checked := false;
chkdataexp.Checked := false;
chkexprpt.Checked := false;
chkuserprivi.Checked := false;
end;
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Procedure TfrmUser.NewUserPrivilege(ListView: TListView);
var
lcpNew: PUserPrivilege;
j: integer;
Item: TListItem;
begin
New(lcpNew);
ZeroMemory(lcpNew, sizeof(TUserPrivilege));
SetNull;
lcpNew^.paperno := dm_inventory.Get_AutoPaperNo('User Privilege Information');
lcpNew^.user_id := 0;
lcpNew^.user_name := '';
lcpNew^.password := '';
lcpNew^.rec_date := Now;
if not dm_inventory.isExists_UserID(lcpNew) then
begin
dm_inventory.Insert_UserPrivilege(lcpNew);
with listView do
begin
Item := ListView.Items.Add;
for j := 0 to FColCnt - 2 do
Item.Subitems.Add('');
lcPNew^.item := Item;
Item.Data := lcPNew;
end;
MakeItemCaption(Item);
Set_currItem(Item);
Item.Selected := true;
end
else begin
MessageDlg('this User is Repeat!',mtError,[mbOK],0);
Item := ListView.TopItem;
FSelectedItem := Item;
Set_currItem(Item);
Item.Selected := true;
Exit;
end;
end;
Procedure TfrmUser.Update_UserPrivilege(ListView: TListView);
var
lcpUpd: PUserPrivilege;
Item: TListItem;
begin
if FSelectedItem = nil then exit;
if FSelectedItem.Selected then lcpUpd := FSelectedItem.Data;
lcpUpd^.user_id := trunc(edtUserID.Value);
lcpUpd^.password := trim(edtPassWord.Text);
lcpUpd^.bom_func := GetIntValueofBool(chkbom.Checked);
lcpUpd^.stk_func := GetIntValueofBool(chkstk.Checked);
lcpUpd^.matin_func := GetIntValueofBool(chkmatin.Checked);
lcpUpd^.matout_func := GetIntValueofBool(chkmatout.Checked);
lcpUpd^.othin_func := GetIntValueofBool(chkothin.Checked);
lcpUpd^.othout_func := GetIntValueofBool(chkothout.Checked);
lcpUpd^.iohis_func := GetIntValueofBool(chkiohis.Checked);
lcpUpd^.rpt_func := GetIntValueofBool(chkrpt.Checked);
lcpUpd^.invoice_func := GetIntValueofBool(chkInvoice.Checked);
lcpUpd^.undelivery_func := GetIntValueofBool(chkUndelivery.Checked);
lcpUpd^.incheck_func := GetIntValueofBool(chkincheck.Checked);
lcpUpd^.rtnmana_func := GetIntValueofBool(chkrtnmana.Checked);
lcpUpd^.params_func := GetIntValueofBool(chkparams.Checked);
lcpUpd^.iotype_func := GetIntValueofBool(chkiotype.Checked);
lcpUpd^.paperno_func := GetIntValueofBool(chkpaperno.Checked);
lcpUpd^.invguage_func := GetIntValueofBool(chkinvguage.Checked);
lcpUpd^.dataexport_func := GetIntValueofBool(chkdataexp.Checked);
lcpUpd^.expdatarpt_func := GetIntValueofBool(chkexprpt.Checked);
lcpUpd^.userprivilege_func := GetIntValueofBool(chkuserprivi.Checked);
dm_inventory.Update_UserPrivilege(lcpUpd);
with listView do
begin
listView.Selected.Data := lcpUpd;
Item := listView.Selected;
MakeItemCaption(Item);
Set_currItem(Item);
Item.Selected := true;
end;
end;
procedure TfrmUser.Delete_UserPrivilege(ListView: TListView);
var
lcpDel: PUserPrivilege;
Item: TListItem;
begin
if FSelectedItem = nil then exit;
if FSelectedItem.Selected then lcpDel := FSelectedItem.Data;
dm_inventory.Delete_UserPrivilege(lcpDel);
with listView do
begin
listView.Selected.Delete;
IF ListView.Items.Count >0 then
Item := listView.TopItem
else Item := Nil;
if Item = Nil then exit;
Item.Selected := true;
MakeItemCaption(Item);
Set_currItem(Item);
end;
end;
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
procedure TfrmUser.SpeedButton1Click(Sender: TObject);
begin
NewUserPrivilege(ListviewUser);
end;
procedure TfrmUser.btnUpdateClick(Sender: TObject);
begin
Update_UserPrivilege(ListviewUser);//
end;
procedure TfrmUser.SpeedButton3Click(Sender: TObject);
begin
Delete_UserPrivilege(ListviewUser);
end;
procedure TfrmUser.SpeedButton4Click(Sender: TObject);
begin
close;
end;
procedure TfrmUser.ListviewUserChange(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
if FOnCloseForm then exit;
if Item.Data = nil then
begin
setNull;
exit;
end
else Set_currItem(ListviewUser.Selected);
end;
////////////////////////////////////////////////////////////////////////////
Function TfrmUser.GetIntValueofBool(ibool: Boolean): integer;
begin
result := 0;
if iBool then result := 1 else result := 0;
end;
Function TfrmUser.GetBoolofInteger(iValue: Integer): Boolean;
begin
result := false;
if iValue=1 then result := true else result := false;
end;
procedure TfrmUser.cbxUserDropDown(Sender: TObject);
begin
dm_inventory.Read_EmpInfoToCbx(cbxUser);
end;
procedure TfrmUser.cbxUserChange(Sender: TObject);
begin
edtUserID.Value := StrToIntDef(Get_PosBeforeStr(cbxUser.Text,'_'),0);
edtUserName.Text := Get_PosAfterStr(cbxUser.Text,'_');
edtUserID.SetFocus;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -