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

📄 goods_write.pas

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

interface

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

type
  Tfrm_Goods_Write = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Cmd_Cancel: TSpeedButton;
    Panel3: TPanel;
    Edit1: TLabeledEdit;
    GroupBox1: TGroupBox;
    SpeedButton5: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    Edit4: TLabeledEdit;
    Edit_Storage_Name: TLabeledEdit;
    Edit6: TLabeledEdit;
    Edit7: TLabeledEdit;
    Edit8: TLabeledEdit;
    Edit9: TLabeledEdit;
    Edit10: TLabeledEdit;
    Edit2: TLabeledEdit;
    Edit3: TLabeledEdit;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    Cmd_HT: TSpeedButton;
    Edit5: TLabeledEdit;
    StringGrid1: TStringGrid;
    Cmd_DW: TSpeedButton;
    Label1: TLabel;
    procedure Cmd_CancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Cmd_AddClick(Sender: TObject);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Cmd_HTClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure Cmd_DWClick(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
  private
    { Private declarations }
     pcol,PROW:INTEGER;
    procedure init;
  public
    { Public declarations }
  end;

var
  frm_Goods_Write: Tfrm_Goods_Write;
  iColcount,Total_Count:integer;
  Pcol,Prow:integer;
  ss,tempstr:string;
implementation

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

{$R *.dfm}
procedure tfrm_Goods_Write.init;
VAR
  TEMP,MAKE:STRING;
begin
  InitialStrGrid(stringgrid1,'来货登记');
  stringgrid1.ColCount:=stringgrid1.ColCount+1; //在预定商品时记录预定单编号;
  stringgrid1.ColWidths[stringgrid1.ColCount-1]:=-1;
  Edit1.Text:=formatdateTime('yyyy''-''mm''-''dd',date);
  Edit8.Text:=Handle_Man;
  temp:='select max(right(stock_no,4)) from STOCK_WRITE where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+'''';
  make:='LHDJ-'+trim(Handle_Part)+trim(handle_no);//用部门编号
  edit2.Text:=setcode(temp,make);
  if not LocalB then
  begin
    cmd_ht.Enabled:=false;
    edit3.ReadOnly:=false;
  end;
end;
procedure Tfrm_Goods_Write.Cmd_CancelClick(Sender: TObject);
var
    i,j,icol:integer;
    Check_Flag:string;
    sqlsub:widestring;
    t_i,t_j:integer;   //wy 循环变量
begin
    frm_Public_Don:=Tfrm_Public_Don.Create(self);
    frm_Public_Don.no:=trim(edit2.Text);
    frm_Public_Don.ShowModal;
    frm_Public_Don.Free;
    if Public_Do='Stock_0008' 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;
              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;
                  if StringGrid1.Cells[1,i]='' then
                  begin
                      Application.MessageBox('操作错误,【商品编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                      Exit;
                  end;
              end;
                        //Close;
                        //CommandText:='';
                        //CommandText:='SELECT * FROM [Stock_Write] where Copy_Date='''+Trim(Edit1.Text)+''' and Stock_NO='''+Trim(Edit2.Text)+''' and Gather_Name='''+Trim(Edit4.Text)+''' and Storage_No='''+Trim(Edit5.Text)+'''';
                sqlsub:='SELECT * FROM [Stock_Write] where Copy_Date='+''''+Trim(Edit1.Text)+''''+' and Stock_NO='+''''+Trim(Edit2.Text)+''''+' and wldw='+''''+Trim(Edit4.Text)+''''+' and Storage_No='+''''+Trim(Edit5.Text)+'''';
                dmmain.CDSquery.Close;
                dmmain.CDSquery.Data:=adisp.GetRecord(sqlsub);
                dmmain.CDSquery.Open;
                //Open;
                if dmmain.CDSquery.RecordCount>0 then
                begin
                    Application.MessageBox('该【来货登记】操作已经存在了,请确认!',pchar(application.Title),mb_iconwarning);
                    Exit;
                end else
                begin

                  //Close;
                  //CommandText:='';
                  //CommandText:='INSERT INTO [Stock_Write](Copy_Date,Stock_NO,Contract_NO,Contract_NO,Storage_NO,Transactor,Shop_NO,Proposer,Condense,Remark) 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)+''')';
                  dmmain.csdStock_Write.Open;
                  dmmain.csdStock_Write.Append;
                  dmmain.csdStock_Write.FieldByName('Copy_Date').AsString:= Trim(Edit1.Text);
                  dmmain.csdStock_Write.FieldByName('Stock_NO').AsString:= Trim(Edit2.Text);
                  dmmain.csdStock_Write.FieldByName('Contract_NO').AsString:=Trim(Edit3.Text);
                  dmmain.csdStock_Write.FieldByName('wldw').AsString:=Trim(Edit4.Text);
                  dmmain.csdStock_Write.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
                  dmmain.csdStock_Write.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
                  dmmain.csdStock_Write.FieldByName('Shop_NO').AsString:=Trim(Edit7.Text);
                  dmmain.csdStock_Write.FieldByName('Proposer').AsString:= Trim(Edit8.Text);
                  dmmain.csdStock_Write.FieldByName('Condense').AsString:=Trim(Edit9.Text);
                  dmmain.csdStock_Write.FieldByName('Remark').AsString:=Trim(Edit10.Text);
                  dmmain.csdStock_Write.FieldByName('wldw_no').AsString:=Trim(wldwno);//往来单位 
                  dmmain.csdStock_Write.post;
              //Execute;
                  //frm_data.ClientDataSet_Add.CommandText:='';
                  //CommandText:='Insert into [Receipt](Receipt_NO,Receipt_Name,Copy_Date,Proposer,Condense) values ('''+Trim(Edit2.Text)+''',''来货登记单'','''+Trim(Edit1.Text)+''','''+Trim(Edit8.Text)+''','''+Trim(Edit9.Text)+''')';
                  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(edit7.Text);
                  dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
                  dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
                  dmmain.cdsReceipt.FieldByName('Condense').AsString:=trim(edit9.Text);
                  dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
                  dmmain.cdsReceipt.Post;

                  dmmain.cdsStock_Write_detail.Open; //open detail table;
                  Total_Count:=StringGrid1.RowCount;
                  for i:=1 to Total_Count-1 do
                  begin
                    dmmain.cdsStock_Write_detail.Append;//明细表;
                    dmmain.cdsStock_Write_detail.FieldByName('Stock_NO').AsString:= Trim(Edit2.Text);
                    dmmain.cdsStock_Write_detail.FieldByName('Goods_NO').AsString:=Trim(StringGrid1.Cells[1,i]);
                    dmmain.cdsStock_Write_detail.FieldByName('amount').AsString:=Trim(StringGrid1.Cells[3,i]);
                    dmmain.cdsStock_Write_detail.FieldByName('Write_Amount').AsString:=Trim(StringGrid1.Cells[4,i]);
                    dmmain.cdsStock_Write_detail.FieldByName('Write_Remark').AsString:= Trim(StringGrid1.Cells[7,i]);
                    dmmain.cdsStock_Write_detail.FieldByName('orders').AsString:= Trim(StringGrid1.Cells[StringGrid1.ColCount-1,i]);
                    dmmain.cdsStock_Write_detail.Post;
                  end;
                  try
                    dmmain.cdsReceipt.ApplyUpdates(-1);
                    dmmain.cdsStock_Write_detail.ApplyUpdates(-1);
                    dmmain.csdStock_Write.ApplyUpdates(-1);
                    if trim(edit3.Text)<>'' then
                    setpass(edit3.Text);
                    Edit_Storage_Name.Text:='';
                    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;
                    init;
                  except
                    Application.MessageBox('应用服务器发生故障!',pchar(application.Title),mb_iconwarning);
                    Exit;
                  end;
                end;

        end;
        //废弃退出
        if Public_Do_Result='03' then
        begin
            Close;
            frm_data.ClientDataSet_Add.Close;
            frm_data.ClientDataSet_Add.Active:=False;
        end;
    end;
    //草稿单据操作
    if Public_Do='Business_Draft_0005' then
    begin
        //保存为单据
        if Public_Do_Result='01' then
        begin
            with frm_data.ClientDataSet2 do
            begin
//                Close;
//                CommandText:='';
//                Commandtext:='Select * from [V_Stock_Write_View] where Receipt_No='''+Trim(Edit2.Text)+'''';
                sqlsub:='Select * from [V_Stock_Write_View] where Receipt_No='''+Trim(Edit2.Text)+'''';
                dmmain.CDSquery.Close;
                dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlsub);
                dmmain.CDSquery.Open;
//                    Open;
                Check_Flag:=dmmain.CDSquery.FieldValues['Check_Result'];
                if Check_Flag='0' then
                begin
                    Application.MessageBox('单据还没有完全审核,不能过帐',pchar(application.Title),mb_iconwarning);

⌨️ 快捷键说明

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