http://hi.baidu.com/493168771/blog/item/ea43d1a4a6f0c6ff9052ee83.html
登入代码
var s:string;
begin
if (edit1.Text='') or (edit2.Text='') then
Application.MessageBox('用户名或密码不能为空!','错误',MB_OK)
else
begin
with DataModule3.adoquery1 do
begin
close;
sql.Clear;
sql.add('select 权限代码 from net060218_password ');
sql.add('where 人员代码='''+edit1.Text+''''+' and 密码='''+edit2.Text+'''');
open;
s:=DataModule3.adoquery1.fieldbyname('权限代码').AsString;
end;
if DataModule3.adoquery1.RecordCount=0 then Application.MessageBox('用户名或密码错误,请重新输入!','错误',MB_OK)
else
begin
if s='' then
begin
login.Hide;
function_list.Show;
end;
if StrPos(PChar(s), PChar('a1')) <> nil then
begin
//具有字段ad拥有的权限
login.Hide;
function_list.show;
function_list.button3.Enabled:=true;
form1.Button1.Enabled:=true;
form1.Button2.Enabled:=true;
form1.btnsearch1.Enabled:=true;
form1.btnsearch2.Enabled:=true;
form1.btnalter1.Enabled:=true;
form1.btnalter2.Enabled:=true;
form1.btndel1.Enabled:=true;
form1.btndel2.Enabled:=true;
form6.Button2.Enabled:=true;
form6.Button3.Enabled:=true;
form6.Button5.Enabled:=true;
form6.Button6.Enabled:=true;
end;
if StrPos(PChar(s), PChar('b1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.Button1.Enabled:=true;
end;
if StrPos(PChar(s), PChar('c1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btndel1.Enabled:=true;
end;
if StrPos(PChar(s), PChar('d1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btnalter1.Enabled:=true;
end;
if StrPos(PChar(s), PChar('e1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btnsearch1.Enabled:=true;
end;
if StrPos(PChar(s), PChar('f1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.Button2.Enabled:=true;
end;
if StrPos(PChar(s), PChar('g1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btndel2.Enabled:=true;
end;
if StrPos(PChar(s), PChar('h1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btnalter2.Enabled:=true;
end;
if StrPos(PChar(s), PChar('i1')) <> nil then
begin
login.Hide;
function_list.Show;
form1.btnsearch2.Enabled:=true;
end;
if StrPos(PChar(s), PChar('j1')) <> nil then
begin
login.Hide;
function_list.Show;
form6.Button2.Enabled:=true;
form6.Button3.Enabled:=true
end;
if StrPos(PChar(s), PChar('k1')) <> nil then
begin
login.Hide;
function_list.Show;
form6.Button5.Enabled:=true;
form6.Button6.Enabled:=true
end;
end;
end;
edit2.Clear;
end;
权限管理:
begin
if permissions = nil then
permissions := Tpermissions.Create(nil);
permissions.ShowModal ;
end;
菜单项调用:
begin
if button3.Enabled then
button3Click(Sender) ;
end;
dbgrid的激活
var s:string;
begin
s:=DataModule3.adoquery1.fieldbyname('权限代码').AsString;
if StrPos(PChar(s), PChar('b1')) <> nil then
checkbox1.Checked:=true
else checkbox1.Checked:=false;
if StrPos(PChar(s), PChar('c1')) <> nil then
checkbox2.Checked:=true
else checkbox2.Checked:=false;
if StrPos(PChar(s), PChar('d1')) <> nil then
checkbox3.Checked:=true
else checkbox3.Checked:=false;
if StrPos(PChar(s), PChar('e1')) <> nil then
checkbox4.Checked:=true
else checkbox4.Checked:=false;
if StrPos(PChar(s), PChar('f1')) <> nil then
checkbox5.Checked:=true
else checkbox5.Checked:=false;
if StrPos(PChar(s), PChar('g1')) <> nil then
checkbox6.Checked:=true
else checkbox6.Checked:=false;
if StrPos(PChar(s), PChar('h1')) <> nil then
checkbox7.Checked:=true
else checkbox7.Checked:=false;
if StrPos(PChar(s), PChar('i1')) <> nil then
checkbox8.Checked:=true
else checkbox8.Checked:=false;
if StrPos(PChar(s), PChar('j1')) <> nil then
checkbox9.Checked:=true
else checkbox9.Checked:=false;
if StrPos(PChar(s), PChar('k1')) <> nil then
checkbox10.Checked:=true
else checkbox10.Checked:=false;
if StrPos(PChar(s), PChar('a1')) <> nil then
checkbox11.Checked:=true
else checkbox11.Checked:=false;
end;
权限的赋予:
var s:string;
begin
s:=DataModule3.adoquery1.fieldbyname('人员代码').AsString;
with DataModule3.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('update net060218_password set 权限代码='''' ');
sql.Add('where 人员代码='''+s+'''');
execsql;
if checkbox1.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''b1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox2.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''c1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox3.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''d1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox4.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''e1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox5.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''f1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox6.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''g1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox7.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''h1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox8.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''i1''');
execsql;
end;
if checkbox9.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''j1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox10.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''k1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
if checkbox11.Checked=true then
begin
sql.Clear;
sql.Add('update net060218_password set 权限代码=权限代码+''a1''');
sql.Add('where 人员代码='''+s+'''');
execsql;
end;
end;
with DataModule3.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select net060218_password.人员代码,姓名,密码,权限代码 from net060218_emploee,net060218_password ');
sql.Add('where net060218_password.人员代码=net060218_emploee.人员代码');
open;
end;
end;
密码修改模块:
procedure TMy_imfor.FormActivate(Sender: TObject);
begin
with DataModule3.ADOQuery2 do
begin
sql.Add('select * from net060218_emploee ');
sql.Add('where 人员代码='''+login.Edit1.Text+'''');
open;
end;
end;
密码修改:
begin
if edit1.Text='' then
application.MessageBox('请输入原密码!','提示',mb_ok)
else if edit2.Text='' then
application.MessageBox('请输入新密码!','提示',mb_ok)
else if edit3.Text='' then
application.MessageBox('请再次输入新密码!','提示',mb_ok)
else
begin
with DataModule3.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from net060218_password where 人员代码='''+login.Edit1.Text+'''');
open;
if edit1.Text=trim(fieldbyname('密码').AsString) then
begin
if (trim(edit2.Text)='') or (trim(edit3.Text)='') then
application.MessageBox('密码不合法!','提示',mb_ok)
else if edit2.Text<>edit3.Text then
application.MessageBox('密码不一致!','提示',mb_ok)
else
begin
close;
sql.Clear;
sql.Add('update net060218_password ');
sql.Add('set 密码='''+edit2.Text+'''');
sql.Add(' where 人员代码='''+login.Edit1.Text+'''');
execsql;
application.MessageBox('修改成功!','提示',mb_ok);
end;
end
else
application.MessageBox('密码不正确!','提示',mb_ok);
end;
end;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
统计表里面的adoquery1:
select jno 物料代码 ,sum(jliang)进仓数据 from dan
group by jno
order by jno
统计表里面的adoquery2:
select jno 物料代码 ,sum(cling)出仓数量 from dan
group by jno
order by jno
统计按钮:
begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select jno 物料代码 ,sum(jliang)进仓数据 ,sum(cling)出仓数量 from dan ');
adoquery1.SQL.Add('where jtime>= '''+combobox1.Text+'''and jtime <='''+combobox2.Text+'''' );
adoquery1.SQL.Add('group by jno');
adoquery1.SQL.add('order by jno');
adoquery1.Open;
adoquery3.SQL.Clear;
adoquery3.SQL.Add('select jno 物料代码 ,sum(cling)出仓数量 from dan ');
adoquery3.SQL.Add('where jtime>= '''+combobox1.Text+'''and jtime <='''+combobox2.Text+'''' );
adoquery3.SQL.Add('group by jno');
adoquery3.SQL.add('order by jno');
adoquery3.Open;
end;
打印报表的combobox按钮对应生成:
begin
Form14.show;
Form13.Hide;
Form14.quickrep1.Hide;
Form14.ADOQUERY2.Close;
Form14.ADOQUERY2.sql.Clear;
Form14.ADOQUERY2.SQL.ADD('select jname from dan');
Form14.ADOQUERY2.SQL.ADD('group by jname');
Form14.ADOQUERY2.Open;
while not Form14.adoquery2.Eof do
begin
Form14.combobox3.Items.Add(Form14.adoquery2.Fields[0].AsString);
Form14.adoquery2.Next
end;
打印报表的adoquery1:
select dan.* ,jdan.jdanw ,jdan.kcun from dan,jdan
where dan.jno=jdan.jno
统计里面的combobox按钮对应生成:
begin
Form14.show;
Form13.Hide;
quickrep1.Hide;
adoquery2.Close;
adoquery2.sql.Clear;
adoquery2.SQL.Add('select jname from dan');
adoquery2.SQL.add('group by jname');
adoquery2.Open;
while not adoquery2.Eof do
begin
combobox3.Items.Add(adoquery2.Fields[0].AsString);
adoquery2.Next
end;
adoquery2.Close;
adoquery2.Open;
end;
月份打印:
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select dan.*,jdan.jdanw from dan,jdan ');
adoquery1.SQL.Add('where dan.jno=jdan.jno and jtime like ''%'+combobox1.Text+'_'+'%''');
adoquery1.Open;
qrlabel1.Caption:='某某公司2009-'+combobox1.text+'月的进出仓单';
quickrep1.Preview;
end;
按年和物料打印:
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from dan,jdan');
adoquery1.SQL.Add('where dan.jno=jdan.jno and dan.jname='''+combobox3.Text+''' and jtime like ''%'+combobox2.Text+'%''');
adoquery1.Open;
qrlabel1.Caption:='某某公司第'+combobox2.text+'年'+combobox3.text+'的进出仓单';
quickrep1.Preview;
end;
转载于:https://blog.51cto.com/leoky/399463