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

📄 sell.~pas

📁 学习程序,用于初学进销存的参考代码学习程序,用于初学进销存的参考代码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit sell;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ImgList, ComCtrls, StdCtrls, Buttons, Grids, DBGrids,
  ToolWin;

type
  TfrmSell = class(TForm)
    CoolBar3: TCoolBar;
    SpeedButton43: TSpeedButton;
    SB_Save: TSpeedButton;
    SpeedButton45: TSpeedButton;
    SB_Add: TSpeedButton;
    SB_Delete: TSpeedButton;
    SpeedButton48: TSpeedButton;
    SpeedButton49: TSpeedButton;
    TVSell: TTreeView;
    PC_Stock: TPageControl;
    TB_Contract_List: TTabSheet;
    DB_Sell_hdr: TDBGrid;
    TB_Contract_Detail: TTabSheet;
    GroupBox2: TGroupBox;
    Label19: TLabel;
    Label20: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label27: TLabel;
    Label34: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label8: TLabel;
    Cb_OutType: TComboBox;
    Cb_CName: TComboBox;
    Cb_UserName: TComboBox;
    Cb_State: TComboBox;
    Ed_RecMoeny: TEdit;
    Ed_SellNo: TEdit;
    Ed_TotalMoney: TEdit;
    Memo: TMemo;
    DT_SellDate: TDateTimePicker;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Cb_PType: TComboBox;
    Cb_PName: TComboBox;
    Cb_Unit: TComboBox;
    BtAdd: TBitBtn;
    BtDelete: TBitBtn;
    Ed_Qty: TEdit;
    Ed_Price: TEdit;
    Ed_Rebate: TEdit;
    DB_Sell_Detail: TDBGrid;
    StatusBar4: TStatusBar;
    ImageList1: TImageList;
    DS_Sell_hdr: TDataSource;
    DS_Sell_Detail: TDataSource;
    ADO_Sell_hdr: TADOQuery;
    ADO_Sell_Detail: TADOQuery;
    Label9: TLabel;
    procedure FormShow(Sender: TObject);
    procedure TVSellClick(Sender: TObject);
    procedure DS_Sell_hdrDataChange(Sender: TObject; Field: TField);
    procedure SB_AddClick(Sender: TObject);
    procedure SB_SaveClick(Sender: TObject);
    procedure BtAddClick(Sender: TObject);
    procedure Cb_OutTypeChange(Sender: TObject);
    procedure Cb_OutTypeEnter(Sender: TObject);
    procedure Cb_OutTypeExit(Sender: TObject);
    procedure Cb_CNameExit(Sender: TObject);
    procedure Cb_PTypeChange(Sender: TObject);
    procedure Cb_PNameChange(Sender: TObject);
    procedure SB_DeleteClick(Sender: TObject);
    procedure BtDeleteClick(Sender: TObject);
    procedure Ed_RebateChange(Sender: TObject);
    procedure SpeedButton43Click(Sender: TObject);
  private
    procedure InitComboBoxValue();
    function CheckEditValue():boolean;
    procedure ClearEditValue();
    function GetTotal_Money():string;
  public
     bEdit,bInsert,bSave:boolean;
     sOldValue,sNewValue:string;
  end;

var
  frmSell: TfrmSell;

implementation

uses unit_main_dm;

{$R *.dfm}

procedure TfrmSell.FormShow(Sender: TObject);
var _sql,_sqldetail:string;
    newcol:TColumn;
begin
    InitComboBoxValue();  //初始化窗口中的CBX里的初始值
    _sql:='exec sp_cjh_query_sell_hdr';
    Main_DM.IniTreeView_OpenADOQuery(TVSell,ADO_Sell_hdr,'销售信息','Sell_No',_sql);

    /////开始取出Stock_Detail表里的数据



    //设置Stock_hdr里的字段和GRID里显示顺序
    DB_Sell_hdr.Columns.Items[0].FieldName:='Sell_no';
    DB_Sell_hdr.Columns.Items[1].FieldName:='Sell_Date';
    DB_Sell_hdr.Columns.Items[2].FieldName:='Cust_ID';
    DB_Sell_hdr.Columns.Items[3].FieldName:='Out_Type';
    DB_Sell_hdr.Columns.Items[4].FieldName:='Total_Moeny';
    DB_Sell_hdr.Columns.Items[5].FieldName:='Rec_Money';
    DB_Sell_hdr.Columns.Items[6].FieldName:='handle';
    DB_Sell_hdr.Columns.Items[7].FieldName:='Status';
    DB_Sell_hdr.Columns.Items[8].FieldName:='note';


    DB_Sell_detail.Columns.Items[0].FieldName:='Sell_no';

    DB_Sell_detail.Columns.Items[1].FieldName:='Prod_ID';

    DB_Sell_detail.Columns.Items[2].FieldName:='Unit_ID';

    DB_Sell_detail.Columns.Items[3].FieldName:='Price';

    DB_Sell_detail.Columns.Items[4].FieldName:='Qty';

    DB_Sell_detail.Columns.Items[5].FieldName:='Rebate';

    DB_Sell_detail.Columns.Items[6].FieldName:='Total_Moeny';

    bEdit:=false;
    bInsert:=false;
    bSave:=false;

end;
procedure TfrmSell.TVSellClick(Sender: TObject);
begin
    Main_DM.ClickTreeView(TVSell,ADO_Sell_hdr,'Sell_No');
end;

procedure TfrmSell.DS_Sell_hdrDataChange(Sender: TObject; Field: TField);
var _sql:string;
    DT:TDate;
begin
    if not ADO_Sell_hdr.IsEmpty then
    begin
    Ed_SellNo.Text:=     Trim(ADO_Sell_hdr.FieldByName('Sell_no').AsString);
   // TVStockIn.
    if(ADO_Sell_hdr.FieldByName('Sell_Date').AsString='') then
    DT_SellDate.Date:=Now()
    else
    DT_SellDate.DateTime:=     StrToDate(Trim(ADO_Sell_hdr.FieldByName('Sell_Date').AsString));
    Cb_OutType.Text:=     Trim(ADO_Sell_hdr.FieldByName('Out_type').AsString);
    Cb_CName.Text:=       Trim(ADO_Sell_hdr.FieldByName('cust_id').AsString);
    Ed_TotalMoney.Text:=  Trim(ADO_Sell_hdr.FieldByName('total_moeny').AsString);
    Ed_RecMoeny.Text:=    Trim(ADO_Sell_hdr.FieldByName('Rec_money').AsString);
    Cb_UserName.Text:=    Trim(ADO_Sell_hdr.FieldByName('handle').AsString);
    Cb_State.Text:=       Trim(ADO_Sell_hdr.FieldByName('status').AsString);
    Memo.Lines.Text:=     Trim(ADO_Sell_hdr.FieldByName('note').AsString);

    ADO_Sell_detail.Close;
    ADO_Sell_detail.SQL.Clear;
    _sql:='exec sp_cjh_query_sell_detail '''+Ed_SellNo.Text+'''';
    ADO_Sell_detail.SQL.Add(_sql) ;
    ADO_Sell_detail.Open;

    SB_Save.Enabled:=false;
    SB_Add.Enabled:=true;

    bInsert:=false;  //移动数据记录时把增加标志置为FALSE
    end;

end;

procedure TfrmSell.SB_AddClick(Sender: TObject);
begin
    ADO_Sell_hdr.Append;
    Ed_SellNo.Text:=Main_DM.AutoCreateDateTimeNo(); //取得自动进货编号

    if(PC_Stock.ActivePageIndex=0) then
    PC_Stock.ActivePageIndex:=1;
    SB_Save.Enabled:=true;    //设置按纽使能状态
    SB_Add.Enabled:=false;
    //清空编辑框
    Cb_Outtype.Text:='';
    Cb_CName.Text:='';
    DT_SellDate.Date:=Now();
    Ed_RecMoeny.Text:='0';
    Cb_UserName.Text:=Main_DM.sCurrentUser;
    Ed_TotalMoney.Text:='0';
    Memo.Text:='';

    bInsert:=true;

end;

procedure TfrmSell.SB_SaveClick(Sender: TObject);
var newado:TADOQuery;i:integer;
    _sql,newstockno:string;
    E: EDatabaseError;
begin

    newado:=TADOQuery.Create(self);
    newado.Connection:=Main_DM.ADOConn;
    newado.Close;
    newado.SQL.Clear;
    newstockno:= Ed_SellNO.Text;
    _sql:='exec sp_cjh_insert_sell_hdr';
    _sql:=_sql+' '+''''+Ed_SellNO.Text+'''';
    _sql:=_sql+', '+''''+DateTimeToStr(DT_SellDate.Date)+'''';
    _sql:=_sql+', '+''''+Cb_CName.Text+'''';
    _sql:=_sql+', '+''''+Ed_RecMoeny.Text+'''';
    _sql:=_sql+', '+''''+Cb_UserName.Text+'''';
    _sql:=_sql+', '+''''+Cb_OutType.Text+'''';
    _sql:=_sql+', '+''''+Memo.Text+'''';
    newado.SQL.Add(_sql);
    try
    begin
      newado.ExecSQL;
      newado.Free;
      bEdit:=true;
      if  bInsert then
        begin
        Main_DM.NewTreeNode(TVSell,newstockno);
        SB_Save.Enabled:=false;
        SB_Add.Enabled:=true;
        end;
    bInsert:=false;   //增加按纽状态标志
    ADO_Sell_hdr.Close;
    ADO_Sell_hdr.Open;
    ///////如果没有选择中TV的话则下面就会出错,所以要这样处理一下,
      for i:=0 to TVSell.Items.Count do
      if TVSell.Items.Item[i].Text= newstockno then
        begin
          TVSell.Items.Item[i].Selected:=true;
          Main_DM.ClickTreeView(TVSell,ADO_Sell_hdr,'Sell_No');//定位记录指针
          break;
        end;

    end;
    except
    ShowMessage(E.Message);
    bInsert:=false;
    end;


end;
///////////
procedure TfrmSell.InitComboBoxValue();   //下拉列表框的数据初始化
var tmpado:TADOQuery;
    _sql:string;
    iProdID :integer;
begin
    tmpado:=TADOQuery.Create(self);
    tmpado.Connection:=Main_DM.ADOConn;
    tmpado.Close;
    tmpado.SQL.Clear;

    Cb_OutType.Items.Clear;
    Cb_CName.Items.Clear;
    Cb_UserName.Items.Clear;
    Cb_PType.Items.Clear;
    Cb_PName.Items.Clear;

     _sql:='select * from ms_out_type';   //进货类型
    tmpado.SQL.Add(_sql);
    tmpado.Open;
    while not tmpado.Eof do
    begin
        Cb_OutType.Items.Add(Trim(tmpado.fieldbyname('out_type').AsString));
        tmpado.Next;
    end;

    tmpado.SQL.Clear;
    tmpado.Close;
     _sql:='select * from ms_custer_hdr';   //客户主表
    tmpado.SQL.Add(_sql);
    tmpado.Open;
    while not tmpado.Eof do
    begin

⌨️ 快捷键说明

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