?? devicetype.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('名稱已經(jīng)存在,請重新填寫,謝謝');
abort;
end;
end;
procedure TfrmDeviceType.QBaseInfoBeforePost(DataSet: TDataSet);
var
i: integer;
begin
inherited;
//check
if (DBEdtDevName.text = '') then //(EDTDevNum.Text='') or
begin
messagedlg('名稱不能為空,請?zhí)顚?謝謝!', mtinformation, [mbok], 0); // 編號/
DBEdtDevName.SetFocus;
Abort;
end;
if (DBEdtDevNum.text = '') then //(EDTDevNum.Text='') or
begin
messagedlg('編號不能為空,請?zhí)顚?謝謝!', 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; {檢測代碼是否重復(fù)}
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('編號已經(jīng)存在,請重新填寫,謝謝');
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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -