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

📄 store.pas

📁 飞恒进销存(超市批发)管理系统V5.1(含源程序) 语言:Delphi 6/7 相关控件:FastReport 2.4以上, Ehlib 3.4以上 1.数据库为fhe2db_V51.da
💻 PAS
字号:
unit store;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, edit, StdCtrls, Mask, DBCtrls, Buttons, ComCtrls, Grids, DBGrids,
  DBCtrlsEh, DBLookupEh, DB;

type
  TgoodsForm = class(TedtForm)
    Label1: TLabel;
    DEname: TDBEdit;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet3: TTabSheet;
    Label3: TLabel;
    Label4: TLabel;
    chkCombine: TCheckBox;
    Label5: TLabel;
    Label6: TLabel;
    Label13: TLabel;
    DEbarcode: TDBEdit;
    DEinprice: TDBEdit;
    Label7: TLabel;
    Label8: TLabel;
    DESpePrice: TDBEdit;
    lblSalePrice2: TLabel;
    Label9: TLabel;
    DESalePrice2: TDBEdit;
    Label10: TLabel;
    DESalePrice: TDBEdit;
    DESpePrice2: TDBEdit;
    Label11: TLabel;
    DBGrid1: TDBGrid;
    Label14: TLabel;
    Label15: TLabel;
    DEperqty: TDBEdit;
    DEDownQty: TDBEdit;
    DETopQty: TDBEdit;
    lblSpePrice1: TLabel;
    lblSalePrice1: TLabel;
    lblSpePrice2: TLabel;
    Label18: TLabel;
    DBMemo1: TDBMemo;
    lbl_inprice2: TLabel;
    DBinprice2: TDBEdit;
    lblinprice1: TLabel;
    lblinprice2: TLabel;
    edtGoodType: TDBEditEh;
    cbbUnits: TDBComboBoxEh;
    cbbUnit2: TDBComboBoxEh;
    Label2: TLabel;
    edtPArea: TDBEdit;
    procedure BtnPriorClick(Sender: TObject);
    procedure BtnNextClick(Sender: TObject);
    procedure BtnSaveClick(Sender: TObject);
    procedure BtnaddClick(Sender: TObject);
    procedure BtnexitClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure DEbarcodeExit(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure DBEditEh1EditButtons0Click(Sender: TObject;
      var Handled: Boolean);
    procedure DEnoExit(Sender: TObject);
  private
    { Private declarations }
    sOldBarcode:string;
    procedure SearchBarcode(sBarcode:string);
  public
    { Public declarations }
  end;

var
  goodsForm: TgoodsForm;

implementation
uses datamodule1, TreeEditBase, TreeGoodsType;
{$R *.dfm}

procedure TgoodsForm.BtnPriorClick(Sender: TObject);
begin
  inherited;
  SetButtonPrior(DataE2.DSGoods);
end;

procedure TgoodsForm.BtnNextClick(Sender: TObject);
begin
  inherited;
  SetButtonNext(DataE2.dsGoods);
end;

procedure TgoodsForm.BtnSaveClick(Sender: TObject);
var
  nTmp:Integer;
begin
  inherited;
  if (DEperqty.Text='') or (DEperqty.Text='0') then
  begin
    Application.MessageBox('规格不能为空!','错误',64);
    DEperqty.SetFocus;
    exit;
  end;  
  if edtGoodType.Text='' then
  begin
    Application.MessageBox('类别不能为空!','错误',64);
    edtGoodType.SetFocus;
    exit;
  end;  
  with dataE2.tblGoods do
  begin
    edit;
    fieldbyname('isused').Asboolean :=chkStopUsed.checked;//nTmp;

    fieldbyname('isCombine').asboolean:=chkComBine.checked;//false;//AsInteger :=nTmp;
  end;
  SetButtonSave(DataE2.dsGoods);
end;

procedure TgoodsForm.BtnaddClick(Sender: TObject);
begin
  inherited;
  SetButtonAdd(DataE2.dsGoods);
end;

procedure TgoodsForm.BtnexitClick(Sender: TObject);
begin
  inherited;
  SetButtonCancel(DataE2.dsGoods);
end;

procedure TgoodsForm.PageControl1Change(Sender: TObject);
begin
  inherited;
  if PageControl1.ActivePageIndex =1 then
  with dataE2 do
  begin
    if QuerySum.active then QuerySum.close;
    querySum.sql.clear;
    QuerySum.sql.Add('select o.*,s.name from onhand o,store s where o.goodsid= :goodsid and o.storeid=s.storeid');
    QuerySum.parameters[0].Value:=tblGoods.fieldbyname('goodsid').asinteger;
    QuerySum.open;
  end;
end;

procedure TgoodsForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  if dataE2.QuerySum.active then dataE2.QuerySum.close;
end;

procedure TgoodsForm.FormShow(Sender: TObject);
begin
  inherited;
  //条块码的初始值,只有当修改前后的值不同,才搜索GoodsBase表
  sOldBarcode:=deBarcode.text;
  BtnPrior.Enabled:=not (DataE2.tblGoods.State = dsInsert);
  BtnNext.Enabled:=not (DataE2.tblGoods.State = dsInsert);
  with datae2.qryGet do   //加入单位
  begin
    Close;
    SQL.Clear;
    SQL.Add('select units,unit2 from unitType');
    Open;
    First;
    cbbUnits.Items.Clear;
    cbbUnit2.Items.Clear;
    While Not Eof do
    begin
      cbbUnits.Items.Add(FieldByName('units').AsString);
      cbbUnit2.Items.Add(FieldByName('unit2').AsString);
      Next;
    end;
  end;
end;

procedure TgoodsForm.DEbarcodeExit(Sender: TObject);
begin
  inherited;
  if deBarcode.text<>sOldBarcode then
    SearchBarcode(deBarcode.text);
end;

procedure TgoodsForm.SearchBarcode(sBarcode:string);
begin
  with dataE2 do
  begin
    if adoquery1.active then adoquery1.Close;
    adoQuery1.sql.clear;
    adoQuery1.sql.Add('select * from GoodsBase where barcode= :barcode');
    adoquery1.Parameters[0].value:=sbarcode;
    adoquery1.Open;
    if not adoquery1.Eof then
    begin
      tblGoods.edit;
      tblGoods.fieldbyname('name').Asstring :=adoQuery1.fieldbyname('name').Asstring;
      tblGoods.fieldbyname('typeCode').Asstring :=adoQuery1.fieldbyname('typecode').Asstring;
      tblGoods.fieldbyname('Memcode').Asstring :=adoQuery1.fieldbyname('memcode').Asstring;
      tblGoods.fieldbyname('units').Asstring :=adoQuery1.fieldbyname('units').Asstring;
      tblGoods.fieldbyname('unit2').Asstring :=adoQuery1.fieldbyname('unit2').Asstring;
      tblGoods.fieldbyname('perQty').AsFloat :=adoQuery1.fieldbyname('perQty').AsFloat;
      tblGoods.fieldbyname('inPrice').AsCurrency :=adoQuery1.fieldbyname('inPrice').Ascurrency;
      tblGoods.fieldbyname('SalePrice').AsCurrency :=adoQuery1.fieldbyname('SalePrice').Ascurrency;
    end;
  end; //with
end;

procedure TgoodsForm.FormActivate(Sender: TObject);
begin
  inherited;
  lblSalePrice1.Visible:=not (dataE2.HotelSpe>100);
  lblSpePrice1.Visible:=not (dataE2.HotelSpe>100);
  lblSalePrice2.Visible:=not (dataE2.HotelSpe>100);
  lblSpePrice2.Visible:=not (dataE2.HotelSpe>100);
  lbl_inprice2.Visible:=not (dataE2.HotelSpe>100);
  DBinprice2.Visible:=not (dataE2.HotelSpe>100);
  lblinprice2.Visible:=not (dataE2.HotelSpe>100);
  lblinprice1.Visible:=not (dataE2.HotelSpe>100);
  if dataE2.HotelSpe=102 then  //102是又批发又用超市收银
  begin
    lblSalePrice2.Caption:='(会员价)';
    lblSpePrice2.Caption:='(零售价)';
    lblSalePrice2.Visible:=true;
    lblSpePrice2.Visible:=true;  end
  else if dataE2.HotelSpe<100 then
    begin
     lblSalePrice2.Caption:='(支批发价)';
     lblSpePrice2.Caption:='(支零售价)';
     lblSalePrice2.Visible:=True;
     lblSpePrice2.Visible:=true;
    end;
  if dataE2.HotelSpe>100 then
  begin
    lblSalePrice1.Caption:='(会员价)';
    lblSpePrice1.Caption:='(零售价)';
    lblSalePrice1.Visible:=(dataE2.HotelSpe>100);
    lblSpePrice1.Visible:=(dataE2.HotelSpe>100);
  end;
end;

procedure TgoodsForm.DBEditEh1EditButtons0Click(Sender: TObject;
  var Handled: Boolean);
begin
  inherited;
  TreeGoodsTypeFrm.NewSQL1:='select * from goodsType order by Type';
  TreeGoodsTypeFrm.NewCaption:='货品类别';
  TreeGoodsTypeFrm.NewSQL2:='select * from goodstype1 where type=:Type order by Type,code1';
  TreeGoodsTypeFrm.NewSQL3:='select * from goodstype2 where type=:Type and code1=:code1 order by Type,code1,code2';
  if TreeGoodsTypeFrm.showmodal=mrok then
  with dataE2 do
  begin
    tblGoods.Edit;
    tblGoods.FieldByName('TypeCode').AsString :=TreeGoodsTypeFrm.xName;
  end;
end;

procedure TgoodsForm.DEnoExit(Sender: TObject);
var
  sCode:String;
begin
  inherited;
  with DataE2.QueryTmp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from goods where code=:code or barcode=:barcode');
    Parameters[0].Value:=Trim(DEno.Text);
    Parameters[1].Value:=Trim(DEno.Text);
    Open;
    if Not Eof then
      with dataE2.tblGoods do
      begin
        sCode:=Trim(DEno.Text);
        dataE2.tblGoods.Cancel;
        if Length(sCode)<8 then
          locate('code',sCode,[loPartialKey])
        else
          locate('barcode',sCode,[loPartialKey]);
        dataE2.tblGoods.Edit;
      end;
  end;
end;

end.

⌨️ 快捷键说明

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