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

📄 sell.pas

📁 学习程序,用于初学进销存的参考代码学习程序,用于初学进销存的参考代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        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 + -