D10gmBitao/D01针织生产计划/U_KnitPlanMachInPut.pas
DESKTOP-E401PHE\Administrator 630f9184a2 12345
2025-04-11 10:54:54 +08:00

428 lines
13 KiB
ObjectPascal
Raw Permalink 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_KnitPlanMachInPut;
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, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
U_BaseList, Vcl.Menus, U_BaseInput, System.ImageList, Vcl.ImgList;
type
TfrmKnitPlanMachInPut = class(TfrmBaseInput)
GPM_1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_1: TDataSource;
CDS_1: TClientDataSet;
DS_2: TDataSource;
CDS_2: TClientDataSet;
GPM_2: TcxGridPopupMenu;
Panel4: TPanel;
PM_1: TPopupMenu;
PM_2: TPopupMenu;
Panel5: TPanel;
Panel2: TPanel;
Label10: TLabel;
Label11: TLabel;
Button3: TButton;
edtMachNo: TEdit;
edtCardQty: TEdit;
Repairer: TBtnEditC;
Panel1: TPanel;
Label4: TLabel;
CarType: TEdit;
N2: TMenuItem;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
Tv1Column1: TcxGridDBColumn;
v1OrderNo: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
v1Column31: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Qty1: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
TV2Column1: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
TV2Column3: TcxGridDBColumn;
TV2Column4: TcxGridDBColumn;
TV2Column5: TcxGridDBColumn;
TV2Column6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label3: TLabel;
Label5: TLabel;
Label2: TLabel;
ConNo: TEdit;
C_Name: TEdit;
C_Code: TEdit;
ToolBar1: TToolBar;
ToolButton12: TToolButton;
TBClose: TToolButton;
Label7: TLabel;
BatchNo: TEdit;
TV2Column7: TcxGridDBColumn;
Panel3: TPanel;
Label1: TLabel;
Label12: TLabel;
Label13: TLabel;
Label6: TLabel;
edtName: TEdit;
edtCode: TEdit;
edtConNo: TEdit;
CardQty: TEdit;
Label8: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
procedure InitOrd();
procedure InitGrid1();
procedure InitGrid2();
{ Private declarations }
public
FMainId, FSubId: string;
{ Public declarations }
end;
var
frmKnitPlanMachInPut: TfrmKnitPlanMachInPut;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmKnitPlanMachInPut.InitOrd();
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.*,B.*');
sql.Add(' ,CardQty=OrdPiece-ISNULL((select sum(CardQty) from knit_Plan_Mach AA where AA.SubId=B.SubId),0)');
sql.Add(' from knit_Plan_Main A');
sql.Add(' inner join knit_Plan_Sub B on A.MainId=B.MainId ');
sql.Add(' where B.SubId=' + QuotedStr(FSubId));
Open;
end;
edtConNo.Text := ADOQueryTemp.FieldByName('ConNo').AsString;
edtCode.Text := ADOQueryTemp.FieldByName('C_Code').AsString;
edtName.Text := ADOQueryTemp.FieldByName('C_Name').AsString;
CardQty.Text := ADOQueryTemp.FieldByName('CardQty').AsString;
end;
procedure TfrmKnitPlanMachInPut.N2Click(Sender: TObject);
begin
with ADOQueryTemp do
begin
close;
sql.Clear;
sql.Add(' select * from knit_Plan_Card A where A.PRTCount>1 and A.PMID=' + quotedstr(trim(CDS_2.fieldbyname('PMID').AsString)));
Open;
end;
if not ADOQueryTemp.IsEmpty then
begin
Application.MessageBox('<27>Ѵ<EFBFBD>ӡ<EFBFBD><D3A1>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete knit_Plan_Mach ');
sql.Add('where PMID=' + quotedstr(trim(CDS_2.fieldbyname('PMID').AsString)));
sql.Add('delete knit_Plan_Card ');
sql.Add('where PMID=' + quotedstr(trim(CDS_2.fieldbyname('PMID').AsString)));
execsql;
end;
CDS_2.Delete;
end;
procedure TfrmKnitPlanMachInPut.InitGrid1();
var
fwhere: string;
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Machine A ');
sql.Add('LEFT join Knit_Plan_Mach B on A.MCNO=B.MCNo ');
sql.Add('LEFT JOIN Knit_Plan_Sub C on B.SubId=C.SubId ');
sql.Add('LEFT JOIN Knit_Plan_Main D on C.MainId=D.MainId ');
// sql.Add(' select A.*,B.*');
// sql.Add(' ,CardQty=OrdPiece-ISNULL((select sum(CardQty) from knit_Plan_Mach AA where AA.SubId=B.SubId),0)');
// sql.Add(' ,APPS=(select Count(*) from knit_Plan_Card AA where AA.MainId=A.MainId)');
// sql.Add(' ,JYPS=(select Count(*) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)');
// sql.Add(' ,JYQtyKg=(select sum(MJMaoZ) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)');
// sql.Add(' ,RKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''<27><><EFBFBD><EFBFBD>'')');
// sql.Add(' ,RKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''<27><><EFBFBD><EFBFBD>'')');
// sql.Add(' ,CKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''<27><><EFBFBD><EFBFBD>'')');
// sql.Add(' ,CKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''<27><><EFBFBD><EFBFBD>'')');
//SQL.Add(',CustomerNoName=(select CustomerNoName from JYOrderCon_Main_PB X where X.MainId=A.ConMainId) ');
// sql.Add(' from knit_Plan_Main A');
// sql.Add(' inner join knit_Plan_Sub B on A.MainId=B.MainId');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmKnitPlanMachInPut.InitGrid2();
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from Knit_Plan_Mach A ');
sql.Add(' where SubId= ' + QuotedStr(Trim(FSubId)));
sql.Add('order by filltime ');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_2);
SInitCDSData(ADOQueryTemp, CDS_2);
end;
procedure TfrmKnitPlanMachInPut.FormDestroy(Sender: TObject);
begin
inherited;
frmKnitPlanMachInPut := nil;
end;
procedure TfrmKnitPlanMachInPut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmKnitPlanMachInPut.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmKnitPlanMachInPut.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
end;
procedure TfrmKnitPlanMachInPut.TBRafreshClick(Sender: TObject);
begin
InitGrid1();
InitGrid2();
end;
procedure TfrmKnitPlanMachInPut.ConNoChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
end;
procedure TfrmKnitPlanMachInPut.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitOrd();
InitGrid1();
InitGrid2();
end;
procedure TfrmKnitPlanMachInPut.cxTabControl1Change(Sender: TObject);
begin
InitGrid1();
end;
procedure TfrmKnitPlanMachInPut.Button3Click(Sender: TObject);
var
maxno, maxPCId: string;
FStrs: TStringList;
i, j, MPCNo: integer;
begin
if edtMachNo.Text = '' then
Exit;
if StrToIntdef(edtCardQty.Text, 0) = 0 then
Exit;
try
FStrs := TStringList.Create();
ExtractStrings([';'], [' '], PChar(edtMachNo.Text), FStrs);
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select CardQty=OrdPiece-ISNULL((select sum(CardQty) from knit_Plan_Mach AA where AA.SubId=B.SubId),0)');
sql.Add(' from knit_Plan_Sub B ');
sql.Add(' where B.SubId=' + QuotedStr(Trim(FSubId)));
Open;
end;
if FStrs.Count * StrToIntdef(edtCardQty.Text, 0) > ADOQueryTemp.fieldbyname('CardQty').AsInteger then
begin
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
end;
for i := 0 to FStrs.Count - 1 do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select PCNo=isnull(Max(PCNo),0) from knit_Plan_Mach A ');
sql.Add('inner join Knit_Plan_Card B on A.PMID=B.PMID');
sql.Add('where A.SubId=' + Quotedstr(Trim(FSubId)));
sql.Add('and A.MCNO=' + Quotedstr(Trim(FStrs[i])));
Open;
end;
if ADOQueryTemp.IsEmpty then
MPCNo := 1
else
MPCNo := ADOQueryTemp.FieldByName('PCNo').AsInteger + 1;
if GetLSNo(ADOQueryTemp, maxno, 'PM', 'knit_Plan_Mach', 3, 1) = False then
begin
raise Exception.Create(<><C8A1><EFBFBD>Ż<EFBFBD>̨<EFBFBD><CCA8>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!');
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from knit_Plan_Mach where 1=2');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('MainId').Value := Trim(FMainId);
FieldByName('SubId').Value := Trim(FSubId);
FieldByName('PMID').Value := Trim(maxno);
FieldByName('MCNO').Value := Trim(FStrs[i]);
FieldByName('CardQty').Value := StrToIntdef(edtCardQty.Text, 0);
FieldByName('Repairid').Value := Repairer.TxtCode;
FieldByName('Repairer').Value := Repairer.Text;
FieldByName('BatchNo').Value := Trim(BatchNo.Text);
// FieldByName('CheJian').Value := Trim(MCheJian);
FieldByName('Filler').Value := Trim(DName);
Post;
end;
////////////////// <20><><EFBFBD>벼Ʊ //////////////////////
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' insert into Knit_Plan_Card(MainId,SubId,PMID,PCId,PCNo,APDate,Filler,BatchNo) values');
for j := 0 to StrToIntdef(edtCardQty.Text, 0) do
begin
if GetLSNo(ADOQueryTemp, maxPCId, 'PC', 'knit_Plan_Mach', 3, 1) = False then
begin
raise Exception.Create(<><C8A1>Ʊ<EFBFBD><C6B1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!');
end;
if j > 0 then
sql.Add(',');
sql.Add(' (' + Quotedstr(Trim(FMainId)));
sql.Add(',' + Quotedstr(Trim(FSubId)));
sql.Add(',' + Quotedstr(Trim(maxno)));
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(' )');
MPCNo := MPCNo + 1;
end;
// ShowMessage(SqL.Text);
ExecSQL;
end;
////////////////// <20><><EFBFBD>벼Ʊ //////////////////////
end;
ADOQueryCmd.Connection.CommitTrans;
FStrs.Free;
InitGrid1();
InitGrid2();
except
FStrs.Free;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmKnitPlanMachInPut.Tv1DblClick(Sender: TObject);
var
FStrs: TStringList;
begin
try
FStrs := TStringList.Create();
ExtractStrings([';'], [' '], PChar(edtMachNo.Text), FStrs);
ShowMessage(IntToStr(FStrs.IndexOf(Trim(CDS_1.FieldByName('MCNO').AsString))));
if FStrs.IndexOf(Trim(CDS_2.FieldByName('MCNO').AsString)) < 0 then
edtMachNo.Text := edtMachNo.Text + TRIM(CDS_1.FieldByName('MCNO').AsString) + ';';
finally
FStrs.Free
end;
// str4 := copy(str4, 1, Length(str4) - 1);
end;
procedure TfrmKnitPlanMachInPut.ToolButton12Click(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
end.