📄 untaskgoodsplan.pas
字号:
unit UntAskGoodsPlan;
/////***配送-- 要货计划和配送需求计划****/
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, Grids, StdCtrls, Buttons, ExtCtrls, ComCtrls;
type TaskMaster = record
VcGetGoodsPlanID: string;
BillNo: string;
iBillType: Integer;
VCOfficeID: String;
VcStockID: string; // 选择中心仓库
DGetDate: TDateTime;
VcEID: string; //制单人
vcCheckE: string; //审核人
Memo: string;
IPlanStatus: Integer;
end;
type
TFmAskGoodsPlan = class(TForm)
Panel1: TPanel;
Label2: TLabel;
Label1: TLabel;
Label4: TLabel;
Label6: TLabel;
EdtSendStock: TEdit;
Panel4: TPanel;
TeThemeButton1: TSpeedButton;
TeThemeButton2: TSpeedButton;
sourcebill: TSpeedButton;
query: TSpeedButton;
help: TSpeedButton;
EdtRecvStock: TEdit;
EdtMemo: TEdit;
Panel2: TPanel;
BtnSave: TBitBtn;
BtnClose: TBitBtn;
Panel3: TPanel;
dpt1: TDateTimePicker;
EdtBillNo: TEdit;
StaticText1: TStaticText;
Label7: TLabel;
CdsMasterData: TClientDataSet;
CdsDetailData: TClientDataSet;
sgorder: TStringGrid;
Label5: TLabel;
Edit1: TEdit;
SpeedButton1: TSpeedButton;
CmbG: TLabeledEdit;
cmbc: TLabeledEdit;
SpeedButton3: TSpeedButton;
Panel10: TPanel;
Cmd_Delete: TSpeedButton;
Cmd_Add: TSpeedButton;
procedure SpeedButton3Click(Sender: TObject);
procedure EdtSendStockKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtRecvStockKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dpt1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtMemoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sgorderKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CdsDetailDataBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
procedure CdsMasterDataBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnCloseClick(Sender: TObject);
procedure sgorderDblClickCell(Sender: TObject; ARow, ACol: Integer);
procedure BtnSaveClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sgorderDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure sgorderDblClick(Sender: TObject);
procedure sgorderSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure sgorderKeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton1Click(Sender: TObject);
procedure Cmd_AddClick(Sender: TObject);
procedure Cmd_DeleteClick(Sender: TObject);
private
{ Private declarations }
AskMaster: TAskMaster;
sBillId, SEditMode: string;
sUserCode: String;
sGoodsName: String;
procedure SelectGoods(iRow: Integer);
procedure FormIni;
function CheckData: Boolean;
function SaveData: Boolean;
procedure CheckCells(ACol, ARow: Integer);
function ReadBill: Boolean;
public
{ Public declarations }
pcol,prow:integer; //记录行列编号
end;
var
FmAskGoodsPlan: TFmAskGoodsPlan;
function ShowAskGoodsPlanFm(sBillId: string; EditMode: string; iBillType: Integer): Integer;
implementation
uses Unt_PubStrGrid, UntgoodCodeSelPei, Data, func, untdatadm,
Storage_Select, Untpart, Login_Man, Untselectps;
{$R *.dfm}
function ShowAskGoodsPlanFm(sBillId: string; EditMode: string; iBillType: Integer): Integer;
begin
Result := 1;
FmAskGoodsPlan := TFmAskGoodsPlan.Create(nil);
try
FmAskGoodsPlan.sBillId := sBillId;
FmAskGoodsPlan.SEditMode := UpperCase(EditMode);
FmAskGoodsPlan.AskMaster.iBillType := iBillType;
FmAskGoodsPlan.FormIni;
FmAskGoodsPlan.ShowModal;
finally
FmAskGoodsPlan.Free;
end;
end;
procedure TFmAskGoodsPlan.SpeedButton3Click(Sender: TObject);
var
sEId, sEName: string;
begin
Employe_Check:='';
Employe_Check:='Storage_Umanage_Fad';
Employe_Check_Result:='';
frm_Login_Man:=Tfrm_Login_Man.Create(self);
frm_Login_Man.Caption:='经手人选择';
frm_Login_Man.ShowModal;
cmbc.Text:=Employe_Check_Result;
AskMaster.vcCheckE := Employe_Check_Result;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmAskGoodsPlan.EdtSendStockKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
//SpeedButton1Click(sender);
end;
end;
procedure TFmAskGoodsPlan.EdtMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
SpeedButton3Click(sender);
end;
end;
procedure TFmAskGoodsPlan.EdtRecvStockKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmAskGoodsPlan.dpt1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmAskGoodsPlan.EdtMemoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{
if Key = VK_RETURN then
begin
Grid.SetFocus;
Grid.Col := 1;
Grid.Row := 1;
end;
}
end;
procedure TFmAskGoodsPlan.sgorderKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (sgorder.Col = 1) or (sgorder.Col = 2) then
begin
if key = VK_RETURN then
begin
SelectGoods(sgorder.Row);
Exit;
end;
end;
if (sgorder.Col = 4) then
begin
if key = VK_RETURN then
begin
sgorder.Col := 5;
Exit;
end;
end;
if (sgorder.Col = 5) then
begin
if key = VK_RETURN then
begin
if (Trim(sgorder.Cells[1, sgorder.Row]) <> '') or
(Trim(sgorder.Cells[2, sgorder.Row]) <> '') then
begin
if sgorder.Row = (sgorder.RowCount - 1) then
begin
sgorder.RowCount := sgorder.RowCount + 1;
end;
sgorder.Col := 1;
sgorder.Row := sgorder.Row + 1;
Exit;
end;
end;
end;
if (sgorder.Col = 7) then
begin
if Key = VK_SPACE then
begin
CheckCells(sgorder.Col,sgorder.Row);
end;
end;
if key = VK_RETURN then
Key := VK_TAB;
if (Key = VK_Insert) and (ssCtrl in Shift) then
// sgorder.InsertRows(Grid.Row, 1);
if (Key = VK_DELETE) and (ssCtrl in Shift) then
// TeThemeButton2Click(sender)
end;
procedure TFmAskGoodsPlan.SelectGoods(iRow: Integer);
var
sGoodsID, sPtypeid: string;
sStd: string;
begin
end;
procedure TFmAskGoodsPlan.FormIni;
var
iRow: Integer;
temp:widestring;
sqlpubs,make:string;
begin
EdtSendStock.Text:=trim(Handle_Part);
EdtRecvStock.Text:=trim(shopid) ;
// EdtM.Text := '';
cmbC.Text := '';
cmbg.Text := '';
edit1.Clear;
dpt1.Date:=date;
try
sqlpubs:='select max(right(VcBillNo,4)) from GetGoodsPlanMaster where DGetDate='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+''''+' and VCOfficeID='+''''+trim(Handle_Part)+'''';
make:='PSQ-'+trim(Handle_Part)+trim(handle_no); //编码中部门编号
edtbillno.Text:=setcode(sqlpubs,make);
cmbg.Text := trim(Handle_Man);
AskMaster.VcEID:=cmbg.Text;
InitialStrGrid(sgorder,'门店配送需求单');
CdsMasterData.Close;
CdsMasterData.Data :=null;
temp:= 'Select * from GetGoodsPlanMaster where 1=2';
CdsMasterData.Data:=adisp.PubBatch(temp);
CdsMasterData.Open;
temp:='Select * from GetGoodsPlan where 1=2';
CdsDetailData.Close;
CdsDetailData.Data:=null;
CdsDetailData.Data:=adisp.PubBatch(temp);
CdsDetailData.Open;
except
application.MessageBox('服务器发生故障!',pchar(application.Title),mb_iconwarning);
exit;
end;
// Grid.ClearRect(1, 1, Grid.ColCount, Grid.RowCount);
for iRow := 1 to sgorder.RowCount do
begin
sgorder.Cells[0, iRow] := IntToStr(iRow);
sgorder.Rows[irow].Clear;
end;
sgorder.RowCount := 2;
sgorder.Cells[0, 1]:='1';
IF SEditMode <> '' THEN
ReadBill;
end;
function TFmAskGoodsPlan.CheckData: Boolean;
var
iRow: Integer;
begin
//
Result := False;
// AskMaster.vcExplain := EdtMemo.Text;
AskMaster.BillNo := EdtBillNo.Text;
if Trim(askMasTer.BillNo) = '' then
begin
EdtBillNo.SetFocus;
Application.MessageBox('单据编号不能为空!', pchar(application.Title), MB_OK + MB_ICONinformation);
Exit;
end;
if (Trim(EdtSendStock.Text) = '') then
begin
EdtSendStock.SetFocus;
Application.MessageBox('要货单位不能为空!', pchar(application.Title), MB_OK + MB_ICONinformation);
Exit;
end;
if (Trim(EdtRecvStock.Text) = '') then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -