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

📄 unit_managerdistribute.pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 PAS
字号:
unit Unit_ManagerDistribute;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, TFlatPanelUnit, Grids, DBGrids, ComCtrls, StdCtrls,
  TFlatSpeedButtonUnit, TFlatRadioButtonUnit, TFlatComboBoxUnit,
  TFlatEditUnit, Db, DBTables, TFlatCheckBoxUnit, Menus,FunctionP,
  TFlatButtonUnit;

type
  TFrm_ManagerDistribute = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    FlatPanel1: TFlatPanel;
    Panel6: TPanel;
    FlatPanel2: TFlatPanel;
    FlatPanel3: TFlatPanel;
    Label4: TLabel;
    Label5: TLabel;
    Fbutton_select: TFlatSpeedButton;
    Label3: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Label11: TLabel;
    com_areano: TFlatComboBox;
    com_djdm: TFlatComboBox;
    com_PRODUCTNO: TFlatComboBox;
    Fedit_sid1: TFlatEdit;
    Fedit_je1: TFlatEdit;
    Fedit_je2: TFlatEdit;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Label12: TLabel;
    Fedit_sid2: TFlatEdit;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Q_s: TQuery;
    com_city: TFlatComboBox;
    com_jx: TFlatComboBox;
    Q_I_U: TQuery;
    Q_u: TQuery;
    Label7: TLabel;
    Label21: TLabel;
    com_gh: TFlatComboBox;
    Label9: TLabel;
    Label10: TLabel;
    Query_Pub: TQuery;
    Lstvw_old: TListView;
    Panel5: TPanel;
    Fbutton_execute: TFlatSpeedButton;
    FlatButton1: TFlatButton;
    Panel7: TPanel;
    Fbutton_close: TFlatSpeedButton;
    Panel8: TPanel;
    ListBox1: TListBox;
    Panel9: TPanel;
    Label1: TLabel;
    Lab_num1: TLabel;
    Label2: TLabel;
    Lab_num2: TLabel;
    PanelLeftBot: TPanel;
    Label22: TLabel;
    FlatComboBox1: TFlatComboBox;
    procedure Fedit_sid1KeyPress(Sender: TObject; var Key: Char);
    procedure Fedit_sid2KeyPress(Sender: TObject; var Key: Char);
    procedure Fedit_je1KeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure Fbutton_closeClick(Sender: TObject);
    procedure Fbutton_selectClick(Sender: TObject);
    procedure Fedit_je2KeyPress(Sender: TObject; var Key: Char);
    procedure com_cityChange(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure Fbutton_executeClick(Sender: TObject);
    procedure com_jxChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Lstvw_oldDblClick(Sender: TObject);
    procedure FlatButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_ManagerDistribute: TFrm_ManagerDistribute;

implementation

uses main, dmmain, Unit_Public, crypt;

{$R *.DFM}

procedure TFrm_ManagerDistribute.Fedit_sid1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not( key in ['0'..'9',#13,#8]) then  //只允许输入数字
    key:=#0;
  if key=#13 then
  begin
    if length(trim(Fedit_sid1.Text))<>11 then  //验证电话号码
    begin
      Application.MessageBox('电话号码不正确!','错误',MB_OK);
      exit;
    end;
    Fedit_sid2.SetFocus;
  end;
end;

procedure TFrm_ManagerDistribute.Fedit_sid2KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not( key in ['0'..'9',#13,#8]) then  //只允许输入数字
    key:=#0;
  if key=#13 then
  begin
    if length(trim(Fedit_sid2.Text))<>11 then  //验证电话号码
    begin
      Application.MessageBox('电话号码不正确!','错误',MB_OK);
      exit;
    end;
    if Fedit_sid2.Text<Fedit_sid1.Text then
    begin
      Application.MessageBox('电话号码不正确!','错误',MB_OK);
      exit;
    end;
    Fedit_je1.SetFocus;
  end;
end;

procedure TFrm_ManagerDistribute.Fedit_je1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not( key in ['0'..'9',#13,#8]) then  //只允许输入数字
    key:=#0;
  if key=#13 then
    Fedit_je2.SetFocus;
end;

procedure TFrm_ManagerDistribute.FormShow(Sender: TObject);
begin
  crypt.UserEnter_Log(Caption,'分配客户',-1,Gh,'登入窗体');
  //初始化控件
  com_gh.Items.Clear;
  Fun_GetCity(com_city, '', 0, ps_cityname);
  Fun_GetCounty(com_jx, '', ps_cityname);
  Pro_GFillInitValue(self, ' ');
  Fun_GetManager(com_gh, '', ps_cityname,ps_HOMENAME,gh);
  Fun_GetManager(com_gh, '未分配', com_city.Text, com_jx.text, gh);
  com_gh.ItemIndex := 0;
  FlatComboBox1.ItemIndex := 0;
end;

procedure TFrm_ManagerDistribute.Fbutton_closeClick(Sender: TObject);
var
  i:integer;
begin
  //else
  close;
end;

procedure TFrm_ManagerDistribute.Fbutton_selectClick(Sender: TObject);
var
  tmp_item : TlistItem;
  i : integer;
begin
  //modify by h 2002.08.19
  FlatButton1Click(sender);
  q_s.Close;
  q_s.sql.Clear;
  q_s.SQL.Add('select * from t_o_distcust  where 1=1');// a.fp_bz=0');
  //q_s.sql.add(',t_d_grade b,t_d_product c where a.fp_bz=0 and a.djdm=b.GRADENO and a.PRODUCTNO=c.PRODUCTNO');
  //地市代码
  if Fun_GetCity(com_city, '', 1) <> '' then
    begin
      q_s.sql.Add('and CITYNO=:CITYNO ');
      q_s.ParamByName('CITYNO').asstring := Fun_GetCity(com_city, '', 1);
    end;
  //局向代码
  if Fun_GetCounty(com_jx, '', '', 1) <> '' then
    begin
      q_s.sql.add('and OFF_NO_HOME=:OFF_NO_HOME ');
      q_s.ParamByName('OFF_NO_HOME').asstring := Fun_GetCounty(com_jx, '', '', 1);
    end;
  //区域
  if Fun_GetArea(com_areano, '', com_city.text, com_jx.text, 1, '') <> '' then
    begin
      q_s.sql.add('and areano=:areano ');
      q_s.ParamByName('areano').asstring := Fun_GetArea(com_areano, '', com_city.text, com_jx.text, 1, '');
    end;
  //星级
  if com_djdm.ItemIndex > 0 then
    begin
      //内置函数不能用在字段等式的左边
      q_s.sql.add('and DJDM=:DJDM ');
      q_s.ParamByName('DJDM').asstring := Fun_GetCodeName(com_djdm);
      //q_s.sql.add('and to_char(DJDM)=:DJDM ');
      //q_s.ParamByName('DJDM').asstring := Fun_GetCodeName(com_djdm);
    end;
  //品牌
  if com_PRODUCTNO.ItemIndex>0 then
    begin
      q_s.sql.add('and PRODUCTNO=:PRODUCTNO ');
      q_s.ParamByName('PRODUCTNO').asstring := Fun_GetCodeName(com_PRODUCTNO);
    end;
  //起始号码
  if (trim(Fedit_sid1.text)<>'') then
    begin
      q_s.sql.add('and sid>=:bsid ');
      q_s.ParamByName('bsid').asstring:=trim(Fedit_sid1.text);
    end;
  //终止号码
  if (trim(Fedit_sid1.text)<>'') then
    begin
      q_s.sql.add(' and sid<=:esid ');
      q_s.ParamByName('esid').asstring:=trim(Fedit_sid2.text);
    end;
  //N月平均消费金额
  if (trim(Fedit_je1.text) <> '') then
    begin
      q_s.sql.add('and je>=:bje');
      q_s.ParamByName('bje').asinteger := strtoint(trim(Fedit_je1.text));
    end;
  if (trim(Fedit_je2.text) <> '') then
    begin
      q_s.sql.add(' and je<=:eje ');
      q_s.ParamByName('eje').asinteger:=strtoint(trim(Fedit_je2.text));
    end;
  //时间条件加错了,内置函数不能用在字段等式的左边
  
  //入网时间
  if DateTimePicker1.Checked then
    begin
      q_s.sql.add(' And SDATE >= To_Date('''+FormatDateTime('YYYY-MM-DD',datetimepicker1.DateTime)+''',''YYYY-MM-DD'')');
      //q_s.sql.add('and to_char(SDATE,''yyyy-mm-dd'')>=:SDATE ');
      //q_s.ParamByName('SDATE').asstring := formatdatetime('yyyy-mm-dd', datetimepicker1.date);
    end;
  if DateTimePicker2.Checked then
    begin
      q_s.sql.add(' And SDATE < To_Date('''+FormatDateTime('YYYY-MM-DD',DateTimePicker2.DateTime+1)+''',''YYYY-MM-DD'')');
      //q_s.sql.add('and to_char(a.SDATE,''yyyy-mm-dd'')<=:EDATE ');
      //q_s.ParamByName('EDATE').asstring:=formatdatetime('yyyy-mm-dd',datetimepicker2.date);
    end;
  //成为大户时间
  if datetimepicker3.Checked then
    begin
      q_s.sql.add(' And EBE_DH_T >= To_Date('''+FormatDateTime('YYYY-MM-DD',datetimepicker3.DateTime)+''',''YYYY-MM-DD'')');
      //q_s.sql.add('and to_char(a.BE_DH_T,''yyyy-mm-dd'')>=:SBE_DH_T ');
      //q_s.ParamByName('SBE_DH_T').asstring:=formatdatetime('yyyy-mm-dd',datetimepicker3.date);
    end;
  if datetimepicker4.Checked then
    begin
      q_s.sql.add(' And EBE_DH_T < To_Date('''+FormatDateTime('YYYY-MM-DD',datetimepicker4.DateTime+1)+''',''YYYY-MM-DD'')');
      //q_s.sql.add(' and to_char(a.BE_DH_T,''yyyy-mm-dd'')<=:EBE_DH_T ');
      //q_s.ParamByName('EBE_DH_T').asstring := formatdatetime('yyyy-mm-dd',datetimepicker4.date);
    end;

  if FlatComboBox1.ItemIndex > 0 then
    begin
      q_s.sql.add(' and FP_BZ=:FP_BZ ');
      q_s.ParamByName('FP_BZ').AsInteger := FlatComboBox1.ItemIndex - 1;
    end;
  q_s.sql.add(' order by sid ');
  q_s.open;
  q_s.last;
  q_s.first;
  Lab_num1.caption:=inttostr(q_s.RecordCount);
  for i:=0 to lstvw_old.Items.Count - 1 do
    lstvw_old.Items.Delete(i);

  while not q_s.eof do
    begin
      tmp_item := lstvw_old.Items.Add();
      tmp_item.Caption := q_s.fieldbyname('Sid').asstring;
      tmp_item.SubItems.Add(q_s.fieldbyname('name').asstring);
      q_s.next;
    end;
end;

procedure TFrm_ManagerDistribute.Fedit_je2KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not( key in ['0'..'9',#13,#8]) then
    key:=#0;
end;

procedure TFrm_ManagerDistribute.com_cityChange(Sender: TObject);
begin
  Fun_GetCounty(com_jx,'所有',com_city.Text);
  Fun_GetManager(com_gh,'',com_city.Text,'','');
end;

procedure TFrm_ManagerDistribute.ListBox1DblClick(Sender: TObject);
var
  tmp_item : TListItem;
  i : integer;
begin
  try
  if listbox1.Items.Count>0 then
    begin
      tmp_item := lstvw_old.Items.Add();
      for i := 0 to (ListBox1.Items.Count - 1) do
        begin
          if ListBox1.Selected[i] then
            begin
              //showmessage(trim(ListBox1.Items[i]));
              if q_s.Locate('SID', trim(ListBox1.Items[i]), []) then
                begin
                  tmp_item.Caption := q_s.fieldbyname('Sid').asstring;
                  tmp_item.SubItems.Add(q_s.fieldbyname('name').asstring);
                end;
              ListBox1.Items.Delete(i);
            end;
        end;
    end;
  except
  end;
end;
procedure TFrm_ManagerDistribute.Fbutton_executeClick(Sender: TObject);
var
  i : integer;
begin
  if listbox1.Items.Count > 0 then
    begin
      if trim(com_gh.text) = '' then
        begin
          showmessage('请选择要人员分配的客户经理工号');
          exit;
        end;
      if (Application.MessageBox('确定将这些大客户分配给该客户经理吗?', '系统提示', MB_OKCANCEL)=id_ok) then
        begin
          Dm_Main.Databasedh.StartTransaction;
          for i:=0 to listbox1.Items.Count-1 do
            begin
              q_u.close;
              q_u.sql.Clear;
              q_u.sql.Add('update t_f_custinfo set gh=:gh where sid='+''''+listbox1.Items[i]+'''');
              if com_gh.ItemIndex = 0 then
                q_u.ParamByName('gh').asstring := ''
              else
                q_u.ParamByName('gh').asstring := copy(com_gh.text,1,pos(':', com_gh.text) - 1);
              q_u.ExecSQL;
              with Query_Pub do
                begin
                  Close;
                  Sql.Clear;
                  Sql.Add('update t_o_distcust set FP_BZ=:FP_BZ where sid='+''''+listbox1.Items[i]+'''');
                  if com_gh.ItemIndex = 0 then
                    Query_Pub.ParamByName('FP_BZ').AsInteger := 0
                  else
                    Query_Pub.ParamByName('FP_BZ').AsInteger := 1;
                  ExecSql;
                end;
              with Query_Pub do
                begin
                  Close;
                  Sql.Clear;
                  Sql.Add('insert into t_h_custinfo(SID, MODICONTENT, MODI_DATE, MODI_MANAGERNO)');
                  Sql.Add(' values(:sid, :MODICONTENT, :MODI_DATE, :MODI_MANAGERNO)');
                  ParamByName('SID').AsString := listbox1.Items[i];
                  ParamByName('MODICONTENT').AsString := '分配客户经理';
                  ParamByName('MODI_DATE').AsDate := strtodate(GetSysDateTime);
                  ParamByName('MODI_MANAGERNO').AsString := GH;
                  ExecSql;
                end;
              Dm_Main.Databasedh.Commit;
            end;
          //
          listbox1.Items.Clear;
          Lab_num2.caption:='0';
          Lab_num1.caption:='0';
        end;
    end
  else
    Application.MessageBox('请选择要分配的客户经理的大客户!', '系统提示', MB_OK)
end;

procedure TFrm_ManagerDistribute.com_jxChange(Sender: TObject);
begin
  Fun_GetArea(com_areano, '所有', com_city.text, com_jx.text, 0, '0');
  Fun_GetManager(com_gh, '未分配', com_city.Text, com_jx.text, gh);
  com_gh.ItemIndex := 0;  
end;

procedure TFrm_ManagerDistribute.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TFrm_ManagerDistribute.Lstvw_oldDblClick(Sender: TObject);
begin
  if (lstvw_old.Selected = nil) then
    exit;
  ListBox1.Items.Add(lstvw_old.Selected.Caption);
  lstvw_old.Items.Delete(lstvw_old.Selected.Index);
end;

procedure TFrm_ManagerDistribute.FlatButton1Click(Sender: TObject);
var
  i : integer;
begin
  listbox1.Items.Clear;
  Lstvw_old.Items.Clear;
end;
end.

⌨️ 快捷键说明

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