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

📄 unit_queryarrearage.pas

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Unit_custombrowsebase, ImgList, Menus, Db, DBTables, Grids, DBGrids,
  ComCtrls, TFlatCheckBoxUnit, TFlatSpinEditUnit, ToolWin, StdCtrls,
  TFlatEditUnit, TFlatComboBoxUnit, TFlatButtonUnit, ExtCtrls,
  TFlatRadioButtonUnit, CheckLst, TFlatCheckListBoxUnit;

const
   INVALI='1';   //无效值
   VALI='2';     //有效值
   MAXUSER_FKFSCount=40;//最大功能数
type
  Tfrm_QueryArrearage = class(Tform_custombrowsebase)
    cbGR_QFJED: TFlatCheckBox;
    Label8: TLabel;
    Label9: TLabel;
    spiGR_QFJEDBegin: TFlatSpinEditInteger;
    spiGR_QFJEDEnd: TFlatSpinEditInteger;
    Label10: TLabel;
    cbGR_DTAgain: TFlatCheckBox;
    cbGR_STAgain: TFlatCheckBox;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    cbJT_QFJED: TFlatCheckBox;
    spiJT_QFJEDBegin: TFlatSpinEditInteger;
    spiJT_QFJEDEnd: TFlatSpinEditInteger;
    FlatCheckBox2: TFlatCheckBox;
    FlatCheckBox3: TFlatCheckBox;
    cbGR_XYD: TFlatCheckBox;
    cbGR_QT_XYD: TFlatCheckBox;
    cbGR_USER_FKFS: TFlatCheckBox;
    btnGR_USER_FKFSFull: TFlatButton;
    BtnGR_USER_FKFSNone: TFlatButton;
    clbGR_USER_FKFS: TFlatCheckListBox;
    N4: TMenuItem;
    pmi_CustStop: TMenuItem;
    procedure cbGR_QFJEDClick(Sender: TObject);
    procedure cbJT_QFJEDClick(Sender: TObject);
    procedure spiJT_QFJEDEndEnter(Sender: TObject);
    procedure spiGR_QFJEDBeginChange(Sender: TObject);
    procedure spiJT_QFJEDBeginChange(Sender: TObject);
    procedure cbGR_USER_FKFSClick(Sender: TObject);
    procedure btnGR_USER_FKFSFullClick(Sender: TObject);
    procedure BtnGR_USER_FKFSNoneClick(Sender: TObject);
    procedure pmi_CustStopClick(Sender: TObject);
    procedure FlatButton2Click(Sender: TObject);
    procedure FlatButton3Click(Sender: TObject);
  private
  	ifunCount:integer;
        array_USER_FKFS:string[40];
        array_USER_FKFSvalues:array [1..MAXUSER_FKFSCount] of integer;
        array_USER_FKFSdesc:array [1..MAXUSER_FKFSCount] of string;
    { Private declarations }
  protected
        procedure pro_initcombobox(sender:tobject);override;
        procedure pro_initother(sender:tobject);override;
        procedure pro_GR_getid(sender:tobject);override;
        procedure pro_JT_getid(sender:tobject);override;
        procedure pro_GR_OpenDataSet(sender:tobject;strsql:string);override;
        procedure pro_JT_OpenDataSet(sender:tobject;strsql:string);override;
        procedure pro_GR_getsqlwhere(sender:tobject);override;
        procedure pro_JT_getsqlwhere(sender:tobject);override;
        procedure pro_GR_checkcondition(sender:tobject);override;
        procedure pro_JT_checkcondition(sender:tobject);override;
        //根据列表框中的选中列生成相应的查询条件
        function fun_getUSER_FKFSCheck(sender:tobject):string;

  public
    { Public declarations }
  end;

var
  frm_QueryArrearage: Tfrm_QueryArrearage;

implementation
  uses dmmain,PrintFrmForm,
  Unit_CustStatusBackWrite;

  Function Fun_ExportData(pFileName:String;pReportTitle:String;pObjectSource:TObject):Boolean;stdcall;external'winfun.dll';
{$R *.DFM}

{ Tform_arrearage_B }

procedure Tfrm_QueryArrearage.pro_GR_getid(sender: tobject);
begin
  inherited;

end;

procedure Tfrm_QueryArrearage.pro_GR_OpenDataSet(sender: tobject;
  strsql: string);
begin
with browse_normal do
    begin
        close;
        sql.clear;
	sql.add('select * from T_V_GR_QueryArrearage');
        sql.add('where 1=1');
        sql.add(strsql);
        open;
    end;


end;

procedure Tfrm_QueryArrearage.pro_initcombobox(sender: tobject);
begin
  inherited;
end;

procedure Tfrm_QueryArrearage.pro_initother(sender: tobject);
var
    tmpstr:string;
    i,j,iPos:integer;
begin
  inherited;
with query_tmp do
    begin
        close;
        sql.clear;
        sql.add('select PAR_Desc,USER_FKFS from t_v_user_fkfs');
        open;
        iFunCount:=recordcount;
        clbGR_USER_FKFS.Items.Clear;
        array_USER_FKFS:='';
       // i:=0;
        first;
        while not eof do
            begin
                iPos:=strtoint(trim(fieldbyname('USER_FKFS').asstring));
                if not(pos('预留',fieldbyname('PAR_Desc').asstring)>0) then
		    begin
                	//clbGR_USER_FKFS.Items.Add(trim(fieldbyname('PAR_Desc').asstring));
                        array_USER_FKFSvalues[iPos]:=iPos;
                        array_USER_FKFSdesc[iPos]:=trim(fieldbyname('PAR_Desc').asstring);
                        array_USER_FKFS[iPos]:=VALI;   //有效
                    end
                else
		    begin
                        array_USER_FKFSvalues[iPos]:=0;
                    	array_USER_FKFS[iPos]:=INVALI;       //无效
                    end;
                 next;
               // inc(i)
            end;
    end;
for i:=1 to MAXUSER_FKFSCount do
    begin
       if array_USER_FKFS[i] = VALI then
           clbGR_USER_FKFS.Items.Add(array_USER_FKFSdesc[i]);
    end;
end;

procedure Tfrm_QueryArrearage.pro_JT_getid(sender: tobject);
begin
  inherited;

end;

procedure Tfrm_QueryArrearage.pro_JT_OpenDataSet(sender: tobject;
  strsql: string);
begin
with browse_normal do
    begin
        close;
        sql.clear;
	sql.add('select * from T_V_JT_QueryArrearage');
        sql.add('where 1=1');
        sql.add(strsql);
        open;
    end;

end;

procedure Tfrm_QueryArrearage.pro_GR_checkcondition(sender: tobject);
begin
  inherited;

    
end;

procedure Tfrm_QueryArrearage.pro_GR_getsqlwhere(sender: tobject);
var
    tmpstr:string;
begin
  inherited;
  //
if edGR_SID.Text<>'' then
      tmpstr:=tmpstr+' and '+'t.SID='+''''+edGR_SID.Text+'''';
if lGR_cityno<>'' then
        tmpstr:=tmpstr+' and '+'t.cityno='+lGR_cityno;
if lGR_off_no_home<>'' then
        tmpstr:=tmpstr+' and '+'t.off_no_home='+lGR_off_no_home;
if lGR_GH<>'' then
        tmpstr:=tmpstr+' and '+'t.WK_NO='+''''+lGR_GH+'''';
//
if cbGR_QFJED.checked then
    tmpstr:=tmpstr+' and '+'t.OWEFEE between '+inttostr(spiGR_QFJEDBegin.value)+' and '+inttostr(spiGR_QFJEDEnd.value);

if cbGR_XYD.Checked then     //单停信用点
        tmpstr:=tmpstr+' and t.XYD<=t.OweFee';
if cbGR_QT_XYD.Checked then   //全停信用点
        tmpstr:=tmpstr+' and t.QT_XYD<=t.OweFee';

if cbGR_USER_FKFS.Checked then
     tmpstr:=tmpstr+fun_getUSER_FKFSCheck(self);
GR_sqlwhere:=GR_sqlwhere+tmpstr;
end;

procedure Tfrm_QueryArrearage.pro_JT_checkcondition(sender: tobject);
begin
  inherited;

end;

procedure Tfrm_QueryArrearage.pro_JT_getsqlwhere(sender: tobject);
var
    tmpstr:string;
begin
  inherited;
//
if lJT_JTYHDM<>'' then       //集团代码
        tmpstr:=tmpstr+' and '+'t.Group_Id='+lJT_JTYHDM;
if lJT_cityno<>'' then      //地市
        tmpstr:=tmpstr+' and '+'t.cityno='+lJT_cityno;
if lJT_off_no_home<>'' then  //局向
        tmpstr:=tmpstr+' and '+'t.off_no_home='+lJT_off_no_home;
if lJT_GH<>'' then      //
        tmpstr:=tmpstr+' and '+'t.WK_NO='+''''+lJT_GH+'''';
//
if cbJT_QFJED.checked then
    tmpstr:=tmpstr+' and '+'t.OWEFEE between '+inttostr(spiJT_QFJEDBegin.value)+' and '+inttostr(spiJT_QFJEDEnd.value);
JT_sqlwhere:=JT_sqlwhere+tmpstr;
end;

procedure Tfrm_QueryArrearage.cbGR_QFJEDClick(Sender: TObject);
begin
  inherited;
  if cbGR_QFJED.Checked then
      begin
        spiGR_QFJEDBegin.colorflat:=clwindow;
        spiGR_QFJEDEnd.colorflat:=clwindow;
        spiGR_QFJEDBegin.Enabled:=true;
        spiGR_QFJEDEnd.Enabled:=true;
      end
  else
      begin
        spiGR_QFJEDBegin.colorflat:=clActiveBorder;
        spiGR_QFJEDEnd.colorflat:=clActiveBorder;
        spiGR_QFJEDBegin.Enabled:=false;
        spiGR_QFJEDEnd.Enabled:=false;
    end;

end;

procedure Tfrm_QueryArrearage.cbJT_QFJEDClick(Sender: TObject);
begin
  inherited;
  if cbJT_QFJED.Checked then
      begin
        spiJT_QFJEDBegin.colorflat:=clwindow;
        spiJT_QFJEDEnd.colorflat:=clwindow;
        spiJT_QFJEDBegin.Enabled:=true;
        spiJT_QFJEDEnd.Enabled:=true;
      end
  else
      begin
        spiJT_QFJEDBegin.colorflat:=clActiveBorder;
        spiJT_QFJEDEnd.colorflat:=clActiveBorder;
        spiJT_QFJEDBegin.Enabled:=false;
        spiJT_QFJEDEnd.Enabled:=false;
    end;
end;

procedure Tfrm_QueryArrearage.spiJT_QFJEDEndEnter(Sender: TObject);
begin
  inherited;
if sender=spiGR_QFJEDBegin then
    begin
        spiGR_QFJEDEnd.MinValue:=spiGR_QFJEDBegin.Value;
        if spiGR_QFJEDEnd.Value<spiGR_QFJEDBegin.Value then
              spiGR_QFJEDEnd.Value:=spiGR_QFJEDBegin.Value;
    end;
if sender=spiJT_QFJEDBegin then
    begin
        spiJT_QFJEDEnd.MinValue:=spiJT_QFJEDBegin.Value;
        if spiJT_QFJEDEnd.Value<spiJT_QFJEDBegin.Value then
              spiJT_QFJEDEnd.Value:=spiJT_QFJEDBegin.Value;
    end;
end;

procedure Tfrm_QueryArrearage.spiGR_QFJEDBeginChange(Sender: TObject);
begin
  inherited;
if sender=spiGR_QFJEDBegin then
    begin
        spiGR_QFJEDEnd.MinValue:=spiGR_QFJEDBegin.Value;
        if spiGR_QFJEDEnd.Value<spiGR_QFJEDBegin.Value then
              spiGR_QFJEDEnd.Value:=spiGR_QFJEDBegin.Value;
    end;
end;

procedure Tfrm_QueryArrearage.spiJT_QFJEDBeginChange(Sender: TObject);
begin
  inherited;
if sender=spiJT_QFJEDBegin then
    begin
        spiJT_QFJEDEnd.MinValue:=spiJT_QFJEDBegin.Value;
        if spiJT_QFJEDEnd.Value<spiJT_QFJEDBegin.Value then
              spiJT_QFJEDEnd.Value:=spiJT_QFJEDBegin.Value;
    end;
end;

procedure Tfrm_QueryArrearage.cbGR_USER_FKFSClick(Sender: TObject);
var
    itmp:integer;
begin
  inherited;
if cbGR_USER_FKFS.Checked then
    begin
        clbGR_USER_FKFS.Color:=clwindow;
        clbGR_USER_FKFS.Enabled:=true;
        btnGR_USER_FKFSFull.enabled:=true;
        BtnGR_USER_FKFSNone.enabled:=true;
        btnGR_USER_FKFSFull.OnClick(self);
        clbGR_USER_FKFS.Checked[3]:=false;
    end
else
    begin
        clbGR_USER_FKFS.Color:=clBtnFace;
        clbGR_USER_FKFS.Enabled:=false;
        btnGR_USER_FKFSFull.enabled:=false;
        BtnGR_USER_FKFSNone.enabled:=false
    end;
end;

procedure Tfrm_QueryArrearage.btnGR_USER_FKFSFullClick(Sender: TObject);
var
    i:integer;
begin
  inherited;
with clbGR_USER_FKFS do
    begin
        for i:=0 to items.Count-1 do
            begin
            	checked[i]:=true;
            end;

    end;
end;

procedure Tfrm_QueryArrearage.BtnGR_USER_FKFSNoneClick(Sender: TObject);
var
    i:integer;
begin
  inherited;
with clbGR_USER_FKFS do
    begin
        for i:=0 to items.Count-1 do
            begin
            	checked[i]:=false;
            end;

    end;

end;

function Tfrm_QueryArrearage.fun_getUSER_FKFSCheck(
  sender: tobject): string;
var
    i,j:integer;
    tmpstr:string;
    itemcheck:boolean;
begin
result:='';
i:=0;
j:=0;
itemcheck:=false;
tmpstr:=' and USER_FKFS in (';
for i:=0 to clbGR_USER_FKFS.Items.Count-1 do
    if clbGR_USER_FKFS.checked[i] then
        begin
            itemcheck:=true;
            for j:=1 to MAXUSER_FKFSCount do
                if array_USER_FKFSdesc[j]=trim(clbGR_USER_FKFS.Items[i]) then
       	            begin
                	tmpstr:=tmpstr+''''+inttostr(array_USER_FKFSvalues[j])+''''+',';
                 	break;
                    end;

        end;
delete(tmpstr,length(tmpstr),1);//删除最后一个逗号;
tmpstr:=tmpstr+')';
if itemcheck then
	result:=tmpstr
else
    result:='and USER_FKFS is null';



end;

procedure Tfrm_QueryArrearage.pmi_CustStopClick(Sender: TObject);
begin
  inherited;
   Application.CreateForm(TFrm_CustStatusBackWrite,Frm_CustStatusBackWrite);
end;

procedure Tfrm_QueryArrearage.FlatButton2Click(Sender: TObject);
begin
  inherited;
  if browse_normal.Active then
  if not (browse_normal.Bof and browse_normal.Eof) then
  begin
    if PageControl1.ActivePageIndex=0 then
    begin
      try
        PrintDbGrid(dbgGR.datasource.dataset,dbgGR,'大客户欠费信息个人客户');
      except
        Application.MessageBox('系统在执行过程中发生错误!','提示',MB_ICONINFORMATION);
        exit;
      end;//try
    end
    else
      begin
        try
          PrintDbGrid(dbgJT.datasource.dataset,dbgJT,'大客户欠费信息集团客户');
        except
          Application.MessageBox('系统在执行过程中发生错误!','提示',MB_ICONINFORMATION);
          exit;
        end;//try
      end;
  end;
end;

procedure Tfrm_QueryArrearage.FlatButton3Click(Sender: TObject);
begin
  inherited;
  if browse_normal.Active then
  if not (browse_normal.Bof and browse_normal.Eof) then
  begin
    if PageControl1.ActivePageIndex=0 then
    Fun_ExportData('大客户欠费信息个人客户','大客户欠费信息个人客户',dbgGR)
    else
    Fun_ExportData('大客户欠费信息集团客户','大客户欠费信息集团客户',dbgJT)
  end;
end;

end.

⌨️ 快捷键说明

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