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

📄 untposaskbackbill.pas

📁 适合行业为眼镜业
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -