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

📄 mainunit.pas

📁 用友二次开发 服装行业颜色尺码定义工具
💻 PAS
字号:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, cxLookAndFeelPainters, StdCtrls, cxButtons, cxControls,
  cxContainer, cxCheckListBox, Comobj,inifiles, cxEdit, cxTextEdit, cxMemo,excel97,excel2000;

type
  TfrMain = class(TForm)
    OpenDialog: TOpenDialog;
    FileList: TcxCheckListBox;
    AddExcelFile: TcxButton;
    StartUpdate: TcxButton;
    log: TcxMemo;
    procedure AddExcelFileClick(Sender: TObject);
    procedure StartUpdateClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FileListDblClick(Sender: TObject);
  private
    procedure UpdateExcelData(FileName:string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frMain: TfrMain;
  INI:Tinifile;
  Excel: OleVariant;

implementation

{$R *.dfm}

procedure TfrMain.AddExcelFileClick(Sender: TObject);
begin
    OpenDialog.Execute;
    if OpenDialog.FileName<>'' then
    begin
      filelist.Items.Add ;
      filelist.Items.Items[filelist.Items.Count-1].Text    :=OpenDialog.FileName;
      filelist.Items.Items[filelist.Items.Count-1].Checked :=True;
    end;


end;

procedure TfrMain.StartUpdateClick(Sender: TObject);
var
  i : integer;
begin

    try
      Excel := CreateOLEObject('Excel.Application');
    except
      Application.MessageBox('Excel 没有安装! ', 'Wait!', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
      Exit;
    end;

    Excel.Visible := True;

    log.lines.clear;
    for i := 0 to filelist.Items.Count-1 do
      if filelist.Items.Items[i].Checked then
      begin
          UpdateExcelData(filelist.Items.Items[i].Text);
          INI.WriteString(InttoStr(i),'Memo','上次更新时间: '+Formatdatetime('yyyy-mm-dd hh:nn:ss',Now()));
      end;

    Excel.Visible := True;
    Excel.Quit;
end;

procedure TfrMain.FormCreate(Sender: TObject);
var
  i : integer ;
  List : TstringList ;
begin
    List:=TstringList.Create ;
    INI:=Tinifile.create(GetCurrentDir+'\sys.ini');
    INI.ReadSections(List);
    for i:=0 to List.Count-1 do
    begin
      filelist.Items.Add ;
      filelist.Items.Items[i].Text    :=INI.ReadString(InttoStr(i),'FileName','');
      filelist.Items.Items[i].Checked :=INI.ReadBool  (InttoStr(i),'bUpdate',True);
     end;
end;

procedure TfrMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i : integer;
begin
    for i := 0 to filelist.Items.Count-1 do
    begin
      INI.WriteBool  (InttoStr(i),'bUpdate',filelist.Items.Items[i].Checked);
      INI.WriteString(InttoStr(i),'FileName',filelist.Items.Items[i].Text );
    end;
end;


procedure TfrMain.UpdateExcelData(FileName:string);
var
  time : string;
begin
    Excel.WorkBooks.open(FileName);
    try
        Excel.run('update');
        log.lines.add(Formatdatetime('yyyy-mm-dd hh:nn:ss',Now()));
        time:=formatdatetime('yyyymmdd_hhnn',now);
        log.lines.add(FileName+' ...... 更新成功!');
        log.lines.add('');
    except
        log.Lines.Add('未能执行更新任务');
    end ;

    Excel.WorkBooks.close ;
end;


procedure TfrMain.FileListDblClick(Sender: TObject);
begin
    INI.EraseSection(inttostr(filelist.ItemIndex));
    filelist.DeleteSelected;
end;

end.

⌨️ 快捷键说明

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