jiangchen.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 961 行 · 第 1/3 页

PAS
961
字号
       end;
     end;
end;

procedure tformjiangchen.showjcname(i:string);
begin
  with datamod.ADOQuery1 do
  begin
   sql.clear;
   case strtoint(i) of
    0:begin
      sql.add('select * from per18010 where jckind=''奖励'' ');
      open;
      while not eof do
       begin                //在奖劢名称中,显示奖劢类别中所有的奖劢种类
         formjiangchen.dbgrid1.columns[6].picklist.add(fieldbyname('jcname').asstring);
         next;
       end;
      end;
     1:begin
       sql.add('select * from per18010 where jckind=''处罚'' ');
       open;
       while not eof do
        begin               //在处罚名称中,显示奖劢类别中所有的处罚种类
          dbgrid2.columns[6].picklist.add(fieldbyname('jcname').asstring);
          next;
        end;
       end;
     end;
   close;
   end;
end;

procedure TformJiangChen.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
      if key=#13 then
      begin
         with sender as twincontrol do
            postmessage(handle,wm_keydown,vk_tab,0);
            key:=#0;
       end;
end;

procedure TformJiangChen.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  setdbgridwidth(dbgrid1,'p'+'jiangchen');
  setdbgridwidth(dbgrid2,'p'+'jiangchen');
  setdbgridwidth(dbgrid3,'p'+'jiangchen');
 {if  not (isdate(datamod.adojiangchen.FieldByName('jcdate').text))  then
   begin
    if messagedlg('日期可能有误,确定退出吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
      datamod.Adoadvance.CancelUpdates       //当用户输入一条不符合要求的记录时,在
    else
      exit;
   end;}
   action:=cafree;
   formjiangchen:=nil;
end;

procedure TformJiangChen.btnexitClick(Sender: TObject);
begin
  close;
end;

procedure TformJiangChen.DBGrid2KeyPress(Sender: TObject; var Key: Char);
begin
  dbgrid_keypress(sender,key);
end;

procedure TformJiangChen.FormActivate(Sender: TObject);
begin
  getdbgridwidth(dbgrid1,'p'+'jiangchen');
  getdbgridwidth(dbgrid2,'p'+'jiangchen');
  getdbgridwidth(dbgrid3,'p'+'jiangchen');
  with datamod do
  begin
   ADOjiangchen.close;
   ADOjckind.close;
   ADOjiangchen.CursorType :=ctkeyset;
   ADOjckind.LockType :=ltpessimistic;
   ADOjiangchen.LockType :=ltpessimistic;
   ADOjckind.CursorType :=ctkeyset;
   ADOjiangchen.Open;
   ADOjckind.Open;
   radiobutton1.checked:=not adojckindjcway.AsBoolean;
   radiobutton2.checked:=adojckindjcway.AsBoolean;
  end;
  //pagecontrol1.ActivePageIndex :=0;
end;

procedure TformJiangChen.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
   {case button of
     nbinsert:if pagecontrol1.activepageindex=0 then
       datamod.adojiangchen.fieldbyname('jckind').asstring:='奖劢'
       else
         datamod.adojiangchen.fieldbyname('jckind').asstring:='处罚';
     end;}
end;

procedure TformJiangChen.tbnexitClick(Sender: TObject);
begin
  close;
end;

procedure TformJiangChen.ToolButton6Click(Sender: TObject);
begin
  datamod.ADOjiangchen.Cancel;
end;

procedure TformJiangChen.tbnsortClick(Sender: TObject);
var i:1..5;
begin
  if manyfield then
   begin
     manyfield:=false;
     tbnsort.hint:='设定多字段排序';
     popupmenu1.Items[0].Enabled :=false;
     popupmenu1.Items[1].Enabled :=false;
     popupmenu1.Items[2].Enabled :=false;
     popupmenu1.Items[3].Enabled :=false;
   end
  else begin
    manyfield:=true;
    tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
    f:='';
    popupmenu1.Items[0].Enabled :=true;
    popupmenu1.Items[1].Enabled :=true;
    popupmenu1.Items[2].Enabled :=true;
    popupmenu1.Items[3].Enabled :=true;
    fcount:=0;
    for i:=1 to 5 do
     begin
      findex[i]:=0;
      fsort[i]:='';
     end;
  end;
end;

procedure TformJiangChen.tbnfindClick(Sender: TObject);
begin
  if assigned(formcanfind) then  formcanfind.close;
  findrecorder(datamod.adojiangchen,'Adojiangchen','per17010');   //调用publicfuction中的查询功能
end;

procedure TformJiangChen.DBGrid1TitleClick(Column: TColumn);
begin
   if f='DESC' then
     f:='ASC'
   else
     f:='DESC';
   datamod.ADOjiangchen.Sort :=column.FieldName+' '+f;
end;

procedure TformJiangChen.DBGrid3TitleClick(Column: TColumn);
begin
   if f='DESC' then
     f:='ASC'
   else
     f:='DESC';
   datamod.ADOjckind.Sort :=column.FieldName+' '+f;
end;

procedure TformJiangChen.N1Click(Sender: TObject);
var i:integer;
   dbgrid:Tdbgrid;
begin
  if fcount>0 then
    if db<>pagecontrol1.ActivePageIndex then
     begin
      dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
      with dbgrid do
      begin
        for i:=1 to fcount do
          dbgrid.Columns[findex[i]].Color :=clwindow;
      end;
      fcount:=0;
     end;
  db:=pagecontrol1.ActivePageIndex;
  dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
  with dbgrid do
  begin
  for i:=1 to fcount do
   if dbgrid.SelectedIndex =findex[i] then
    begin
     fsort[i]:='ASC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid.selectedindex;
    fsort[fcount]:='ASC';
    dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
   end;
  end;
end;

procedure TformJiangChen.N2Click(Sender: TObject);
var i:integer;
   dbgrid:Tdbgrid;
begin
  if fcount>0 then
    if db<>pagecontrol1.ActivePageIndex then
     begin
      dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
      with dbgrid do
      begin
        for i:=1 to fcount do
          dbgrid.Columns[findex[i]].Color :=clwindow;
      end;
      fcount:=0;
     end;
  db:=pagecontrol1.ActivePageIndex;
  dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
  with dbgrid do
  begin
  for i:=1 to fcount do
   if dbgrid.SelectedIndex =findex[i] then
    begin
     fsort[i]:='DESC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid.selectedindex;
    fsort[fcount]:='DESC';
    dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
   end;
  end;
end;

procedure TformJiangChen.N4Click(Sender: TObject);
var i:1..5;
   sortexp:string;
   dbgrid:Tdbgrid;
begin
  if db<>pagecontrol1.ActivePageIndex then
   begin
     dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
     with dbgrid do
     begin
      for i:=1 to fcount do
       dbgrid.Columns[findex[i]].Color :=clwindow;
     end;
     fcount:=0;
     exit;
   end;
  sortexp:='';
  for i:=1 to fcount do
  begin
    dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
     with dbgrid do
     begin
      if dbgrid.Columns[findex[i]].Color=clgray then
       begin
         sortexp :=sortexp+dbgrid.Columns[findex[i]].FieldName+' '+fsort[i];
         if i<fcount then sortexp:=sortexp+',';
       end;
     end;  
  end;
  if sortexp<>'' then
    case pagecontrol1.ActivePageIndex of
     0,1: datamod.ADOjiangchen.Sort :=sortexp;
       2: datamod.ADOjckind.sort:=sortexp;
    end;
end;

procedure TformJiangChen.N3Click(Sender: TObject);
var i:1..5;
   dbgrid:Tdbgrid;
begin
  dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(pagecontrol1.ActivePageIndex+1)));
  with dbgrid do
  begin
   for i:=1 to fcount do
    dbgrid.Columns[findex[i]].Color :=clwindow;
  end;
   fcount:=0;
end;

procedure TformJiangChen.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  (sender as Tpagecontrol).activepage.Highlighted :=false;
end;

procedure TformJiangChen.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
  if (key<#48) or (key>#58) then
    key:=#0;
end;

procedure TformJiangChen.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (activecontrol=dbgrid1) or (activecontrol=dbgrid2) or (activecontrol=dbgrid3) then
    exit;
  if key=#13 then
    begin
      key:=#0;
      if activecontrol=dbcombobox2 then
        begin
          if datamod.ADOjiangchen.State =dsinsert then
            begin
              datamod.ADOjiangchen.post;
              datamod.ADOjiangchen.append;
            end;
            dbedit1.setfocus;
        end
      else
        selectnext(activecontrol,true,true);
   end;
end;

procedure TformJiangChen.FormCreate(Sender: TObject);
begin
  i:=true;
  j:=true;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?