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

📄 stock_contract.pas

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

interface

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

type
  Tfrm_Stock_Contract = class(TForm)
    Panel1: TPanel;
    Panel8: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Panel2: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Panel3: TPanel;
    Edit1: TLabeledEdit;
    GroupBox1: TGroupBox;
    Cmd_DW: TSpeedButton;
    Cmd_JSR: TSpeedButton;
    Cmd_ZDR: TSpeedButton;
    Edit4: TLabeledEdit;
    Edit5: TLabeledEdit;
    Edit7: TLabeledEdit;
    Edit8: TLabeledEdit;
    Edit9: TLabeledEdit;
    Edit2: TLabeledEdit;
    DateTimePicker1: TDateTimePicker;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel9: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    StringGrid1: TStringGrid;
    lbzj: TLabel;
    lbgs: TLabel;
    SpeedButton3: TSpeedButton;
    Label4: TLabel;
    Edit3: TDateTimePicker;
    Label1: TLabel;
    spbyd: TSpeedButton;
    Cmd_Print: TSpeedButton;
    procedure SpeedButton4Click(Sender: TObject);
    procedure Edit1Click(Sender: TObject);
    procedure Cmd_DWClick(Sender: TObject);
    procedure Cmd_JSRClick(Sender: TObject);
    procedure Cmd_ZDRClick(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure Cmd_AddClick(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure SpeedButton2Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Cmd_PrintClick(Sender: TObject);
    procedure spbydClick(Sender: TObject);
  private
    { Private declarations }
    iColcount,Total_Count:integer;
    ss,tempstr:string;
    pcol,prow:integer;
    ZDFlag:boolean;
    procedure init;
    procedure DeleteRow(Row:Integer);
  public
    { Public declarations }
  end;

var
  frm_Stock_Contract: Tfrm_Stock_Contract;
implementation

uses Public_Don, Data, Main, Supply_Monad, Login_Man, func,
   untdatadm,
  UntgoodCodeSelStr, UntgoodscodeRe, Unt_PubStrGrid, UntMsgGoods,
  Unitreportxf;

{$R *.dfm}
procedure tfrm_stock_contract.init;
VAR
  TEMP,MAKE:STRING;
begin
  InitialStrGrid(stringgrid1,'采购合同');
  stringgrid1.ColCount:=stringgrid1.ColCount+1; //在预定商品时记录预定单编号;
  stringgrid1.ColWidths[stringgrid1.ColCount-1]:=-1;
  if Public_Do='Business_Draft_0002' then exit;
  edit7.Text:=trim(Handle_Man);
  edit3.Date:=date+1;
  edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
  temp:='select max(right(Contract_No,4)) from STOCK_CONTRACT where copy_date='+''''+formatdatetime('yyyy''-''mm''-''dd',date)+'''';
  make:='CGHT-'+trim(Handle_Part)+trim(handle_no);//用部门编号
  edit2.Text:=setcode(temp,make);
end;

procedure Tfrm_Stock_Contract.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_Contract.SpeedButton4Click(Sender: TObject);
var
    i,j,icol:integer;
    Check_Flag:string;
    sqlpub: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_0002' then
    begin
        //保存为草稿单据
        if Public_Do_Result='02' then //保存为草稿单据
        begin
            try
                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;
                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(Edit7.Text)='' then
                begin
                    Application.MessageBox('操作错误,【制单人】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                    Edit7.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[4,i]='' then
                    begin
                        Application.MessageBox('操作错误,【数量】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                        Exit;
                    end;
                    if StringGrid1.Cells[5,i]='' then
                    begin
                        Application.MessageBox('操作错误,【金额】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
                        Exit;
                    end;
                end;

                with frm_data.ClientDataSet_Add do
                begin
                    sqlpub:='Select * from [Stock_contract] where Copy_Date='''+Trim(Edit1.Text)+''' and Contract_No='''+Trim(Edit2.Text)+'''';
                    dmmain.CDSquery.Close;
                    dmmain.CDSquery.Data:=frm_data.Socket_Connection.AppServer.GetRecord(sqlpub);
                    dmmain.CDSquery.Open;
                    try
                        //open;
                        if dmmain.CDSquery.RecordCount>0 then
                        begin
                            Application.MessageBox('操作失败,该【采购合同】记录在数据库中已经存在,请确认!',pchar(application.Title),mb_iconwarning);
                            Exit;
                        end
                        else
                        begin
                          ///////////保存【采购合同】数据表
                          dmmain.cdsStock_contract.Open;
                          dmmain.cdsStock_contract.Append;
                          dmmain.cdsStock_contract.FieldByName('copy_date').AsString:=trim(edit1.Text);
                          dmmain.cdsStock_contract.FieldByName('Contract_No').AsString:=trim(edit2.Text);
                          dmmain.cdsStock_contract.FieldByName('Arrive_Date').AsString:=formatdatetime('yyyy''-''mm''-''dd',edit3.Date);
                          dmmain.cdsStock_contract.FieldByName('wldw').AsString:=trim(edit4.Text);
                          dmmain.cdsStock_contract.FieldByName('transactor').AsString:=trim(edit5.Text);
                          dmmain.cdsStock_contract.FieldByName('proposer').AsString:=trim(edit7.Text);
                          dmmain.cdsStock_contract.FieldByName('resume').AsString:=trim(edit8.Text);
                          dmmain.cdsStock_contract.FieldByName('remark').AsString:=trim(edit9.Text);
                          dmmain.cdsStock_contract.FieldByName('wldw_no').AsString:=trim(wldwno);
                          dmmain.cdsStock_contract.Post;


                          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('Condense').AsString:=trim(edit9.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;
                          dmmain.cdsStock_contract_detail.Open;
                          ////////////保存【采购合同明细表】
                          for i:=1 to stringgrid1.RowCount-1 do
                          begin
                            dmmain.cdsStock_contract_detail.Append;
                            dmmain.cdsStock_contract_detail.FieldByName('Contract_No').AsString:=trim(edit2.Text);
                            dmmain.cdsStock_contract_detail.FieldByName('Goods_NO').AsString:=trim(stringgrid1.Cells[1,i]);
                            dmmain.cdsStock_contract_detail.FieldByName('Price').AsString:=trim(stringgrid1.Cells[3,i]);
                            dmmain.cdsStock_contract_detail.FieldByName('Goods_amount').AsString:=trim(stringgrid1.Cells[4,i]);
                            dmmain.cdsStock_contract_detail.FieldByName('Money').AsString:=trim(stringgrid1.Cells[5,i]);
                            dmmain.cdsStock_contract_detail.FieldByName('remark').AsString:=trim(stringgrid1.Cells[8,i]);
                            dmmain.cdsStock_contract_detail.FieldByName('Orders').AsString:=trim(stringgrid1.Cells[9,i]);
                            dmmain.cdsStock_contract_detail.Post;
                          end;
                          try
                            dmmain.cdsStock_contract.ApplyUpdates(-1);
                            dmmain.cdsReceipt.ApplyUpdates(-1);
                            dmmain.cdsStock_contract_detail.ApplyUpdates(-1);
                          except
                            Application.MessageBox('保存数据表时出错'+#13#10+'请检查远程服务器连接是否正常?请确认!',pchar(application.Title),mb_iconwarning);
                            Exit;
                          end;
//                          Application.MessageBox('恭喜你!【采购合同】保存为草稿操作成功!请确认!',pchar(application.Title),mb_iconwarning);
                          edit1.Text:='';
                          edit2.Text:='';
                          edit3.Date:=date-1;
                          edit4.Text:='';
                          edit5.Text:='';
                          edit7.Text:='';
                          edit8.Text:='';
                          edit9.Text:='';
                          for i:=1 to stringgrid1.RowCount-1 do   //清空网格,不能只减去行,避免下次新建时数据重复出现
                            stringgrid1.Rows[i].Clear;
                          stringgrid1.RowCount:=2;
                          init;
                        end;
                    except
                        Application.MessageBox('系统错误,在打开【采购合同】数据表时出错'+#13#10+'请检查远程服务器连接是否正常?请确认!',pchar(application.Title),mb_iconwarning);
                        Exit;
                    end;
                end;
            except
                Application.MessageBox('添加操作失败,请检查连接网络是否正常,请确认!',pchar(application.Title),mb_iconwarning);
                Exit;
            end;
        end;
        frm_Main.Panel_Title.Caption:='[连锁管理系统]->[采购信息管理]';
        if Public_Do_Result='03' then
        begin
            dmmain.cdsStock_contract.Close;
            dmmain.cdsReceipt.Close;
            dmmain.cdsStock_contract_detail.Close;

⌨️ 快捷键说明

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