⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untaskgoodsplan.pas

📁 适合行业为眼镜业
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    EdtRecvStock.SetFocus;
    Application.MessageBox('要货仓库不能为空!', pchar(application.Title), MB_OK + MB_ICONinformation);
    Exit;
  end;

  if (Trim(Edit1.Text) = '') or
    (AskMaster.VcStockID = '') then
  begin
    Edit1.SetFocus;
    Application.MessageBox('请选择配送仓库!', pchar(application.Title), MB_OK + MB_ICONinformation);
    Exit;
  end;
  for iRow := 1 to sgorder.RowCount - 1 do
  begin
    if (sgorder.Cells[1, iRow] = '') or (sgorder.Cells[2, iRow] = '') then
    begin
      sgorder.SetFocus;
      sgorder.Row := iRow;
      sgorder.Col := 1;
      Application.MessageBox('当前商品不能为空!', pchar(application.Title), MB_OK + MB_ICONinformation);
      Exit;
    end;
    if sgorder.Cells[5, iRow] = '' then
    begin
      sgorder.SetFocus;
      sgorder.Row := iRow;
      sgorder.Col := 5;
      Application.MessageBox('请输入申请商品数量!', pchar(application.Title), MB_OK + MB_ICONinformation);
      Exit;
    end;
    if Trim(sgorder.Cells[5, iRow]) = '' then sgorder.Cells[5, iRow] := '0';
    if StrToFloat(sgorder.Cells[5, iRow]) = 0 then
    begin
      sgorder.SetFocus;
      sgorder.Row := iRow;
      sgorder.Col := 5;
      Application.MessageBox('请输入要货数量!', pchar(application.Title), MB_OK + MB_ICONinformation);
      Exit;
    end;
  end;

  Result := True;
end;

function TFmAskGoodsPlan.SaveData: Boolean;
var
  IRow: Integer;
  fQty, fEndQty,dRate: Double;
  PsRst,iunit: Integer;
  iEditMode,IStatus: Integer;
  mdata,Ddata:olevariant;//主副表数据
begin
//
  Result := False;
  AskMaster.DGetDate:=dpt1.Date;
  AskMaster.VCOfficeID:=trim(EdtSendStock.Text);
  if SEditMode = '' then
    iEditMode := 0
  else
    iEditMode := 1;
  try
    with CdsMasterData do
    begin
     EmptyDataSet;
     Append;
     FieldByName('VcGetGoodsPlanID').AsString := AskMaster.VcGetGoodsPlanID;
     FieldByName('VcBillNo').AsString := AskMaster.BillNo;
     FieldByName('VCOfficeID').AsString := AskMaster.VCOfficeID;
     FieldByName('iBilltype').asinteger := AskMaster.iBillType;
     FieldByName('VcStockID').AsString := AskMaster.VcStockID;
     FieldByName('DGetDate').asstring := formatdatetime('yyyy''-''mm''-''dd',AskMaster.DGetDate);
     FieldByName('VcEID').AsString := AskMaster.VcEID;
     FieldByName('vcCheckE').AsString := AskMaster.vcCheckE;
     FieldByName('Memo').AsString := AskMaster.Memo;
     FieldByName('IPlanStatus').Asinteger := 2;
   end;

   with CdsDetailData do
   begin
    EmptyDataSet;
    for IRow := 1 to sgorder.RowCount - 1 do
    begin
      Append;
      FieldByName('VcGetGoodsPlanID').AsString := AskMaster.VcGetGoodsPlanID;
      FieldByName('ord').asInteger := IRow;
      FieldByName('VCPtyieID').AsString := Trim(sgorder.cells[2, iRow]); //商品编号
      FieldByName('vcGoodUnitId').AsString := Trim(sgorder.cells[4, iRow]);
      //iunit :=  StrToInt(sgorder.Cells[12,iRow]);
      iunit:=0;
      dRate := StrToFloat(sgorder.Cells[11,iRow]);
      if iunit = 1 then
      begin
        fQty := StrToFloat(Trim(sgorder.cells[5, iRow])) * dRate;
        FieldByName('NQty').asFloat := fQty;
        fEndQty := StrToFloat(Trim(sgorder.cells[6, iRow]));
        FieldByName('NSendQty').asFloat := 0;
        FieldByName('NEndQty').asFloat := fQty - fEndQty;
      end
      else
      begin
        fQty := StrToFloat(Trim(sgorder.cells[5, iRow]));
        FieldByName('NQty').asFloat := fQty;
        fEndQty := StrToFloat(Trim(sgorder.cells[6, iRow]));
        FieldByName('NSendQty').asFloat := 0;
        FieldByName('NEndQty').asFloat := fQty - fEndQty;
      end;
      IStatus := StrToInt(sgorder.Cells[10,iRow]);
      FieldByName('IGetStatus').asFloat := IStatus;
      FieldByName('iUnit').asFloat := iunit;
      FieldByName('NRate').asFloat := dRate;
     end;
    end;
    PsRst := CdsDetailData.RecordCount;
     mdata:= CdsMasterData.Data;
     Ddata:=CdsDetailData.Data;
     adisp.InsertGetPlan(mdata,dData,iEditMode, PsRst);

    if PsRst <> 0 then raise Exception.Create('单据保存失败!');
    Result := True;
  except
    on E: Exception do
    begin
      Application.MessageBox(Pchar(E.message), pchar(application.Title), MB_OK + MB_ICONinformation)
    end;
  end;
end;

procedure TFmAskGoodsPlan.CdsDetailDataBeforeGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
begin
  //OwnerData := 'Select * from GetGoodsPlan where VcGetGoodsPlanID =''' + sBillId + '''';
end;

procedure TFmAskGoodsPlan.CdsMasterDataBeforeGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
begin
  //OwnerData := 'Select * from GetGoodsPlanMaster where VcGetGoodsPlanID = ''' + sBillId + '''';
end;

procedure TFmAskGoodsPlan.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   action:=cafree;

end;

procedure TFmAskGoodsPlan.BtnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFmAskGoodsPlan.sgorderDblClickCell(Sender: TObject; ARow,
  ACol: Integer);
begin
  if ACol = 7 then
  begin
     CheckCells(ACol,ARow);
  end;
end;

procedure TFmAskGoodsPlan.CheckCells(ACol, ARow: Integer);
begin
  if (Trim(sgorder.Cells[10, ARow]) = '0') or
    (Trim(sgorder.Cells[10, ARow]) = '') then
  begin
    sgorder.Cells[ACol, ARow] := '【已审】';
    sgorder.Cells[10, ARow] := '1';
  end
  else
  begin
    sgorder.Cells[ACol, ARow] := '【未审】';
    sgorder.Cells[10, ARow] := '0';
  end;
end;

procedure TFmAskGoodsPlan.BtnSaveClick(Sender: TObject);
begin
  if Not CheckData then Exit;
  if Not SaveData then Exit;
  if SEditMode = '' then
  begin
     FormIni;
     EdtSendStock.SetFocus;
     Exit;
  end;
  Close;
end;

procedure TFmAskGoodsPlan.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_EsCaPE then
    Close;
end;

function TFmAskGoodsPlan.ReadBill: Boolean;
var
  iRow: Integer;
begin
//
  Result := False;
  if SEditMode = '' then Exit;
  try
    if CdsMasterData.Active then CdsMasterData.Close;
    if CdsDetailData.Active then CdsDetailData.Close;
    CdsMasterData.Open;
    CdsDetailData.Open;
  //---显示数据,并且给相应变量付值------//



  //------显示明细数据--------------//
    CdsDetailData.First;
    for iRow := 1 to CdsDetailData.RecordCount do
    begin
   //
      sgorder.Cells[0, iRow] := IntToStr(CdsDetailData.RecNo);

      CdsDetailData.Next;
    end;
    Result := True;
  except
    Result := False;
  end;
end;

procedure TFmAskGoodsPlan.sgorderDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  s:string;
  r:TRect;
begin
//ydy add 设置显示颜色
 with Sender as Tstringgrid do
        begin
        if gdSelected in State then
        Canvas.Brush.Color:= clTeal;  //clBlue; //clyellow;//clRed;
        Canvas.TextRect(Rect,Rect.Left,Rect.Top,' '+Cells[ACol,ARow]);
        if gdFocused in State then
        Canvas.DrawFocusRect(Rect);
        end;

//不但水平居中,还垂直居中
with Sender as Tstringgrid do
    begin
      Canvas.FillRect(Rect);
      s:=Cells[ACol,ARow];
      r:=Rect;
      DrawText(Canvas.Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER);
    end;

end;

procedure TFmAskGoodsPlan.sgorderDblClick(Sender: TObject);
var
  i:integer;
begin
/////复制  数量  单位等
  if (pcol = 1) or (pcol =2) then
  begin
      fmgoodCodeSelPei:= TfmgoodCodeSelPei.Create(nil);
     try
      fmgoodCodeSelPei.show_mode := '配送需求单';
      fmgoodCodeSelPei.ShowModal;
     finally
      fmgoodCodeSelPei.Free;
     end;
  end;
  if pcol=5 then
  begin
    for i:=prow+1 to sgorder.RowCount-1 do
    begin
      sgorder.Cells[5,i]:= sgorder.Cells[5,prow]
    end;
  end;
end;

procedure TFmAskGoodsPlan.sgorderSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  pcol:=acol;
  prow:=arow;
end;

procedure TFmAskGoodsPlan.sgorderKeyPress(Sender: TObject; var Key: Char);
begin
  if (pcol =5) or (pcol =6)  then
  begin
  if not (key in ['0'..'9',#8]) then    //数量没有小数点
  key:=#0;
   sgorder.Options := sgorder.Options+ [goediting]
  end
 else
  begin
   sgorder.Options := sgorder.Options - [goediting];
   key := #0;
  end;

end;

procedure TFmAskGoodsPlan.SpeedButton1Click(Sender: TObject);
begin
  dlgselectps:=Tdlgselectps.Create(self);
  dlgselectps.ShowModal;
  if dmmain.CDSdata.IsEmpty  then exit;
  Edit1.Text:=Trim(dmmain.CDSdata.fieldbyname('managerid').AsString);
  AskMaster.VcStockID:=Trim(dmmain.CDSdata.fieldbyname('managerid').AsString);
  dmmain.CDSdata.Close;
  dmmain.CDSdata.Data:=null;
  dlgselectps.Free;
end;

procedure TFmAskGoodsPlan.Cmd_AddClick(Sender: TObject);
begin
  addgridrows(sgorder);
end;

procedure TFmAskGoodsPlan.Cmd_DeleteClick(Sender: TObject);
begin
  deletegridrows(sgorder,prow);
end;

end.

⌨️ 快捷键说明

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