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

📄 epr_selectunit2.pas

📁 公交行业的管理系统
💻 PAS
字号:
unit Epr_SelectUnit2;

interface

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

type
  TEpr_Select2 = class(TForm)
    Panel1: TPanel;
    ADOQuery1: TADOQuery;
    ListView1: TListView;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    ListView2: TListView;
    ADOQuery2: TADOQuery;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel3: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    BitBtn3: TBitBtn;
    ComboBox2: TComboBox;
    Label2: TLabel;
    ADOQuery3: TADOQuery;
    ADOCommand1: TADOCommand;
    procedure FormShow(Sender: TObject);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure ListView2SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure SpeedButton4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure InitComboBox1();
  private
    { Private declarations }
  public
        sString:String;
        EprCode,EprName,TotalEpr:String;
        LView1Record,LView2Record:integer;
        aditems:TListItem;
        procedure CheckStatus(Left:integer;Right:integer);
    { Public declarations }
  end;

var
  Epr_Select2: TEpr_Select2;

implementation

uses BusTradeDataModuleUnit, Epr_NameBookUnit;

{$R *.dfm}
procedure TEpr_Select2.InitComboBox1();
var
        sqlstr,ss : string;
begin
        ComboBox1.Items.Clear;
        sqlstr := 'select distinct 统计年份 from 公用事业单位基本情况表';
        AdoQuery2.Close;
        AdoQuery2.SQL.Clear;
        AdoQuery2.SQL.Add(sqlstr);
        AdoQuery2.Open;
        while (not AdoQuery2.Eof) do
        begin
                ss := AdoQuery2.fieldbyname('统计年份').AsString;
                if (ss <> ComboBox2.Text) then
                        ComboBox1.Items.Add(ss);
                AdoQuery2.Next;
        end;
        if (ComboBox1.Items.Count>0) then
                //ComboBox1.Text := ComboBox1.Items[0];
                ComBoBox1.ItemIndex:=0;
end;

procedure TEpr_Select2.CheckStatus(Left:integer;Right:integer);
begin
        if Left=0 then
        begin
                SpeedButton1.Enabled:=False;
                SpeedButton2.Enabled:=False;
        end else
        begin
                SpeedButton1.Enabled:=True;
                SpeedButton2.Enabled:=True;
        end;

        if Right=0 then
        begin
                SpeedButton3.Enabled:=False;
                SpeedButton4.Enabled:=False;
                BitBtn1.Enabled := false;
        end else
        begin
                SpeedButton3.Enabled:=True;
                SpeedButton4.Enabled:=True;
                BitBtn1.Enabled := true;
        end;

end;

procedure TEpr_Select2.FormShow(Sender: TObject);
var
        aditems:TListItem;
        i:integer;
begin
        listview1.Selected := nil;
        ListView1.Items.Clear;
        ComboBox2.Text := Epr_NameBook.ComboBox1.Text;
        InitComboBox1();
        Epr_Select2.ComboBox1Change(nil);

        
        listview2.Selected := nil;
        ListView2.Items.Clear;
        //ComboBox1.Text:='';
        LView1Record:=Listview1.Items.Count;
        LView2Record:=0;
        sString:='';
        EprCode:='';
        EprName:='';
        BitBtn1.Enabled:=TRUE;
        BitBtn2.Enabled:=True;
        BitBtn3.Enabled:=true;
        CheckStatus(LView1Record,LView2Record);
end;

procedure TEpr_Select2.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
        EprCode:=Item.Caption;
        EprName:=Item.SubItems[0];
end;

procedure TEpr_Select2.SpeedButton1Click(Sender: TObject);{增加一条}
begin
        if ListView1.Selected<>nil then
        begin
                aditems:=ListView2.Items.Add;
                aditems.Caption:=EprCode;
                aditems.SubItems.Add(EprName);
                LView1Record:=LView1Record-1;
                LView2Record:=LView2Record+1;
                CheckStatus(LView1Record,LView2Record);
                ListView1.Selected.Delete;
        end else
        begin
                showmessage('请您选择一个企业!');
                exit;
        end;
        ListView1.AlphaSort;
        ListView2.AlphaSort;
end;

procedure TEpr_Select2.BitBtn2Click(Sender: TObject);
begin
        sString:='';
        Epr_Select2.Close;
end;

procedure TEpr_Select2.SpeedButton2Click(Sender: TObject);{全部添加}
var
        i:integer;
begin
        for i:=0 to LView1Record-1 do
        begin
                aditems:=ListView2.Items.Add;
                aditems.Caption:=ListView1.Items[0].Caption;
                aditems.SubItems.Add(ListView1.Items[0].SubItems[0]);
                ListView1.Items[0].Delete;
        end;
        LView2Record:=LView2Record+LView1Record;
        LView1Record:=0;
        CheckStatus(LView1Record,LView2Record);
        ListView1.AlphaSort;
        ListView2.AlphaSort;
end;

procedure TEpr_Select2.SpeedButton3Click(Sender: TObject);{删除一条}
begin
        if (ListView2.Selected<>nil) then
        begin
                aditems:=ListView1.Items.Add;
                aditems.Caption:=EprCode;
                aditems.SubItems.Add(EprName);
                LView1Record:=LView1Record+1;
                LView2Record:=LView2Record-1;
                CheckStatus(LView1Record,LView2Record);
                ListView2.Selected.Delete;
        end else
        begin
                showmessage('请您选择一个企业!');
                exit;
        end;
        ListView1.AlphaSort;
        ListView2.AlphaSort;
end;

procedure TEpr_Select2.ListView2SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
        EprCode:=Item.Caption;
        EprName:=Item.SubItems[0];
end;

procedure TEpr_Select2.SpeedButton4Click(Sender: TObject); {删除全部}
var
        i:integer;
begin
        for i:=0 to LView2Record-1 do
        begin
                aditems:=ListView1.Items.Add;
                aditems.Caption:=ListView2.Items[0].Caption;
                aditems.SubItems.Add(ListView2.Items[0].SubItems[0]);
                ListView2.Items[0].Delete;
        end;
        LView1Record:=LView1Record+LView2Record;
        LView2Record:=0;
        CheckStatus(LView1Record,LView2Record);
        ListView1.AlphaSort;
        ListView2.AlphaSort;
end;

procedure TEpr_Select2.BitBtn1Click(Sender: TObject);
var
        i:integer;
        sqlstr, codes,ss1,ss2: string;
        strs: tFieldlist;
begin
        codes := '';
        i := 0;
        while (  i<listview2.Items.Count-1 )do
        begin
                codes := codes+''''+listview2.Items.Item[i].Caption+''''+',';
                i:=i+1;
        end;
        codes := codes+''''+listview2.Items.Item[listview2.Items.Count-1].Caption+'''';
        ////////////////////////////////// insert into
        AdoQuery3.Close;
        AdoQuery3.SQL.Clear;
        AdoQuery3.SQL.Add('select * from 公用事业单位基本情况表');
        AdoQuery3.Open;
        ss1 :='';  ss2:='';
        strs := Adoquery3.FieldList;
        for i := 0 to strs.Count-2 do
        begin
                if (strs.Strings[i]<>'统计年份') and (strs.strings[i]<>'企业(单位)登记注册类型') then
                        ss1:=ss1+strs.Strings[i]+','
                else  if (strs.strings[i]='企业(单位)登记注册类型') then
                        ss1:=ss1+'[企业(单位)登记注册类型]'+','
                else  ss1:=ss1+ComboBox2.Text+' as 统计年份 ,';
        end;
        ss1:=ss1+strs.Strings[strs.count-1];
        for i := 0 to strs.Count-2 do
        begin
                if (strs.strings[i]<>'企业(单位)登记注册类型') then
                        ss2:=ss2+strs.Strings[i]+','
                else
                        ss2:=ss2+'[企业(单位)登记注册类型]'+',';

        end;
        ss2:=ss2+strs.Strings[strs.count-1];

        sqlstr := 'insert into 公用事业单位基本情况表 ('+ss2+') select '+ss1+' from 公用事业单位基本情况表 where 统计年份='+ComboBox1.Text+ ' and 单位代码 in ('+codes+')';
        AdoCommand1.CommandText := sqlstr;
        AdoCommand1.Execute;

        ////////////////////////////////////////////////////////////////////////
        {AdoQuery3.Close;
        AdoQuery3.SQL.Clear;
        AdoQuery3.SQL.Add('select * from 主要业务活动表');
        AdoQuery3.Open;
        ss1 :='';  ss2:='';
        strs := Adoquery3.FieldList;
        for i := 0 to strs.Count-2 do        //取值
        begin
                if (strs.Strings[i]<>'统计年份') then
                        ss1:=ss1+strs.Strings[i]+','
                else
                        ss1:=ss1+ComboBox2.Text+' as 统计年份 ,';
        end;
        ss1:=ss1+strs.Strings[strs.count-1];

        for i := 0 to strs.Count-2 do         //取字段
                        ss2:=ss2+strs.Strings[i]+',';
        ss2:=ss2+strs.Strings[strs.count-1];
        ///////////////////////////////////insert into 主要业务活动表
        sqlstr := 'insert into 主要业务活动表 ('+ss2+') select '+ss1+' from 主要业务活动表 where 统计年份='+ComboBox1.Text+ ' and 企业代码 in ('+codes+')';
        AdoCommand1.CommandText := sqlstr;
        AdoCommand1.Execute;    }

        Epr_NameBook.initbox();
        Epr_NameBook.ComboBox1Change(nil);
end;

procedure TEpr_Select2.ComboBox1Change(Sender: TObject);
var
        aditems:TListItem;
        i:integer;
        temp:integer;
        sqlstr : string;
begin
        if (ComboBox1.Text='') then
        begin
                ShowMessage('数据库中没有可以复制的名录信息!');
                exit;
        end;
        
        try
                temp:=StrToInt(ComboBox1.Text);
        except
                showmessage('对不起!您选择的"统计年份"非法!请重新选择!');
                exit;
        end;
        if (length(ComboBox1.Text)<>4) or (StrToInt(ComboBox1.Text)>3000) or (StrToInt(ComboBox1.Text)<1000) then
        begin
                showmessage('对不起!请您在1000年-3000年之间选择"统计年份"!');
                exit;
        end;

        listview1.Selected := nil;
        ListView1.Items.Clear;
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        sqlstr := 'select 单位代码 ,单位名称 from 公用事业单位基本情况表 where 统计年份='+ComboBox1.Text+' and 单位代码 not in ( select 单位代码 from 公用事业单位基本情况表 where 统计年份='+ComboBox2.Text+')';
        ADOQuery1.SQL.Add(sqlstr);
        ADOQuery1.Open;
        LView1Record:=ADOQuery1.RecordCount;

        if LView1Record<>0 then
        begin
                BitBtn1.Enabled:=true;
                BitBtn3.Enabled:=true;
                ADOQuery1.First;
                for i:=1 to LView1Record do
                begin
                        aditems:=ListView1.Items.Add;
                        aditems.Caption:=ADOQuery1.fieldbyname('单位代码').AsString;
                        aditems.SubItems.Add(ADOQuery1.fieldbyname('单位名称').AsString);
                        ADOQuery1.Next;
                end;
        end;

        EprCode:='';
        EprName:='';
        CheckStatus(LView1Record,LView2Record);
end;

procedure TEpr_Select2.BitBtn3Click(Sender: TObject);
begin
        listview1.Selected := nil;
        ListView1.Items.Clear;
        listview2.Selected := nil;
        ListView2.Items.Clear;
        ComboBox1.Text:='';
        LView1Record:=0;
        LView2Record:=0;
        sString:='';
        EprCode:='';
        EprName:='';
        BitBtn1.Enabled:=False;
        BitBtn2.Enabled:=True;
        BitBtn3.Enabled:=False;
        CheckStatus(LView1Record,LView2Record);
end;

end.

⌨️ 快捷键说明

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