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

📄 fw210unit.pas

📁 货物配送管理系统对配送服务
💻 PAS
字号:
unit FW210Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, PublicUnit, jpeg, ExtCtrls, StdCtrls, ADOdb;

type
  TFW210Form = class(TPublicUnit)
    RadioGroup1: TRadioGroup;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Panel2: TPanel;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Panel3: TPanel;
    Label2: TLabel;
    ComboBox2: TComboBox;
    SaveDialog1: TSaveDialog;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1DropDown(Sender: TObject);
    procedure ComboBox2DropDown(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    procedure RegulateStr(aString: string; Sepchar: string; Isfirst: boolean);
    {--- aString 为取出的字符串,Sepchar为分隔符. ---}
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FW210Form: TFW210Form;

implementation

uses DMUnit;

{$R *.dfm}

procedure TFW210Form.RegulateStr(aString: string; Sepchar: string; Isfirst: boolean);
//aString 为取出的字符串,Sepchar为分隔符.
var
  Num: Integer;
  MyStr: string;
begin
  Num := 0;
  while length(Astring) <> 0 do begin
    mystr := copy(astring, 1, pos(sepchar, astring) - 1); //截取子符串
    delete(astring, 1, pos(sepchar, astring)); //删除子符串
    if mystr = '' then mystr := '1.00'; //防止空字符
    if Isfirst then begin //如果是第一条,则特殊处理。
      DM.QueryTemp.fields[Num].DisplayLabel := mystr;
    end else
    begin
      DM.QueryTemp.Fields[Num].AsString := mystr;
    end;
    Num := Num + 1;
  end;
end;

procedure TFW210Form.FormShow(Sender: TObject);
var
  SL: TStrings;
begin
  inherited;
  SL := TStringList.Create;
  {--- 取得所有数据表的名字 ---}
  DM.conn.GetTableNames(SL, False);
  RadioGroup1.Caption := '选择下面的表导出';
  RadioGroup1.Columns := 3;
  RadioGroup1.Items.Clear;
  RadioGroup1.Items := SL;
end;

procedure TFW210Form.Button2Click(Sender: TObject);
var
  str: string;
  filename: textfile;
  n: integer;
  p: string;
begin
  inherited;
  DM.ImportTable.SQL.text := 'Select * from ' + RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
  DM.ImportTable.Open;
  if Combobox2.Text = '文本文件' then
  begin
    if SaveDialog1.Execute then
    begin
      try
        OpenDialog1.Filter := 'ASCII Files(*.TXT)|*.txt';
        str := SaveDialog1.FileName;
        assignfile(FileName, str);
        if FileExists(str) then DeleteFile(SaveDialog1.FileName);
        Screen.Cursor := crHourGlass;
        ReWrite(filename);
        p := Combobox1.Text;
        str := '';
        DM.ImportTable.First;
        for n := 0 to DM.QueryTemp.FieldCount - 1 do
        begin
          str := str + DM.ImportTable.fields[n].DisplayLabel + p;
        end;
        writeln(filename, str);
        str := '';
        while not DM.ImportTable.Eof do begin
          for n := 0 to DM.ImportTable.FieldCount - 1 do
          begin
            str := str + DM.ImportTable.fields[n].AsString + p;
          end;
          Writeln(FileName, str);
          str := '';
          DM.ImportTable.Next;
        end;
        Screen.Cursor := crdefault;
        closefile(filename);
        MessageBox(0, '成功保存文件', '提示', MB_OK + MB_ICONINFORMATION);
      except
        Application.MessageBox('操作在没有警告的情况下正常结束!', '完成', mb_ok + mb_iconinformation);
      end;
    end;
  end
  else if Combobox2.Text = 'XML文件' then
  begin
    OpenDialog1.Filter := 'XML 文件(*.xml)|*.XML';
    if Opendialog1.Execute then
    begin
      DM.ImportTable.SaveToFile(Opendialog1.FileName + '.XML', pfXML);
      MessageBox(0, '成功保存文件', '提示', MB_OK + MB_ICONINFORMATION);
    end;
  end;
end;

procedure TFW210Form.Button1Click(Sender: TObject);
var
  filestr: Textfile;
  recoStr: string;
begin
  inherited;
  DM.ImportTable.SQL.text := 'Select * from ' + RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
  DM.ImportTable.Open;
  if Combobox2.Text = '文本文件' then
  begin
    try
      OpenDialog1.Filter := 'ASCII Files(*.TXT)|*.txt';
      if OpenDialog1.Execute then
      begin
        Screen.Cursor := crHourGlass;
        Assignfile(filestr, opendialog1.filename);
        Reset(filestr);
        Readln(filestr, recostr); //读出一行字符串。
        RegulateStr(recostr, Combobox1.Text, true);
        while not eof(filestr) do
        begin
          DM.ImportTable.Append;
          Readln(filestr, recostr);
          RegulateStr(recostr, Combobox1.Text, false); //循环取出所有子符串。
          DM.ImportTable.Next;
     //读下一行。
        end;
      end;
      Screen.Cursor := crdefault;
      closefile(filestr);
    except
      Application.MessageBox('操作在没有警告的情况下正常结束!', '完成', mb_ok + mb_iconinformation);
    end;
  end
  else if Combobox2.Text = 'XML文件' then
  begin
    OpenDialog1.Filter := 'XML 文件(*.xml)|*.XML';
    if Opendialog1.Execute then
    begin
      DM.ImportTable.LoadFromFile(Opendialog1.FileName);
      MessageBox(0, '成功恢复文件', '提示', MB_OK + MB_ICONINFORMATION);
    end;
  end;
end;

procedure TFW210Form.ComboBox1DropDown(Sender: TObject);
begin
  inherited;
  {--- 定义一些常见的分隔符 ---}
  Combobox1.Clear;
  Combobox1.Items.Add('|');
  Combobox1.Items.Add(',');
  Combobox1.Items.Add('.');
  Combobox1.Items.Add('/');
  Combobox1.Items.Add('\');
  Combobox1.Items.Add('^');
  Combobox1.Items.Add(' ');
  Combobox1.Items.Add(' ');
end;

procedure TFW210Form.ComboBox2DropDown(Sender: TObject);
begin
  inherited;
  Combobox2.Clear;
  {--- 加入备选的两种文件格式 ---}
  Combobox2.Items.Add('文本文件');
  Combobox2.Items.Add('XML文件');
end;

procedure TFW210Form.ComboBox2Change(Sender: TObject);
begin
  inherited;
  if combobox2.Text = '文本文件' then
  {--- 如果是文本文件的话,让用户选择分隔符 ---}
    Panel2.Visible := True
  else
    Panel2.Visible := False;
end;

procedure TFW210Form.Button4Click(Sender: TObject);
{var ss:TStrings; }
begin
  inherited;
{ss:= TStringList.Create;
dm.conn.GetFieldNames(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex],ss);
memo1.Clear;
memo1.Lines.Add(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]);
memo1.Lines.AddStrings(ss);
}
{memo1.Clear;
ss:= TStringList.Create;
dm.conn.GetTableNames(ss,false);
memo1.Lines.AddStrings(ss);
}
end;

end.

⌨️ 快捷键说明

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