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

📄 fmain.pas

📁 使用delphi编写的运动会编排程序,还需要更加完善!
💻 PAS
字号:
unit fmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxControls, cxSplitter, ExtCtrls, RzSplit, RzPanel, cxStyles,
  cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
  cxDBData, ADODB, cxGridLevel, cxClasses, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,flogin,
  RzTabs, cxNavigator, cxDBNavigator, cxDBEdit, cxTextEdit, cxMemo,
  cxContainer, cxLabel, cxMaskEdit, cxDropDownEdit, cxLookAndFeels,
  cxLookAndFeelPainters, StdCtrls, cxButtons, Grids, DBGrids;

type
  TForm2 = class(TForm)
    adsAthlete: TADODataSet;
    dsArhlete: TDataSource;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    RzPanel2: TRzPanel;
    RzSplitter1: TRzSplitter;
    RzPanel1: TRzPanel;
    RzSplitter2: TRzSplitter;
    adsDepartment: TADODataSet;
    adsEvent: TADODataSet;
    dsDepartment: TDataSource;
    dsEvent: TDataSource;
    RzPanel4: TRzPanel;
    adsGame: TADODataSet;
    dsGame: TDataSource;
    RzSplitter3: TRzSplitter;
    RzPanel3: TRzPanel;
    cxGrid1: TcxGrid;
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1DBTableView1athNO: TcxGridDBColumn;
    cxGrid1DBTableView1athName: TcxGridDBColumn;
    cxGrid1DBTableView1athDep: TcxGridDBColumn;
    cxGrid1DBTableView1athSex: TcxGridDBColumn;
    cxGrid1DBTableView1athMemo: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    cxDBNavigator1: TcxDBNavigator;
    RzPanel6: TRzPanel;
    RzGroupBox1: TRzGroupBox;
    cxLabel1: TcxLabel;
    cxDBTextEdit1: TcxDBTextEdit;
    cxDBTextEdit2: TcxDBTextEdit;
    cxLabel2: TcxLabel;
    cxLabel3: TcxLabel;
    cxDBComboBox1: TcxDBComboBox;
    cxLabel4: TcxLabel;
    cxDBComboBox2: TcxDBComboBox;
    cxDBMemo1: TcxDBMemo;
    cxLabel5: TcxLabel;
    cxLookAndFeelController1: TcxLookAndFeelController;
    RzGroupBox2: TRzGroupBox;
    cxLabel8: TcxLabel;
    cxLabel9: TcxLabel;
    cxLabel10: TcxLabel;
    cxLabel11: TcxLabel;
    cxLabel12: TcxLabel;
    cxComboBox1: TcxComboBox;
    cxComboBox2: TcxComboBox;
    cxTextEdit1: TcxTextEdit;
    cxTextEdit2: TcxTextEdit;
    cxMemo1: TcxMemo;
    RzSplitter4: TRzSplitter;
    RzPanel5: TRzPanel;
    cxGrid2: TcxGrid;
    cxGrid2DBTableView1: TcxGridDBTableView;
    cxGrid2DBTableView1athNO: TcxGridDBColumn;
    cxGrid2DBTableView1eveName: TcxGridDBColumn;
    cxGrid2DBTableView1memo: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    cxDBNavigator2: TcxDBNavigator;
    RzPanel7: TRzPanel;
    RzGroupBox3: TRzGroupBox;
    cxLabel6: TcxLabel;
    cxDBComboBox3: TcxDBComboBox;
    cxLabel7: TcxLabel;
    cxDBComboBox4: TcxDBComboBox;
    RzGroupBox4: TRzGroupBox;
    cxLabel13: TcxLabel;
    cxLabel14: TcxLabel;
    cxComboBox3: TcxComboBox;
    cxComboBox4: TcxComboBox;
    cxMemo2: TcxMemo;
    cxLabel15: TcxLabel;
    cxDBMemo2: TcxDBMemo;
    cxLabel16: TcxLabel;
    TabSheet3: TRzTabSheet;
    RzSplitter5: TRzSplitter;
    RzPanel8: TRzPanel;
    RzSplitter6: TRzSplitter;
    RzPanel9: TRzPanel;
    RzPanel10: TRzPanel;
    cxGrid3DBTableView1: TcxGridDBTableView;
    cxGrid3Level1: TcxGridLevel;
    cxGrid3: TcxGrid;
    cxGrid3DBTableView1eveName: TcxGridDBColumn;
    cxGrid3DBTableView1athNO: TcxGridDBColumn;
    cxGrid3DBTableView1firAchi: TcxGridDBColumn;
    cxGrid3DBTableView1firPla: TcxGridDBColumn;
    cxGrid3DBTableView1memo: TcxGridDBColumn;
    ADOQuery1: TADOQuery;
    RzPanel11: TRzPanel;
    cxDBNavigator3: TcxDBNavigator;
    cxButton1: TcxButton;
    TabSheet4: TRzTabSheet;
    RzPanel12: TRzPanel;
    cxGrid4DBTableView1: TcxGridDBTableView;
    cxGrid4Level1: TcxGridLevel;
    cxGrid4: TcxGrid;
    RzPanel13: TRzPanel;
    cxDBNavigator4: TcxDBNavigator;
    cxGrid4DBTableView1eveName: TcxGridDBColumn;
    cxGrid4DBTableView1athNO: TcxGridDBColumn;
    cxGrid4DBTableView1firAchi: TcxGridDBColumn;
    cxGrid4DBTableView1firPla: TcxGridDBColumn;
    cxGrid4DBTableView1finAchi: TcxGridDBColumn;
    cxGrid4DBTableView1finPla: TcxGridDBColumn;
    cxGrid4DBTableView1memo: TcxGridDBColumn;
    cxButton2: TcxButton;
    cxGrid2DBTableView1firAchi: TcxGridDBColumn;
    cxGrid2DBTableView1firPla: TcxGridDBColumn;
    cxGrid2DBTableView1finAchi: TcxGridDBColumn;
    cxGrid2DBTableView1finPla: TcxGridDBColumn;
    adsFinal: TADODataSet;
    dsFinal: TDataSource;
    cxButton3: TcxButton;
    cxGrid4DBTableView1score: TcxGridDBColumn;
    cxButton4: TcxButton;
    cxButton5: TcxButton;
    cxButton6: TcxButton;
    cxButton7: TcxButton;
    cxButton8: TcxButton;
    cxButton9: TcxButton;
    cxButton10: TcxButton;
    procedure FormCreate(Sender: TObject);
    procedure TabSheet2Enter(Sender: TObject);
    procedure cxButton1Click(Sender: TObject);
    procedure cxButton2Click(Sender: TObject);
    procedure cxButton3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cxButton4Click(Sender: TObject);
    procedure cxButton5Click(Sender: TObject);
    procedure cxButton6Click(Sender: TObject);
    procedure cxButton7Click(Sender: TObject);
    procedure cxButton8Click(Sender: TObject);
    procedure cxButton9Click(Sender: TObject);
    procedure cxButton10Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function count(pla,num:Integer):Single;
  end;

var
  Form2: TForm2;

implementation
uses csydy,csxx;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  adsDepartment.First;
  cxDBComboBox2.Properties.Items.Clear;
  while not adsDepartment.Eof do
  begin
    cxDBComboBox2.Properties.Items.Add(adsDepartment['depName']);
    adsDepartment.Next;
  end;
  cxGrid1DBTableView1athDep.Properties:= cxDBComboBox2.Properties;
  adsEvent.First;
  cxDBComboBox4.Properties.Items.Clear;
  while not adsEvent.Eof do
  begin
    cxDBComboBox4.Properties.Items.Add(adsEvent['eveName']);
    adsEvent.Next;
  end;
  cxComboBox2.Properties:= cxDBComboBox2.Properties;
  cxComboBox4.Properties:= cxDBComboBox4.Properties;
  cxGrid2DBTableView1eveName.Properties:= cxDBComboBox4.Properties;
  cxTextEdit1.Text:= IntToStr(adsAthlete.recordcount+1);
end;

procedure TForm2.TabSheet2Enter(Sender: TObject);
begin
  adsAthlete.First;
  cxDBComboBox3.Properties.Items.Clear;
  while not adsAthlete.Eof do
  begin
    cxDBComboBox3.Properties.Items.Add(adsAthlete['athNO']);
    adsAthlete.Next;
  end;
  cxGrid2DBTableView1athNO.Properties:= cxDBComboBox3.Properties;
  cxComboBox3.Properties:= cxDBComboBox3.Properties;
end;


procedure TForm2.cxButton1Click(Sender: TObject);
var
  event,flag: String; temp,place: Integer;preFirAchi:Variant;
begin
  adsGame.DisableControls;
  adsEvent.DisableControls;
  ADOQuery1.DisableControls;
  adsEvent.First;
  while not adsEvent.Eof do
  begin
    event:= adsEvent['eveName'];
    if adsEvent['eveClass'] = '径赛' then flag:= 'asc'
    else flag:= 'desc';
    ADOQuery1.Active:= False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select eveName,athNo,firAchi,firPla from game where eveName = "'+event+'" order by firAchi '+flag);
    ADOQuery1.Active:= True;
    if ADOQuery1.RecordCount = 0  then begin
      adsEvent.Next;
      Continue;
    end;
    ADOQuery1.First;
    temp:=1;
    place:=1;
    ADOQuery1.Edit;
    ADOQuery1['firPla']:=place;
    ADOQuery1.Post;
    preFirAchi:= ADOQuery1['firAchi'];
    ADOQuery1.Next;
    while not ADOQuery1.Eof do
    begin
      if ADOQuery1['firAchi']=preFirAchi then begin
        Inc(temp);
        ADOQuery1.Edit;
        ADOQuery1['firPla']:= place;
        ADOQuery1.Post;
        preFirAchi:= ADOQuery1['firAchi'];
      end
      else begin
        ADOQuery1.Edit;
        place:= place+temp;
        ADOQuery1['firPla']:= place;
        ADOQuery1.Post;
        temp:=1;
        preFirAchi:= ADOQuery1['firAchi'];
      end;
      ADOQuery1.Next;
    end;
    adsEvent.Next;
  end;
  adsGame.Refresh;
  ShowMessage('排名完成!');
  adsGame.EnableControls;
  adsEvent.EnableControls;
  ADOQuery1.EnableControls;
end;

procedure TForm2.cxButton2Click(Sender: TObject);
var
  event,flag: String; temp,place: Integer;preFinAchi:Variant;
begin
  adsEvent.First;
  while not adsEvent.Eof do
  begin
    event:= adsEvent['eveName'];
    if adsEvent['eveClass'] = '径赛' then flag:= 'asc'
    else flag:= 'desc';
    ADOQuery1.Active:= False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select eveName,athNo,finAchi,finPla,score from game where eveName = "'+event+'" order by finAchi '+flag);
    ADOQuery1.Active:= True;
    if ADOQuery1.RecordCount = 0  then begin
      adsEvent.Next;
      Continue;
    end;
    ADOQuery1.First;
    temp:=1;
    place:=1;
    ADOQuery1.Edit;
    ADOQuery1['finPla']:=place;
    ADOQuery1.Post;
    preFinAchi:= ADOQuery1['finAchi'];
    ADOQuery1.Next;
    while not ADOQuery1.Eof do
    begin
      if ADOQuery1['finAchi']=preFinAchi then begin
        Inc(temp);
        ADOQuery1.Edit;
        ADOQuery1['finPla']:= place;
        ADOQuery1.Post;
        preFinAchi:= ADOQuery1['finAchi'];
      end
      else begin
        ADOQuery1.Edit;
        place:= place+temp;
        ADOQuery1['finPla']:= place;
        ADOQuery1.Post;
        temp:=1;
        preFinAchi:= ADOQuery1['finAchi'];
      end;
      ADOQuery1.Next;
    end;
    adsEvent.Next;
  end;
  adsFinal.Refresh;
  ShowMessage('排名完成!');
end;


procedure TForm2.cxButton3Click(Sender: TObject);
var
  event,flag: String; temp,place: Integer;preFirAchi:Variant;
begin
  adsFinal.Close;
  adsEvent.First;
  while not adsEvent.Eof do
  begin
    event:= adsEvent['eveName'];
    if adsEvent['eveClass'] = '径赛' then flag:= 'asc'
    else flag:= 'desc';
    ADOQuery1.Active:= False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select eveName,athNo,firAchi,firPla from game where eveName = "'+event+'" order by firAchi '+flag);
    ADOQuery1.Active:= True;
    if ADOQuery1.RecordCount = 0  then begin
      adsEvent.Next;
      Continue;
    end;
    ADOQuery1.First;
    temp:=1;
    place:=1;
    ADOQuery1.Edit;
    ADOQuery1['firPla']:=place;
    ADOQuery1.Post;
    preFirAchi:= ADOQuery1['firAchi'];
    ADOQuery1.Next;
    while not ADOQuery1.Eof do
    begin
      if ADOQuery1['firAchi']=preFirAchi then begin
        Inc(temp);
        ADOQuery1.Edit;
        ADOQuery1['firPla']:= place;
        ADOQuery1.Post;
        preFirAchi:= ADOQuery1['firAchi'];
      end
      else begin
        ADOQuery1.Edit;
        place:= place+temp;
        ADOQuery1['firPla']:= place;
        ADOQuery1.Post;
        temp:=1;
        preFirAchi:= ADOQuery1['firAchi'];
      end;
      ADOQuery1.Next;
    end;
    adsEvent.Next;
  end;
  adsFinal.Open;
  ShowMessage('决赛名单生成完成!');
end;

function TForm2.count(pla, num: Integer): Single;
begin
  case pla of
    1:  Result:= (17-num)/2+1/num;
    2:  Result:= (15-num)/2;
    3:  Result:= (13-num)/2;
    4:  Result:= (11-num)/2;
    5:  Result:= (9-num)/2;
    6:  Result:= (7-num)/2;
    7:  Result:= (5-num)/2;
    8:  Result:= (3-num)/2;
  else
    Result:= 0;
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  ADOQuery1.Active:= False;
  ADOQuery1.SQL.Add('select count(finPla) as num from game where finPla=1');
  ADOQuery1.Active:= True;
end;

procedure TForm2.cxButton4Click(Sender: TObject);
var
  event: string;i:Integer;
begin
  adsEvent.DisableControls;
  adsFinal.DisableControls;
  ADOQuery1.DisableControls;
  adsEvent.First;
  while not adsEvent.Eof do
  begin
    event:= adsEvent['eveName'];
    for i:=1 to 8 do
    begin
      ADOQuery1.Active:= False;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select eveName,athNo,score from game where eveName = "'+event+'" and finPla = '+IntToStr(i));
      ADOQuery1.Active:= True;
      ADOQuery1.First;
      while not ADOQuery1.Eof do
      begin
        ADOQuery1.Edit;
        ADOQuery1['score']:= count(i,ADOQuery1.RecordCount);
        ADOQuery1.Post;
        ADOQuery1.Next;
      end;
    end;
    adsEvent.Next;
  end;
  adsEvent.EnableControls;
  adsFinal.EnableControls;
  ADOQuery1.EnableControls;
  adsFinal.Refresh;
  ShowMessage('计分完成!');
end;

procedure TForm2.cxButton5Click(Sender: TObject);
begin
  adsAthlete.Append;
  adsAthlete.FieldByName('athNO').AsString:= Trim(cxTextEdit1.Text);
  adsAthlete.FieldByName('athName').AsString:= Trim(cxTextEdit2.Text);
  adsAthlete.FieldByName('athSex').AsString:= Trim(cxComboBox1.Text);
  adsAthlete.FieldByName('athDep').AsString:= Trim(cxComboBox2.Text);
  adsAthlete.FieldByName('athMemo').AsString:= Trim(cxMemo1.Text);
  adsAthlete.Post;
  cxTextEdit1.Text:= IntToStr(adsAthlete.recordcount+1);
  cxTextEdit2.Clear;
  cxMemo1.Clear;
  cxTextEdit2.SetFocus;
end;

procedure TForm2.cxButton6Click(Sender: TObject);
begin
  adsGame.Append;
  adsGame.FieldByName('athNO').AsString:= Trim(cxComboBox3.Text);
  adsGame.FieldByName('eveName').AsString:= Trim(cxComboBox4.Text);
  adsGame.FieldByName('memo').AsString:= Trim(cxmemo2.Text);
  adsGame.Post;
end;

procedure TForm2.cxButton7Click(Sender: TObject);
begin
  adsAthlete.Post;
end;

procedure TForm2.cxButton8Click(Sender: TObject);
begin
  adsGame.Post;
end;

procedure TForm2.cxButton9Click(Sender: TObject);
begin
   form3.Show;
end;

procedure TForm2.cxButton10Click(Sender: TObject);
begin
   form4.Show;
end;

end.

⌨️ 快捷键说明

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