📄 bustradecountmonunit.pas
字号:
ADOQuery1.Open;
ADOQuery1.Edit;
{写纵表}
for iRow := 0 to 19 do
begin
iValue:=ListView1.Items[iRow].SubItems[2];
iCode:='''' + ListView1.Items[iRow].SubItems[0] + '''';
iCode1:=ListView1.Items[iRow].SubItems[0];
//ADOQuery1.FieldByName(iCode).AsInteger:=iValue;
ADOQuery1.FieldByName(iCode1).Value:=iValue;
sqlString:= 'insert into 公交行业统计月报_z (城市代码,统计年份,统计月份,指标代码,本月实际) '
+ ' values('+ '''' + '022' + '''' + ',' + iYear + ',' + iMonth + ','
+ iCode + ',' + iValue + ')';
ADOCommand1.CommandText:=sqlString;
ADOCommand1.Execute;
end;
for iRow:=0 to 19 do
begin
iValue:=ListView1.Items[iRow].SubItems[6];
iCode:='''' + ListView1.Items[iRow].SubItems[4] + '''';
iCode1:=ListView1.Items[iRow].SubItems[4];
ADOQuery1.FieldByName(iCode1).Value:=iValue;
sqlString:= 'insert into 公交行业统计月报_z (城市代码,统计年份,统计月份,指标代码,本月实际) '
+ ' values('+ '''' + '022' + '''' + ',' + iYear + ',' + iMonth + ','
+ iCode + ',' + iValue + ')';
ADOCommand1.CommandText:=sqlString;
ADOCommand1.Execute;
end;
for iRow := 0 to 20 do
begin
iValue:=ListView2.Items[iRow].SubItems[2];
iCode:='''' + ListView2.Items[iRow].SubItems[0] + '''';
iCode1:=ListView2.Items[iRow].SubItems[0];
ADOQuery1.FieldByName(iCode1).Value:=iValue;
sqlString:= 'insert into 公交行业统计月报_z (城市代码,统计年份,统计月份,指标代码,本月实际) '
+ ' values('+ '''' + '022' + '''' + ',' + iYear + ',' + iMonth + ','
+ iCode + ',' + iValue + ')';
ADOCommand1.CommandText:=sqlString;
ADOCommand1.Execute;
end;
for iRow:=0 to 19 do
begin
iValue:=ListView2.Items[iRow].SubItems[6];
iCode:='''' + ListView2.Items[iRow].SubItems[4] + '''';
iCode1:=ListView2.Items[iRow].SubItems[4];
{if (iRow >=0) and (iRow <=7) then
begin
ADOQuery1.FieldByName(iCode).AsFloat:=iValue;
end
else if (iRow >=8) and (iRow<=9) then
begin
ADOQuery1.FieldByName(iCode).AsInteger:=iValue;
end
else if (iRow=10) or (iRow=14) then
begin
ADOQuery1.FieldByName(iCode).AsFloat:=iValue;
end
else if (iRow>=11) and (iRow <=13) then
begin
ADOQuery1.FieldByName(iCode).AsInteger:=iValue;
end
else if (iRow>=15) and (iRow <=19) then
begin
ADOQuery1.FieldByName(iCode).AsInteger:=iValue;
end;
}
ADOQuery1.FieldByName(iCode1).Value:=iValue;
sqlString:= 'insert into 公交行业统计月报_z (城市代码,统计年份,统计月份,指标代码,本月实际) '
+ ' values('+ '''' + '022' + '''' + ',' + iYear + ',' + iMonth + ','
+ iCode + ',' + iValue + ')';
ADOCommand1.CommandText:=sqlString;
ADOCommand1.Execute;
end;
ADOQuery1.Post;
{for iCol=0 to 80 do
begin
if (iCol >=0) and (iCol<=19) then
begin
ADOQuery1.FieldByName()
end
else if (iCol>=20) and (iCol <=39) then
begin
end
else if (iCol>=40) and (iCol <=60) then
begin
end
else if (iCol>=61) and (iCol <=80) then
begin
end;
end;}
end;
{
procedure TBusTradeCountMonFm.Button1Click(Sender: TObject);
var
iMonth:String;
iYear:String;
sqlString:String;
begin
//生成需要汇总数据的年份和月份信息
iMonth:=Edit2.Text;
iYear:=Edit1.Text;
//查询判断该年该月数据是否已经存在
sqlString:='select 指标代码,本年本月实际 as 本月实际 from 公交行业统计月报_z where 统计年份='
+ iYear + ' and 统计月份 = ' + iMonth;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlString);
ADOQuery1.Open;
//如果数据存在,直接显示;否则,生成数据并显示
if ADOQuery1.RecordCount<>0 then
begin
ShowMessage('该年该月的行业数据已存在!');
DBGrid1.DataSource:= DataSource1;
end
else
begin
//判断企业数据中是否存在当年当月的数据
sqlString:='select 指标代码 from 公交企业统计月报表_z where 统计年份='
+ iYear + ' and 统计月份=' + iMonth;
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(sqlString);
ADOQuery3.Open;
//如果不存在企业数据,录入;否则,汇总、显示
if ADOQuery3.RecordCount=0 then
begin
ShowMessage('不存在本年本月的企业月报数据,请先录入!');
exit;
end
else
begin
sqlString:='insert into 公交行业统计月报_z (统计年份,统计月份,指标代码,本年本月实际) '
+ ' select ' + iYear + ',' + iMonth + ', 指标代码,sum(本月实际)'
+ ' from 公交企业统计月报表_z where 统计年份= ' + iYear + ' and 统计月份= '
+ iMonth + ' group by 指标代码';
ADOCommand1.CommandText:=sqlString;
ADOCommand1.Execute;
sqlString:= 'select 指标代码,本年本月实际 as 本月实际 from 公交行业统计月报_z where 统计年份='
+ iYear + ' and 统计月份 = ' + iMonth;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlString);
ADOQuery1.Open;
DBGrid1.DataSource:= DataSource1;
end;
end;
end;
}
{procedure TBusTradeCountMonFm.Button2Click(Sender: TObject);
var
iMonth:String;
iYear:String;
sqlString:String;
begin
//生成需要汇总数据的年份和月份信息
iMonth:=Edit2.Text;
iYear:=Edit1.Text;
//查询判断该年该月数据是否已经存在
sqlString:='SELECT sum(a.本年本月实际) AS 累计, a.指标代码, max(b.本年本月实际) AS 本月实际 '
+' FROM 公交行业统计月报_z AS a, 公交行业统计月报_z AS b'
+' WHERE a.统计年份=' + iYear + ' and a.统计月份<= ' + iMonth
+' and b.统计年份=' + iYear + ' and b.统计月份=' + iMonth
+' and b.指标代码=a.指标代码 GROUP BY a.指标代码';
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add(sqlString);
ADOQuery4.Open;
if ADOQuery4.RecordCount=0 then
begin
ShowMessage('尚无该年该月的行业月报数据,请先汇总生成该统计数据!');
exit;
end
else
DBGrid1.DataSource:=DataSource2;
begin
end;
end;
}
procedure TBusTradeCountMonFm.BitBtn1Click(Sender: TObject);
var
iMonth:String;
iYear:String;
sqlString:String;
iRecNum:Integer;
iRow:Integer;
iCityCode:String;
sMemoInfo:String;
iHTableName:String;
begin
//生成需要汇总数据的年份和月份信息
iMonth:=ComboBox2.Text;
iYear:=ComboBox1.Text;
if (iYear<'1990') or (iYear >'2030') then
begin
ShowMessage('请输入在时间范围1990-2030内的合法年份!');
exit;
end
else if (iMonth='') then
begin
ShowMessage('请选择月份!');
exit;
end;
iHTableName:='公交行业统计月报表';
iCityCode:='''' + '022' + '''';
iUpdateFlagH:=0;
sqlString:='select * from ' + iHTableName + ' where 城市代码=' + iCityCode
+' and 统计年份=' + iYear + ' and 统计月份=' + iMonth
+' and 生成方式=' + '''' + '生成' + '''';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlString);
ADOQuery1.Open;
if ADOQuery1.RecordCount<>0 then
begin
iUpdateFlagH:=1;
end;
//查询判断该年该月数据是否已经存在
sqlString:='select 指标代码,本月实际 from 公交行业统计月报_z where '
+' 城市代码=' + iCityCode + ' and 统计年份='
+ iYear + ' and 统计月份 = ' + iMonth + ' order by 指标代码';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlString);
ADOQuery1.Open;
//如果数据存在,直接显示;否则,生成数据并显示
if ADOQuery1.RecordCount<>0 then
begin
ADOQuery1.First;
for iRow:=0 to ADOQuery1.RecordCount do
begin
if ADOQuery1.FieldByName('本月实际').Value<>0 then
begin
if(MessageDlg('数据库中已经存在' + iYear + '年' + iMonth + '月的行业月报,是否覆盖?',mtConfirmation,[mbYes, mbNo],0) = mrNo)then
begin
BitBtn4Click(Sender);
exit;//不覆盖退出
end
else
begin
iUpdateFlag:=1;//覆盖,置覆盖标志位
break;
end;
end;
ADOQuery1.Next;
end;
iUpdateFlag:=1;
end
else
begin
iUpdateFlag:=0;
end;
//判断企业数据中是否存在当年当月的数据
sqlString:='select a.指标代码 from 公交企业统计月报表_z a,公用事业单位基本情况表 b where '
+' b.统计年份=' + iYear + ' and b.城市代码=' + '''' + '022' + '''' + ' and a.企业代码=b.单位代码 and a.统计年份='
+ iYear + ' and a.统计月份=' + iMonth;
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(sqlString);
ADOQuery3.Open;
//如果不存在企业数据,录入;否则,汇总、显示
if ADOQuery3.RecordCount=0 then
begin
ShowMessage('不存在' + iYear + '年' + iMonth + '月的企业月报数据,请先录入!');
BitBtn2.Enabled:=false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -