RtTool/Delphi7/开发档案/马国钢开发代码/ThreeFun/helpForm/U_MultiSelMach.pas

180 lines
4.9 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-08 11:55:07 +08:00
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.