Delphi權限設置與報表統計打印

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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章