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

📄 umakesales.pas

📁 是分布式粮库程序,是采用Delphi实现的
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit umakesales;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, ComCtrls, DBCtrls, Buttons, Grids,
  DBGrids, ExtCtrls, Menus;

type
  Tfmakesale = class(TForm)
    Label2: TLabel;
    salelistDataSource: TDataSource;
    salelistQuery: TQuery;
    Panel1: TPanel;
    Label1: TLabel;
    DBGrid1: TDBGrid;
    deletesaleQuery: TQuery;
    deletesaleitemQuery: TQuery;
    GroupBox1: TGroupBox;
    Label12: TLabel;
    Label13: TLabel;
    Edit6: TEdit;
    DBLookupComboBox2: TDBLookupComboBox;
    Label14: TLabel;
    DateTimePicker2: TDateTimePicker;
    Label15: TLabel;
    Edit7: TEdit;
    Label16: TLabel;
    Memo1: TMemo;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Panel2: TPanel;
    saveBitBtn: TBitBtn;
    cancelBitBtn: TBitBtn;
    exitBitBtn: TBitBtn;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    Edit2: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit4: TEdit;
    DBGrid2: TDBGrid;
    Panel3: TPanel;
    additemBitBtn: TBitBtn;
    deleteitemBitBtn: TBitBtn;
    modifyitemBitBtn: TBitBtn;
    cancelitemBitBtn: TBitBtn;
    SpeedButton1: TSpeedButton;
    PopupMenu1: TPopupMenu;
    NNew: TMenuItem;
    Nmodify: TMenuItem;
    Ndelete: TMenuItem;
    saleQuery: TQuery;
    unitTable: TTable;
    foodTable: TTable;
    unitDataSource: TDataSource;
    foodDataSource: TDataSource;
    saleitemlistquery: TQuery;
    saleitemlistDataSource: TDataSource;
    saleitemQuery: TQuery;
    newQuery: TQuery;
    newsaleQuery: TQuery;
    updatesaleQuery: TQuery;
    newsaleitemQuery: TQuery;
    updatesaleitemQuery: TQuery;
    deletesaleitemonequery: TQuery;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Memo2: TMemo;
    Label20: TLabel;
    kudianDBLookupComboBox: TDBLookupComboBox;
    Label21: TLabel;
    changkuDBLookupComboBox: TDBLookupComboBox;
    Label32: TLabel;
    huoweiDBLookupComboBox: TDBLookupComboBox;
    kudianQuery: TQuery;
    kudianDataSource: TDataSource;
    changkuQuery: TQuery;
    changkuDataSource: TDataSource;
    huoweiQuery: TQuery;
    huoweiDataSource: TDataSource;
    Edit3: TEdit;
    BitBtnall: TBitBtn;
    BitBtnnone: TBitBtn;
    BitBtnfew: TBitBtn;
    BitBtndone: TBitBtn;
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure NNewClick(Sender: TObject);
    procedure NmodifyClick(Sender: TObject);
    procedure NdeleteClick(Sender: TObject);
    procedure salelistQueryAfterScroll(DataSet: TDataSet);
    procedure saveBitBtnClick(Sender: TObject);
    procedure cancelBitBtnClick(Sender: TObject);
    procedure saleitemlistqueryAfterScroll(DataSet: TDataSet);
    procedure exitBitBtnClick(Sender: TObject);
    procedure additemBitBtnClick(Sender: TObject);
    procedure deleteitemBitBtnClick(Sender: TObject);
    procedure modifyitemBitBtnClick(Sender: TObject);
    procedure cancelitemBitBtnClick(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Exit(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBLookupComboBox2CloseUp(Sender: TObject);
    procedure kudianDBLookupComboBoxCloseUp(Sender: TObject);
    procedure changkuDBLookupComboBoxCloseUp(Sender: TObject);
    procedure BitBtnallClick(Sender: TObject);
    procedure BitBtnnoneClick(Sender: TObject);
    procedure BitBtnfewClick(Sender: TObject);
    procedure BitBtndoneClick(Sender: TObject);

  private
    { Private declarations }
  public
    menupoint:Tpoint;
    { Public declarations }
  end;

var
  fmakesale: Tfmakesale;
  salelistid: string;
  saleitemlistid: string;
  addormodi: integer;
  Newnotice:integer;
  additemflag :integer;
  salelistquerystr:string; //salelistquery的初试STRING
implementation
  USES unitdatamodul,UntPub;
{$R *.dfm}



procedure Tfmakesale.SpeedButton1Click(Sender: TObject);
begin
   PopupMenu1.Popup(ClientToScreen(fMakesale.MenuPoint).x,ClientToScreen(fMakesale.MenuPoint).y);
end;

procedure Tfmakesale.FormActivate(Sender: TObject);
begin
  MenuPoint.x:=SpeedButton1.left+SpeedButton1.Width;
  MenuPoint.y:=SpeedButton1.Top;

  salelistquery.Close;
  salelistquery.Open;
  unittable.Open;
  foodtable.Open;
end;

procedure Tfmakesale.FormCreate(Sender: TObject);
begin
  additemflag :=0;

  salelistquerystr:='select sale_id,datetime,case status when 0 then ''未处理'' when 1 then ''部分处理'' when 2 then ''已处理'' end as bbb from ent_sale ';

  edit6.Enabled :=false;
  dblookupcombobox2.Enabled :=false;
  datetimepicker2.Enabled :=false;
  edit7.Enabled :=false;
  memo1.Enabled :=false;
  edit8.Enabled :=false;
  edit9.Enabled :=false;
  edit10.Enabled :=false;
  savebitbtn.Enabled :=false;
  cancelbitbtn.Enabled :=false;

  edit1.Enabled :=false;
  dblookupcombobox1.Enabled :=false;
  edit2.Enabled :=false;
  edit3.Enabled :=false;
  kudiandblookupcombobox.Enabled :=false;
  changkudblookupcombobox.Enabled :=false;
  huoweidblookupcombobox.Enabled :=false;
  memo2.Enabled :=false;
end;

procedure Tfmakesale.NNewClick(Sender: TObject);
begin
  newnotice :=1;  //新增通知
  additemflag :=0;
  
  edit6.Enabled :=true;
  dblookupcombobox2.Enabled :=true;
  datetimepicker2.Enabled :=true;
  edit7.Enabled :=true;
  memo1.Enabled :=true;
  edit8.Enabled :=true;
  edit9.Enabled :=true;
  edit10.Enabled :=true;
  savebitbtn.Enabled :=true;
  cancelbitbtn.Enabled :=true;

  edit1.Enabled :=true;
  dblookupcombobox1.Enabled :=true;
  edit2.Enabled :=true;
  edit3.Enabled :=true;
//  kudianDBlookupCombobox.Enabled:=true;
  memo2.Enabled :=true;

  additembitbtn.Enabled :=false;
  deleteitembitbtn.Enabled :=false;
  modifyitembitbtn.Enabled :=false;
  cancelitembitbtn.Enabled :=false;

  edit6.Text :='';
  dblookupcombobox2.KeyValue :=null;
  datetimepicker2.DateTime  :=date;
  edit7.text :='';
  memo1.text :='';
  edit8.text :='';
  edit9.text :='';
  edit10.text :='';

  edit1.text :='';
  dblookupcombobox1.KeyValue :=null;
  edit2.text :='';
  edit3.text :='';
  kudianDBlookupCombobox.KeyValue :=null;
  memo2.Text :='';

  saleitemlistquery.Close;
end;

procedure Tfmakesale.NmodifyClick(Sender: TObject);
begin
  if not salequery.IsEmpty then
  begin
  additemflag :=0;

  //edit6.ReadOnly :=false;
  edit6.Enabled :=false;
  dblookupcombobox2.Enabled :=true;
  datetimepicker2.Enabled :=true;
  edit7.Enabled :=true;
  memo1.Enabled :=true;
  edit8.Enabled :=true;
  edit9.Enabled :=true;
  edit10.Enabled :=true;
  savebitbtn.Enabled :=true;
  cancelbitbtn.Enabled :=true;

  edit1.Enabled :=true;
  dblookupcombobox1.Enabled :=true;
  edit2.Enabled :=true;
  edit3.Enabled :=true;
  kudiandblookupcombobox.Enabled :=true;
  changkudblookupcombobox.Enabled :=true;
  huoweidblookupcombobox.Enabled :=true;
  memo2.Enabled :=true;

   NewNotice:=2;   //修改通知;
   saleQuery.ParamByName('saleListId').AsString :=saleListId;
   saleQuery.Close;
   saleQuery.Open;
  end;
end;

procedure Tfmakesale.NdeleteClick(Sender: TObject);
begin
  additemflag :=0;

  if salelistQuery.IsEmpty then
    begin
    application.MessageBox('销售提单列表中没有提单可供删除!','删除提单时出错',MB_OK+MB_ICONEXCLAMATION);
    Exit;
    end;
  if MessageDlg('确实要删除这项销售提单?',mtInformation,[mbYes,mbNo],0)=mrYes then
   begin
   dtmdl.Database1.StartTransaction;
   DeletesaleItemQuery.ParamByName('saleListId').AsString :=saleListId;
    try
    DeletesaleItemQuery.ExecSQL;
    except
    dtmdl.Database1.Rollback;
    Application.MessageBox('删除销售提单时出错!','系统错误',MB_OK+MB_ICONERROR);
    Exit;
    end;
   DeletesaleQuery.ParamByName('saleListId').AsString :=saleListId;
    try
    DeletesaleQuery.ExecSQL;
    except
    dtmdl.Database1.Rollback;
    Application.MessageBox('删除销售提单时出错!','系统错误',MB_OK+MB_ICONERROR);
    Exit;
    end;
   dtmdl.Database1.Commit;
   saleListQuery.Close;
   saleListQuery.Open;
end;
end;

procedure Tfmakesale.salelistQueryAfterScroll(DataSet: TDataSet);
begin
    additemflag :=0;

    saleListId:=DataSet.FieldByName('sale_id').AsString ;
    saleQuery.ParamByName('saleListId').AsString :=DataSet.FieldByName('sale_ID').AsString;
    saleQuery.Close;
    saleQuery.Open;

    edit6.Text := salequery.fieldbyname('sale_id').AsString ;
    dblookupcombobox2.KeyValue :=salequery.fieldbyname('unit_id').AsInteger;
    datetimepicker2.DateTime  :=salequery.fieldbyname('datetime').AsDateTime ;
    edit7.text :=salequery.fieldbyname('reciever').AsString;
    memo1.text :=salequery.fieldbyname('memo').AsString;
    edit8.text :=salequery.fieldbyname('manager').AsString;
    edit9.text :=salequery.fieldbyname('clerk').AsString;
    edit10.text :=salequery.fieldbyname('operter').AsString;

    saleitemlistquery.ParamByName('salelistid').AsString :=dataset.fieldbyname('sale_id').AsString ;
    saleitemlistquery.Close;
    saleitemlistquery.Open;

    kudianquery.ParamByName('unit_id').AsInteger :=dblookupcombobox2.KeyValue ;
    kudianquery.Close;
    kudianquery.Open;
end;

procedure Tfmakesale.saveBitBtnClick(Sender: TObject);
begin
   additemflag :=0;

   if newnotice=1 then
   begin
   newquery.ParamByName('saleid').AsString :=edit6.Text ;
   newquery.Close;
   newquery.Open;
     if not newquery.IsEmpty then
     begin
     application.MessageBox('该销售提货单号与原有的重复!','输入销售提货单时出错',MB_OK+MB_ICONEXCLAMATION);
     edit6.Text :='';
     edit6.SetFocus ;
     exit;
     end;
   end;

   if edit6.Text ='' then
     begin
     application.MessageBox('必须输入提货单号','编制销售提单时出错',MB_OK+MB_ICONERROR);
     edit6.SetFocus ;
     exit;
     end;
   if dblookupcombobox2.Text ='' then
     begin
     application.MessageBox('必须输入发货单位','编制销售提单时出错',MB_OK+MB_ICONERROR);
     dblookupcombobox2.SetFocus ;
     exit;
     end;
   if edit7.Text ='' then
      begin
      application.MessageBox('必须输入提货单位','编制销售提单时出错',MB_OK+MB_ICONERROR);
      edit7.SetFocus ;
      exit;
      end;
   if edit1.Text ='' then
      begin
      application.MessageBox('必须输入细目编号','编制销售提单时出错',MB_OK+MB_ICONERROR);
      edit1.SetFocus ;
      exit;
      end;
   if dblookupcombobox1.Text ='' then
      begin
      application.MessageBox('必须输入货物名称','编制销售提单时出错',MB_OK+MB_ICONERROR);
      dblookupcombobox1.SetFocus ;
      exit;
      end;
   if edit2.Text ='' then
      begin
      application.MessageBox('必须输入货物数量','编制销售提单时出错',MB_OK+MB_ICONERROR);
      edit2.SetFocus ;
      exit;
      end;
   if edit3.Text ='' then
      begin
      application.MessageBox('必须输入货物单价','编制销售提单时出错',MB_OK+MB_ICONERROR);
      edit3.SetFocus ;
      exit;
      end;

  edit6.Enabled :=false;
  dblookupcombobox2.Enabled :=false;
  datetimepicker2.Enabled :=false;
  edit7.Enabled :=false;
  memo1.Enabled :=false;
  edit8.Enabled :=false;
  edit9.Enabled :=false;
  edit10.Enabled :=false;

  edit1.Enabled :=false;
  dblookupcombobox1.Enabled :=false;
  edit2.Enabled :=false;
  edit3.Enabled :=false;
  kudiandblookupcombobox.Enabled :=false;
  changkudblookupcombobox.Enabled :=false;
  huoweidblookupcombobox.Enabled :=false;
  memo2.Enabled :=false;
  
   savebitbtn.Enabled :=false;
   additembitbtn.Enabled :=true;
   deleteitembitbtn.Enabled :=true;
   modifyitembitbtn.Enabled :=true;
   cancelitembitbtn.Enabled :=true;

 if newnotice=1 then      //新增销售提单
  begin
  newsalequery.ParamByName('saleid').AsString :=edit6.Text ;
  newsalequery.ParamByName('datetime').AsDateTime :=datetimepicker2.Date;
  newsalequery.ParamByName('unit_id').AsInteger :=dblookupcombobox2.KeyValue ;
  newsalequery.ParamByName('reciever').AsString :=edit7.Text ;
  newsalequery.ParamByName('memo').AsString :=memo1.Text ;
  newsalequery.ParamByName('manager').AsString :=edit8.Text ;
  newsalequery.ParamByName('clerk').AsString :=edit9.Text ;
  newsalequery.ParamByName('operter').AsString :=edit10.Text ;
  newsalequery.ParamByName('status').AsInteger :=0;

  newsaleitemquery.ParamByName('salelistid').AsString :=edit6.Text ;
  newsaleitemquery.ParamByName('saleitemid').AsString :=edit6.Text+'_'+edit1.Text ;
  newsaleitemquery.ParamByName('food_type').AsString :=dblookupcombobox1.Text ;
  newsaleitemquery.ParamByName('quantity').AsFloat :=strtofloat(edit2.Text) ;
  newsaleitemquery.ParamByName('price').AsFloat :=strtofloat(edit3.Text) ;
  newsaleitemquery.ParamByName('sitename').AsString :=kudiandblookupcombobox.Text ;
  newsaleitemquery.ParamByName('depotname').AsString :=changkudblookupcombobox.Text ;
  newsaleitemquery.ParamByName('foodposition').AsString :=huoweidblookupcombobox.Text ;
  newsaleitemquery.ParamByName('memo').AsString :=memo2.Text ;
  newsaleitemquery.ParamByName('remain').AsFloat :=strtofloat(edit2.Text);
  newsaleitemquery.ParamByName('status').AsInteger :=0;
  try
  newsalequery.ExecSQL ;
  newsaleitemquery.ExecSQL ;
  except
  application.MessageBox('新建销售提单时出错!','系统错误',MB_OK+MB_ICONERROR);
  exit;
  end;
  end;

 if newnotice=2 then      //修改销售提单
  begin

⌨️ 快捷键说明

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