📄 umakesales.pas
字号:
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 + -