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

📄 bushy_monedit.pas

📁 公交行业的管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit BusHY_MonEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Buttons, Grids, DBGrids, Db, ADODB, ExtCtrls, DBCtrls,
  QuickRpt, QRCtrls,comobj,Variants;

type
  TBusHYMonRep = class(TForm)
    ADOQuery2: TADOQuery;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    ADOCommand1: TADOCommand;
    Panel4: TPanel;
    BitBtn2: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn7: TBitBtn;
    Panel5: TPanel;
    Panel6: TPanel;
    Label13: TLabel;
    BitBtn8: TBitBtn;
    ADOQPrintMon: TADOQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    DBGrid2: TDBGrid;
    DBGrid3: TDBGrid;
    Panel2: TPanel;
    QueryPageLeft1: TADOQuery;
    QueryPageRight1: TADOQuery;
    QueryPageLeft2: TADOQuery;
    QueryPageRight2: TADOQuery;
    QueryPageLeft1Src: TDataSource;
    QueryPageLeft2Src: TDataSource;
    QueryPageRight1Src: TDataSource;
    QueryPageRight2Src: TDataSource;
    QueryPageLeft2DSDesigner2: TSmallintField;
    QueryPageLeft2DSDesigner3: TSmallintField;
    QueryPageLeft2DSDesigner4: TWideStringField;
    QueryPageLeft2DSDesigner5: TFloatField;
    QueryPageRight2DSDesigner2: TSmallintField;
    QueryPageRight2DSDesigner3: TSmallintField;
    QueryPageRight2DSDesigner4: TWideStringField;
    QueryPageRight2DSDesigner5: TFloatField;
    QueryPageLeft2StringField: TStringField;
    QueryPageLeft2StringField2: TStringField;
    QueryPageLeft2StringField3: TStringField;
    QueryPageRight2StringField: TStringField;
    QueryPageRight2StringField2: TStringField;
    QueryPageRight2StringField3: TStringField;
    ADOQuery4: TADOQuery;
    DBGrid4: TDBGrid;
    QueryPageLeft1DSDesigner: TSmallintField;
    QueryPageLeft1DSDesigner2: TSmallintField;
    QueryPageLeft1DSDesigner3: TWideStringField;
    QueryPageLeft1DSDesigner4: TFloatField;
    QueryPageLeft1DSDesigner5: TMemoField;
    QueryPageLeft1DSDesigner6: TWideStringField;
    QueryPageRight1DSDesigner: TSmallintField;
    QueryPageRight1DSDesigner2: TSmallintField;
    QueryPageRight1DSDesigner3: TWideStringField;
    QueryPageRight1DSDesigner4: TFloatField;
    QueryPageRight1DSDesigner5: TMemoField;
    QueryPageRight1DSDesigner6: TWideStringField;
    QueryPageLeft2DSDesigner: TMemoField;
    QueryPageLeft2DSDesigner6: TWideStringField;
    QueryPageRight2DSDesigner: TMemoField;
    QueryPageRight2DSDesigner6: TWideStringField;
    QueryPageLeft1StringField: TStringField;
    QueryPageLeft1StringField2: TStringField;
    QueryPageLeft1StringField3: TStringField;
    QueryPageRight1StringField: TStringField;
    QueryPageRight1StringField2: TStringField;
    QueryPageRight1StringField3: TStringField;
    QueryPageLeft1DSDesigner7: TFloatField;
    QueryPageLeft2DSDesigner7: TFloatField;
    QueryPageRight1DSDesigner7: TFloatField;
    QueryPageRight2DSDesigner7: TFloatField;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    ComboBox2: TComboBox;
    Label8: TLabel;
    SpeedButton2: TSpeedButton;
    Label11: TLabel;
    Edit9: TEdit;
    SpeedButton1: TSpeedButton;
    DBMemo1: TDBMemo;
    Label5: TLabel;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure QueryPageLeft1AfterScroll(DataSet: TDataSet);
    procedure QueryPageLeft1AfterPost(DataSet: TDataSet);
    procedure QueryPageLeft1AfterEdit(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1Exit(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid2KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid3KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid4KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton1Click(Sender: TObject);
  private
    IsDelete:boolean;
    function CheckYearMon:boolean;
    procedure ButtonEnable(curButton:TBitBtn);  
  public
    IsModifyIndex:boolean;
    PostIndex:string;  
    curYear,curMon:string;
    function   IsEmptyRep:boolean;
    procedure  CheckBalanceRel(curRecordStr:string);
    procedure  DealProc1(ResultValue:string;Oper1Value:string;Oper2Value:string;curSigh:string);
    procedure  DealProc2(ResultValue:string;Oper1Value:string;Oper2Value:single;curSigh:string);
    function   AddPrnQuery:boolean;
    procedure  ToZTable;

    procedure  LookUpZB(var OperValue:single;OperName:string;var curPos:integer);
    procedure  OpenAllPage;
    function  BalanceRelRight(curRecordStr:string):boolean;
    procedure RefreshPage;
  end;

var
  BusHYMonRep: TBusHYMonRep;

implementation

uses  BusTradeDataModuleUnit,  PrintInfoUnit, PrintProc,
  Epr_SelectUnit, CitySelectUnit;

{$R *.DFM}
function TBusHYMonRep.CheckYearMon:boolean;
var
YearValue:integer;
MonValue:integer;
begin
        try
          YearValue:=StrToInt(ComboBox1.Text);
          MonValue:=StrToInt(ComboBox2.Text);
        except
              ShowMessage('年月不是数值.');
              CheckYearMon:=false;
              exit;
        end;
        if((YearValue<2000) or (YearValue>2050))then
        begin
                ShowMessage('输入年份不对.');
                CheckYearMon:=false;
                exit;
        end;
        if((MonValue<1) or (MonValue>12))then
        begin
                ShowMessage('输入月份不对.');
                CheckYearMon:=false;
                exit;
        end;
        CheckYearMon:=true;

end;
function  TBusHYMonRep.IsEmptyRep:boolean;
begin
              if((QueryPageLeft1.RecordCount>0) or
                 (QueryPageLeft2.RecordCount>0) or
                 (QueryPageRight1.RecordCount>0) or
                 (QueryPageRight2.RecordCount>0) )then
              begin 
                      IsEmptyRep:=false;
                      exit;
              end;
              IsEmptyRep:=true;
end;
procedure TBusHYMonRep.BitBtn2Click(Sender: TObject);{添加}
begin
              if(not CheckYearMon)then exit;
              if(not IsEmptyRep)then
              begin
                   showmessage('该月数据已存在,请先删除该月数据.');
                   exit;
              end;
              ButtonEnable(BitBtn2);
              DBMemo1.ReadOnly:=false;
              BusTradeDataModule.ADOConnection1.BeginTrans;
              ADOCommand1.CommandText:='insert into 公交行业统计月报_z(指标代码,统计年份,统计月份,城市代码)'
                                       +' select  指标代码,'+ComboBox1.text+','+ComboBox2.text+
                                       ','+''''+Edit9.text+''''+' from  公交行业统计月报指标定义表 ';
              ADOCommand1.Execute;
              OpenAllPage;
end;

procedure TBusHYMonRep.BitBtn4Click(Sender: TObject);{删除}
begin
       if(MessageBox(self.Handle,'你是否删除?','提示',MB_OKCANCEL)=IDOK)then
       begin
                BusTradeDataModule.ADOConnection1.BeginTrans;
                ADOCommand1.CommandText:='delete from  公交行业统计月报_z '+
                                ' where  统计年份='+ComboBox1.text+
                                ' and 统计月份='+ComboBox2.text+
                                ' and 城市代码='+''''+Edit9.text+'''';
                ADOCommand1.Execute;

                ADOCommand1.CommandText:='delete from  公交行业统计月报表 '+
                                        ' where  统计年份='+ComboBox1.text+
                                        ' and 统计月份='+ComboBox2.text+
                                        ' and 城市代码='+''''+Edit9.text+'''';
                ADOCommand1.Execute;
                BusTradeDataModule.ADOConnection1.CommitTrans;
                OpenAllPage;
                DBGrid1.ReadOnly:=true;
                DBMemo1.ReadOnly:=true;
                exit;
       end;
end;
procedure TBusHYMonRep.ButtonEnable(curButton:TBitBtn);
begin
        if(curButton=nil)then
        begin
            BitBtn2.Enabled:=True;
            BitBtn4.Enabled:=True;
            BitBtn6.Enabled:=True;

            BitBtn3.Enabled:=False;
            BitBtn5.Enabled:=False;
            BitBtn8.Enabled:=true;

            DBGrid1.ReadOnly:=true;
            DBGrid2.ReadOnly:=true;
            DBGrid3.ReadOnly:=true;
            DBGrid4.ReadOnly:=true;
            exit;
        end;
        
        if((curButton.Name='BitBtn2') or (curButton.Name='BitBtn4') or (curButton.Name='BitBtn6'))then
        begin
            BitBtn2.Enabled:=False;
            BitBtn4.Enabled:=False;
            BitBtn6.Enabled:=False;
            BitBtn7.Enabled:=false;
            BitBtn8.Enabled:=False;

            BitBtn3.Enabled:=True;
            BitBtn5.Enabled:=True;

            ComboBox1.Enabled:=false;
            ComboBox2.Enabled:=false;
            DBGrid1.ReadOnly:=false;
            DBGrid2.ReadOnly:=false;
            DBGrid3.ReadOnly:=false;
            DBGrid4.ReadOnly:=false;
        end;
        if((curButton.Name='BitBtn3') or (curButton.Name='BitBtn5'))then
        begin
            BitBtn2.Enabled:=True;
            BitBtn4.Enabled:=True;
            BitBtn6.Enabled:=True;
            BitBtn7.Enabled:=true;
            BitBtn8.Enabled:=True;

            BitBtn3.Enabled:=False;
            BitBtn5.Enabled:=False;
            ComboBox1.Enabled:=true;
            ComboBox2.Enabled:=true;
            DBGrid1.ReadOnly:=true;
            DBGrid2.ReadOnly:=true;
            DBGrid3.ReadOnly:=true;
            DBGrid4.ReadOnly:=true;
        end;  

end;
procedure TBusHYMonRep.BitBtn3Click(Sender: TObject);{确定}
var
i:integer;
WrongMessage:string;
begin 
        if(not CheckYearMon)then exit;
        
        WrongMessage:='';
        if((BalanceRelRight('G14')=false) and (BalanceRelRight('G18')=false))then
        begin
                WrongMessage:='G14<=G11,G18<=G15的平衡关系不满足!';
        end else
        begin
                if(BalanceRelRight('G14')=false)then
                begin
                      WrongMessage:='G14<=G11的平衡关系不满足!';
                end;
                if(BalanceRelRight('G18')=false)then
                begin
                      WrongMessage:='G18<=G15的平衡关系不满足!';
                end;
        end;
        if(WrongMessage<>'')then
        begin
                MessageBox(self.Handle,PCHAR(WrongMessage),PCHAR('错误'),MB_OK);
                exit;
        end;
        RefreshPage;
        BusTradeDataModule.ADOConnection1.CommitTrans;
        ButtonEnable(BitBtn3);
        DBGrid1.ReadOnly:=True;
        DBMemo1.ReadOnly:=true;
        ToZTable;
        showmessage('数据已经保存!');
end;
procedure TBusHYMonRep.ToZTable;
var
i:integer;
begin  
        if(ADOQuery4.RecordCount<=0)then
        ADOQuery4.Append else

⌨️ 快捷键说明

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