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

📄 c_component.~pas

📁 电子元件管理软件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit c_component;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, ExtCtrls, shellapi, common,
  Menus;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    ado_component: TADOQuery;
    ado_memo: TADOQuery;
    ado_temp: TADOQuery;
    ds_ado_component: TDataSource;
    ds_ado_memo: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    Button1: TButton;
    Edit1: TEdit;
    ado_memocomponent_know_size: TIntegerField;
    ado_memocomponent_know_filename: TWideStringField;
    Button2: TButton;
    ado_memocomponent_know_id: TAutoIncField;
    ado_memocomponent_know_component_id: TIntegerField;
    od1: TOpenDialog;
    Shape1: TShape;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    sd1: TSaveDialog;
    gb2: TGroupBox;
    Label1: TLabel;
    e_name: TEdit;
    Label2: TLabel;
    c_kind: TComboBox;
    Label3: TLabel;
    c_child_kind: TComboBox;
    Label4: TLabel;
    c_encap: TComboBox;
    Label5: TLabel;
    e_sheet: TEdit;
    Label6: TLabel;
    e_value: TEdit;
    Label7: TLabel;
    e_number: TEdit;
    Label8: TLabel;
    e_price: TEdit;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    ado_componentID: TAutoIncField;
    ado_componentname: TWideStringField;
    ado_componentkind_id: TSmallintField;
    ado_componentchild_kind_id: TSmallintField;
    ado_componentencap_kind_id: TIntegerField;
    ado_componentsheet: TWideStringField;
    ado_componentvalue: TWideStringField;
    ado_componentmemo_id: TIntegerField;
    ado_componentnumber: TIntegerField;
    ado_componentprice: TBCDField;
    ado_componentencap_name: TWideStringField;
    ado_componentencap_memo: TWideStringField;
    ado_componentencap_order_id: TIntegerField;
    ado_componentkind_name: TWideStringField;
    ado_componentkind_order_id: TSmallintField;
    ado_componentpara_kind_id: TSmallintField;
    ado_componentchild_kind_name: TWideStringField;
    ado_componentchild_kind_order_id: TSmallintField;
    Button10: TButton;
    pop1: TPopupMenu;
    sss1: TMenuItem;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Memo1: TMemo;
    Button11: TButton;
    procedure aa(sender: tobject);
    procedure Button1Click(Sender: TObject);
    procedure ado_componentAfterScroll(DataSet: TDataSet);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure c_kindChange(Sender: TObject);
    procedure c_child_kindChange(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure c_encapChange(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure FormActivate(Sender: TObject);
    procedure ado_componentAfterOpen(DataSet: TDataSet);
    procedure Button11Click(Sender: TObject);
    procedure ado_memoAfterOpen(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  dc_kind, dc_child_kind, dc_encap: tc_select;
  search_str: string;
implementation

uses
  data, c_setup;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with ado_component do
    begin
      Close;
      sql.Strings[2] := format('''%%%s%%''', [edit1.text]);
      sql.Strings[3] := '';
      open;
      first;
    end;
end;

procedure TForm1.ado_componentAfterScroll(DataSet: TDataSet);
var
  sql_str: string;
begin
  if ado_component.RecordCount > 0 then
    begin
      sql_str := format('select component_know_id,component_know_component_id,component_know_size,component_know_filename from component_know where component_know_component_id=%d order by component_know_filename', [ado_component.fieldbyname('id').asinteger]);
      with ado_memo do
        begin
          close;
          sql.clear;
          sql.add(sql_str);
          open;
          first;
        end;
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  file_mem: TMemoryStream;
  sql_str: string;
  tempcounti: integer;
begin
  if od1.Execute then
    begin
      for tempcounti := 0 to od1.Files.Count - 1 do
        begin
          file_mem := TMemoryStream.Create;
          file_mem.LoadFromFile(od1.Files.strings[tempcounti]);
          file_mem.Position := 0;
          sql_str := format('insert into component_know(component_know_component_id,component_know_content,component_know_size,component_know_filename) values(%d,:s1,%d,''%s'')', [ado_component.fieldbyname('id').asinteger, file_mem.size, extractfilename(od1.Files.strings[tempcounti])]);
          with ado_temp do
            begin
              close;
              sql.clear;
              sql.add(sql_str);
              Parameters.ParamByName('s1').LoadFromStream(file_mem, ftblob);
              ExecSQL;
              ado_componentAfterScroll(ado_component);
              ado_memo.Locate('component_know_filename', extractfilename(od1.Files.strings[tempcounti]), [loCaseInsensitive]);
            end;
          file_mem.Free;
        end;
    end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  sql_str: string;
  bk: tbookmark;
begin
  sql_str := format('delete from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
  ado_memo.Prior;
  bk := ado_memo.GetBookmark;
  with ado_temp do
    begin
      close;
      sql.clear;
      sql.add(sql_str);
      ExecSQL;
      ado_componentAfterScroll(ado_component);
      if ado_memo.RecordCount > 0 then
        begin
          ado_memo.GotoBookmark(bk);
        end;
      ado_memo.FreeBookmark(bk);
    end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  file_mem: TMemoryStream;
  sql_str: string;
  tempdir: pchar;
  execfile: string;
  i: integer;
begin
  file_mem := TMemoryStream.Create;
  sql_str := format('select component_know_content from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
  with ado_temp do
    begin
      close;
      sql.clear;
      sql.add(sql_str);
      open;
      tblobfield(ado_temp.fieldbyname('component_know_content')).SaveToStream(file_mem);
    end;
  file_mem.Position := 0;
  tempdir := GetMemory(255);
  GetTempPath(255, tempdir);
  execfile := string(tempdir) + ado_memo.fieldbyname('component_know_filename').asstring;
  if FileExists(execfile) then
    begin
      if DeleteFile(execfile) then
        file_mem.SaveToFile(execfile);
    end
  else
    begin
      file_mem.SaveToFile(execfile);
    end;
  FreeMemory(tempdir);
  ShellExecute(GetParentHandle, ('open'), pchar(execfile), nil, nil, SW_SHOW);
  file_mem.Free;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  file_mem: TMemoryStream;
  sql_str: string;
  tempdir: pchar;
  execfile: string;
  i: integer;
begin
  sd1.FileName := ado_memo.fieldbyname('component_know_filename').AsString;
  if sd1.Execute then
    begin
      file_mem := TMemoryStream.Create;
      sql_str := format('select component_know_content from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
      with ado_temp do
        begin
          close;
          sql.clear;
          sql.add(sql_str);
          open;
          tblobfield(ado_temp.fieldbyname('component_know_content')).SaveToStream(file_mem);
        end;
      file_mem.Position := 0;
      execfile := sd1.filename;
      if FileExists(execfile) then
        begin
          if MessageDlg('有同名文件,覆盖吗?', mtConfirmation, [mbYes, mbNo], 0) = mryes then
            if DeleteFile(execfile) then
              file_mem.SaveToFile(execfile);
        end
      else
        begin
          file_mem.SaveToFile(execfile);
        end;
      file_mem.Free;
    end;
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  sql_str: string;
begin
  gb2.Visible := true;
  e_name.Tag := 0;
  e_name.Clear;
  e_sheet.Clear;
  e_value.Clear;
  e_number.Clear;
  e_price.Clear;
  initcombobox(c_kind, dc_kind, 'select * from kind order by kind_order_id', 'id', 'kind_name');
  selectcombox(c_kind);
  sql_str := format('select * from child_kind where para_kind_id=%d order by child_kind_order_id', [dc_kind[c_kind.tag]]);
  initcombobox(c_child_kind, dc_child_kind, sql_str, 'id', 'child_kind_name');
  initcombobox(c_encap, dc_encap, 'select * from encap order by encap_order_id', 'id', 'encap_name');
end;

⌨️ 快捷键说明

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