📄 untposaskbackbill.pas
字号:
unit UntPosAskBackBill;
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
TFmPosAskBackBill = class(TForm)
Panel1: TPanel;
Label2: TLabel;
SpeedButton1: TSpeedButton;
Label1: TLabel;
SpeedButton2: TSpeedButton;
Label3: TLabel;
SpeedButton3: TSpeedButton;
Label4: TLabel;
Label5: TLabel;
SpeedButton5: TSpeedButton;
Label6: TLabel;
EdtSendStock: TEdit;
Panel4: TPanel;
TeThemeButton1: TSpeedButton;
TeThemeButton2: TSpeedButton;
sourcebill: TSpeedButton;
query: TSpeedButton;
help: TSpeedButton;
EdtRecvStock: TEdit;
EdtM: TEdit;
EdtC: TEdit;
EdtMemo: TEdit;
Panel2: TPanel;
BtnSave: TBitBtn;
BtnClose: TBitBtn;
Panel3: TPanel;
DateTimePicker1: TDateTimePicker;
CdsMasterData: TClientDataSet;
CdsDetailData: TClientDataSet;
EdtBillNo: TEdit;
StaticText1: TStaticText;
Label7: TLabel;
sgorder: TStringGrid;
bitcheck: TBitBtn;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure EdtSendStockKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtCKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdtRecvStockKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DateTimePicker1KeyDown(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 TeThemeButton2Click(Sender: TObject);
procedure TeThemeButton1Click(Sender: TObject);
procedure CdsDetailDataBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
procedure CdsMasterDataBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
procedure BtnCloseClick(Sender: TObject);
procedure sgordeDblClickCell(Sender: TObject; ARow, ACol: Integer);
procedure BtnSaveClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
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 bitcheckClick(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
FmPosAskBackBill: TFmPosAskBackBill;
function ShowPosAskBackBillFm(sBillId: string; EditMode: string; iBillType: Integer): Integer;
implementation
uses Unt_PubStrGrid, UntgoodCodeSelPei, Data, func, untdatadm;
{$R *.dfm}
function ShowPosAskBackBillFm(sBillId: string; EditMode: string; iBillType: Integer): Integer;
begin
Result := 1;
FmPosAskBackBill := TFmPosAskBackBill.Create(nil);
try
FmPosAskBackBill.sBillId := sBillId;
FmPosAskBackBill.SEditMode := UpperCase(EditMode);
FmPosAskBackBill.AskMaster.iBillType := iBillType;
FmPosAskBackBill.FormIni;
FmPosAskBackBill.ShowModal;
finally
FmPosAskBackBill.Free;
end;
end;
procedure TFmPosAskBackBill.SpeedButton1Click(Sender: TObject);
var
sStockID, sStockName: string;
begin
//选择中心仓库
sStockID := '00001';
sStockName := '申请门店';
EdtSendStock.Text := sStockName;
AskMaster.VCOfficeID := '0001';
AskMaster.VcStockID := sStockID;
EdtSendStock.Text := '门店退货申请仓库';
EdtRecvStock.Text := sStockName;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmPosAskBackBill.SpeedButton3Click(Sender: TObject);
var
sEId, sEName: string;
begin
//选择人员
sEId := '00001';
sEName := '制单人';
AskMaster.VcEID := sEId;
EdtM.Text := sEName;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmPosAskBackBill.SpeedButton5Click(Sender: TObject);
var
sEId, sEName: string;
begin
//选择人员
sEId := '00002';
sEName := '审核人';
AskMaster.vcCheckE := sEId;
EdtC.Text := sEName;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmPosAskBackBill.EdtSendStockKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
SpeedButton1Click(sender);
end;
end;
procedure TFmPosAskBackBill.EdtMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
SpeedButton3Click(sender);
end;
end;
procedure TFmPosAskBackBill.EdtCKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
SpeedButton5Click(sender);
end;
end;
procedure TFmPosAskBackBill.EdtRecvStockKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmPosAskBackBill.DateTimePicker1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
Perform(WM_NEXTDLGCTL, 0, 0);
end;
procedure TFmPosAskBackBill.EdtMemoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
sgorder.SetFocus;
sgorder.Col := 1;
sgorder.Row := 1;
end;
end;
procedure TFmPosAskBackBill.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
Grid.InsertRows(sgorde.Row, 1);
if (Key = VK_DELETE) and (ssCtrl in Shift) then
TeThemeButton2Click(sender)
}
end;
procedure TFmPosAskBackBill.SelectGoods(iRow: Integer);
var
sGoodsID, sPtypeid: string;
sStd: string;
begin
{sgoodsID := 'SYSP';
sPtypeid := '0000100001';
sGoodsName := '商品名称';
sStd := '规格';
sUserCode := 'UserCode';
Grid.Cells[1, iRow] := sUserCode;
Grid.Cells[2, iRow] := sGoodsName;
Grid.Cells[3, iRow] := sStd;
Grid.Cells[9, iRow] := sPtypeid;
Grid.Cells[10, iRow] := '0';
Grid.Cells[7, iRow] := '【未审】';
Grid.Cells[6, iRow] := '0';
Grid.Cells[11, iRow] := '10';
Grid.Cells[12, iRow] := '1';
}
// Grid.Col := 4;
end;
procedure TFmPosAskBackBill.FormIni;
var
iRow: Integer;
begin
EdtSendStock.Text := '';
EdtRecvStock.Text := '';
EdtM.Text := '';
EdtC.Text := '';
EdtMemo.Text := '';
CdsMasterData.Close;
CdsMasterData.Open;
CdsDetailData.Close;
CdsDetailData.Open;
InitialStrGrid(sgorder,'门店配送退货申请单');
sgorder.RowCount := 2;
for iRow := 1 to sgorder.RowCount do
sgorder.Cells[0, iRow] := IntToStr(iRow);
IF SEditMode <> '' THEN
ReadBill;
sgorder.ColWidths[0] := 28;
end;
procedure TFmPosAskBackBill.TeThemeButton2Click(Sender: TObject);
begin
{
if grid.RowCount = 2 then
begin
Grid.ClearRows(1, Grid.ColCount);
Exit;
end;
if Grid.Row = Grid.RowCount - 1 then
begin
Grid.RemoveRows(Grid.Row, 1);
Grid.SetFocus;
Exit;
end;
Grid.RemoveRows(Grid.Row, 1);
Grid.SetFocus;
}
end;
procedure TFmPosAskBackBill.TeThemeButton1Click(Sender: TObject);
begin
// Grid.AddRow;
end;
function TFmPosAskBackBill.CheckData: Boolean;
var
iRow: Integer;
begin
//
Result := False;
// AskMaster.vcExplain := EdtMemo.Text;
AskMaster.BillNo := EdtBillNo.Text;
if Trim(askMasTer.BillNo) = '' then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -