180 lines
4.9 KiB
ObjectPascal
180 lines
4.9 KiB
ObjectPascal
![]() |
unit U_MultiSelMach;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs, ImgList, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics,
|
|||
|
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,
|
|||
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
|||
|
cxControls, cxGridCustomView, cxGrid, ADODB, DBClient, ExtCtrls;
|
|||
|
|
|||
|
type
|
|||
|
TfrmMultiSelMach = class(TForm)
|
|||
|
ToolBar2: TToolBar;
|
|||
|
TOk: TToolButton;
|
|||
|
Tclose: TToolButton;
|
|||
|
pics: TImageList;
|
|||
|
cxGrid1: TcxGrid;
|
|||
|
Tv1: TcxGridDBTableView;
|
|||
|
v1frameNo: TcxGridDBColumn;
|
|||
|
v1craftName: TcxGridDBColumn;
|
|||
|
cxGrid1Level1: TcxGridLevel;
|
|||
|
ADOConnection1: TADOConnection;
|
|||
|
ADOQueryDept: TADOQuery;
|
|||
|
DataSource1: TDataSource;
|
|||
|
cxGrid2: TcxGrid;
|
|||
|
tv2: TcxGridDBTableView;
|
|||
|
tv2deviceNo: TcxGridDBColumn;
|
|||
|
tv2deviceName: TcxGridDBColumn;
|
|||
|
cxGridLevel1: TcxGridLevel;
|
|||
|
ADOQueryMach: TADOQuery;
|
|||
|
DataSource2: TDataSource;
|
|||
|
cxGrid3: TcxGrid;
|
|||
|
tv3: TcxGridDBTableView;
|
|||
|
tv3deviceNo: TcxGridDBColumn;
|
|||
|
tv3deviceName: TcxGridDBColumn;
|
|||
|
cxGridLevel2: TcxGridLevel;
|
|||
|
CDS_SelMach: TClientDataSet;
|
|||
|
DataSource3: TDataSource;
|
|||
|
CDS_SelMachdeviceNo: TStringField;
|
|||
|
CDS_SelMachdeviceName: TStringField;
|
|||
|
cxStyleRepository1: TcxStyleRepository;
|
|||
|
cxStyle1: TcxStyle;
|
|||
|
cxStyle2: TcxStyle;
|
|||
|
cxStyle_gridRow: TcxStyle;
|
|||
|
cxStyle_gridFoot: TcxStyle;
|
|||
|
cxStyle_gridHead: TcxStyle;
|
|||
|
cxStyle_gridGroupBox: TcxStyle;
|
|||
|
cxStyle_yellow: TcxStyle;
|
|||
|
cxStyle_Red: TcxStyle;
|
|||
|
cxStyle_focus: TcxStyle;
|
|||
|
Panel1: TPanel;
|
|||
|
v1frameTopName: TcxGridDBColumn;
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure FormCreate(Sender: TObject);
|
|||
|
procedure TcloseClick(Sender: TObject);
|
|||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
procedure TOkClick(Sender: TObject);
|
|||
|
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
|
|||
|
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
|
|||
|
ANewItemRecordFocusingChanged: Boolean);
|
|||
|
procedure tv2DblClick(Sender: TObject);
|
|||
|
procedure tv3DblClick(Sender: TObject);
|
|||
|
private
|
|||
|
procedure IntDeptGrid();
|
|||
|
procedure IntMachGrid();
|
|||
|
public
|
|||
|
fFrameNo:string;
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
frmMultiSelMach: TfrmMultiSelMach;
|
|||
|
|
|||
|
implementation
|
|||
|
uses
|
|||
|
U_global;
|
|||
|
{$R *.dfm}
|
|||
|
//////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
|||
|
/////////////////////////////////////////////////////////
|
|||
|
procedure TfrmMultiSelMach.IntDeptGrid();
|
|||
|
begin
|
|||
|
with ADOQueryDept do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.Add('select distinct B.frameNo,B.frameName,B.frameTop,');
|
|||
|
sql.Add('frameTopName=(select frameName from yc_frame where frameNo=B.frameTop)');
|
|||
|
sql.Add('from dc_machine A');
|
|||
|
sql.Add('inner join yc_frame B on A.dept=B.frameNO');
|
|||
|
if trim(fFrameNo)<>'' then
|
|||
|
sql.Add('where A.dept='''+trim(fFrameNo)+'''');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
end;
|
|||
|
//////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
|||
|
/////////////////////////////////////////////////////////
|
|||
|
procedure TfrmMultiSelMach.IntMachGrid();
|
|||
|
begin
|
|||
|
with ADOQueryMach do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.Add('select *');
|
|||
|
sql.Add('from dc_machine A');
|
|||
|
sql.Add('where A.dept='''+trim(ADOQueryDept.fieldByName('frameNo').asString)+'''');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
end;
|
|||
|
procedure TfrmMultiSelMach.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
IntDeptGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.FormCreate(Sender: TObject);
|
|||
|
begin
|
|||
|
cxgrid3.Align :=alClient;
|
|||
|
with ADOConnection1 do
|
|||
|
begin
|
|||
|
Connected:=false;
|
|||
|
ConnectionString:=gConString;
|
|||
|
Connected:=true;
|
|||
|
end;
|
|||
|
CDS_SelMach.Close ;
|
|||
|
CDS_SelMach.CreateDataSet;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.TcloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
close;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.FormClose(Sender: TObject;
|
|||
|
var Action: TCloseAction);
|
|||
|
begin
|
|||
|
Action:=caFree;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.TOkClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_SelMach.IsEmpty then
|
|||
|
ModalResult:=-1
|
|||
|
else
|
|||
|
ModalResult:=1;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.Tv1FocusedRecordChanged(
|
|||
|
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
|||
|
AFocusedRecord: TcxCustomGridRecord;
|
|||
|
ANewItemRecordFocusingChanged: Boolean);
|
|||
|
begin
|
|||
|
IntMachGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.tv2DblClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if ADOQueryMach.IsEmpty then exit;
|
|||
|
if CDS_selMach.Locate('deviceNo;deviceName', VarArrayOf([trim(ADOQueryMach.fieldByName('deviceNo').AsString),
|
|||
|
trim(ADOQueryMach.fieldByName('deviceName').AsString)]),[loPartialKey]) then
|
|||
|
exit;
|
|||
|
|
|||
|
with CDS_selMach do
|
|||
|
begin
|
|||
|
Append;
|
|||
|
fieldByName('deviceNo').Value :=trim(ADOQueryMach.fieldByName('deviceNo').AsString) ;
|
|||
|
fieldByName('deviceName').Value :=trim(ADOQueryMach.fieldByName('deviceName').AsString) ;
|
|||
|
Post;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmMultiSelMach.tv3DblClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if CDS_SelMach.IsEmpty then exit;
|
|||
|
CDS_SelMach.Delete;
|
|||
|
end;
|
|||
|
|
|||
|
end.
|