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

📄 stock_fad.pas

📁 适合行业为眼镜业
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Stock_Fad;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, StdCtrls, Buttons, XPMenu;

type
  Tfrm_Stock_Fad = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Panel3: TPanel;
    Edit1: TLabeledEdit;
    GroupBox1: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    Edit4: TLabeledEdit;
    Edit_Storage_Name: TLabeledEdit;
    Edit6: TLabeledEdit;
    Edit_Shop_Name: TLabeledEdit;
    Edit8: TLabeledEdit;
    Edit9: TLabeledEdit;
    Edit10: TLabeledEdit;
    Edit5: TLabeledEdit;
    Edit7: TLabeledEdit;
    Edit2: TLabeledEdit;
    Edit3: TLabeledEdit;
    Panel6: TPanel;
    Panel8: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Panel9: TPanel;
    Panel10: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    SpeedButton6: TSpeedButton;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    procedure SpeedButton4Click(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Cmd_AddClick(Sender: TObject);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure SpeedButton3Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    iColcount,Total_Count:Integer;
     ss,tempstr:string;
    Pcol,Prow:integer;
    procedure init;
    procedure DeleteRow(Row:Integer);
  public
    { Public declarations }
  end;

var
  frm_Stock_Fad: Tfrm_Stock_Fad;

implementation

uses Public_Don, Data,  Supply_Monad, Storage_Select,
  ChildShop_Select, Login_Man, func, untdatadm, Contract_Check,
  Unt_PubStrGrid, Unitreportxf;

{$R *.dfm}
procedure tfrm_stock_fad.init;
var
  temp,make:string;
begin
  InitialStrGrid(stringgrid1,'采购退货');
  edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
  Edit8.Text:=Handle_Man;
  temp:='select max(right(stock_no,4)) from Cancel_strip where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+'''';
  make:='CTH-'+trim(Handle_Part)+trim(handle_no);//5-11用部门编号
  edit2.Text:=setcode(temp,make);
end;
procedure Tfrm_Stock_Fad.DeleteRow(Row:Integer);
var
    i : integer;
begin
    //最后一列直接删除
    if (Row = StringGrid1.RowCount-1) and (row >1) then
        StringGrid1.RowCount := StringGrid1.RowCount - 1;
    //自动上移
    if (Row < StringGrid1.RowCount) and (Row > StringGrid1.FixedRows-1) then
    begin
        if Row < StringGrid1.RowCount - 1 then
        begin
            for i := Row to StringGrid1.RowCount-1 do
            StringGrid1.Rows[i] := StringGrid1.Rows[i+1];
            StringGrid1.RowCount :=StringGrid1.RowCount - 1;
        end;
    end;
end;
procedure Tfrm_Stock_Fad.SpeedButton4Click(Sender: TObject);
var
    i,j:integer;
    Insert_Sql:String;
    Check_Flag:string;
    sqlsub:widestring;
begin
    frm_Public_Don:=Tfrm_Public_Don.Create(self);
    frm_Public_Don.no:=trim(edit2.Text);
    frm_Public_Don.ShowModal;
    //直接操作单据
    if Public_Do='Stock_0004' then
    begin
        Insert_Sql:='Insert into [Cancel_strip_detail](Stock_NO,Goods_NO,Pass_NO,amount,quality,Fade_Name) values ';
        //如果废弃退出
        if Public_Do_Result='03' then
        begin
            frm_data.ClientDataSet_Add.Close;
            frm_data.ClientDataSet_Add.Active:=False;
            Close;
        end;
        //如果保存草稿
        if Public_Do_Result='02' then
        begin
            for i:=1 to StringGrid1.ColCount-1 do
            begin
                for j:=1 to StringGrid1.RowCount-1 do
                begin
                    if StringGrid1.Cells[1,j]='' then
                    begin
                        application.MessageBox('操作错误,【商品编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                        Exit;
                    end;
                end;
            end;
            if Trim(Edit1.Text)='' then
            begin
                application.MessageBox('操作错误,【录单日期】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit1.SetFocus;
                Exit;
            end;
            if Trim(Edit2.Text)='' then
            begin
                application.MessageBox('操作错误,【单据编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit2.SetFocus;
                Exit;
            end;
            if Trim(Edit4.Text)='' then
            begin
                application.MessageBox('操作错误,【供货单位】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit4.SetFocus;
                Exit;
            end;
            if Trim(Edit5.Text)='' then
            begin
                application.MessageBox('操作错误,【退货仓库】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit5.SetFocus;
                Exit;
            end;
            if Trim(Edit6.Text)='' then
            begin
                application.MessageBox('操作错误,【经手人】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit6.SetFocus;
                Exit;
            end;
            if Trim(Edit8.Text)='' then
            begin
                application.MessageBox('操作错误,【制单人】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                Edit8.SetFocus;
                Exit;
            end;
            for i:=1 to stringgrid1.RowCount-1 do
            begin
                if StringGrid1.Cells[3,i]='' then
                begin
                    application.MessageBox('操作错误,【数量】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                    Exit;
                end;
            end;
          sqlsub:='Select * from [Cancel_strip] where Copy_Date='''+Trim(Edit1.Text)+''' and Stock_No='''+Trim(Edit2.Text)+''' ';
          dmmain.CDSexecsql.Close;
          dmmain.CDSexecsql.Data:=frm_data.Socket_Connection.AppServer.execSql(sqlsub);
          dmmain.CDSexecsql.Open;
          if dmmain.CDSexecsql.RecordCount>0 then
          begin
              Application.MessageBox('添加失败,该记录已经存在,请确认!',pchar(application.Title),mb_iconwarning);
              Exit;
          end else
          begin
            dmmain.cdsCancel_strip.Close;  //主表
            dmmain.cdsCancel_strip.Open;
            dmmain.cdsCancel_strip.Append;
            dmmain.cdsCancel_strip.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
            dmmain.cdsCancel_strip.FieldByName('Stock_No').AsString:=Trim(Edit2.Text);
            dmmain.cdsCancel_strip.FieldByName('Contract_No').AsString:=Trim(Edit3.Text);
            dmmain.cdsCancel_strip.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
            dmmain.cdsCancel_strip.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
            dmmain.cdsCancel_strip.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
            dmmain.cdsCancel_strip.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
            dmmain.cdsCancel_strip.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
            dmmain.cdsCancel_strip.FieldByName('Condense').AsString:=Trim(Edit9.Text);
            dmmain.cdsCancel_strip.FieldByName('Remark').AsString:=Trim(Edit10.Text);
            dmmain.cdsCancel_strip.Post;
            dmmain.cdsReceipt.Close;
            dmmain.cdsReceipt.Open;  //草稿
            dmmain.cdsReceipt.Append;
            dmmain.cdsReceipt.FieldByName('Receipt_NO').AsString:=Trim(Edit2.Text);
            dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='采购退货单';
            dmmain.cdsReceipt.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
            dmmain.cdsReceipt.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
            dmmain.cdsReceipt.FieldByName('Condense').AsString:=Trim(Edit10.Text);
            dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
            dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
            dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
            dmmain.cdsReceipt.Post;
            if not dmmain.cdsCanceldetail.Active then dmmain.cdsCanceldetail.Open;
            for i:=1 to stringgrid1.RowCount-1 do  //细表
            begin
              dmmain.cdsCanceldetail.Insert;
              dmmain.cdsCanceldetail.FieldByName('Stock_NO').AsString:= Trim(Edit2.Text);
              dmmain.cdsCanceldetail.FieldByName('Goods_NO').AsString:=Trim(StringGrid1.Cells[1,i]);
              dmmain.cdsCanceldetail.FieldByName('amount').AsString:= Trim(StringGrid1.Cells[3,i]);
              dmmain.cdsCanceldetail.FieldByName('Pass_NO').AsString:= Trim(StringGrid1.Cells[5,i]);
              dmmain.cdsCanceldetail.FieldByName('quality').AsString:=Trim(StringGrid1.Cells[2,i]);
              dmmain.cdsCanceldetail.FieldByName('Fade_Name').AsString:=Trim(StringGrid1.Cells[5,i]);
              dmmain.cdsCanceldetail.FieldByName('GoodsMemo').AsString:=Trim(StringGrid1.Cells[6,i]);
              dmmain.cdsCanceldetail.Post;

            end;
            try
                dmmain.cdsReceipt.ApplyUpdates(-1);

⌨️ 快捷键说明

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