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

📄 stock_enter.pas

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

interface

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

type
  Tfrm_Stock_Enter = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Cmd_Cancel: TSpeedButton;
    Panel3: TPanel;
    Cmd_HT: TSpeedButton;
    Edit1: TLabeledEdit;
    GroupBox1: TGroupBox;
    SpeedButton5: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    Edit4: TLabeledEdit;
    Edit_Stock_Name: TLabeledEdit;
    Edit6: TLabeledEdit;
    Edit7: TLabeledEdit;
    Edit8: TLabeledEdit;
    Edit9: TLabeledEdit;
    Edit10: TLabeledEdit;
    Edit5: TEdit;
    Edit2: TLabeledEdit;
    Edit3: TLabeledEdit;
    Panel8: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Panel9: TPanel;
    Panel10: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    StringGrid1: TStringGrid;
    SpeedButton1: TSpeedButton;
    Label1: TLabel;
    procedure Cmd_CancelClick(Sender: TObject);
    procedure Edit1DblClick(Sender: TObject);
    procedure Cmd_HTClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Cmd_AddClick(Sender: TObject);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton3Click(Sender: TObject);
  private
    { Private declarations }
    //procedure Stock_States_Total;
    stockid:widestring;
    pcol,prow:integer;
    PROCEDURE INIT;
  public
    { Public declarations }
  end;

var
  frm_Stock_Enter: Tfrm_Stock_Enter;
  iColcount,Total_Count:Integer;
  Pcol,Prow:integer;
  Insert_Sql:String;
  ss,tempstr:string;
implementation

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

{$R *.dfm}
PROCEDURE TFRM_STOCK_ENTER.INIT;
VAR
 I:INTEGER;
 temp,make:string;
BEGIN
     edit1.Text:='';
     edit2.Text:='';
     edit3.Text:='';
     edit4.Text:='';
     edit5.Text:='';
     edit6.Text:='';
     edit7.Text:='';
     edit8.Text:='';
     edit9.Text:='';
     edit10.Text:='';
//                    FUNC.setnull(frm_Goods_Write);   //清除窗体上的控件内容
  for i:=1 to stringgrid1.RowCount-1 do   //清空网格,不能只减去行,避免下次新建时数据重复出现
  stringgrid1.Rows[i].Clear;
      stringgrid1.RowCount:=2;
  if (Public_Do='Business_Storage_in') or (Public_Do='instock_0001') then
  begin
     InitialStrGrid(stringgrid1,'非营业性入库');
  end else
  begin
    InitialStrGrid(stringgrid1,'采购入库');
    stringgrid1.ColCount:=stringgrid1.ColCount+1; //在预定商品时记录预定单编号;
    stringgrid1.ColWidths[stringgrid1.ColCount-1]:=-1;
  end;
  if (Public_Do='Business_Storage_in') or (Public_Do='Business_Draft_0001') then exit;
  temp:='select max(right(stock_no,4)) from stock_jion where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+''''+' and part_no='+''''+trim(Handle_Part)+'''';
  make:='ISK-'+trim(Handle_Part)+trim(handle_no);//5-11编码中部门编号
  edit2.Text:=setcode(temp,make);
  edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
  edit8.Text:=trim(Handle_Man);
END;

//*******************************************
//*******************************************


procedure Tfrm_Stock_Enter.Cmd_CancelClick(Sender: TObject);
var
    i,j,icol:integer;
    Check_Flag:string;
    sqlsub:widestring;
    t_i,t_j:integer;
begin
    frm_Public_Don:=Tfrm_Public_Don.Create(self);
    frm_Public_Don.no:=trim(edit2.Text);
    frm_Public_Don.no:=trim(edit2.Text);
    frm_Public_Don.ShowModal;

    //直接操作入库界面
        //保存为草稿单据
    if (Public_Do='Stock_0003') or (Public_Do='instock_0001')then
    begin
        if Public_Do_Result='02' then
        begin
          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;
          if (Public_Do<>'instock_0001') and (public_do<>'Business_Storage_in') then   //非营业入库不给提示;
          begin
            if Trim(Edit3.Text)='' then
            begin
              application.MessageBox('操作错误,【质量验收单据号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
              Edit3.SetFocus;
              Exit;
            end;
          end;
          for i:=1 to StringGrid1.RowCount-1 do
          begin
              if StringGrid1.Cells[1,i]='' then
              begin
                  application.MessageBox('操作错误,【商品编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                  Exit;
              end;
              if (StringGrid1.Cells[4,i]='') or (StringGrid1.Cells[4,i]='0') then
              begin
                  application.MessageBox('操作错误,【数量】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                  Exit;
              end;
          end;
          sqlsub:='Select * from [Stock_Jion] where Copy_Date='''+Trim(Edit1.Text)+''' and Stock_NO='''+Trim(Edit2.Text)+''' ';
          dmmain.CDSquery.Close;
          dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlsub);
          dmmain.CDSquery.Open;
          if dmmain.CDSquery.RecordCount>0 then
          begin
              Application.MessageBox('添加失败,该记录已经存在,请确认!',pchar(application.Title),mb_iconwarning);
              Exit;
          end else
          begin
//                                Close;
//                                CommandText:='';
       if  not dmmain.cdsStock_Jion.Active then  dmmain.cdsStock_Jion.Open;                    //CommandText:='Insert into [Stock_Jion] (Copy_Date,Stock_No,Contract_No,WLDW,Storage_Name,Transactor,Shop_NO,proposer,Resume,remark,Quality_Check_ID) values ('''+Trim(Edit1.Text)+''','''+Trim(Edit2.Text)+''','''+Trim(Edit3.Text)+''','''+Trim(Edit4.Text)+''','''+Trim(Edit5.Text)+''','''+Trim(Edit6.Text)+''','''+Trim(Edit7.Text)+''','''+Trim(Edit8.Text)+''','''+Trim(Edit9.Text)+''','''+Trim(Edit10.Text)+''','''+Trim(Edit11.Text)+''')';
          dmmain.cdsStock_Jion.Append;
          dmmain.cdsStock_Jion.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
          dmmain.cdsStock_Jion.FieldByName('Stock_No').AsString:=Trim(Edit2.Text);
          dmmain.cdsStock_Jion.FieldByName('Contract_No').AsString:=Trim(Edit3.Text);
          dmmain.cdsStock_Jion.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
          dmmain.cdsStock_Jion.FieldByName('WLDW_no').AsString:=Trim(wldwno);/////////////////

          //原来字段名为Storage_Name,系统要出错(无此字段名),改为Stock_Name
          if (Public_Do='Stock_0003') then
          begin
           dmmain.cdsStock_Jion.FieldByName('Stock_Name').AsString:='采购入库单';
          end;
          if (Public_Do='instock_0001') then
          begin
            dmmain.cdsStock_Jion.FieldByName('Stock_Name').AsString:='非营业性入库单';
          end;
          dmmain.cdsStock_Jion.FieldByName('Storage_no').AsString:=Trim(Edit5.Text);  //写库房号或分店号
          dmmain.cdsStock_Jion.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
          dmmain.cdsStock_Jion.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
          dmmain.cdsStock_Jion.FieldByName('proposer').AsString:=Trim(Edit8.Text);
          dmmain.cdsStock_Jion.FieldByName('Resume').AsString:=Trim(Edit9.Text);
          dmmain.cdsStock_Jion.FieldByName('remark').AsString:=Trim(Edit10.Text);
          dmmain.cdsStock_Jion.FieldByName('Quality_Check_ID').AsString:=Trim(Edit3.Text);
          dmmain.cdsStock_Jion.FieldByName('part_no').AsString:=Trim(Handle_Part);//制单部门;
          dmmain.cdsStock_Jion.Post;
          //草稿单据
          dmmain.cdsReceipt.close;
          dmmain.cdsReceipt.Open;
          dmmain.cdsReceipt.Append;
          dmmain.cdsReceipt.FieldByName('Receipt_NO').AsString:=Trim(Edit2.Text);
          if (Public_Do='Stock_0003') then
          begin
            dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='采购入库单';
          end;
          if (Public_Do='instock_0001') then
          begin
            dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='非营业性入库单';
          end;
          dmmain.cdsReceipt.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
          dmmain.cdsReceipt.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
          dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
          dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
          dmmain.cdsReceipt.FieldByName('Condense').AsString:=Trim(Edit10.Text);
          dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
          dmmain.cdsReceipt.Post;

          //Total_Count:=StringGrid1.RowCount;
          dmmain.cdsstockdetail.Close;
          dmmain.cdsstockdetail.Open;
          for i:=1 to StringGrid1.RowCount-1 do
          begin
            dmmain.cdsstockdetail.Append;
            dmmain.cdsstockdetail.FieldByName('Stock_NO').AsString :=Trim(Edit2.Text);
            dmmain.cdsstockdetail.FieldByName('Goods_NO').AsString :=Trim(StringGrid1.Cells[1,i]);
            dmmain.cdsstockdetail.FieldByName('goods_name').AsString :=Trim(StringGrid1.Cells[2,i]);
            dmmain.cdsstockdetail.FieldByName('amount').AsString :=Trim(StringGrid1.Cells[4,i]);
            if (Public_Do='instock_0001')then
            begin
              dmmain.cdsstockdetail.FieldByName('price').AsString :=Trim(StringGrid1.Cells[3,i]); //非营业入库写入单价;
              dmmain.cdsstockdetail.FieldByName('total_money').AsString :=Trim(StringGrid1.Cells[5,i]);
              dmmain.cdsstockdetail.FieldByName('quality').AsString :=Trim(StringGrid1.Cells[7,i]); //非营业入库写入金额

⌨️ 快捷键说明

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