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

📄 umain.pas

📁 专项拨款逐级下发系统的主要功能:对专项拨款申请系统审批通过的专项拨款进行资金下发和签收
💻 PAS
字号:
unit Umain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, RzTreeVw, ExtCtrls, Menus, ImgList, DB, ADODB,
  Ucreattree{创建树型结构单元},uconst,
  WinSkinData, RzSplit, RzPanel,Udm1, DBSumLst, Grids, DBGridEh, GridsEh ,
  PrViewEh, PrnDbgeh, StdCtrls;



type
  Tmainfm = class(TForm)
    Panel1: TPanel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Splitter1: TSplitter;
    Panel2: TPanel;
    unittree: TRzTreeView;
    ImageList1: TImageList;
    N4: TMenuItem;
    RzStatusBar1: TRzStatusBar;
    ProgressBar1: TProgressBar;
    RzSizePanel1: TRzSizePanel;
    RzSizePanel2: TRzSizePanel;
    SkinData1: TSkinData;
    N5: TMenuItem;
    N6: TMenuItem;
    PopupMenu1: TPopupMenu;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    PopupMenu2: TPopupMenu;
    N11: TMenuItem;
    Panel3: TPanel;
    GroupBox1: TGroupBox;
    DBGridEh1: TDBGridEh;
    Splitter2: TSplitter;
    Panel4: TPanel;
    GroupBox2: TGroupBox;
    DBGridEh2: TDBGridEh;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    DBSumList1: TDBSumList;
    PrintDBGridEh1: TPrintDBGridEh;
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure unittreeDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure unittreeChange(Sender: TObject; Node: TTreeNode);
    procedure N10Click(Sender: TObject);
    procedure unittreeClick(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
    procedure N11Click(Sender: TObject);
    procedure DBGridEh2Columns11UpdateData(Sender: TObject;
      var Text: String; var Value: Variant; var UseText, Handled: Boolean);
    procedure DBGridEh1Columns11UpdateData(Sender: TObject;
      var Text: String; var Value: Variant; var UseText, Handled: Boolean);
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure DBGridEh2CellClick(Column: TColumnEh);
    procedure N14Click(Sender: TObject);
  private
    { Private declarations }
    createtreeed:boolean;
  public
    { Public declarations }
    procedure getlevelno(var msg:TMessage);message CM_MYSHOW;//消息相应
    procedure outunitname(var msg:TMessage);message CM_OUTMESSAGE;//选择信息
    //procedure inunitname(var msg:TMessage);message CM_INMESSAGE;//选择信息
  end;

var
  mainfm: Tmainfm;
  levelno:string;
  out_unitno:string;
  outed:boolean;
implementation

uses Uselectlevel,uinfounit, Upayment,DBUtilsEh, Uinfoitem;
{$R *.dfm}
var
mynode:pmytree;
snode:Ttreenode;


procedure Tmainfm.getlevelno(var msg:TMessage);
begin
if msg.WParam=0 then
 begin
 if assigned(Fm_unit) then
  fm_unit.Ed_level.Text :=levelno;
 end;
end;

procedure Tmainfm.outunitname(var msg:tmessage);
begin
if msg.WParam =0 then
 begin
  if assigned(fm_payment) then
   if outed then
   fm_payment.Ed_outunit.Text:=out_unitno
   else
    fm_payment.Ed_Inunit.Text:=out_unitno;
 end;
end;


procedure Tmainfm.N3Click(Sender: TObject);
begin
close;
end;

procedure Tmainfm.N4Click(Sender: TObject);
begin
 LoadTree(unittree,dm1.aconn,'select higherUp_No,u_no,u_name,u_level from info_unit order by higherUp_No',ProgressBar1);
end;

procedure Tmainfm.unittreeDblClick(Sender: TObject);
var
ptext:string;
begin
 if mynode.itemed then
 with dm1.itemaq  do
 begin
    sql.Clear;
   sql.Add('select * from info_item where item_no='''+mynode^.Code+'''');
   open;
   if not assigned(fm_item) then
   begin
    fm_item:=Tfm_item.Create(nil);
    fm_item.Show ;
  end
  else
    begin
     fm_item.WindowState :=wsNormal;
     fm_item.BringToFront;
    end;
 end
 else
 with dm1.adoquery1 do
 begin     // 单位信息
  sql.Clear;
  sql.Add('select * from info_unit where u_no='''+mynode^.Code+'''');
  open;
  if not assigned(Fm_unit) then
  begin
    Fm_unit:=TFm_unit.Create(nil);
    if snode<>nil then
     ptext:=snode.Text
    else
     ptext:='';
    fm_unit.rzComboBox1.Text:=mynode^.ParentCode+BOXSIGN+ptext;
    fm_unit.Ed_no.ReadOnly:=true;
    fm_unit.Show ;
  end
  else
    begin
     Fm_unit.WindowState :=wsNormal;
     Fm_unit.BringToFront;
    end;
  with fm_unit do
  begin
   ed_no.Text :=fieldbyname('U_no').AsString ;
   ed_name.Text :=fieldbyname('u_name').AsString ;
   ed_level.Text :=fieldbyname('u_level').AsString ;
   ed_principal.Text :=fieldbyname('u_principal').AsString ;
   ed_addr.Text :=fieldbyname('U_addr').AsString ;
   ed_post.Text :=fieldbyname('u_post').AsString ;
   ed_phone.Text :=fieldbyname('U_phone').AsString ;
   ed_fax.Text :=fieldbyname('u_fax').AsString ;
   ed_http.Text :=fieldbyname('U_http').AsString ;
   ed_bank.Text :=fieldbyname('u_bankname').AsString ;
   ed_accountname.Text :=fieldbyname('U_accountname').AsString ;
   ed_account.Text :=fieldbyname('u_bankaccount').AsString ;
   memo_remark.Text :=fieldbyname('u_remark').asstring;
   createed:=false;
   but_save.Enabled :=false;
  end;
end;

end;

procedure Tmainfm.FormCreate(Sender: TObject);
begin
createtreeed:=true;
new(mynode);
SetWindowLong(unittree.Handle, GWL_STYLE, GetWindowLong(unittree.Handle, GWL_STYLE) or $00000100);
end;

procedure Tmainfm.N6Click(Sender: TObject);
begin
 if not assigned(fm_selectLevel) then
  begin
    fm_selectLevel:=Tfm_selectLevel.Create(nil);
  end
  else
    begin
     fm_selectLevel.WindowState :=wsNormal;
     fm_selectLevel.BringToFront;
    end;
end;

procedure Tmainfm.N7Click(Sender: TObject);
begin
   if not assigned(Fm_unit) then
  begin
    Fm_unit:=TFm_unit.Create(nil);
    fm_unit.rzComboBox1.Text:=mynode^.code+BOXSIGN+mynode^.Name ;
    fm_unit.Show ;
  end
  else
    begin
     Fm_unit.WindowState :=wsNormal;
     Fm_unit.BringToFront;
    end;
end;

procedure Tmainfm.N9Click(Sender: TObject);
begin
  if not assigned(fm_payment) then
  begin
    fm_payment:=Tfm_payment.Create(self);
    fm_payment.Show ;
  end
  else
    begin
     fm_payment.WindowState :=wsNormal;
     fm_payment.BringToFront;
    end;
end;

procedure Tmainfm.unittreeChange(Sender: TObject; Node: TTreeNode);
begin
mynode:= unittree.Selected.Data;
if unittree.Selected.Level <>0 then
snode:=unittree.Selected.Parent
else
snode:=nil;
end;

procedure Tmainfm.N10Click(Sender: TObject);
begin
 out_unitno:=mynode^.Code+BOXSIGN+mynode^.Name ;
 postmessage(self.Handle,CM_OUTMESSAGE,0,0);
  if assigned(fm_payment) then
    begin
     fm_payment.WindowState:=wsNormal;
     fm_payment.BringToFront;
    end;
end;

procedure Tmainfm.unittreeClick(Sender: TObject);
begin
 dm1.MemTableEh1.Close;
 dm1.MemTableEh2.Close;
 with dm1.showpayment do
 begin
  close;
  sql.Clear;
  sql.Add('select * from sum_info_payment where Out_u_no='''+mynode.Code+''' order by bumf_no ');
  open;
 end;
 with dm1.inpayment do
 begin
  close;
  sql.Clear;
  sql.Add('select * from sum_info_payment ');
  if mynode.itemed then
     sql.Add('where item_no='''+mynode.Code+''' ')
     else
   sql.Add('where In_u_no='''+mynode.Code+''' ');
  sql.Add('  order by bumf_no ');
  open;
 end;
dm1.MemTableEh1.Open ;
dm1.MemTableEh2.Open ;
end;

procedure Tmainfm.FormPaint(Sender: TObject);
begin
if createtreeed  then
 begin
  LoadTree(unittree,dm1.aconn,'select higherUp_No,u_no,u_name,u_level from info_unit order by higherUp_No',ProgressBar1);
  createtreeed:=false;
 end;
end;

procedure Tmainfm.DBGridEh1GetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
    if (Sender as Tdbgrideh).SumList.RecNo mod 2 = 1 then
      Background := $00FFC4C4
    else
      Background := $00FFDDDD;
end;

procedure Tmainfm.N11Click(Sender: TObject);
begin
  if (ActiveControl is TDBGridEh) then
  begin
    PrintDBGridEh1.DBGridEh := TDBGridEh(ActiveControl);
    PrintDBGridEh1.SetSubstitutes(['%[Today]',DateToStr(Now)]);
    PrintDBGridEh1.Preview;
  end;
end;

procedure Tmainfm.DBGridEh2Columns11UpdateData(Sender: TObject;
  var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
if dbgrideh2.Fields[14].AsBoolean then
begin
  Handled:=true;
  exit;
end;
with dm1.tempquery   do
begin
sql.Clear ;
sql.Add('update info_payment set receive_affirm= not receive_affirm ,receive_time=Now()');
sql.Add(' where ID='+dbgrideh2.Fields[2].AsString );
execsql;
end;
end;

procedure Tmainfm.DBGridEh1Columns11UpdateData(Sender: TObject;
  var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
 Handled:=true;
end;

procedure Tmainfm.N12Click(Sender: TObject);
begin
  if not assigned(fm_payment) then
  begin
    fm_payment:=Tfm_payment.Create(self);
    fm_payment.ed_bumf.Text := dbgrideh2.Fields[0].Text;
    fm_payment.ID :=dbgrideh2.Fields[2].AsInteger ;
    fm_payment.Show;
  end
  else
    begin
     fm_payment.ed_bumf.Text := dbgrideh2.Fields[0].Text;
     fm_payment.WindowState :=wsNormal;
     fm_payment.BringToFront;
    end;
out_unitno:=mynode^.Code+BOXSIGN+mynode^.Name ;
outed:=true;
postmessage(self.Handle,CM_OUTMESSAGE,0,0);

end;

procedure Tmainfm.N13Click(Sender: TObject);
begin
   if not assigned(Fm_unit) then
  begin
    Fm_unit:=TFm_unit.Create(nil);
    fm_unit.rzComboBox1.Text:=mynode^.code+BOXSIGN+mynode^.Name ;
    fm_unit.Show ;
  end
  else
    begin
     Fm_unit.WindowState :=wsNormal;
     Fm_unit.BringToFront;
    end;
end;

procedure Tmainfm.DBGridEh2CellClick(Column: TColumnEh);
begin
{dm1.MemTableEh1.Close;
with dm1.showpayment    do
begin
sql.Clear ;
sql.Add('select * from sum_info_payment ');
sql.Add(' where parentno='''+dbgrideh2.Fields[15].AsString+'''' );
open;
end;
dm1.MemTableEh1.open; }
end;

procedure Tmainfm.N14Click(Sender: TObject);
begin
   if not assigned(fm_item) then
   begin
    fm_item:=Tfm_item.Create(nil);
    fm_item.Show ;
  end
  else
    begin
     fm_item.WindowState :=wsNormal;
     fm_item.BringToFront;
    end;

end;
initialization
  DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;
end.

⌨️ 快捷键说明

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