D7zzXiangHeng/坯布生产计划(WeavingSchedule)/U_JTSel.pas
DESKTOP-E401PHE\Administrator 0026e9e246 0
2025-08-08 10:42:50 +08:00

282 lines
8.6 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_JTSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, ToolWin, ComCtrls, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls,
cxCheckBox, cxTextEdit, cxPC;
type
TfrmJTSel = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBClose: TToolButton;
ToolButton1: TToolButton;
V1Note: TcxGridDBColumn;
Panel1: TPanel;
Label1: TLabel;
MCNO: TEdit;
ThreeImgList: TImageList;
V1Column1: TcxGridDBColumn;
cxTabControl1: TcxTabControl;
Label2: TLabel;
V1Column2: TcxGridDBColumn;
V1Column3: TcxGridDBColumn;
V1Column4: TcxGridDBColumn;
Label3: TLabel;
MCCJ: TComboBox;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ClientDataSet2: TClientDataSet;
DataSource2: TDataSource;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure MCNOChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TV1DblClick(Sender: TObject);
procedure TV2DblClick(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
flag, flagname, snote, MainType, ReturnStr, FGStr, FBIAOSHI: string;
fnote, forderno: Boolean;
PPSTE, JiangeStr: integer;
{ Public declarations }
end;
var
frmJTSel: TfrmJTSel;
implementation
uses
U_DataLink, U_Fun;
{$R *.dfm}
procedure TfrmJTSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MCNO.SetFocus;
Action := caFree;
end;
procedure TfrmJTSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add(' select MCNO,MCCJ ');
sql.Add(' ,ZYConNo=(select Top 1 ConNo from Cloth_Main CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' ,C_Code=(select Top 1 C_Code from Cloth_Sub CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' ,C_CodeName=(select Top 1 C_CodeName from Cloth_Sub CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' from Machine A');
sql.Add(' where ');
if cxTabControl1.TabIndex = 0 then
begin
sql.Add(' not exists(select StopFlag from Cloth_JiTai B inner join cloth_main X on B.mainid=X.mainid where B.CarNo=A.MCNO and B.StopFlag=0)');
end
else if cxTabControl1.TabIndex = 1 then
begin
sql.Add(' exists(select StopFlag from Cloth_JiTai B inner join cloth_main X on B.mainid=X.mainid where B.CarNo=A.MCNO and B.StopFlag=0)');
end;
sql.Add(' order by MCCJ,MCNO');
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmJTSel.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmJTSel.FormShow(Sender: TObject);
var
fsj: string;
begin
fsj := 'select Name=MCCJ from Machine Group by MCCJ ';
SInitComBoxBySql(ADOQueryTemp, MCCJ, False, fsj);
InitGrid();
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' select MCNO,MCCJ ');
sql.Add(' ,ZYConNo=(select Top 1 ConNo from Cloth_Main CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' ,C_Code=(select Top 1 C_Code from Cloth_Sub CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' ,C_CodeName=(select Top 1 C_CodeName from Cloth_Sub CM inner join Cloth_JiTai CJ on CM.MainId=CJ.MainId');
sql.Add(' where CJ.CarNo=A.MCNO and CJ.StopFlag=0)');
sql.Add(' from Machine A');
sql.Add(' where ');
if cxTabControl1.TabIndex = 0 then
begin
sql.Add(' not exists(select StopFlag from Cloth_JiTai B inner join cloth_main X on B.mainid=X.mainid where B.CarNo=A.MCNO and B.StopFlag=0)');
end
else if cxTabControl1.TabIndex = 1 then
begin
sql.Add(' exists(select StopFlag from Cloth_JiTai B inner join cloth_main X on B.mainid=X.mainid where B.CarNo=A.MCNO and B.StopFlag=0)');
end;
sql.Add(' AND 1<>1 order by MCCJ,MCNO');
Open;
end;
SCreateCDS20(ADOQueryCmd, ClientDataSet2);
SInitCDSData20(ADOQueryCmd, ClientDataSet2);
end;
procedure TfrmJTSel.ToolButton1Click(Sender: TObject);
begin
{if cxTabControl1.TabIndex<>0 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>õij<C3B5><C4B3>Ų<EFBFBD><C5B2><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ú<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end; }
if ClientDataSet2.ISEMPTY = FALSE then
begin
ReturnStr := '';
with ClientDataSet2 do
begin
First;
while not Eof do
begin
if ClientDataSet2.FieldByName('SSel').AsBoolean = True then
begin
if JiangeStr <> 99 then
begin
if FGStr <> '' then
ReturnStr := ReturnStr + Trim(ClientDataSet2.fieldbyname('MCNO').AsString) + FGStr
else
ReturnStr := ReturnStr + Trim(ClientDataSet2.fieldbyname('MCNO').AsString) + ';'
end
else
ReturnStr := ReturnStr + Trim(ClientDataSet2.fieldbyname('MCNO').AsString);
end;
Next;
end;
end;
if JiangeStr <> 99 then
ReturnStr := Copy(ReturnStr, 1, Length(ReturnStr) - 1);
ModalResult := 1;
FBIAOSHI := '1';
end
else
begin
if cxTabControl1.TabIndex <> 0 then
Exit;
if ClientDataSet1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
ReturnStr := '';
with ClientDataSet1 do
begin
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean = True then
begin
if JiangeStr <> 99 then
begin
if FGStr <> '' then
ReturnStr := ReturnStr + Trim(fieldbyname('MCNO').AsString) + FGStr
else
ReturnStr := ReturnStr + Trim(fieldbyname('MCNO').AsString) + ';'
end
else
ReturnStr := ReturnStr + Trim(fieldbyname('MCNO').AsString);
end;
Next;
end;
end;
if JiangeStr <> 99 then
ReturnStr := Copy(ReturnStr, 1, Length(ReturnStr) - 1);
ModalResult := 1;
FBIAOSHI := '2';
end;
end;
procedure TfrmJTSel.MCNOChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
end;
end;
procedure TfrmJTSel.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmJTSel.TV1DblClick(Sender: TObject);
begin
if cxTabControl1.TabIndex <> 0 then
begin
EXIT;
end;
if ClientDataSet2.Locate('MCNO', VarArrayOf([trim(ClientDataSet1.fieldbyname('MCNO').AsString)]), []) then
begin
Application.MessageBox('<27>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with ClientDataSet2 do
begin
APPEND;
ClientDataSet2.fieldbyname('SSEL').VALUE := TRUE;
ClientDataSet2.fieldbyname('MCNO').VALUE := ClientDataSet1.fieldbyname('MCNO').ASSTRING;
ClientDataSet2.fieldbyname('MCCJ').VALUE := ClientDataSet1.fieldbyname('MCCJ').ASSTRING;
ClientDataSet2.fieldbyname('ZYConNo').VALUE := ClientDataSet1.fieldbyname('ZYConNo').ASSTRING;
ClientDataSet2.fieldbyname('C_CodeName').VALUE := ClientDataSet1.fieldbyname('C_CodeName').ASSTRING;
ClientDataSet2.fieldbyname('C_Code').VALUE := ClientDataSet1.fieldbyname('C_Code').ASSTRING;
// ClientDataSet2.fieldbyname('').VALUE := ClientDataSet1.fieldbyname('').ASSTRING;
POST;
end;
end;
procedure TfrmJTSel.TV2DblClick(Sender: TObject);
begin
ClientDataSet2.delete;
end;
end.