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

📄 devicetype.pas

📁 Barcode And LabelPrint
💻 PAS
字号:
unit DeviceType;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, InfoBase, StdCtrls, DBCtrls, ToolEdit, Mask, wwDialog, wwidlg,
  DB, ADODB, ActnList, ExtCtrls, ComCtrls, ToolWin, Grids, DBGrids,
  fcTreeView, CheckLst;

type
  TfrmDeviceType = class(TfrmInfoBase)
    GroupBox1: TGroupBox;
    Label9: TLabel;
    Panel6: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    DBEdtDevNum: TDBEdit;
    DBEdtDevName: TDBEdit;
    DBLookupcbbSerise: TDBLookupComboBox;
    Editdate: TEdit;
    Panel9: TPanel;
    fneFileName: TFilenameEdit;
    Label12: TLabel;
    GroupBox8: TGroupBox;
    DBMemo1: TDBMemo;
    GroupBox5: TGroupBox;
    DBGridDeviceType: TDBGrid;
    QProSerise: TADOQuery;
    DSProSerise: TDataSource;
    QBaseInfoDevName: TWideStringField;
    QBaseInfoProNumber: TIntegerField;
    QBaseInfoDevImage: TBlobField;
    QBaseInfoImageFile: TWideStringField;
    QBaseInfoDescri: TWideStringField;
    QBaseInfoUpDateDate: TDateTimeField;
    QProSeriseProNumber: TIntegerField;
    QProSeriseSerise: TWideStringField;
    QProSeriseDetail: TWideStringField;
    QProSeriseUpdateDate: TDateTimeField;
    Label4: TLabel;
    QIsUniqueDevNum: TADOQuery;
    QBaseInfoDevNum: TWideStringField;
    LSTOpts: TCheckListBox;
    QDevAndOptions: TADOQuery;
    QDevHardOptions: TADOQuery;
    ToolButton1: TToolButton;
    QToday: TADOQuery;
    procedure QBaseInfoDevNameValidate(Sender: TField);
    procedure QBaseInfoBeforePost(DataSet: TDataSet);
    procedure dsBaseInfoDataChange(Sender: TObject; Field: TField);
    procedure dsBaseInfoStateChange(Sender: TObject);
    procedure acNewExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure fneFileNameMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure fneFileNameChange(Sender: TObject);
    procedure QBaseInfoDevNumValidate(Sender: TField);
    procedure ToolButton1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmDeviceType: TfrmDeviceType;

implementation

uses StockDataModel, PublicFunction;

{$R *.dfm}

procedure TfrmDeviceType.QBaseInfoDevNameValidate(Sender: TField);
begin
  inherited;
  if not IsUnique('DevName', Sender.AsString) then
  begin
    showmessage('名称已经存在,请重新填写,谢谢');
    abort;
  end;
end;

procedure TfrmDeviceType.QBaseInfoBeforePost(DataSet: TDataSet);
var
  i: integer;
begin
  inherited;
 //check
  if (DBEdtDevName.text = '') then //(EDTDevNum.Text='') or
  begin
    messagedlg('名称不能为空,请填写,谢谢!', mtinformation, [mbok], 0); // 编号/
    DBEdtDevName.SetFocus;
    Abort;
  end;
  if (DBEdtDevNum.text = '') then //(EDTDevNum.Text='') or
  begin
    messagedlg('编号不能为空,请填写,谢谢!', mtinformation, [mbok], 0); // 编号/
    DBEdtDevNum.SetFocus;
    Abort;
  end;

  //if checkvalue('DeviceType', 'Devnum', DBEdtDevNum.Text) then
 // begin
  //  if QBaseInfo.State in [dsInsert] then DBEdtDevNum.Text := '';
  //end;

  if (trim(DBLookupcbbSerise.Text) = '')
    then // //modify
  begin
    messagedlg('请选择配置,谢谢!', mtinformation, [mbok], 0);
    Abort;
  end;

  {if (fneFileName.Text <> '') and (QBaseInfo.State in [dsInsert]) then //仅增加时检查
    if not fileexists(fneFileName.Text) then
    begin
      messagedlg('填入/选择的文件不存在,谢谢!', mtinformation, [mbok], 0);
      Abort;
    end;
  QBaseInfo.FieldByName('ImageFile').AsString := fneFileName.Text;
  if (fneFileName.Text <> '') then
    blobcontenttostring(fneFileName.Text, QBaseInfo, 'DevImage'); }

  //if DBEdtDevNum.Text = '' then QBaseInfo.FieldByName('Devnum').AsString := inttostr(GetNextRecNoMax(StockDM.ADOConn, 'DeviceType', 'Devnum', '', '', 20)); //自动
  QBaseInfo.FieldByName('UpDateDate').AsdateTime := date;


  for i := 0 to LSTOpts.Count - 1 do
  begin
    if LSTOpts.Checked[i] then
    begin
      QDevAndOptions.Append;
      QDevAndOptions.FieldValues['DevNum'] := DBEdtDevNum.Text;
      QDevHardOptions.Locate('Ename', copy(LSTOpts.Items[i], 1, pos(',', LSTOpts.Items[i]) - 1), []); //VarArrayOf([LSTOpts.Items[i]])
      QDevAndOptions.FieldValues['Num'] := QDevHardOptions.FieldValues['Num'];
      QDevAndOptions.Post;
    end;
  end;

end;

procedure TfrmDeviceType.dsBaseInfoDataChange(Sender: TObject;
  Field: TField);
var i: integer;
begin
  inherited;
  if QBaseInfo.State = dsBrowse then
  begin
    fneFileName.Text := QBaseInfo.FieldByName('ImageFile').Asstring;
    EditDate.Text := QBaseInfo.FieldByName('UpDateDate').Asstring;

    for i := 0 to LSTOpts.Count - 1 do LSTOpts.Checked[i] := false;

    QDevAndOptions.Close;
    QDevAndOptions.Filter := 'DevNum=''' + DBEdtDevNum.Text + '''';
    QDevAndOptions.Filtered := true;
    QDevAndOptions.Open;

    while not QDevAndOptions.Eof do
    begin
      for i := 0 to LSTOpts.Count - 1 do
      begin
        QDevHardOptions.Locate('num', QDevAndOptions.FieldValues['Num'], []); //VarArrayOf([LSTOpts.Items[i]])
        if QDevHardOptions.FieldValues['Ename'] = copy(LSTOpts.Items[i], 1, pos(',', LSTOpts.Items[i]) - 1) then
          LSTOpts.Checked[i] := true;
      end;
      QDevAndOptions.next;
    end;
    QDevAndOptions.Filtered := false;

  //dsBaseInfoStateChange(self);
    //LoadInfos;
  end;
end;

procedure TfrmDeviceType.dsBaseInfoStateChange(Sender: TObject);
var i: integer;
begin
  inherited;
  with GroupBox1 do
    for i := 0 to ControlCount - 1 do
    begin
      if Controls[i] is TDBEdit then
        (Controls[i] as TDBEdit).ReadOnly := not acSave.Enabled
      else if Controls[i] is TDBLookupComboBox then
        (Controls[i] as TDBLookupComboBox).Enabled := acSave.Enabled;

    end;
  fneFileName.ReadOnly := not acSave.Enabled;
  DBGridDeviceType.Enabled := not acSave.Enabled;
  //LSTOpts.:= acSave.Enabled ;
end;

procedure TfrmDeviceType.acNewExecute(Sender: TObject);
var i: integer;
begin
  DBEdtDevNum.SetFocus;
  inherited;
  fneFileName.Text := '';
  EditDate.Text := '';
  for i := 0 to LSTOpts.Count - 1 do
  begin
    //if LSTOpts.Checked[i] then
    LSTOpts.Checked[i] := false; //烤 机 初 始 化
  end;
end;

procedure TfrmDeviceType.FormShow(Sender: TObject);
var i: integer;
begin
  inherited;
  if QProSerise.Active = false then QProSerise.Active := true;
  if QDevAndOptions.Active = false then QDevAndOptions.Active := true;
  if QDevHardOptions.Active = false then QDevHardOptions.Active := true;

  if QBaseInfo.State = dsBrowse then
  begin
    fneFileName.Text := QBaseInfo.FieldByName('ImageFile').Asstring;
    EditDate.Text := QBaseInfo.FieldByName('UpDateDate').Asstring;
  //dsBaseInfoStateChange(self);
   // LoadInfos;
  end;
  DBEdtDevNum.SetFocus;
  LSTOpts.Items.AddStrings(GetValueToCMB('DevHardOptions', 'Ename,ZName', 'All'));
  for i := 0 to LSTOpts.Count - 1 do LSTOpts.Checked[i] := false;

  QDevAndOptions.Close;
  QDevAndOptions.Filter := 'DevNum=''' + DBEdtDevNum.Text + '''';
  QDevAndOptions.Filtered := true;
  QDevAndOptions.Open;

  while not QDevAndOptions.Eof do
  begin
    for i := 0 to LSTOpts.Count - 1 do
    begin
      QDevHardOptions.Locate('num', QDevAndOptions.FieldValues['Num'], []); //VarArrayOf([LSTOpts.Items[i]])
      if QDevHardOptions.FieldValues['Ename'] = copy(LSTOpts.Items[i], 1, pos(',', LSTOpts.Items[i]) - 1) then
        LSTOpts.Checked[i] := true;
    end;
    QDevAndOptions.next;
  end;
  QDevAndOptions.Filtered := false;
end;

procedure TfrmDeviceType.fneFileNameMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  fneFileName.Hint := fneFileName.Text;
end;

procedure TfrmDeviceType.fneFileNameChange(Sender: TObject);
begin
  inherited;
//对于桌面上的文件fileNmaeEdit加""存时不认
  fneFileName.Text := checkFilename('"', fneFileName.Text);
end;

procedure TfrmDeviceType.QBaseInfoDevNumValidate(Sender: TField);
  function IsUniqueDevNum(ParamName, ParamValue: string): Boolean; {检测代码是否重复}
  begin
    Result := True;
//if QBaseInfo.State = dsInsert then
    with QIsUniqueDevNum do
    begin
      parameters.ParamValues[ParamName] := ParamValue;
      if Active then Requery else Open;
      if RecordCount > 0 then Result := False;
    end
  end;
begin
  inherited;
  if not IsUniqueDevnum('DevNum', Sender.AsString) then
  begin
    showmessage('编号已经存在,请重新填写,谢谢');
    abort;
  end;
end;



procedure TfrmDeviceType.ToolButton1Click(Sender: TObject);
//var QToday: TADOQuery;
begin
  inherited;

 with QToday do
  begin
    close;
    sql.Clear;
    sql.Add('select a.DevNum  机型代码,a.DevName 机型, b.Serise 所属系列,a.Descri 描述 from DeviceType a ,ProSerise b where a.ProNumber=b.ProNumber');
    open;
    if recordcount >= 1 then ExportToExcel(QToday);

  end;
  //ExportToExcel(QBaseInfo);
end;

end.

⌨️ 快捷键说明

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