D10SZKaiXiYa/E01梭织生产计划/U_TatCardInPut1.pas
2025-09-30 17:22:36 +08:00

428 lines
14 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_TatCardInPut1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox,
BtnEdit, cxPC, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu, dxDateRanges, U_BaseList, Vcl.Menus, U_BaseInput,
System.ImageList, Vcl.ImgList, dxScrollbarAnnotations, cxContainer, dxCore,
cxDateUtils, cxMaskEdit, cxDropDownEdit, dxSkinsCore, dxSkinsDefaultPainters,
cxImageList;
type
TfrmTatCardInPut1 = class(TfrmBaseInput)
GPM_1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADO_1: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_1: TDataSource;
CDS_1: TClientDataSet;
DS_2: TDataSource;
CDS_2: TClientDataSet;
GPM_2: TcxGridPopupMenu;
PM_1: TPopupMenu;
PM_2: TPopupMenu;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
Pnl_WBC: TPanel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label6: TLabel;
Label12: TLabel;
Label13: TLabel;
ConNo: TcxTextEdit;
MCNO: TcxTextEdit;
C_Name: TcxTextEdit;
C_Code: TcxTextEdit;
OrderNo: TcxTextEdit;
C_FinishLatitudeBatchNo: TcxTextEdit;
Panel2: TPanel;
Label10: TLabel;
Label11: TLabel;
Label7: TLabel;
Label4: TLabel;
Button3: TButton;
edtCardQty: TcxTextEdit;
BatchNo: TcxTextEdit;
isDY: TComboBox;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton12: TToolButton;
TBClose: TToolButton;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
v3Column8: TcxGridDBColumn;
v3Column1: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
v3Column6: TcxGridDBColumn;
v3Column2: TcxGridDBColumn;
v3Column16: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn8: TcxGridDBColumn;
cxGridDBColumn11: TcxGridDBColumn;
cxGridDBColumn12: TcxGridDBColumn;
cxGridDBColumn13: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxTabControl1: TcxTabControl;
Tv1Column13: TcxGridDBColumn;
Tv1Column14: TcxGridDBColumn;
Label3: TLabel;
YarnBatchNo: TcxTextEdit;
Label9: TLabel;
Label15: TLabel;
BegDate: TcxDateEdit;
EndDate: TcxDateEdit;
Repairer: TcxButtonEdit;
TV2Column1: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
Tv1Column15: TcxGridDBColumn;
Tv1Column16: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Label8: TLabel;
Note: TcxTextEdit;
TV2Column3: TcxGridDBColumn;
ToolButton2: TToolButton;
Tv1Column12: TcxGridDBColumn;
Tv1Column17: TcxGridDBColumn;
Tv1WB_YarnLen: TcxGridDBColumn;
Tv1WBCID: TcxGridDBColumn;
Tv1WBNo: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CustNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure RepairerDblClick(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure ToolButton2Click(Sender: TObject);
procedure ConNoPropertiesChange(Sender: TObject);
private
FPCIDS: string;
procedure InitGrid1();
procedure InitGrid2();
{ Private declarations }
public
// FMainId, FSubId, FWBCID: string;
{ Public declarations }
end;
var
frmTatCardInPut1: TfrmTatCardInPut1;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TatPlanSel;
{$R *.dfm}
procedure TfrmTatCardInPut1.InitGrid1();
begin
with ADO_1 do
begin
Close;
sql.Clear;
sql.Add(' select A.*,B.*,E.WBNo,E.Qty,CONVERT(VARCHAR(10),A.FillTime,120) AS APDate ');
sql.Add(' ,YAPPS=ISNULL((select count(*) from Tat_Plan_Card X where X.PMID=A.PMID ),0)'); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>
sql.Add(' ,YAPPS2=ISNULL((select count(*) from Tat_Plan_Card X where X.MainID=A.MainID ),0)'); //֯<><EFBFBD><ECB5A5><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>
sql.Add(' from Tat_Plan_Mach A');
sql.Add(' inner join Tat_plan_Sub B on B.Subid=A.Subid ');
sql.Add(' inner join Tat_plan_Main D on B.MainID=D.MainID ');
sql.Add(' left join Tat_WB_Card C on C.WBCID=A.WBCID ');
sql.Add(' left join Tat_Plan_OutPut E on C.WBCID=E.PCID ');
sql.Add(' where E.GlideName in(''<27><><EFBFBD><EFBFBD>'',''<27><>ͷ'')');
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' and not EXISTS (SELECT * from Tat_Plan_Card X where X.PMID =A.PMID) ');
sql.Add(' and isnull(D.Status,''0'') in (''0'',''9'') ');
end;
1:
begin
sql.Add(' and EXISTS (SELECT * from Tat_Plan_Card X where X.PMID =A.PMID) ');
sql.Add(' and isnull(D.Status,''0'') in (''0'',''9'') ');
sql.Add(' and CONVERT(VARCHAR(10),A.FillTime,120) >=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
sql.Add(' and CONVERT(VARCHAR(10),A.FillTime,120) <''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
end;
end;
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS(ADO_1, CDS_1);
SInitCDSData(ADO_1, CDS_1);
end;
procedure TfrmTatCardInPut1.InitGrid2();
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select * from Tat_Plan_Card A ');
sql.Add(' inner join Tat_plan_Sub B on B.Subid=A.Subid ');
sql.Add(' inner join Tat_Plan_Main C on A.MainId=C.MainId');
sql.Add(' where PMID= ' + QuotedStr(Trim(CDS_1.fieldbyname('PMID').AsString)));
// sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(FPCIDS) + ','','') X where A.PCID=X.RTValue ) ');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_2);
SInitCDSData(ADOQueryTemp, CDS_2);
end;
procedure TfrmTatCardInPut1.FormDestroy(Sender: TObject);
begin
inherited;
frmTatCardInPut1 := nil;
end;
procedure TfrmTatCardInPut1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTatCardInPut1.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTatCardInPut1.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(self.Caption) + 'Tv11', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(trim(self.Caption) + 'Tv22', Tv2, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
EndDate.Date := SGetServerDate(ADOQueryTemp);
BegDate.Date := EndDate.Date - 1;
InitGrid1();
InitGrid2();
end;
procedure TfrmTatCardInPut1.RepairerDblClick(Sender: TObject);
begin
Repairer.Text := '';
end;
procedure TfrmTatCardInPut1.ConNoPropertiesChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmTatCardInPut1.CustNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Repairer';
flagname := '<27><><EFBFBD>޹<EFBFBD>';
if ShowModal = 1 then
begin
Repairer.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmTatCardInPut1.cxTabControl1Change(Sender: TObject);
begin
InitGrid1();
end;
procedure TfrmTatCardInPut1.Button3Click(Sender: TObject);
var
MaxNo, MaxPCId, MPrtPCIDS: string;
i, j, MPCNo: integer;
begin
if StrToIntdef(edtCardQty.Text, 0) = 0 then
Exit;
MPrtPCIDS := '';
try
CDS_1.DisableControls;
with CDS_1 do
begin
First;
i := 0;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select PCNo=isnull(Max(PCNo),0),APPS=COUNT(PCNo),OrdPiece=MAX(OrdPiece) ');
sql.Add('from Tat_Plan_Card A right join Tat_Plan_Sub B on A.SubId=B.SubId');
sql.Add('where B.MainID=' + Quotedstr(Trim(CDS_1.FieldByName('MainID').AsString)));
// ShowMessage(sql.Text);
Open;
end;
// if ADOQueryTemp.FieldByName('APPS').AsInteger + StrToIntdef(edtCardQty.Text, 0) > ADOQueryTemp.FieldByName('OrdPiece').AsInteger then
// raise Exception.Create('<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
if ADOQueryTemp.IsEmpty then
MPCNo := 1
else
MPCNo := ADOQueryTemp.FieldByName('PCNo').AsInteger + 1;
////////////////// <20><><EFBFBD>벼Ʊ //////////////////////
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' insert into Tat_Plan_Card(MainId,SubId,WBCID,PMID,Loom,PCId,PCNo,PCDate,Filler,BatchNo,Repairer,YarnBatchNo,PieceLen,Note) values');
for j := 1 to StrToIntdef(edtCardQty.Text, 0) do
begin
if GetLSNo(ADOQueryTemp, MaxPCId, 'TPC', 'Tat_Plan_Card', 3, 1) = False then
begin
raise Exception.Create(<><C8A1>Ʊ<EFBFBD><C6B1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!');
end;
if j > 1 then
sql.Add(',');
sql.Add(' (' + Quotedstr(Trim(CDS_1.FieldByName('MainID').AsString)));
sql.Add(',' + Quotedstr(Trim(CDS_1.FieldByName('SubId').AsString)));
sql.Add(',' + Quotedstr(Trim(CDS_1.FieldByName('WBCID').AsString)));
sql.Add(',' + Quotedstr(Trim(CDS_1.FieldByName('PMID').AsString)));
sql.Add(',' + Quotedstr(Trim(CDS_1.FieldByName('MCNO').AsString)));
sql.Add(',' + Quotedstr(MaxPCId));
sql.Add(',' + Quotedstr(IntToStr(MPCNo)));
sql.Add(',getdate() ');
sql.Add(',' + Quotedstr(Trim(DName)));
sql.Add(',' + Quotedstr(Trim(BatchNo.Text)));
sql.Add(',' + Quotedstr(Trim(Repairer.Text)));
sql.Add(',' + Quotedstr(Trim(YarnBatchNo.Text)));
sql.Add(',' + Quotedstr(Trim(CDS_1.FieldByName('OrdPieceLen').AsString)));
sql.Add(',' + Quotedstr(Trim(Note.Text)));
sql.Add(' )');
MPCNo := MPCNo + 1;
MPrtPCIDS := MPrtPCIDS + Trim(MaxPCId) + ',';
end;
// ShowMessage(sql.text);
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
CDS_1.EnableControls;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
end;
////////////////// <20><><EFBFBD>벼Ʊ //////////////////////
end;
Next;
i := i + 1;
end;
end;
CDS_1.Locate('SSel', True, []);
CDS_1.EnableControls;
FPCIDS := FPCIDS + MPrtPCIDS;
if trim(isDY.text) = '<27><>' then
begin
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FPreviewPrint := False;
FLMType := 'TatPlanCard';
FFiltration1 := MPrtPCIDS;
if ShowModal = 1 then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update Tat_Plan_Card ');
sql.Add('set PRTer=' + quotedstr(DName));
sql.Add(', PRTCount=PRTCount+1');
sql.Add(', PRTDate=getdate()');
sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(MPrtPCIDS) + ','','') X where Tat_Plan_Card.PCID=X.RTValue ) ');
ExecSQL;
end;
end;
end;
finally
frmLabelPrint.Free;
end;
end;
InitGrid1();
InitGrid2();
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
InitGrid1();
InitGrid2();
end;
end;
procedure TfrmTatCardInPut1.ToolButton12Click(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv11', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(trim(self.Caption) + 'Tv22', Tv2, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmTatCardInPut1.ToolButton1Click(Sender: TObject);
begin
ToolBar1.SetFocus;
InitGrid1();
end;
procedure TfrmTatCardInPut1.ToolButton2Click(Sender: TObject);
begin
if ADO_1.Active = False then
Exit;
SDofilter(ADO_1, SGetFilters(Pnl_WBC, 1, 2));
SCreateCDS(ADO_1, CDS_1);
SInitCDSData(ADO_1, CDS_1);
end;
procedure TfrmTatCardInPut1.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
InitGrid2();
end;
end.