sjjsfrm.pas

来自「本人编写的有关军队营房工作的管理系统」· PAS 代码 · 共 451 行 · 第 1/3 页

PAS
451
字号
unit sjjsfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, backup, StdCtrls, db, Gauges, Buttons, ExtCtrls;

type
  Tsjjs = class(TForm)
    Panel2: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Panel1: TPanel;
    Label2: TLabel;
    Gauge1: TGauge;
    Label3: TLabel;
    SpeedButton4: TSpeedButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    BackupFile1: TBackupFile;
    OpenDialog1: TOpenDialog;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure BackupFile1NeedDisk(Sender: TObject; DiskID: Word;
      var Continue: Boolean);
    procedure BackupFile1Progress(Sender: TObject; Filename: String;
      Percent: TPercentage; var Continue: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  sjjs: Tsjjs;

implementation
uses datafrm,mainfrm;
{$R *.dfm}

procedure Tsjjs.SpeedButton2Click(Sender: TObject);
begin
close;
end;

procedure Tsjjs.SpeedButton4Click(Sender: TObject);
begin
  sjjs.OpenDialog1.InitialDir:=extractfilepath(application.ExeName)+'sb';
  sjjs.OpenDialog1.Execute;
  if fileexists(sjjs.OpenDialog1.FileName) then
    sjjs.Edit1.Text:=sjjs.OpenDialog1.FileName
  else
    messagebox(sjjs.handle,'请选择正确的上报数据文件。','营房工作管理系统',16);
end;

procedure Tsjjs.BackupFile1NeedDisk(Sender: TObject; DiskID: Word;
  var Continue: Boolean);
begin
Continue := MessageDlg('请插入下一张磁盘' +inttostr(DiskID)+'后并按下OK键以继续',mtInformation, mbOKCancel, 0) = mrOK;
end;

procedure Tsjjs.BackupFile1Progress(Sender: TObject; Filename: String;
  Percent: TPercentage; var Continue: Boolean);
begin
sjjs.Label2.caption:= extractfilename(filename);
sjjs.Gauge1.Progress:= percent;
if sjjs.SpeedButton2.down then Continue := false;
end;

procedure Tsjjs.SpeedButton1Click(Sender: TObject);
var
  i,j,s:longint;
begin
if sjjs.Edit1.Text<>'' then
  begin
    if fileexists(sjjs.Edit1.Text) then
      begin
        sjjs.SpeedButton1.Enabled:=false;
        sjjs.SpeedButton2.Enabled:=false;
        main.Timer1.Enabled:=false;
        yfgldata.Free;
        if sjjs.BackupFile1.Restore(sjjs.Edit1.Text,extractfilepath(application.ExeName)+'data0\') then
          messagebox(sjjs.handle,pansichar('数据解压完毕,共有'+inttostr(sjjs.BackupFile1.FilesTotal)+'个文件,'+inttostr(sjjs.BackupFile1.SizeTotal)+'字节。'),'营房工作管理系统',mb_iconexclamation)
        else
          messagebox(sjjs.handle,'解压过程有误。','营房工作管理系统',16);
        application.CreateForm(tyfgldata,yfgldata);
        main.Timer1.Enabled:=true;
        sjjs.Label2.Caption:='正在进行数据检查...';
        s:=0;
        s:=s+yfgldata.dwqk1.RecordCount;
        s:=s+yfgldata.yfzl1.RecordCount;
        s:=s+yfgldata.guolu1.RecordCount;
        s:=s+yfgldata.gx1.RecordCount;
        s:=s+yfgldata.xjyf1.RecordCount;
        s:=s+yfgldata.yfda1.RecordCount;
        s:=s+yfgldata.yffd1.RecordCount;
        s:=s+yfgldata.yfsb1.RecordCount;
        s:=s+yfgldata.yfwz1.RecordCount;
        s:=s+yfgldata.dt1.RecordCount;
        j:=0;
        if s=0 then
          messagebox(sjjs.handle,'无上报记录或上报数据文件有误。','营房工作管理系统',16)
        else
          begin
            yfgldata.dwqk1.First;
            for i:=1 to yfgldata.dwqk1.RecordCount do
              begin
                if yfgldata.dwqk.Locate('单位代码',yfgldata.dwqk1.fieldbyname('单位代码').AsString,[loCaseInsensitive]) then
                  begin
                    messagebox(sjjs.handle,'单位代码发生重复,接收过程将被终止。','营房工作管理系统',16);
                    close;
                    exit;
                  end;
                yfgldata.dwqk1.Next;
              end;
            yfgldata.yfzl1.First;
            for i:=1 to yfgldata.yfzl1.RecordCount do
              begin
                if yfgldata.yfzl.Locate('坐落号',yfgldata.yfzl1.fieldbyname('坐落号').AsString,[loCaseInsensitive]) then
                  begin
                    messagebox(sjjs.handle,'坐落号发生重复,接收过程将被终止。','营房工作管理系统',16);
                    close;
                    exit;
                  end;
                yfgldata.yfzl1.Next;
              end;                                                 
            sjjs.Label2.Caption:='正在进行数据接收...';
            yfgldata.dwqk1.First;
            for i:=1 to yfgldata.dwqk1.RecordCount do
              begin
                yfgldata.dwqk.Append;
                yfgldata.dwqk.FieldByName('单位代码').AsString:=yfgldata.dwqk1.FieldByName('单位代码').AsString;
                yfgldata.dwqk.FieldByName('单位名称').AsString:=yfgldata.dwqk1.FieldByName('单位名称').AsString;
                yfgldata.dwqk.FieldByName('地区代码').AsString:=yfgldata.dwqk1.FieldByName('地区代码').AsString;
                yfgldata.dwqk.FieldByName('单位地址').AsString:=yfgldata.dwqk1.FieldByName('单位地址').AsString;
                yfgldata.dwqk.FieldByName('单位性质').AsString:=yfgldata.dwqk1.FieldByName('单位性质').AsString;
                yfgldata.dwqk.FieldByName('供应关系').AsString:=yfgldata.dwqk1.FieldByName('供应关系').AsString;
                yfgldata.dwqk.FieldByName('隶属关系').AsString:=yfgldata.dwqk1.FieldByName('隶属关系').AsString;
                yfgldata.dwqk.FieldByName('联勤关系').AsString:=yfgldata.dwqk1.FieldByName('联勤关系').AsString;
                yfgldata.dwqk.FieldByName('部队类别').AsString:=yfgldata.dwqk1.FieldByName('部队类别').AsString;
                yfgldata.dwqk.FieldByName('单位级别').AsString:=yfgldata.dwqk1.FieldByName('单位级别').AsString;
                yfgldata.dwqk.FieldByName('单位用房').AsInteger:=yfgldata.dwqk1.FieldByName('单位用房').AsInteger;
                yfgldata.dwqk.FieldByName('公寓房').AsInteger:=yfgldata.dwqk1.FieldByName('公寓房').AsInteger;
                yfgldata.dwqk.FieldByName('变更依据').AsString:=yfgldata.dwqk1.FieldByName('变更依据').AsString;
                yfgldata.dwqk.FieldByName('部队代号').AsString:=yfgldata.dwqk1.FieldByName('部队代号').AsString;
                yfgldata.dwqk.FieldByName('上级单位代码').AsString:=yfgldata.dwqk1.FieldByName('上级单位代码').AsString;
                yfgldata.dwqk.FieldByName('邮编').AsString:=yfgldata.dwqk1.FieldByName('邮编').AsString;
                yfgldata.dwqk.FieldByName('基地面积').AsInteger:=yfgldata.dwqk1.FieldByName('基地面积').AsInteger;

⌨️ 快捷键说明

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