urecloss.~pas

来自「DELPHI编程入门篇.从基础入手,浅显易懂,一定物有所值.」· ~PAS 代码 · 共 500 行 · 第 1/2 页

~PAS
500
字号

procedure Tfrmrecloss.SpeedButton2Click(Sender: TObject);
var
  ayear,amonth,adate:word;
  smonth,sdate,maxid:string;
  i:integer;
begin
  for i:=1 to stringgrid1.RowCount-1 do
    stringgrid1.Rows[i].Clear;
  stringgrid1.RowCount:=2;
  for i:=1 to stringgrid2.RowCount-1 do
    stringgrid2.Rows[i].Clear;
  stringgrid2.RowCount:=2;
  edit1.Enabled:=false;
  datepicker1.Enabled:=false; datepicker2.Enabled:=false;
  edit3.Enabled:=true; edit3.Text:='';
  edit2.Text:='';
  datepicker3.Enabled:=true; datepicker3.Date:=date;
  combobox1.Enabled:=true; combobox1.ItemIndex:=-1;
  SpeedButton1.Enabled:=false;
  speedbutton2.Enabled:=false;
  speedbutton3.Enabled:=true;
  speedbutton4.Enabled:=true;
  speedbutton5.Enabled:=false;
  speedbutton6.Enabled:=false;
  decodedate(date,ayear,amonth,adate);
  smonth:=inttostr(amonth);sdate:=inttostr(adate);
  if length(smonth) < 2 then smonth:= '0'+smonth;
  if length(sdate) < 2 then sdate:='0'+sdate;
  maxid:=inttostr(ayear)+smonth+sdate;
  adoquery1.SQL.Text:='select max(losskid) as maxid from recloss where losskid like '''+maxid+'%''';
  adoquery1.Open;
  if adoquery1.FieldValues['maxid'] = null then
    edit2.Text:=maxid+'0001'
  else
    edit2.Text:=inttostr(strtoint64(adoquery1.FieldValues['maxid'])+1);
  adoquery1.Close;
end;

procedure Tfrmrecloss.SpeedButton3Click(Sender: TObject);
var
  i:integer;
  sfilid:string;
begin
  if combobox1.Text = '' then
  begin
    showmessage('请选择分店!');
    exit;
  end;
  if edit3.Text = '' then
  begin
    showmessage('请输入经手人');
    exit;
  end;
  for i:=1 to stringgrid2.RowCount-1 do
  begin
    if stringgrid2.Cells[3,i] = '' then
    begin
      showmessage('请输入损失数量!');
      exit;
    end;
  end;
  adoquery1.SQL.Text:='select filid from filiale where filname = '''+combobox1.Text+'''';
  adoquery1.Open;
  sfilid:= adoquery1.Fields[0].AsString;
  adoquery1.Close;
  try
    adoquery1.Connection.BeginTrans;
    adoquery1.SQL.Text:='insert into recloss values("'+edit2.Text+'","'+datetostr(date)
    +'","'+sfilid+'","'+edit3.Text+'")';
    adoquery2.Connection.BeginTrans;
    for i:=1 to stringgrid2.RowCount-1 do
    begin
      adoquery2.SQL.Text:='insert into recloss1 values("'+edit2.Text+'","'
      +stringgrid2.Cells[1,i]+'","'+stringgrid2.Cells[3,i]+'","'+stringgrid2.Cells[4,i]+'")';
      adoquery2.execsql;
    end;
    adoquery1.ExecSQL;
    adoquery2.Connection.CommitTrans;
    adoquery2.Close;
    adoquery1.Connection.CommitTrans;
    adoquery1.Close;
    speedbutton1.Enabled:=true;
    speedbutton2.Enabled:=true;
    speedbutton3.Enabled:=false;
    speedbutton4.Enabled:=false;
    speedbutton5.Enabled:=true;
    speedbutton6.Enabled:=true;
    edit1.Enabled:=true;
    edit2.Text:='';
    datepicker1.Enabled:=true;
    datepicker2.Enabled:=true;
    combobox1.Enabled:=false; combobox1.ItemIndex:=-1;
    datepicker3.Enabled:=false;
    edit3.Enabled:=false; edit3.Text:='';
    showmessage('保存成功');
    for i:=1 to stringgrid2.RowCount-1 do
    stringgrid2.Rows[i].Clear;
    stringgrid2.RowCount:=2;
  except
    adoquery2.Connection.RollbackTrans;
    adoquery2.Close;
    adoquery1.Connection.RollbackTrans;
    adoquery1.Close;
  end;
end;

procedure Tfrmrecloss.SpeedButton6Click(Sender: TObject);
begin
  modalresult:=mrcancel;
end;

procedure Tfrmrecloss.SpeedButton4Click(Sender: TObject);
var
  i:integer;
begin
  speedbutton1.Enabled:=true;
  speedbutton2.Enabled:=true;
  speedbutton3.Enabled:=false;
  speedbutton4.Enabled:=false;
  speedbutton5.Enabled:=true;
  speedbutton6.Enabled:=true;
  edit1.Enabled:=true;
  edit2.Text:='';
  datepicker1.Enabled:=true;
  datepicker2.Enabled:=true;
  combobox1.Enabled:=false; combobox1.ItemIndex:=-1;
  datepicker3.Enabled:=false;
  edit3.Enabled:=false; edit3.Text:='';
  for i:=1 to stringgrid1.RowCount-1 do
    stringgrid1.Rows[i].Clear;
  stringgrid1.RowCount:=2;
  for i:=1 to stringgrid2.RowCount-1 do
    stringgrid2.Rows[i].Clear;
  stringgrid2.RowCount:=2;
end;

procedure Tfrmrecloss.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if speedbutton3.Enabled then
  begin
    application.MessageBox('请保存数据以后再退出','操作提示',mb_ok);
    canclose:=false;
  end;
end;

procedure Tfrmrecloss.StringGrid2SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
  arect:trect;
  begin
  stringgrid2.Options:=stringgrid2.Options-[goediting];
  if (((acol = 1) or (acol = 2)) and (speedbutton3.Enabled)) then
  begin
    arect:=stringgrid2.CellRect(acol,arow);
    arect.Left:=stringgrid2.Left+arect.Left;
    arect.Top:=arect.Top+stringgrid2.Top;
    dxbuttonedit1.Left:=arect.Left;
    dxbuttonedit1.Top:=arect.Top;
    dxbuttonedit1.Height:=stringgrid2.RowHeights[arow]+2;
    dxbuttonedit1.Width:=stringgrid2.ColWidths[acol]+2;
    dxbuttonedit1.Visible:=true;
    dxbuttonedit1.SetFocus;
  end;
  if (((acol = 3) or (acol =4)) and (speedbutton3.Enabled)) then
    stringgrid2.Options:=stringgrid2.Options+[goediting]
end;

procedure Tfrmrecloss.dxButtonEdit1Exit(Sender: TObject);
begin
  dxbuttonedit1.Text:='';
  dxbuttonedit1.Visible:=false;
end;

procedure Tfrmrecloss.dxButtonEdit1ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  application.CreateForm(tfrmfilprod,frmfilprod);
  frmfilprod.whosel:='recloss';
  frmfilprod.ShowModal;
  frmfilprod.Release;
end;

procedure Tfrmrecloss.N1Click(Sender: TObject);
var
  arow:integer;
begin
  if  speedbutton3.Enabled then
  begin
    arow:=stringgrid2.RowCount-1;
    if stringgrid2.Cells[1,arow] <> '' then
      stringgrid2.RowCount:=stringgrid2.RowCount+1;
  end
  else
    showmessage('请先点击添加按钮');
end;

procedure Tfrmrecloss.N2Click(Sender: TObject);
var
  i:integer;
begin
  if speedbutton3.Enabled then
  begin
    if stringgrid2.RowCount > 2 then
    begin
      for i:=stringgrid2.Row to stringgrid2.RowCount-2 do
        stringgrid2.Rows[i]:=stringgrid2.Rows[i+1];
      stringgrid2.rows[stringgrid2.RowCount-1].Clear;
      stringgrid2.RowCount:=stringgrid2.RowCount-1;
    end
    else
      stringgrid2.Rows[1].Clear;
  end
  else
    showmessage('请先点击添加按钮');
end;

procedure Tfrmrecloss.SpeedButton5Click(Sender: TObject);
var
    MyPage: TRavePage;
    MyText: TRaveText;
begin
  if stringgrid2.Cells[1,1] <> '' then
  begin
    rvproject1.Open;
    with rvproject1.ProjMan do
    begin
      mypage:=findravecomponent('report1.page1',nil) as travepage ;
      MyText:=findravecomponent('Text5',MyPage) as TRaveText;
      mytext.Text:=edit2.Text;
      mytext:=findravecomponent('Text6',MyPage) as TRaveText;
      mytext.Text:=combobox1.Text;
      mytext:=findravecomponent('Text7',MyPage) as TRaveText;
      mytext.Text:=datetostr(datepicker3.date);
      mytext:=findravecomponent('Text13',MyPage) as TRaveText;
      mytext.Text:=edit3.Text;
    end;
    adoquery1.SQL.Text:='select recloss1.prid,pluinfo.prname,recloss1.lossnum,'
    +'recloss1.cause from recloss1 inner join pluinfo on recloss1.prid ='
    +' pluinfo.prid where lossid = '''+edit2.Text+'''';
    adoquery1.Open;
    rvproject1.Execute;
    rvproject1.Close;
    adoquery1.Close;
  end;
end;

end.

⌨️ 快捷键说明

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