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

📄 namebooksalequeryunit.~pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DB, ADODB;

type
  TNameBookSaleQuery = class(TForm)
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Panel2: TPanel;
    ListView1: TListView;
    ListView2: TListView;
    ListView3: TListView;
    ComboBox1: TComboBox;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel3: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    BitBtn3: TBitBtn;
    ADOQuery3: TADOQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    procedure InitListViews(List:TListView);
    function  FindRow(List:TListView;curField:string):integer;
    procedure FillDataToTable(fieldstr:string;Indexnum:integer);
    procedure FillDataToTable2(fieldstr:string;Indexnum:integer);
    procedure FillDataToTable3(fieldstr:string;Indexnum:integer);
    procedure FillDataToTable4(curName:string;curQuery:string;Colnum:integer);
    procedure GetSum();
    procedure FillSumDataToTable();
    procedure FillDataToTable5(curName:string;queryname:string;Colnum:integer);
    procedure FillOneRowData(curName:string;colnum:integer);
    procedure FillSumMoney(SaleState:string;ColNum:integer);
    procedure FillTotalMoney();
  public
    { Public declarations }
  end;

var
  NameBookSaleQuery: TNameBookSaleQuery;

implementation

uses BusTradeDataModuleUnit, PrintInfoUnit, PrintProc;

{$R *.dfm}

procedure TNameBookSaleQuery.BitBtn1Click(Sender: TObject);
var queryname:string;
i:integer;
begin
        if(combobox1.text='')then
          begin
            showmessage('请选择年份!');
            exit;
          end;

        //添加业务活动的指标值
        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable4('公共汽车、电车',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable4('地铁',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable4('轻轨',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable4('轮渡',queryname,i);
         end;



        //添加经济类型的指标值
        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable(queryname,i);
         end;

        //添加坐落区域的指标值
        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable2(queryname,i);
         end;


        //添加企业规模的指标值
        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable3(queryname,i);
         end;

        //添加企业注册资本金的指标值

       for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable5('公共汽车、电车',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable5('地铁',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable5('轻轨',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillDataToTable5('轮渡',queryname,i);
         end;

        for i:=2 to 6 do
         begin
           if(i=2)then queryname:='营业';
           if(i=3)then queryname:='停业';
           if(i=4)then queryname:='在建';
           if(i=5)then queryname:='撤消';
           if(i=6)then queryname:='其他';
           FillOneRowData(queryname,i);
         end;
         
        //添加经济类型合计值
        FillSumDataToTable(); //添加横者的合计值
        GetSum();
        FillTotalMoney();
        FillSumMoney('营业',2);
        FillSumMoney('停业',3);
        FillSumMoney('在建',4);
        FillSumMoney('撤销',5);
        FillSumMoney('其他',6);

        //添加所有单位个数
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add('select distinct 单位代码 from 公用事业单位基本情况表 where 城市代码='
                        +''''+'022'+''''+' and 统计年份='+combobox1.text);
        ADOQuery1.Open;
        ListView1.Items[0].SubItems[1]:=inttostr(ADOQuery1.Recordcount);

        //----------------------处理小数点-------------------
        for i:=6 to 10 do
        begin
                for j:=1 to 6 do
                begin
                        ListView3.Items[i].SubItems[j]:=ConverterPercent(ListView3.Items[i].SubItems[j]);
                end;
        end;

        BitBtn3.Enabled := true;
end;


procedure TNameBookSaleQuery.InitListViews(List:TListView);
var maxrow,i: integer;
begin
        maxrow:=0;
        if(List=ListView1)then maxrow:=18;
        if(List=ListView2)then maxrow:=20;
        if(List=ListView3)then maxrow:=10;
        
        for i:= 0 to maxrow do
        begin
                List.Items[i].SubItems[1] := '0';
                List.Items[i].SubItems[2] := '0';
                List.Items[i].SubItems[3] := '0';
                List.Items[i].SubItems[4] := '0';
                List.Items[i].SubItems[5] := '0';
                List.Items[i].SubItems[6] := '0';
        end;

end;


procedure TNameBookSaleQuery.ComboBox1Change(Sender: TObject);
begin
        InitListViews(ListView1);
        InitListViews(ListView2);
        InitListViews(ListView3);
end;


procedure TNameBookSaleQuery.BitBtn2Click(Sender: TObject);
begin
        NameBookSaleQuery.Close;
end;

procedure TNameBookSaleQuery.FillDataToTable(fieldstr:string;Indexnum:integer);
var sqlstr,Indexstr:string;
i,j:integer;
begin
        sqlstr:='select [企业(单位)登记注册类型] as 经济类型 ,count([企业(单位)登记注册类型]) as 合计 from 公用事业单位基本情况表 '
                +' where 城市代码='+''''+'022'+''''+' and 统计年份='+combobox1.Text
                +' and 营业状况='+''''+fieldstr+''''+' group by [企业(单位)登记注册类型]';

        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.add(sqlstr);
        ADOQuery1.Open;
        ADOQuery1.First;
        for i:=0 to ADOQuery1.recordcount-1 do
         begin
          Indexstr:=ADOQuery1.fieldbyname('经济类型').asstring;
          j:=FindRow(ListView1,Indexstr);
          if (j>0) then
           begin
            ListView1.Items[j].SubItems[Indexnum]:=ADOQuery1.fieldbyname('合计').asstring;
           end;
          ADOQuery1.next;
         end;

⌨️ 快捷键说明

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