📄 bushy_monedit.pas
字号:
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 + -