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

📄 unit_cardtrack.pas

📁 用delphi开发的美容院管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit_CardTrack;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Grids, ExtCtrls, Buttons;

type
  Tfrm_cardtrack = class(TForm)
    PageControl1: TPageControl;
    sht_Card: TTabSheet;
    sht_Currency: TTabSheet;
    sg_Card: TStringGrid;
    Panel1: TPanel;
    sht_Cost: TTabSheet;
    sbtn_front: TSpeedButton;
    sbtn_back: TSpeedButton;
    sbtn_close: TSpeedButton;
    sbtn_delete: TSpeedButton;
    sbtn_clear: TSpeedButton;
    sg_currency: TStringGrid;
    sg_Cost: TStringGrid;
    sht_change: TTabSheet;
    sg_change: TStringGrid;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbtn_closeClick(Sender: TObject);
    procedure sg_CardSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sbtn_backClick(Sender: TObject);
    procedure sbtn_frontClick(Sender: TObject);
    procedure sg_currencySelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sbtn_clearClick(Sender: TObject);
    procedure sbtn_deleteClick(Sender: TObject);
    procedure sg_changeSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sg_CostSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);

  private
    { Private declarations }
    procedure SearchCustomerCardChangeInfo;
    procedure SearchCustomerCardCurrencyChangeInfo ;
    procedure SearchCustomerCardCurrencyAddInfo ;
    procedure SearchCustomerCardCurrencyCostInfo;

    procedure DeleteCustomerCardChangeInfo(isClear:boolean);
    procedure DeleteCustomerCardCurrencyChangeInfo(isClear:boolean);
    procedure DeleteCustomerCardCurrencyAddInfo(isClear:boolean);
    procedure DeleteCustomerCardCurrencyCostInfo(isClear:boolean);
  public
    { Public declarations }
    procedure cardtrack_ref;
  end;

var
  frm_cardtrack: Tfrm_cardtrack;

implementation
  uses  unit_DataModule,unit_TotalPublic,PublicFunOrPro;
{$R *.dfm}

{*************************************************}
procedure Tfrm_cardtrack.cardtrack_ref ;
begin
  pagecontrol1.ActivePage := sht_card;
  
  with sg_Card do
  begin
    cells[0,0]:='变动编号';
    cells[1,0]:='客户卡号';
    cells[2,0]:='客户编号';
    cells[3,0]:='客户姓名';
    cells[4,0]:='员工编号';
    cells[5,0]:='员工姓名';
    cells[6,0]:='变动日期';
    cells[7,0]:='变动描述';
  end;
  SearchCustomerCardChangeInfo;

  with sg_Change do
  begin
    cells[0,0]:='变动编号';
    cells[1,0]:='客户卡号';
    cells[2,0]:='客户编号';
    cells[3,0]:='客户姓名';
    cells[4,0]:='员工编号';
    cells[5,0]:='员工姓名';
    cells[6,0]:='变动日期';
    cells[7,0]:='上次金额';
    cells[8,0]:='变动金额';
    cells[9,0]:='变动方式';
    cells[10,0]:='最新金额';
  end;
  SearchCustomerCardCurrencyChangeInfo;

  with sg_Currency do
  begin
    cells[0,0]:='变动编号';
    cells[1,0]:='客户卡号';
    cells[2,0]:='客户编号';
    cells[3,0]:='客户姓名';
    cells[4,0]:='员工编号';
    cells[5,0]:='员工姓名';
    cells[6,0]:='变动日期';
    cells[7,0]:='上次金额';
    cells[8,0]:='充值金额';
    cells[9,0]:='最新金额';
  end;
  SearchCustomerCardCurrencyAddInfo;

  with sg_Cost do
  begin
    cells[0,0]:='变动编号';
    cells[1,0]:='客户卡号';
    cells[2,0]:='客户编号';
    cells[3,0]:='客户姓名';
    cells[4,0]:='员工编号';
    cells[5,0]:='员工姓名';
    cells[6,0]:='变动日期';
    cells[7,0]:='上次金额';
    cells[8,0]:='消费金额';
    cells[9,0]:='最新金额';
  end;
  SearchCustomerCardCurrencyCostInfo;

  sbtn_clear.Enabled := GetPower(SysUserId,'顾客卡追踪','修改权');
  sbtn_delete.Enabled := sbtn_clear.Enabled ;
  
end;

procedure Tfrm_cardtrack.SearchCustomerCardChangeInfo ;
var
  i:integer;
begin
  with dmod.qrydata do
  begin
    close;
    SQL.Text :='select change_no,card_no,g.cus_no,cus_name,g.emp_no,emp_name,change_date,change_remark '+
               ' from CustomerCardChange g,Customer c,Employee e where g.cus_no=c.cus_no and g.emp_no=e.emp_no order by g.cus_no,change_no';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Card do
      begin
        cells[0,i]:=FieldByName('change_no').AsString ;
        cells[1,i]:=FieldByName('card_no').AsString ;
        cells[2,i]:=FieldByName('cus_no').AsString ;
        cells[3,i]:=FieldByName('cus_name').AsString ;
        cells[4,i]:=FieldByName('emp_no').AsString ;
        cells[5,i]:=FieldByName('emp_name').AsString ;
        cells[6,i]:=FieldByName('change_date').AsString ;
        cells[7,i]:=FieldByName('change_remark').AsString ;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Card.RowCount :=i+1;
end;

procedure Tfrm_cardtrack.SearchCustomerCardCurrencyChangeInfo;
var
  i:integer;
begin
  with dmod.qrydata do
  begin
    close;
    SQL.Text :='select change_no,card_no,g.cus_no,cus_name,g.emp_no,emp_name,change_date,last_currency,currency_added,currency_reduced,total_currency,add_or_reduced '+
               ' from CustomerCardCurrencyChange g,Customer c,Employee e where g.cus_no=c.cus_no and g.emp_no=e.emp_no '+
               ' order by g.cus_no,change_no';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Change do
      begin
        cells[0,i]:=FieldByName('change_no').AsString ;
        cells[1,i]:=FieldByName('card_no').AsString ;
        cells[2,i]:=FieldByName('cus_no').AsString ;
        cells[3,i]:=FieldByName('cus_name').AsString ;
        cells[4,i]:=FieldByName('emp_no').AsString ;
        cells[5,i]:=FieldByName('emp_name').AsString ;
        cells[6,i]:=FieldByName('change_date').AsString ;
        cells[7,i]:=FieldByName('last_currency').AsString ;
        if FieldByName('add_or_reduced').AsString ='0' then
        begin
          cells[8,i]:=FieldByName('currency_added').AsString ;
          cells[9,i]:='充值';
        end else begin
          cells[8,i]:=FieldByName('currency_reduced').AsString ;
          cells[9,i]:='消费';
        end;
        cells[10,i]:=FieldByName('total_currency').AsString ;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Change.RowCount :=i+1;
end;

procedure Tfrm_cardtrack.SearchCustomerCardCurrencyAddInfo;
var
  i:integer;
begin
  with dmod.qrydata do
  begin
    close;
    SQL.Text :='select change_no,card_no,g.cus_no,cus_name,g.emp_no,emp_name,change_date,last_currency,currency_added,total_currency '+
               ' from CustomerCardCurrencyChange g,Customer c,Employee e where g.cus_no=c.cus_no and g.emp_no=e.emp_no and add_or_reduced="0" '+
               ' order by g.cus_no,change_no';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Currency do
      begin
        cells[0,i]:=FieldByName('change_no').AsString ;
        cells[1,i]:=FieldByName('card_no').AsString ;
        cells[2,i]:=FieldByName('cus_no').AsString ;
        cells[3,i]:=FieldByName('cus_name').AsString ;
        cells[4,i]:=FieldByName('emp_no').AsString ;
        cells[5,i]:=FieldByName('emp_name').AsString ;
        cells[6,i]:=FieldByName('change_date').AsString ;
        cells[7,i]:=FieldByName('last_currency').AsString ;
        cells[8,i]:=FieldByName('currency_added').AsString ;
        cells[9,i]:=FieldByName('total_currency').AsString ;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Currency.RowCount :=i+1;
end;

procedure Tfrm_cardtrack.SearchCustomerCardCurrencyCostInfo;
var
  i:integer;
begin
  with dmod.qrydata do
  begin
    close;
    SQL.Text :='select change_no,card_no,g.cus_no,cus_name,g.emp_no,emp_name,change_date,last_currency,currency_reduced,total_currency '+
               ' from CustomerCardCurrencyChange g,Customer c,Employee e where g.cus_no=c.cus_no and g.emp_no=e.emp_no and add_or_reduced="1" '+
               ' order by g.cus_no,change_no';
    Open;
    i:=1;
    while not eof do
    begin
      with sg_Cost do
      begin
        cells[0,i]:=FieldByName('change_no').AsString ;
        cells[1,i]:=FieldByName('card_no').AsString ;
        cells[2,i]:=FieldByName('cus_no').AsString ;
        cells[3,i]:=FieldByName('cus_name').AsString ;
        cells[4,i]:=FieldByName('emp_no').AsString ;
        cells[5,i]:=FieldByName('emp_name').AsString ;
        cells[6,i]:=FieldByName('change_date').AsString ;
        cells[7,i]:=FieldByName('last_currency').AsString ;
        cells[8,i]:=FieldByName('currency_reduced').AsString ;
        cells[9,i]:=FieldByName('total_currency').AsString ;
      end;
      inc(i);
      next;
    end;
  end;
  if i<>1 then sg_Cost.RowCount :=i+1;
end;

procedure Tfrm_cardtrack.DeleteCustomerCardChangeInfo(isClear:boolean) ;
var
  temp_sql:string;
begin
  if sg_Card.Cells [0,sg_Card.Row ]='' then exit;

  if isClear then
    temp_sql:='delete from CustomerCardChange'
  else
    temp_sql:='delete from CustomerCardChange where change_no='+#39+sg_Card.Cells [0,sg_Card.Row ]+#39;

  if IsClear then
  begin
    if MessageBox(handle,'你确定要清空顾客办卡记录吗?','提示',mb_Yesno+mb_iconquestion)<>IDYES then
      exit;
  end else
    if MessageBox(handle,'删除单条顾客办卡记录将使办卡日志不完整,确定继续吗?','提示',mb_Yesno+mb_iconquestion)<>IDYES then
      exit;
        
  with dmod.qrydata do
  begin
    close;
    SQL.Text :=temp_sql;
    ExecSQL;
  end;

  if isClear then
  begin
    StringGridClear(sg_Card);
    sbtn_front.Enabled :=false;
    sbtn_back.Enabled := false;
  end else begin
    StringGridDelete(sg_Card,sg_Card.Row);
    if sg_Card.Row = sg_Card.RowCount - 1 then
    begin
      if sg_Card.RowCount > 2 then
        sg_Card.Row := sg_Card.Row - 1
      else
        sbtn_back.Enabled := false;
    end;
    if sg_Card.Row = 1 then sbtn_front.Enabled := false;
    if sg_Card.Row = sg_Card.RowCount - 2 then sbtn_back.Enabled := false;
  end;

end;

⌨️ 快捷键说明

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