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

📄 cjuserlistfm.pas

📁 一个电力部门的催缴费用系统
💻 PAS
字号:
unit CjUserListFM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  BaseEditFrm, ActnList, ImgList, Grids, DBGrids, RXDBCtrl, ComCtrls,
  ExtCtrls, TB97Tlbr, TB97Ctls, TB97, StdCtrls, Mask, DBCtrls, Db, DBTables;

type
  TFM_CjUserList = class(TForm_BaseEdit)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    ToolbarButton971: TToolbarButton97;
    ToolbarSep972: TToolbarSep97;
    ToolbarButton972: TToolbarButton97;
    actn_Const_Find: TAction;
    actn_Const_Print: TAction;
    Label4: TLabel;
    Label5: TLabel;
    DBLookupComboBox2: TDBLookupComboBox;
    Query1: TQuery;
    ComboBox1: TComboBox;
    DBLookupComboBox1: TDBLookupComboBox;
    procedure actn_Const_NewExecute(Sender: TObject);
    procedure actn_Const_SaveExecute(Sender: TObject);
    procedure actn_Const_DeleteExecute(Sender: TObject);
    procedure actn_Const_CancelExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure actn_Const_EditExecute(Sender: TObject);
    procedure actn_Const_FindExecute(Sender: TObject);
    procedure actn_Const_PrintExecute(Sender: TObject);
  private
    { Private declarations }
    procedure RefreshTable;
    function IsUser(sAccount,sArea:String): Boolean;
    function LocateUSer(sAccount,sArea:String) :Boolean;
  public
    { Public declarations }
  end;

var
  FM_CjUserList: TFM_CjUserList;

implementation
uses CommonDataDM, systemDM,sourcePH,FindCjUserFM,PrintCjUserFM,RptCjUserFM;
{$R *.DFM}
procedure TFM_CjUserList.RefreshTable;
begin
  With DM_CommonData.Qr_CjUserList do
  begin
    DisableControls;
    Close; DatabaseName:=SysDM.DBName; Sql.Clear ;
    Sql.Text :='select CZH,PhoneCode,UserName,carea,NOTE,User_Type from CjUserList';
    Prepare;
    Open;
    EnableControls;
  end;
end;

procedure TFM_CjUserList.actn_Const_NewExecute(Sender: TObject);
begin
  inherited;
  combobox1.Text :='';
  DbEdit1.SetFocus ;
  With DM_CommonData.Qr_CjUserList  do
  begin
    Append;
  end;
end;

procedure TFM_CjUserList.actn_Const_SaveExecute(Sender: TObject);
begin
  inherited;
  if DbEdit1.Text = ''then
   begin
    Application.MessageBox('帐号不能为空!','信息提示',MB_OK+MB_ICONINFORMATION);
    Exit;
   end;
  if DbEdit2.Text = ''then
   begin
    Application.MessageBox('电话号码不能为空!','信息提示',MB_OK+MB_ICONINFORMATION);
    Exit;
   end;
  if DBLookupComboBox1.Text = ''then
   begin
    Application.MessageBox('用户区域不能为空!','信息提示',MB_OK+MB_ICONINFORMATION);
    Exit;
   end;
  if DbLookupComboBox2.Text = ''then
   begin
    Application.MessageBox('用户类型不能为空!','信息提示',MB_OK+MB_ICONINFORMATION);
    Exit;
   end;

  if IsUser(DbEdit1.Field.AsString,DbLookupComboBox1.Field.AsString) then
   begin
    if not LocateUser(DbEdit1.Field.AsString,DbLookupComboBox1.Field.AsString) then
     begin
      DM_CommonData.Qr_CjUserList.Cancel;
      DM_CommonData.Qr_CjUserList.Locate('Czh;CArea',VarArrayOf([DbEdit1.Field.AsString,DbLookupComboBox1.Field.AsString]),[loPartialKey]);
     end;
    FindNextControl (TWinControl (Sender), True, True, False).SetFocus;

    SysDM.DBMain.StartTransaction ;
    With DM_CommonData.Qr_CjUserList do
    try
     if Modified then ApplyUpdates ;
      SysDM.DBMain.Commit ;
    except;
     CancelUpdates ;
     SysDM.DBMain.Rollback ;
    end;
    DM_CommonData.Qr_CjUserList.CommitUpdates ;
   end;
end;

procedure TFM_CjUserList.actn_Const_DeleteExecute(Sender: TObject);
begin
  inherited;
  if Application.MessageBox('确认删除数据吗?','提示',MB_YESNO+MB_ICONQUESTION)=ID_NO then exit;
  SysDM.DBMain.StartTransaction ;
  try
    DM_CommonData.Qr_CjUserList.Delete ;
    DM_CommonData.Qr_CjUserList.ApplyUpdates ;
    SysDM.DBMain.Commit ;
  except
    DM_CommonData.Qr_CjUserList.CommitUpdates ;
    SysDM.DBMain.Rollback ;
  end;
  DM_CommonData.Qr_CjUserList.CommitUpdates ;

end;

procedure TFM_CjUserList.actn_Const_CancelExecute(Sender: TObject);
begin
  inherited;
  DM_CommonData.Qr_CjUserList.Cancel ;
end;

procedure TFM_CjUserList.FormCreate(Sender: TObject);
begin
  inherited;
  RefreshTable;
  combobox1.Items.Clear ;
  with TQuery.Create (nil) do
  begin
    try
      DatabaseName:=SysDM.DBMain.DatabaseName ;
      close;
      sql.Text :='select distinct * from elecfee_userarea order by user_area';
      open;
      while not EOF do
      begin
        combobox1.Items.Append (FieldByName('TYPE_NOTE').AsString);
        next;
      end;
    finally
      Free;
    end;
  end;
end;

procedure TFM_CjUserList.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  DM_CommonData.Qr_CjUserList.close;
  Action:=Cafree;
  //self:=nil;
  FM_CjUserList:=nil;

end;

procedure TFM_CjUserList.actn_Const_EditExecute(Sender: TObject);
begin
  inherited;
  DM_CommonData.Qr_CjUserList.Edit ;
end;

procedure TFM_CjUserList.actn_Const_FindExecute(Sender: TObject);
var
  FM_FindCjUser: TFM_FindCjUser;
begin
  inherited;
  FM_FindCjUser:=TFM_FindCjUser.Create(Self);
  try
    if Fm_FindCjUser.ShowModal = mrOk then
    begin
      case FM_FindCjUser.rg_FindType.ItemIndex of
        0: DM_CommonData.Qr_CjUserList.Locate('UserName',trim(FM_FindCjUser.edt_Value.text),[]);
        1: DM_CommonData.Qr_CjUserList.Locate('PhoneCode',trim(FM_FindCjUser.edt_Value.text),[]);
        2: DM_CommonData.Qr_CjUserList.Locate('CZH',trim(FM_FindCjUser.edt_Value.text),[]);
      end;
    end;
  finally
    FM_FindCjUser.Free;
  end;
end;
procedure TFM_CjUserList.actn_Const_PrintExecute(Sender: TObject);
var
  //FM_PrintCjUserList: TFM_PrintCjUserList;
  //FM_RptCjUser: TFM_RptCjUser;
  sSort:string;
begin
  inherited;
  FM_PrintCjUserList:=TFM_PrintCJUserList.Create(Self);
  FM_RptCjUser:=TFM_RptCjUser.Create(Self);
  try
    if FM_PrintCjUserList.ShowModal = mrOk then
    begin
      case FM_PrintCjUserList.rg_SortMode.ItemIndex  of
        0:sSort:='';
        1:sSort:=' order by UserName';
        2:sSort:=' order by PhoneCode';
      end;
      case FM_PrintCjUserList.rg_PrintOption.ItemIndex of
        0:
          begin
            FM_RptCjUser.qrlbl_Title.Caption :='所 有 催 缴 用 户';
            FM_RptCjUser.PreviewRpt('Select UserName,PhoneCode,CZH from cjUserList'+sSort);
          end;
        1:
          begin
            FM_RptCjUser.qrlbl_Title.Caption :='有 帐 号 催 缴 用 户';
            FM_RptCjUser.PreviewRpt('Select UserName,PhoneCode,CZH from cjUserList where (CZH is not NULL) and (CZH<>'''')'+sSort);
          end;
        2:
          begin
            FM_RptCjUser.qrlbl_Title.Caption :='无 帐 号 催 缴 用 户';
            FM_RptCjUser.PreviewRpt('Select UserName,PhoneCode,CZH from cjUserList where (CZH is NULL) or (CZH='''')'+sSort);
          end;
      end;
    end;
  finally
    FM_RptCjUser.Free;
    FM_PrintCjUserList.Free;

  end;
end;

function TFM_CjUserList.IsUser(sAccount, sArea: String): Boolean;
begin
 with TQuery.Create(nil)do
 try
  DataBaseName := SysDM.DBMain.DatabaseName;
  Close;
  //if sArea <> '03'then
   Sql.Text := Format('Select * from ELECFEE_USERINFO where user_account = ''%s'' and user_area = ''%s''',[sAccount, sArea]);
  //else
   //Sql.Text := Format('Select * from ELECFEE_POWER_USERINFO where user_account = ''%s'' and user_area = ''%s''',[sAccount, sArea]);
  Open;
  if not IsEmpty then
   Result := True
  else
  begin
   //Result := False;
   Query1.DatabaseName :=SysDM.DBMain.DatabaseName ;
   query1.Close;
   query1.Sql.Text := Format('Select * from ELECFEE_POWER_USERINFO where user_account = ''%s'' and user_area = ''%s''',[sAccount, sArea]);
   query1.Open;
    if not IsEmpty then
     Result := True
    else
     Result := False;
  end;
 finally
  Free;
 end;
end;

function TFM_CjUserList.LocateUSer(sAccount, sArea: String): Boolean;
begin
 with TQuery.Create(nil)do
  try
   DataBaseName := SysDM.DBMain.DatabaseName;
   Sql.Text := Format('Select * from CjUserList where Czh = ''%s'' and CArea = ''%s''',[sAccount, sArea]);
   Open;
   if IsEmpty then
    Result := True
   else
    Result := False;
  finally
   Free;
  end;
  
end;

end.

⌨️ 快捷键说明

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