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

📄 begin_goods.~pas

📁 delphi的一个开发实例
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Begin_Goods;

interface

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

type
  Tfrm_Begin_Goods = class(TForm)
    XPMenu1: TXPMenu;
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Panel2: TPanel;
    Panel3: TPanel;
    SpeedButton5: TSpeedButton;
    GroupBox1: TGroupBox;
    SpeedButton6: TSpeedButton;
    Cmd_Goods_Cancel: TSpeedButton;
    SpeedButton7: TSpeedButton;
    Panel4: TPanel;
    Panel5: TPanel;
    GroupBox2: TGroupBox;
    StatusBar1: TStatusBar;
    TabSheet4: TTabSheet;
    Panel6: TPanel;
    Panel7: TPanel;
    SpeedButton9: TSpeedButton;
    GroupBox3: TGroupBox;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    Panel8: TPanel;
    Panel9: TPanel;
    GroupBox4: TGroupBox;
    StatusBar2: TStatusBar;
    Panel10: TPanel;
    Panel11: TPanel;
    GroupBox5: TGroupBox;
    SpeedButton23: TSpeedButton;
    SpeedButton24: TSpeedButton;
    Panel12: TPanel;
    Panel13: TPanel;
    GroupBox6: TGroupBox;
    Panel14: TPanel;
    Panel15: TPanel;
    GroupBox7: TGroupBox;
    SpeedButton31: TSpeedButton;
    SpeedButton32: TSpeedButton;
    Panel16: TPanel;
    Panel17: TPanel;
    GroupBox8: TGroupBox;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    Panel18: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    StringGrid1: TStringGrid;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Label1: TLabel;
    SpeedButton1: TSpeedButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Cmd_Goods_CancelClick(Sender: TObject);
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure wwDBGrid1DblClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure Cmd_AddClick(Sender: TObject);
    procedure Cmd_DeleteClick(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
    procedure DeleteRow(Row:Integer);
  public
    { Public declarations }
  end;

var
  frm_Begin_Goods: Tfrm_Begin_Goods;
  Pcol,Prow:integer;
  Do_Flag:Boolean; 
implementation

uses Goods_Information, Begin_Edit, Money_Edit, func, Storage_Select,
  Goods_Check, Data;

{$R *.dfm}

procedure Tfrm_Begin_Goods.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_Begin_Goods.FormShow(Sender: TObject);
begin
    Do_Flag:=False;
    frm_Begin_Goods.Left:=170;
    frm_Begin_Goods.Top:=40;
    if begin_build_str='begin_build_goods' then
    begin
        StringGrid1.ColCount:=8;
        StringGrid1.RowCount:=2;
        StringGrid1.Cells[0,0]:='行号';
        StringGrid1.Cells[1,0]:='仓库编号';
        StringGrid1.Cells[2,0]:='仓库名称';
        StringGrid1.Cells[3,0]:='商品编号';
        StringGrid1.Cells[4,0]:='商品全名';
        StringGrid1.Cells[5,0]:='成本单价';
        StringGrid1.Cells[6,0]:='库存数量';
        StringGrid1.Cells[7,0]:='库存金额';
    end;
end;

procedure Tfrm_Begin_Goods.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    frm_data.Client_Stock_States.Active:=False;
    frm_data.Client_Stock_States.Close;
    Action:=Cafree;
end;

procedure Tfrm_Begin_Goods.Cmd_Goods_CancelClick(Sender: TObject);
var
    i,k:integer;
begin
    if Do_Flag=True then
    begin
        for i:=1 to StringGrid1.RowCount-1 do
        begin
            if (StringGrid1.Cells[1,i]='') or (StringGrid1.Cells[2,i]='') then
            begin
                if Application.MessageBox('操作错误,【仓库编号或仓库名称】不能为空!'+#13#10#13+'确定废弃退出吗?请确认!',pchar(application.Title),mb_OKCancel)=IDOK then
                begin
                    Do_Flag:=False;
                    Exit;
                end;
            end;
            if (StringGrid1.Cells[3,i]='') or (StringGrid1.Cells[4,i]='') then
            begin
                if Application.MessageBox('操作错误,【商品编号或商品名称】不能为空!'+#13#10#13+'确定废弃退出吗?请确认!',pchar(application.Title),mb_OKCancel)=IDOK then
                begin
                    Do_Flag:=False;
                    Exit;
                end;
            end;
            if StringGrid1.Cells[5,i]='' then
            begin
                if Application.MessageBox('操作错误,【商品成本价】不能为空!'+#13#10#13+'确定废弃退出吗?请确认!',pchar(application.Title),mb_OKCancel)=IDOK then
                begin
                    Do_Flag:=False;
                    Exit;
                end;
            end;
            if StringGrid1.Cells[6,i]='' then
            begin
                if Application.MessageBox('操作错误,【库存数量】不能为空!'+#13#10#13+'确定废弃退出吗?请确认!',pchar(application.Title),mb_OKCancel)=IDOK then
                begin
                    Do_Flag:=False;
                    Exit;
                end;
            end;
        end;

        if RadioButton1.Checked=True then
        begin
            for K:=1 to StringGrid1.RowCount-1 do
            begin
                with frm_data.ClientDataSet_Add do
                begin
                    Commandtext:='';
                    Commandtext:='Select * from [Stock_States] where Storage_NO='''+Trim(StringGrid1.Cells[1,k])+''' and Goods_NO='''+Trim(StringGrid1.Cells[1,k])+'''';
                    try
                        Open;
                        if frm_data.ClientDataSet_Add.RecordCount>0 then
                        begin
                            Application.MessageBox('操作错误,数据表【库存状况表】已经存在了相同的记录!'+#13#10#13+'请检查远程服务器连接是否正常?请确认!',Pchar(Application.Title),Mb_IconWarning);
                            Exit;
                        end
                        else
                        begin
                            with frm_data.Client_Stock_States do
                            begin

⌨️ 快捷键说明

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