goodsindetail.pas

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

PAS
206
字号
unit goodsindetail;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, DBCtrls, Buttons,adodb,db;

type
  TFormgoodsindetail = class(TForm)
    GroupBox1: TGroupBox;
    Label4: TLabel;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label2: TLabel;
    Label3: TLabel;
    Label25: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    Label5: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Formgoodsindetail: TFormgoodsindetail;

implementation

uses datamol, publicfunction;

{$R *.DFM}

procedure TFormgoodsindetail.FormCreate(Sender: TObject);
var query1:tadoquery;
begin
 query1:=tadoquery.Create(nil);
 query1.Connection:=datamod.Database1;
 query1.Close;
 query1.SQL.Text:='select goodsid,goodsname from goods';
 query1.open;
 if not query1.Eof then
 begin
  while not query1.Eof do
  begin
   listbox1.Items.add(query1.fieldbyname('goodsid').asstring+copychar(' ',query1.fieldbyname('goodsid').size-length(query1.fieldbyname('goodsid').asstring))+'   '+query1.fieldbyname('goodsname').asstring);
   query1.Next;
  end;
 end;
 query1.Destroy;
 datamod.Adoindetail.Append;
end;

procedure TFormgoodsindetail.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;
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;

procedure TFormgoodsindetail.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]);
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;

procedure TFormgoodsindetail.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.itemindex:=j-1 ;
    listbox2.selected[j-1]:=true;
     end
     else
     begin
    //listbox2.itemindex:=j;
    listbox2.selected[j]:=true;
    break;
    end;
    ////////////////////////////////
    label25.caption:=inttostr(listbox2.items.count);
    label25.update;
end;

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

procedure TFormgoodsindetail.Button1Click(Sender: TObject);
var goodsid:string;
    query1,query:tadoquery;
    i:integer;
begin
  query1:=tadoquery.Create(self);
  query1.Connection:=datamod.Database1;
  query:=tadoquery.Create(self);
  query.Connection:=datamod.Database1;
if trim(dbedit1.Text)='' then
begin
  application.MessageBox('系数号不能为空!','提示',mb_ok+mb_iconwarning);
  exit;
end;
try
 query1.close;
 query1.SQL.Text:='select * from indetail where indetailno='''+dbedit1.text+'''';
 query1.Open;
 if not query1.eof then
 begin
  query1.Close;
  query1.SQL.Clear;
  query1.SQL.Text:='delete indetailb where indetailno='''+dbedit1.text+'''';
  query1.ExecSQL;
 end
 else
   datamod.adoindetail.Post;
 query1.Close;
 for i:=0 to listbox2.Items.Count-1 do
 begin
   goodsid:=copy(listbox2.items[i],1,pos(' ',listbox2.items[i])-1);
   query.close;
   query.SQL.Clear;
   query.SQL.Text:='select prices from goods where goodsid='''+goodsid+'''';
   query.open;
   query1.SQL.Clear;
   query1.SQL.Text:='insert into indetailb(indetailno,goodsid,prices) values('''+dbedit1.text+''','''+goodsid+''','''+query.fieldbyname('prices').asstring+''')';
   query1.ExecSQL;
  // datamod.adoindetailb.Refresh;
 end;
 application.MessageBox('操作成功!','提示',mb_ok);
 close;
except
 application.MessageBox('操作失败!','提示',mb_ok);
end;
end;

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

procedure TFormgoodsindetail.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 datamod.adoindetailb.close;
 datamod.adoindetailb.open;
end;

end.

⌨️ 快捷键说明

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