📄 sell.pas
字号:
Cb_CName.Items.Add(Trim(tmpado.fieldbyname('Custer_Name').AsString));
tmpado.Next;
end;
tmpado.SQL.Clear;
tmpado.Close;
_sql:='select * from ms_employee'; //员工表
tmpado.SQL.Add(_sql);
tmpado.Open;
while not tmpado.Eof do
begin
Cb_UserName.Items.Add(Trim(tmpado.fieldbyname('Employee_name').AsString));
tmpado.Next;
end;
tmpado.SQL.Clear;
tmpado.Close;
_sql:='select * from ms_prod_type'; //产品类型
tmpado.SQL.Add(_sql);
tmpado.Open;
while not tmpado.Eof do
begin
Cb_PType.Items.Add(Trim(tmpado.fieldbyname('Prod_Type').AsString));
tmpado.Next;
end;
tmpado.SQL.Clear;
tmpado.Close;
_sql:='select * from ms_product'; //产品档案
tmpado.SQL.Add(_sql);
tmpado.Open;
while not tmpado.Eof do
begin
Cb_PName.Items.Add(Trim(tmpado.fieldbyname('Pruduct_Des').AsString));
tmpado.Next;
end;
Cb_UserName.Text:=Main_DM.sCurrentUser;
tmpado.Free;
end;
procedure TfrmSell.BtAddClick(Sender: TObject);
var newado:TADOQuery;
_sql:string;
begin
////////////////////检查数据类型是否正确////////////////
if CheckEditValue() then
begin
newado:=TADOQuery.Create(self);
newado.Connection:=Main_DM.ADOConn;
newado.Close;
newado.SQL.Clear;
_sql:='exec sp_cjh_insert_sell_detail';
_sql:=_sql+' '+''''+Trim(Ed_SellNo.Text)+'''';
_sql:=_sql+','+''''+Trim(Cb_PType.Text)+'''';
_sql:=_sql+','+''''+Trim(Cb_PName.Text)+'''';
_sql:=_sql+','+''''+Trim(Cb_Unit.Text)+'''';
_sql:=_sql+','+''''+Trim(Ed_Qty.Text)+'''';
_sql:=_sql+','+''''+Trim(Ed_Price.Text)+'''';
_sql:=_sql+','+''''+Trim(Ed_Rebate.Text)+'''';
// _sql:=_sql+','+'0';
newado.SQL.Add(_sql);
newado.ExecSQL;
showmessage('保存成功');
ClearEditValue();
ADO_Sell_Detail.Close;
ADO_Sell_Detail.Open;
Ed_TotalMoney.Text:=GetTotal_Money();
end;
end;
/////////////
function TfrmSell.GetTotal_Money():string;
var tmp:TADOQuery;
sNo:string;
begin
tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close();
tmp.SQL.Clear;
tmp.SQL.Add('exec sp_cjh_get_sell_total_money '''+Ed_SellNo.Text+'''');
tmp.Open;
sNo:=tmp.FieldByName('total_money').AsString;
tmp.Free;
result:=sNo;
end;
procedure TfrmSell.ClearEditValue();
begin
Cb_PType.Text:='';
Cb_PName.Text:='';
Cb_Unit.Text:='';
Ed_Price.Text:='0';
Ed_Qty.Text:='0';
end;
//////
function TfrmSell.CheckEditValue():boolean;
var tmp:TADOQuery;
begin
tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
if Ed_SellNo.Text<>'' then
begin
tmp.SQL.Add('select sell_no from sell_hdr where sell_no='''+Ed_SellNo.Text+''' ');
tmp.Open;
if tmp.IsEmpty then
begin
ShowMessage('请先保存上面的数据,再增加进货产品的记录!');
result:=false;
end;
end;
if Ed_SellNo.Text='' then result:=false;
if (Cb_PType.Text='') or (Cb_PName.Text='') or (StrToFloat(Ed_Qty.Text) <=0) then
begin
ShowMessage('输入数据类型不正确,请检查并重新输入!');
if Cb_PType.Text='' then Cb_PType.SetFocus
else if Cb_PName.Text='' then Cb_PName.SetFocus
else if StrToFloat(Ed_Qty.Text) <=0 then Ed_Qty.SetFocus;
result:=false;
end;
end;
procedure TfrmSell.Cb_OutTypeChange(Sender: TObject);
begin
sNewValue:= Cb_OutType.Text+Cb_CName.Text+DateToStr(DT_SellDate.Date)+Ed_RecMoeny.Text+Ed_TotalMoney.Text+Memo.Text;
if not bInsert then
begin
// if(sOldValue=sNewValue) then SB_Save.Enabled:=false;
if(sOldValue<>sNewValue) then
begin
SB_Save.Enabled:=true;
bEdit:=true;
end;
end;
end;
procedure TfrmSell.Cb_OutTypeEnter(Sender: TObject);
begin
sOldValue:=Cb_OutType.Text+Cb_CName.Text+DateToStr(DT_SellDate.Date)+Ed_RecMoeny.Text+Ed_TotalMoney.Text+Memo.Text;
end;
procedure TfrmSell.Cb_OutTypeExit(Sender: TObject);
begin
Main_DM.ExistEdit_Text_Validate('','select * from ms_out_type where out_Type='''+Cb_OutType.Text+'''');
end;
procedure TfrmSell.Cb_CNameExit(Sender: TObject);
begin
Main_DM.ExistEdit_Text_Validate('','select * from ms_custer_hdr where Custer_Name='''+Cb_CName.Text+'''');
end;
procedure TfrmSell.Cb_PTypeChange(Sender: TObject);
var tmpado:TADOQuery;
iProdID,_sql:string;
begin
tmpado:=TADOQuery.Create(self);
tmpado.Connection:=Main_DM.ADOConn;
tmpado.SQL.Clear;
Cb_PName.Items.Clear;
CB_PName.Text:='';
tmpado.Close;
_sql:='select * from ms_prod_type where Prod_Type='''+Trim(Cb_Ptype.Text)+'''';
tmpado.SQL.Add(_sql);
tmpado.Open;
iProdID:=tmpado.FieldByName('ID').AsString;
tmpado.SQL.Clear;
tmpado.Close;
_sql:='select * from ms_product where prod_type='''+iProdID+'''';
tmpado.SQL.Add(_sql);
tmpado.Open;
while not tmpado.Eof do
begin
Cb_PName.Items.Add(Trim(tmpado.fieldbyname('Pruduct_Des').AsString));
tmpado.Next;
end;
tmpado.Free;
end;
procedure TfrmSell.Cb_PNameChange(Sender: TObject);
var tmpado:TADOQuery;
_sql:string;
begin
tmpado:=TADOQuery.Create(self);
tmpado.Connection:=Main_DM.ADOConn;
tmpado.Close;
tmpado.SQL.Clear;
_sql:='select Unit_Des from ms_unit,ms_product where Pruduct_Des='''+Trim(Cb_PName.Text)+''' and ms_unit.id=ms_product.prod_unit';
tmpado.SQL.Add(_sql);
tmpado.Open;
Cb_Unit.Text:=Trim(tmpado.FieldByName('Unit_Des').AsString);
tmpado.Free;
end;
procedure TfrmSell.SB_DeleteClick(Sender: TObject);
var sSellNo:string;
tmp:TADOQuery;i:integer;
begin
tmp:=TADOQuery.Create(self);
if not ADO_Sell_hdr.IsEmpty then
begin
if(MessageBox(handle,'确定删除这笔记录吗?','提示..',MB_YESNO)=IDYES) then
begin
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
sSellNo:=ADO_Sell_hdr.FieldByName('sell_no').AsString;
tmp.SQL.Add('delete from sell_hdr where sell_no='''+sSellNo+'''');
tmp.ExecSQL;
ADO_Sell_hdr.Close;
ADO_Sell_hdr.Open;
for i:=0 to TVSell.Items.Count do
begin
if(TVSell.Items.Item[i].Text=sSellNo) then
begin
TVSell.Items.Item[i].Delete;
break;
end;
end;
end;
end;
tmp.Free;
end;
procedure TfrmSell.BtDeleteClick(Sender: TObject);
var tmp:TADOQuery;iID:string;
begin
tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
if not ADO_Sell_Detail.IsEmpty then
begin
if(MessageBox(handle,'确定删除这笔记录吗?', '提示', MB_YESNO)=IDYES) then
begin
iID:=ADO_Sell_Detail.FieldByName('ID').AsString;
tmp.SQL.Add('delete from sell_detail where id='+iID+'');
tmp.ExecSQL;
Ed_TotalMoney.Text:=GetTotal_Money();
end;
end;
tmp.Free;
ADO_Sell_Detail.Close;
ADO_Sell_Detail.Open;
end;
procedure TfrmSell.Ed_RebateChange(Sender: TObject);
var f:Real;
begin
try
begin
f:=StrToFloat(Trim(Ed_Rebate.Text));
if f>1 then begin ShowMessage('输入的数据类型不正确,请输入在0-1之间的数据'); Ed_Rebate.SetFocus;Ed_Rebate.Text:='0';end;
if f<0 then begin ShowMessage('输入的数据类型不正确,请输入在0-1之间的数据'); Ed_Rebate.SetFocus;Ed_Rebate.Text:='0';end;
end;
except
begin ShowMessage('输入的数据类型不正确,请输入在0-1之间的数据'); Ed_Rebate.SetFocus;Ed_Rebate.Text:='0'; end;
end;
end;
procedure TfrmSell.SpeedButton43Click(Sender: TObject);
begin
//Main_DM.ExitActivePage;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -