customerpm.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 447 行

PAS
447
字号
unit customerpm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, Buttons, ExtCtrls, Db, ADODB, ComCtrls, Gauges;

type
  TFormcustomerpm = class(TForm)
    Panel5: TPanel;
    RG1: TRadioGroup;
    GroupBox3: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label4: TLabel;
    Label5: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ComboBox1: TComboBox;
    Button1: TButton;
    Edit1: TEdit;
    Qry1: TADOQuery;
    Qry2: TADOQuery;
    Label1: TLabel;
    Panel1: TPanel;
    Gauge1: TGauge;
    Label3: TLabel;
    GroupBox1: TGroupBox;
    Label8: TLabel;
    Label10: TLabel;
    MaskEdit1: TMaskEdit;
    Memo1: TMemo;
    DateTimePicker1: TDateTimePicker;
    ComboBox2: TComboBox;
    Label2: TLabel;
    Label6: TLabel;
    ComboBox3: TComboBox;
    Label7: TLabel;
    Edit2: TEdit;
    Label9: TLabel;
    Edit3: TEdit;
    Label11: TLabel;
    ADOQuery1: TADOQuery;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Edit7: TEdit;
    Label20: TLabel;
    Label21: TLabel;
    Edit8: TEdit;
    procedure RG1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure ListBox1DblClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Formcustomerpm: TFormcustomerpm;

implementation

uses main,publicfunction,datamol,pieinput;
{$R *.DFM}

procedure TFormcustomerpm.RG1Click(Sender: TObject);
begin
    if rg1.ItemIndex=0 then
    begin
       combobox1.enabled:=false;
       listbox1.enabled:=false;
       speedbutton1.enabled:=false;
       speedbutton2.enabled:=false;
       Listbox2.clear;
       Qry1.close;
       Qry1.sql.text:='Select pm_no,pm_name from piepm ';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+
                              Qry1.fieldbyname('pm_name').asstring+copychar(' ',Qry1.fieldbyname('pm_name').size-length(Qry1.fieldbyname('pm_name').asstring)));
           Qry1.next;
       end;
    end else
    begin
       combobox1.enabled:=true;
       listbox1.enabled:=true;
       speedbutton1.enabled:=true;
       speedbutton2.enabled:=true;
    end;
end;

procedure TFormcustomerpm.ComboBox1Change(Sender: TObject);
begin
  if length(combobox1.text)>11 then
  begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select pm_no,pm_name from piepm where pm_no='''+trim(copy(combobox1.text,1,20))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该品名,品名编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select pm_no,pm_name from piepm where pm_no='''+trim(copy(combobox1.text,1,220))+'''order by pm_no';
       Qry1.Open;
       while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
       begin
         listbox1.Items.Add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+
                            Qry1.fieldbyname('pm_name').asstring+copychar(' ',Qry1.fieldbyname('pm_name').size-length(Qry1.fieldbyname('pm_name').asstring)));
         Qry1.Next;
       end;
     end;
     Qry1.Close;
  end;
end;

procedure TFormcustomerpm.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
   begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select pm_no,pm_name from piepm where pm_no='''+trim(copy(combobox1.text,1,20))+'''order by pm_no';
       Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该品名,品名编号有误','Error',mb_ok+mb_iconerror)
     else begin
      Qry1.SQL.Clear;
       Qry1.SQL.Text:='select pm_no,pm_name from piepm where pm_no='''+trim(copy(combobox1.text,1,20))+'''order by pm_no';
       Qry1.Open;
       Qry1.Open;
       while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
       begin
        listbox1.Items.Add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+
                            Qry1.fieldbyname('pm_name').asstring+copychar(' ',Qry1.fieldbyname('pm_name').size-length(Qry1.fieldbyname('pm_name').asstring)));
         Qry1.Next;
       end;
     end;
     Qry1.Close;
   end;
end;

procedure TFormcustomerpm.Edit1KeyPress(Sender: TObject; var Key: Char);
var
   i,p:integer;
   have:boolean;
begin
  if key=#13 then
  begin
    have:=false;
    p:=-1;
    for i:=0 to Listbox2.Items.Count-1 do
    begin
      if ansicomparetext(trim(copy(listbox2.items[i],1,20)),Edit1.text)=0 then
      begin
         have:=true;
         p:=i;
      end;
    end;
    if not have then
    begin
      Qry1.Close;
      Qry1.sql.text:='Select pm_no,pm_name from piepm where pmno='''+Edit1.text+''' ';
      Qry1.open;
      if not Qry1.eof then
      begin
           listbox2.Items.Add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+
                              Qry1.fieldbyname('pm_name').asstring+copychar(' ',Qry1.fieldbyname('pm_name').size-length(Qry1.fieldbyname('pm_name').asstring)));
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该品名编号','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit1.Clear;
  end;
end;
procedure TFormcustomerpm.ListBox1DblClick(Sender: TObject);
begin
  if listbox2.items.indexof(listbox1.items[listbox1.itemindex])<0 then
     listbox2.items.add(listbox1.items[listbox1.itemindex]);
end;

procedure TFormcustomerpm.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
    begin
       if listbox1.Selected[i] then
       if listbox2.items.indexof(listbox1.items[i])<0 then
         listbox2.Items.add(listbox1.items[i]);
    end;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormcustomerpm.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
      if listbox2.items.indexof(listbox1.items[i])<0 then
        listbox2.items.add(listbox1.items[i]);
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormcustomerpm.SpeedButton3Click(Sender: TObject);
var i,j,k:integer;
    list:TStringList;
begin
  j:=0;
  list:=TStringList.Create;
  for i:=0 to listbox2.items.count-1 do
       list.add(listbox2.items[i]);
  //for i:=0 to listbox2.items.count-1 do
  //  begin
   //j:=i;
    //break;
    //end;
    k:=0;
 for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
    begin
    j:=i;
      list.delete(j-k);
      inc(k);
    end;
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
  for i:=0 to list.count-1 do
      if j=list.count then
      begin
      listbox2.selected[j-1]:=true;
      end else
     begin
     listbox2.selected[j]:=true;
     break;
     end ;

   //  else
   //  begin
    //listbox2.itemindex:=j;
    //listbox2.selected[j]:=true
   // end;
    ////////////////////////////////
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormcustomerpm.SpeedButton4Click(Sender: TObject);
begin
  listbox2.clear;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure TFormcustomerpm.FormCreate(Sender: TObject);
begin
    datetimepicker1.date:=now;
    listbox1.items.clear;
    listbox2.items.clear;

    Qry1.close;
    Qry1.sql.text:='Select pm_no,pm_name from piepm ';
    Qry1.open;
    combobox1.items.clear;
    combobox2.items.clear;
    combobox3.items.clear;
    While not Qry1.eof do
    begin
       Combobox1.Items.add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+Qry1.fieldbyname('pm_no').asstring);
      qry1.next;
    end;
   // Qry1.close;
    //Qry1.sql.text:='Select * from lab01010 ';
    //Qry1.open;
end;

procedure TFormcustomerpm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    Selectnext(activecontrol,true,true);
  end;
end;

procedure TFormcustomerpm.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if key=VK_F1 then
      begin
        //showmessage('ok!')
     //MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
      Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
      application.HelpJump('SHM_CONTENTS0042');
    end;
end;

procedure TFormcustomerpm.DateTimePicker1CloseUp(Sender: TObject);
begin
   maskedit1.text:=datetostr(datetimepicker1.date);
end;

procedure TFormcustomerpm.Button1Click(Sender: TObject);
var i,ygbhcd,id:integer;
    hangh:string;
begin

   adoquery1.close;
   adoquery1.sql.clear;
   adoquery1.sql.text:='delete pie02015 where customer_no='''+Formpieset.ADOpie_customercustomer_no.asstring+''' ';
   adoquery1.execsql;
   adoquery1.Close;


   with datamod do
   begin
       //if not isdate(maskedit1.text) then
      // begin
         // application.messagebox('请输入正确的日期,否则将不能保存!','Warning',mb_ok+mb_iconwarning);
         // maskedit1.setfocus;
         // exit;
      // end;  //if
       Panel1.Visible:=true;
       Gauge1.MaxValue:=Listbox2.Items.Count;
       Gauge1.Progress :=0;
       adopublic.open;
       ygbhcd:=adopublicworknolength.AsInteger;
      // adoquery1.close;
      //adoquery1.sql.clear;
       //adoQuery1.sql.text:='Insert into pie (diaono,rq,ndept,odept,diaodongtime,diaodongtime2,diaodongtime3,diaodongtime4,gongzl,memo,operater,cdate,money) '+
            //    'Select '+edit8.text+','''+maskedit1.text+''','''+combobox3.text+''','''+combobox2.text+''','+edit2.text+','+edit4.text+','+edit5.text+','+edit6.text+','+edit3.text+','''+memo1.text+''','''+pubworkname+''','''+formatdatetime('yyyy/mm/dd',date)+''','''+edit7.text+''' ';

        //adoquery1.execsql;

       For i:=0 to Listbox2.Items.Count -1 do
       begin
         hanGh:=Copy(Listbox2.Items[i],1,20 );
         try
           Query1.close;
           Query1.sql.clear;
           //query1.sql.text:='insert into saldiaodong2(workno,rq,ndept,odept,operater,cdate) select '''+hanGh+''','''+maskedit1.text+''','''+combobox3.text+''','''+combobox2.text+''','''+pubworkname+''','''+formatdatetime('yyyy/mm/dd',date)+''' ';

           Query1.sql.text:='Insert into pie02015(customer_no,pm_no,pm_name) '+
                'Select '''+Formpieset.ADOpie_customercustomer_no.asstring+''',a.pm_no,a.pm_name from piepm a  where a.pm_no='''+hanGh+''' ';

          Query1.execsql;
         except
         end;
         Gauge1.AddProgress(1);
       end;

//for
       panel1.visible:=false;
       adopublic.close;
       formpieset.adopie_customer.close;
       Formpieset.ADOpie_customer.open;
       formpieset.adopie_customerpm.close;
       Formpieset.ADOpie_customerpm.open;
   end; //with
      id:=Application.messagebox('继续新增吗?','请问',mb_yesnocancel+mb_iconquestion);
      if id=6 then //Yes
      close
       // adodataset1.append
      else if id=7 then //No
         close;
end;

procedure TFormcustomerpm.Edit3Exit(Sender: TObject);
begin
 //edit7.text:=(((edit2.text).asinteger+1.5*(edit4.text).asinteger+2*(edit5.text).asinteger+3*(edit6.text).asinteger)*(edit3.text).asinteger).asstring;
edit7.text:=floattostr((strtofloat(edit2.text)+strtofloat(edit4.text)*1.5+strtofloat(edit5.text)*2+strtofloat(edit6.text)*3)*strtofloat(edit3.text));


 end;

procedure TFormcustomerpm.Edit1Exit(Sender: TObject);

var
   i,p:integer;
   have:boolean;
begin
 // if key=#13 then
  ///begin
    have:=false;
    p:=-1;
    for i:=0 to Listbox2.Items.Count-1 do
    begin
      if ansicomparetext(trim(copy(listbox2.items[i],1,20)),Edit1.text)=0 then
      begin
         have:=true;
         p:=i;
      end;
    end;
    if not have then
    begin
      Qry1.Close;
      Qry1.sql.text:='Select pm_no,pm_name from piepm where pm_no='''+Edit1.text+'''';
      Qry1.open;
      if not Qry1.eof then
      begin
           listbox2.Items.Add(Qry1.fieldbyname('pm_no').asstring+copychar(' ',Qry1.fieldbyname('pm_no').size-length(Qry1.fieldbyname('pm_no').asstring))+'   '+
                              Qry1.fieldbyname('pm_name').asstring+copychar(' ',Qry1.fieldbyname('pm_name').size-length(Qry1.fieldbyname('pm_name').asstring)));
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该品名编号','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit1.Clear;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
  //end;
end;


end.

⌨️ 快捷键说明

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