D10sxYilanbuyi/F02染色计划单/U_DyePlanCardInput.pas

2083 lines
64 KiB
ObjectPascal
Raw Normal View History

2025-06-06 13:56:41 +08:00
unit U_DyePlanCardInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, BtnEdit, ComCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ToolWin,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, DBClient,
cxCalendar, cxContainer, cxTextEdit, cxCurrencyEdit, cxDropDownEdit,
cxCheckBox, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, U_BaseInput, System.ImageList,
Vcl.ImgList, dxBarBuiltInMenu, cxGridCustomPopupMenu, cxGridPopupMenu,
2026-01-14 17:32:29 +08:00
cxButtonEdit, Vcl.Menus, cxPC, dxScrollbarAnnotations, Clipbrd;
2025-06-06 13:56:41 +08:00
type
TfrmDyePlanCardInput = class(TfrmBaseInput)
CDS_1: TClientDataSet;
DS_1: TDataSource;
ADO_Car: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
GPM_1: TcxGridPopupMenu;
Panel3: TPanel;
Panel5: TPanel;
Panel4: TPanel;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
V1SSel: TcxGridDBColumn;
V1Column1: TcxGridDBColumn;
V1Column5: TcxGridDBColumn;
TV1Column1: TcxGridDBColumn;
TV1Column5: TcxGridDBColumn;
TV1Column6: TcxGridDBColumn;
TV1Column7: TcxGridDBColumn;
V1Column2: TcxGridDBColumn;
V1Column3: TcxGridDBColumn;
TV1Column4: TcxGridDBColumn;
TV1Column3: TcxGridDBColumn;
V1Column6: TcxGridDBColumn;
V1Column4: TcxGridDBColumn;
TV1Column2: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ToolBar1: TToolBar;
ToolButton4: TToolButton;
ADOQueryMain: TADOQuery;
DS_2: TDataSource;
CDS_2: TClientDataSet;
PM_2: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
PM_1: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
GPM_2: TcxGridPopupMenu;
TV1Column10: TcxGridDBColumn;
ToolButton5: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
cxPageControl1: TcxPageControl;
cxTabSheet3: TcxTabSheet;
cxTabSheet4: TcxTabSheet;
Panel6: TPanel;
Label20: TLabel;
GPM_3: TcxGridPopupMenu;
CDS_3: TClientDataSet;
DS_3: TDataSource;
2026-01-14 17:32:29 +08:00
TbAbnormalKaiKa: TButton;
2025-06-06 13:56:41 +08:00
TV1Column12: TcxGridDBColumn;
TV1Column13: TcxGridDBColumn;
TV1Column14: TcxGridDBColumn;
TV1Column15: TcxGridDBColumn;
TV1Column16: TcxGridDBColumn;
TV1Column17: TcxGridDBColumn;
Label13: TLabel;
Label14: TLabel;
Label18: TLabel;
Label19: TLabel;
2026-01-14 17:32:29 +08:00
PCPiece1: TEdit;
PCQty1: TEdit;
PCPiece2: TEdit;
PCQty2: TEdit;
2025-06-06 13:56:41 +08:00
TV1Column18: TcxGridDBColumn;
TV1Column19: TcxGridDBColumn;
ADO_Order: TADOQuery;
CDS_Color: TClientDataSet;
pnlkpkk: TPanel;
Label1: TLabel;
Label7: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
PCTime: TDateTimePicker;
carnum: TcxCurrencyEdit;
PCPiece: TcxCurrencyEdit;
PCType: TComboBox;
PCQty: TEdit;
Button2: TButton;
pnlOrder: TPanel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
2025-09-08 14:31:40 +08:00
Tv1OrderNo: TcxGridDBColumn;
2025-06-06 13:56:41 +08:00
v2Column1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label23: TLabel;
OrderNo: TBtnEditA;
Label4: TLabel;
Label9: TLabel;
Label11: TLabel;
Label10: TLabel;
C_Width: TEdit;
C_GramWeight: TEdit;
C_COLORNO: TEdit;
Label24: TLabel;
OrdQty: TEdit;
OrdUnit: TEdit;
TV1Column20: TcxGridDBColumn;
TV1Column21: TcxGridDBColumn;
2025-08-01 15:42:49 +08:00
Label2: TLabel;
OrdPiece: TEdit;
Label3: TLabel;
DTMPSlist: TBtnEditA;
Label5: TLabel;
C_Name: TEdit;
2025-09-08 14:31:40 +08:00
ADO_PB: TADOQuery;
TV2Column1: TcxGridDBColumn;
2025-09-11 10:48:11 +08:00
Label6: TLabel;
DTMID: TEdit;
2025-10-16 19:49:06 +08:00
avgCard: TButton;
Label8: TLabel;
CINote: TEdit;
2025-11-12 17:32:20 +08:00
TV1KaZu: TcxGridDBColumn;
TV2C_description: TcxGridDBColumn;
C_description: TEdit;
Label12: TLabel;
TV1C_description: TcxGridDBColumn;
TV1CINote: TcxGridDBColumn;
C_COLOR: TEdit;
2026-01-14 17:32:29 +08:00
AbnormalKaZu: TBtnEditA;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridDBColumn7: TcxGridDBColumn;
cxGridDBColumn8: TcxGridDBColumn;
cxGridDBColumn9: TcxGridDBColumn;
cxGridDBColumn10: TcxGridDBColumn;
cxGridDBColumn11: TcxGridDBColumn;
cxGridDBColumn12: TcxGridDBColumn;
cxGridDBColumn13: TcxGridDBColumn;
cxGridDBColumn14: TcxGridDBColumn;
cxGridDBColumn15: TcxGridDBColumn;
cxGridDBColumn16: TcxGridDBColumn;
cxGridDBColumn17: TcxGridDBColumn;
cxGridDBColumn18: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label21: TLabel;
carNum1: TEdit;
Label22: TLabel;
carNum2: TEdit;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
KaZuQty: TEdit;
KaZuPiece: TEdit;
PM_3: TPopupMenu;
N3: TMenuItem;
N4: TMenuItem;
q1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Label29: TLabel;
OrderNo1: TEdit;
Tv3C_GramWeight: TcxGridDBColumn;
Tv3C_COLOR: TcxGridDBColumn;
Tv3C_COLORNO: TcxGridDBColumn;
Label30: TLabel;
PCType1: TComboBox;
Label31: TLabel;
DTMPSlist1: TBtnEditA;
Tv3CustName: TcxGridDBColumn;
Tv3CINote: TcxGridDBColumn;
DTMID1: TEdit;
Label32: TLabel;
Tv3note: TcxGridDBColumn;
TV2note: TcxGridDBColumn;
2025-06-06 13:56:41 +08:00
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
2026-01-14 17:32:29 +08:00
// procedure PCIDKeyPress(Sender: TObject; var Key: Char);
procedure TbAbnormalKaiKaClick(Sender: TObject);
2025-06-06 13:56:41 +08:00
procedure TV3DblClick(Sender: TObject);
procedure OrderNoBtnClick(Sender: TObject);
2025-11-12 17:32:20 +08:00
procedure C_COLORChange(Sender: TObject);
2026-01-14 17:32:29 +08:00
// procedure TV3Column1PropertiesEditValueChanged(Sender: TObject);
2025-08-01 15:42:49 +08:00
procedure DTMPSlistBtnClick(Sender: TObject);
2025-09-08 14:31:40 +08:00
procedure TV2DblClick(Sender: TObject);
2025-10-16 19:49:06 +08:00
procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
2025-11-12 17:32:20 +08:00
procedure avgCardClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
2026-01-14 17:32:29 +08:00
procedure AbnormalKaZuBtnClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure q1Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure DTMPSlist1BtnClick(Sender: TObject);
procedure PCPiece1Change(Sender: TObject);
procedure PCQty1Change(Sender: TObject);
2025-06-06 13:56:41 +08:00
private
2025-09-08 14:31:40 +08:00
FC_Code: string;
2025-06-06 13:56:41 +08:00
FRollNum: integer;
FGC_BatchNo, FGC_Piece, FGC_STKID, FGC_Position: string;
FFromCoNo, FFromCoName, FSaleser, FC_Name, fbzunit: string;
procedure InitCard();
procedure InitOrder();
procedure InitGreyClothStk();
2026-01-14 17:32:29 +08:00
procedure InitGreyClothStk1();
// procedure InitRepairCard(PPCID: string);
2025-06-06 13:56:41 +08:00
{ Private declarations }
2025-11-12 17:32:20 +08:00
procedure ShowDistributionResult(cardCount: Integer; pieceArray, qtyArray: array of Double);
procedure CalculateDistribution(totalValue: Double; cardCount: Integer; var resultArray: array of Double);
2025-06-06 13:56:41 +08:00
public
2025-09-08 14:31:40 +08:00
FWorkshop, FPCIDS, FMainID: string;
2025-06-06 13:56:41 +08:00
{ Public declarations }
end;
var
frmDyePlanCardInput: TfrmDyePlanCardInput;
implementation
uses
U_DataLink, U_ZDYHelp, U_RTFun, U_DyePlanForCardSel, U_DyeProcessSel,
2025-08-01 15:42:49 +08:00
U_DyeTechnicsSel, U_DyePlanCardSel, U_DyeGreyClothStkSel, U_DyeCardGlideEdit,
2026-01-14 17:32:29 +08:00
U_CraftSel, U_Dye_AbnormalCardSel;
2025-06-06 13:56:41 +08:00
{$R *.dfm}
procedure TfrmDyePlanCardInput.InitOrder();
var
fsj: string;
begin
with Ado_Order do
begin
close;
sql.Clear;
2025-09-08 14:31:40 +08:00
sql.Add('select A.*');
2025-08-01 15:42:49 +08:00
sql.Add('from Dye_Plan_Main A ');
2025-09-08 14:31:40 +08:00
// sql.Add('inner join Dye_Plan_Sub B on A.MainID=B.mainID ');
2025-08-01 15:42:49 +08:00
2025-06-06 13:56:41 +08:00
sql.Add('where A.MainID=''' + trim(FMainID) + ''' ');
2025-08-01 15:42:49 +08:00
// ShowMessage(sql.Text);
2025-06-06 13:56:41 +08:00
open;
end;
SCreateCDS(Ado_Order, CDS_Color);
SInitCDSData(Ado_Order, CDS_Color);
if not Ado_Order.IsEmpty then
begin
2025-09-08 14:31:40 +08:00
// fsj := 'select distinct(C_Color) name from Dye_Plan_sub where mainid= ' + QuotedStr(Trim(FMainID));
// SInitComBoxBySql(ADOQueryTmp, C_COLOR, False, fsj);
// SCSHData(Ado_Order, pnlOrder, 2);
OrderNo.Text := Trim(Ado_Order.FieldByName('OrderNo').AsString);
2025-06-06 13:56:41 +08:00
FC_Name := Trim(Ado_Order.FieldByName('C_Name').AsString);
FFromCoNo := Trim(Ado_Order.FieldByName('CustNo').AsString);
FFromCoName := Trim(Ado_Order.FieldByName('CustName').AsString);
FGC_BatchNo := Trim(Ado_Order.FieldByName('GC_BatchNo').AsString);
FGC_Piece := Trim(Ado_Order.FieldByName('GC_Piece').AsString);
FGC_STKID := Trim(Ado_Order.FieldByName('GC_STKID').AsString);
FGC_Position := Trim(Ado_Order.FieldByName('GC_Position').AsString);
2025-09-08 14:31:40 +08:00
// fbzunit := Trim(Ado_Order.FieldByName('bzunit').AsString);
2025-06-06 13:56:41 +08:00
// FRollNum :=Trim(Ado_Order.FieldByName('').AsString);
end;
end;
2026-01-14 17:32:29 +08:00
//procedure TfrmDyePlanCardInput.InitRepairCard(PPCID: string);
//begin
//
// with ADOQueryTmp do
// begin
// close;
// sql.Clear;
// sql.Add('select A.*');
// sql.Add(',GlideList=[dbo].[F_Dye_Card_GlideList](A.PCID) ');
// sql.Add(',MvPiece=PSC_StkPiece,MvQty=PSC_StkQty ');
// sql.Add('from Dye_Plan_Card A ');
// if TRIM(PPCID) = '' then
// sql.Add('where 1=2 ')
// else
// sql.Add('where PCID= ' + Quotedstr(trim(PPCID)));
//
// open;
// end;
// if TRIM(PPCID) = '' then
// begin
// SCreateCDS(ADOQueryTmp, CDS_3);
// end
// else
// begin
// SInitCDSData(ADOQueryTmp, CDS_3);
// end;
//
//end;
procedure TfrmDyePlanCardInput.InitGreyClothStk();
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
try
ADO_PB.DisableControls;
with ADO_PB do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.OrderNo ,A.QtyUnit,A.ioType,IOTime = min(A.IOTime)');
SQL.Add(' ,SUM(A.StkQty) as StkQty, SUM(A.StkPiece) as StkPiece ,A.note');
sql.add(' ,B.custNo,B.CustName,B.MainID');
SQL.Add(' ,C.C_Name,C.C_Code,C.C_Width,C.C_GramWeight,C.C_COLOR,C.C_COLORNO ');
SQL.Add(' ,C.F_Name,C.F_Width,C.Material,C.CINote,b.C_description,C.DTMID ');
sql.Add(' from BS_Cloth_IO A left join Dye_Plan_Main B on A.OrderNo= B.OrderNo ');
SQL.Add(' left join BS_Cloth_Info C on C.C_Name=B.C_Name');
SQL.Add(' where isnull(A.STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
sql.Add(' and not exists(select * from BS_Cloth_io X where X.StkQty=0 and X.StkPiece=0 and X.BCIOID = A.BCIOID) ');
if trim(OrderNo.Text) <> '' then
begin
SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo.Text)));
end;
SQL.Add(' group by A.OrderNo,A.QtyUnit,A.ioType,A.note,B.custNo,B.CustName,B.MainID');
SQL.Add(' ,C.C_Name,C.C_Code,C.C_Width,C.C_GramWeight,C.C_COLOR,C.C_COLORNO');
SQL.Add(' ,C.F_Name,C.F_Width,C.Material,C.CINote,B.C_description,C.DTMID ');
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS(ADO_PB, CDS_2);
SInitCDSData(ADO_PB, CDS_2);
2025-06-06 13:56:41 +08:00
2026-01-14 17:32:29 +08:00
// if (ADO_PB.FieldByName('DTMID').AsString = '') or (ADO_PB.FieldByName('DTMID').AsString = null) then
// begin
// Application.MessageBox('δ<><CEB4><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
// end;
// DTMID1.Text := ADO_PB.FieldByName('DTMID').AsString;
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// SQL.Add(' select * from Dye_Technics_Main where DTMID = ' + QuotedStr(Trim(DTMID1.Text)));
// Open;
// end;
// DTMPSlist1.Text := ADOQueryCmd.FieldByName('DTMPSlist').AsString;
2025-06-06 13:56:41 +08:00
2026-01-14 17:32:29 +08:00
with ADO_PB do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Cloth_IO A where isnull(STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' ');
SQL.Add(' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo1.Text)));
// ShowMessage(sql.Text);
Open;
end;
FGC_STKID := '';
ADO_PB.First;
while not ADO_PB.Eof do
begin
if (FGC_STKID <> '') and (FGC_STKID <> null) then
begin
FGC_STKID := ADO_PB.FieldByName('StkID').AsString + ',' + FGC_STKID;
end
else
begin
FGC_STKID := ADO_PB.FieldByName('StkID').AsString;
end;
ADO_PB.Next;
end;
finally
ADO_PB.EnableControls;
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
// try
// ADO_PB.DisableControls;
// with ADO_PB do
// begin
// Filtered := False;
// Close;
// sql.Clear;
// sql.Add(' select A.OrderNo, A.C_Name, max(A.F_Name) as F_Name , max(A.QtyUnit) as QtyUnit , max(A.Material) as Material,SUM(A.StkQty) as StkQty, SUM(A.StkPiece) as StkPiece ');
// sql.Add(' ,IOTime = min(A.IOTime) ,IOType = max(A.ioType) ,C_Width = max(A.C_Width) ,F_Width = max(A.F_Width),C_description = max(B.C_description)');
// sql.Add(' from BS_Cloth_IO A left join Dye_Plan_Main B on A.OrderNo= B.OrderNo ');
// SQL.Add(' where isnull(A.STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
//// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
// if trim(OrderNo.Text) <> '' then
// begin
// SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo.Text)));
// end;
// SQL.Add(' group by A.OrderNo, A.C_Name');
//// ShowMessage(sql.Text);
// Open;
// end;
// SCreateCDS(ADO_PB, CDS_2);
// SInitCDSData(ADO_PB, CDS_2);
//
// with ADO_PB do
// begin
// Filtered := False;
// Close;
// sql.Clear;
// sql.Add(' select A.* ');
// sql.Add(' from BS_Cloth_IO A where isnull(STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' ');
// SQL.Add(' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
//// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
// SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo.Text)));
//// ShowMessage(sql.Text);
// Open;
// end;
// ADO_PB.First;
// while not ADO_PB.Eof do
// begin
// if (FGC_STKID <> '') and (FGC_STKID <> null) then
// begin
// FGC_STKID := ADO_PB.FieldByName('StkID').AsString + ',' + FGC_STKID;
// end
// else
// begin
// FGC_STKID := ADO_PB.FieldByName('StkID').AsString;
// end;
//
// ADO_PB.Next;
// end;
// finally
// ADO_PB.EnableControls;
// end;
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.InitGreyClothStk1();
2025-06-06 13:56:41 +08:00
begin
try
2025-09-08 14:31:40 +08:00
ADO_PB.DisableControls;
with ADO_PB do
begin
Filtered := False;
Close;
sql.Clear;
2026-01-14 17:32:29 +08:00
sql.Add(' select A.OrderNo ,A.QtyUnit,A.ioType,IOTime = min(A.IOTime)');
SQL.Add(' ,SUM(A.StkQty) as StkQty, SUM(A.StkPiece) as StkPiece ,A.note');
sql.add(' ,B.custNo,B.CustName,B.MainID');
SQL.Add(' ,C.C_Name,C.C_Code,C.C_Width,C.C_GramWeight,C.C_COLOR,C.C_COLORNO ');
SQL.Add(' ,C.F_Name,C.F_Width,C.Material,C.CINote,b.C_description,C.DTMID ');
2025-11-12 17:32:20 +08:00
sql.Add(' from BS_Cloth_IO A left join Dye_Plan_Main B on A.OrderNo= B.OrderNo ');
2026-01-14 17:32:29 +08:00
SQL.Add(' left join BS_Cloth_Info C on C.C_Name=B.C_Name');
2025-11-12 17:32:20 +08:00
SQL.Add(' where isnull(A.STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
2025-09-08 14:31:40 +08:00
// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
2026-01-14 17:32:29 +08:00
if trim(OrderNo1.Text) <> '' then
begin
SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo1.Text)));
end;
SQL.Add(' group by A.OrderNo,A.QtyUnit,A.ioType,A.note,B.custNo,B.CustName,B.MainID');
SQL.Add(' ,C.C_Name,C.C_Code,C.C_Width,C.C_GramWeight,C.C_COLOR,C.C_COLORNO');
SQL.Add(' ,C.F_Name,C.F_Width,C.Material,C.CINote,B.C_description,C.DTMID ');
2025-09-08 14:31:40 +08:00
// ShowMessage(sql.Text);
Open;
end;
2026-01-14 17:32:29 +08:00
SCreateCDS(ADO_PB, CDS_3);
SInitCDSData(ADO_PB, CDS_3);
if (ADO_PB.FieldByName('DTMID').AsString = '') or (ADO_PB.FieldByName('DTMID').AsString = null) then
begin
Application.MessageBox(<><CEB4><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
end;
DTMID1.Text := ADO_PB.FieldByName('DTMID').AsString;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add(' select * from Dye_Technics_Main where DTMID = ' + QuotedStr(Trim(DTMID1.Text)));
Open;
end;
DTMPSlist1.Text := ADOQueryCmd.FieldByName('DTMPSlist').AsString;
2025-09-08 14:31:40 +08:00
with ADO_PB do
2025-06-06 13:56:41 +08:00
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Cloth_IO A where isnull(STKName,'''')=''Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>'' ');
SQL.Add(' and A.IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
2025-09-08 14:31:40 +08:00
// SQL.Add(' and EXISTS(select * from [dbo].[F_Tool_SplitString](' + quotedstr(FGC_STKID) + ','','' ) X where X.RTValue=A.StkId AND ISNULL(RTValue,'''')<>'''') ');
2026-01-14 17:32:29 +08:00
SQL.Add(' and A.OrderNo= ' + QuotedStr(trim(OrderNo1.Text)));
2025-06-06 13:56:41 +08:00
// ShowMessage(sql.Text);
Open;
end;
2026-01-14 17:32:29 +08:00
FGC_STKID := '';
2025-09-08 14:31:40 +08:00
ADO_PB.First;
while not ADO_PB.Eof do
begin
if (FGC_STKID <> '') and (FGC_STKID <> null) then
begin
FGC_STKID := ADO_PB.FieldByName('StkID').AsString + ',' + FGC_STKID;
end
else
begin
FGC_STKID := ADO_PB.FieldByName('StkID').AsString;
end;
ADO_PB.Next;
end;
2025-06-06 13:56:41 +08:00
finally
2025-09-08 14:31:40 +08:00
ADO_PB.EnableControls;
2025-06-06 13:56:41 +08:00
end;
end;
procedure TfrmDyePlanCardInput.MenuItem1Click(Sender: TObject);
begin
SelOKNo(CDS_1, True);
end;
procedure TfrmDyePlanCardInput.MenuItem2Click(Sender: TObject);
begin
SelOKNo(CDS_1, False);
end;
procedure TfrmDyePlanCardInput.N1Click(Sender: TObject);
begin
SelOKNo(CDS_2, True);
end;
procedure TfrmDyePlanCardInput.N2Click(Sender: TObject);
begin
SelOKNo(CDS_2, False);
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.N3Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_2.fieldbyname(TV2.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmDyePlanCardInput.N4Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmDyePlanCardInput.N5Click(Sender: TObject);
begin
SelOKNo(CDS_3, false);
end;
procedure TfrmDyePlanCardInput.N6Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_3.fieldbyname(TV3.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyePlanCardInput.OrderNoBtnClick(Sender: TObject);
begin
2025-08-02 16:25:04 +08:00
2025-06-06 13:56:41 +08:00
frmProductOrderListSel := TfrmProductOrderListSel.create(self);
with frmProductOrderListSel do
begin
FWorkshop := self.FWorkshop;
if ShowModal = 1 then
begin
fmainID := Order_Main.fieldbyname('mainID').asstring;
2025-09-08 14:31:40 +08:00
// fC_Code := Order_Main.fieldbyname('C_Code').asstring;
// fC_name := Order_Main.fieldbyname('C_name').asstring;
2025-06-06 13:56:41 +08:00
InitOrder();
InitGreyClothStk();
2025-10-16 19:49:06 +08:00
if CDS_2.IsEmpty then
begin
Application.MessageBox('<27>޲<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>棡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
end;
2025-08-01 15:42:49 +08:00
InitCard();
2025-06-06 13:56:41 +08:00
// initGlide();
end;
free;
end;
end;
2025-10-16 19:49:06 +08:00
procedure TfrmDyePlanCardInput.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
2025-12-09 17:30:34 +08:00
// with ADOQueryTmp do
// begin
// close;
// sql.Clear;
// sql.Add('exec P_OrderCR');
2025-10-16 19:49:06 +08:00
// ShowMessage(sql.Text);
2025-12-09 17:30:34 +08:00
// execsql;
// end;
2025-10-16 19:49:06 +08:00
fmainID := OrderNo.Text;
// fC_Code := Order_Main.fieldbyname('C_Code').asstring;
// fC_name := Order_Main.fieldbyname('C_name').asstring;
InitOrder();
InitGreyClothStk();
if CDS_2.IsEmpty then
begin
Application.MessageBox('<27>޲<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>棡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
end;
InitCard();
// initGlide();
end;
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.PCPiece1Change(Sender: TObject);
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PCPiece2.Text := IntToStr(StrToInt(KaZuPiece.Text) - StrToInt(PCPiece1.Text));
end;
2025-06-06 13:56:41 +08:00
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.PCQty1Change(Sender: TObject);
begin
PCQty2.Text := IntToStr(StrToInt(KaZuQty.Text) - StrToInt(PCQty1.Text));
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.q1Click(Sender: TObject);
begin
SelOKNo(CDS_3, True);
end;
//procedure TfrmDyePlanCardInput.PCIDKeyPress(Sender: TObject; var Key: Char);
//begin
// if Key = #13 then
// begin
// if Trim(PCID.Text) = '' then
// exit;
// InitRepairCard(PCID.Text);
// PCID.Text := '';
// end;
//end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyePlanCardInput.InitCard();
begin
with Ado_car do
begin
close;
sql.Clear;
2025-08-01 15:42:49 +08:00
sql.Add('select A.* ');
2025-06-06 13:56:41 +08:00
sql.Add(',GlideList=[dbo].[F_Dye_Card_GlideList](A.PCID) ');
sql.Add('from Dye_Plan_Card A ');
sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + Quotedstr(trim(FPCIDS)) + ', '';'' ) X where X.RTValue=A.PCID ) ');
2025-08-01 15:42:49 +08:00
// ShowMessage(sql.Text);
2025-06-06 13:56:41 +08:00
open;
end;
SCreateCDS(Ado_car, CDS_1);
SInitCDSData(Ado_car, CDS_1);
end;
procedure TfrmDyePlanCardInput.FormDestroy(Sender: TObject);
begin
inherited;
frmDyePlanCardInput := nil;
end;
2025-12-09 17:30:34 +08:00
procedure TfrmDyePlanCardInput.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
2025-11-12 17:32:20 +08:00
begin
if Key = VK_ESCAPE then // VK_ESCAPE <20><> ESC <20><><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
begin
Key := 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Close; // <20><><EFBFBD><EFBFBD> ModalResult := mrCancel;
end;
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.DTMPSlist1BtnClick(Sender: TObject);
begin
try
if OrderNo1.Text = '' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
exit;
end;
frmCraftSel := TfrmCraftSel.Create(Application);
with frmCraftSel do
begin
fcode := Self.CDS_3.FieldByName('C_Code').AsString;
fC_name := Self.CDS_3.FieldByName('C_Name').AsString;
if ShowModal = 1 then
begin
with frmCraftSel.CDS_1 do
begin
Self.DTMPSlist1.Text := frmCraftSel.CDS_1.FieldByName('DTMPSlist').Value;
Self.DTMID1.Text := frmCraftSel.CDS_1.FieldByName('DTMID').Value;
end;
end;
end;
finally
frmCraftSel.Free;
end;
end;
2025-08-01 15:42:49 +08:00
procedure TfrmDyePlanCardInput.DTMPSlistBtnClick(Sender: TObject);
begin
try
2025-08-02 16:25:04 +08:00
if OrderNo.Text = '' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
exit;
end;
2025-08-01 15:42:49 +08:00
frmCraftSel := TfrmCraftSel.Create(Application);
with frmCraftSel do
begin
fcode := Self.FC_Code;
2025-08-12 13:42:42 +08:00
fC_name := Self.fC_name;
2025-08-01 15:42:49 +08:00
if ShowModal = 1 then
begin
with frmCraftSel.CDS_1 do
begin
Self.DTMPSlist.Text := frmCraftSel.CDS_1.FieldByName('DTMPSlist').Value;
2025-09-11 10:48:11 +08:00
Self.DTMID.Text := frmCraftSel.CDS_1.FieldByName('DTMID').Value;
2025-08-01 15:42:49 +08:00
end;
end;
end;
finally
frmCraftSel.Free;
end;
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.AbnormalKaZuBtnClick(Sender: TObject);
begin
frmDye_AbnormalCardSel := TfrmDye_AbnormalCardSel.create(self);
with frmDye_AbnormalCardSel do
begin
if ShowModal = 1 then
begin
AbnormalKaZu.Text := frmDye_AbnormalCardSel.CDS_1.FieldByName('KaZu').AsString;
KaZuPiece.Text := frmDye_AbnormalCardSel.CDS_1.FieldByName('PCPiece').AsString;
KaZuQty.Text := frmDye_AbnormalCardSel.CDS_1.FieldByName('PCQty').AsString;
OrderNo1.Text := frmDye_AbnormalCardSel.CDS_1.FieldByName('OrderNo').AsString;
// fmainID := Order_Main.fieldbyname('mainID').asstring;
// fC_Code := Order_Main.fieldbyname('C_Code').asstring;
// fC_name := Order_Main.fieldbyname('C_name').asstring;
// InitOrder();
InitGreyClothStk1();
// if CDS_2.IsEmpty then
// begin
// Application.MessageBox('<27>޲<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>棡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
// end;
InitCard();
// initGlide();
end;
free;
end;
end;
2025-11-12 17:32:20 +08:00
procedure TfrmDyePlanCardInput.avgCardClick(Sender: TObject);
var
i, k: integer;
maxId, KZmaxID: string;
totalPieces, totalQty: Double;
pieceArray: array of Double;
qtyArray: array of Double;
2025-12-09 17:30:34 +08:00
mQRCode: string;
2025-11-12 17:32:20 +08:00
begin
// <20><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
if trim(C_Name.Text) = '' then
begin
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if (StrToFloatDef(PCPiece.Text, 0) + StrToFloatDef(PCQty.Text, 0)) = 0 then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>Ϊ<EFBFBD>㣡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
exit;
end;
if DTMPSlist.Text = '' then
begin
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
exit;
end;
if GetLSNo(ADOQueryCmd, KZmaxID, 'KZ', 'Dye_Plan_Card_KZ', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if strtointdef(trim(carNum.text), 0) <= 1 then
k := 1
else
k := strtointdef(trim(carNum.text), 0);
// <20><>ȡ<EFBFBD><C8A1>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
totalPieces := StrToFloatDef(PCPiece.Text, 0);
totalQty := StrToFloatDef(PCQty.Text, 0);
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetLength(pieceArray, k);
SetLength(qtyArray, k);
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ſ<EFBFBD><C5BF>ķ<EFBFBD><C4B7><EFBFBD>ֵ
CalculateDistribution(totalPieces, k, pieceArray);
CalculateDistribution(totalQty, k, qtyArray);
CDS_Color.Locate('C_Color', C_Color.Text, []);
CDS_1.Last;
for i := 0 to k - 1 do
begin
if GetLSNo(ADOQueryCmd, maxId, 'CZ', 'Dye_Plan_Card', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
FPCIDS := FPCIDS + maxId + ';';
mQRCode := FC_Name + '|' + OrderNo.Text + '|0|';
mQRCode := mQRCode + FormatDateTime('yyyymmddhhnnss', SGetServerDateTime(ADOQueryBaseTemp));
mQRCode := mQRCode + '|0|';
mQRCode := mQRCode + OrderNo.Text + '*0|0';
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('select * from Dye_Plan_Card A where 1=2');
Open;
Append;
FieldByName('OrderNo').Value := OrderNo.Text;
FieldByName('Mainid').Value := FMainid;
FieldByName('Filler').Value := trim(DName);
FieldByName('Workshop').Value := trim(FWorkshop);
FieldByName('PCType').Value := trim(PCType.Text);
FieldByName('PCID').Value := trim(maxId);
FieldByName('KaZu').Value := trim(KZmaxID);
FieldByName('PCTime').Value := formatdateTime('yyyy-MM-dd', PCTime.DateTime);
FieldByName('GC_BatchNo').Value := trim(FGC_BatchNo);
FieldByName('GC_Piece').Value := trim(FGC_Piece);
FieldByName('GC_STKID').Value := trim(FGC_STKID);
FieldByName('GC_Position').Value := trim(FGC_Position);
FieldByName('DTMPSlist').Value := trim(DTMPSlist.Text);
FieldByName('C_description').Value := trim(C_description.Text);
FieldByName('bzunit').Value := trim(Fbzunit);
FieldByName('CustNo').Value := trim(FFromCoNo);
FieldByName('CustName').Value := trim(FFromCoName);
FieldByName('Saleser').Value := trim(FSaleser);
FieldByName('C_Name').Value := trim(FC_Name);
FieldByName('C_Code').Value := trim(FC_Code);
FieldByName('C_GramWeight').Value := trim(C_GramWeight.Text);
FieldByName('C_Width').Value := trim(C_Width.Text);
FieldByName('C_Color').Value := trim(C_Color.Text);
FieldByName('PCUnit').Value := trim(OrdUnit.Text);
FieldByName('C_ColorNo').Value := trim(C_ColorNo.Text);
FieldByName('CINote').Value := trim(CINote.Text);
// ʹ<><CAB9>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FieldByName('PCPiece').Value := pieceArray[i];
FieldByName('PCQty').Value := qtyArray[i];
FieldByName('batchno').Value := INTTOSTR(k) + '-' + INTTOSTR(i + 1);
FieldByName('QRCode').Value := trim(mQRCode);
FieldByName('PrtCount').Value := 0;
post;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
2025-11-12 17:32:20 +08:00
Sql.Add('exec P_Dye_GreyCloth_Out ');
Sql.Add('@PCID=' + quotedstr(trim(maxId)));
Sql.Add(',@Filler=' + quotedstr(trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
FGC_STKID := '';
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
2025-12-09 17:30:34 +08:00
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ŷֿ<C5B7><D6BF><EFBFBD>
2025-12-09 17:30:34 +08:00
Sql.Add('exec P_Dye_Plan_UpdateOrderNo ');
Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID)));
Open;
2025-11-12 17:32:20 +08:00
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
Sql.Add('exec P_Dye_Cloth_GX @carno=' + QuotedStr(trim(KZmaxID)));
sql.add(',@dname=' + QuotedStr(trim(dname)));
SQL.Add(',@C_Name=' + QuotedStr(Trim(C_Name.Text)));
SQL.Add(',@OrderNo=' + QuotedStr(Trim(OrderNo.Text)));
SQL.Add(',@DTMID=' + QuotedStr(Trim(DTMID.Text)));
execsql;
end;
with ADOQueryCmd do
begin
SQL.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
SQL.Add('EXEC P_InsertGxToKaika @PCID = ' + quotedstr(trim(KZmaxID)));
ExecSQL;
end;
InitCard();
InitGreyClothStk();
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ShowDistributionResult(k, pieceArray, qtyArray);
end;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3BAAF>
procedure TfrmDyePlanCardInput.CalculateDistribution(totalValue: Double; cardCount: Integer; var resultArray: array of Double);
var
i: Integer;
baseValue, remainder: Double;
intBaseValue, intRemainder: Integer;
begin
if cardCount <= 0 then
Exit;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Frac(totalValue) = 0 then
begin
intBaseValue := Trunc(totalValue) div cardCount;
intRemainder := Trunc(totalValue) mod cardCount;
for i := 0 to cardCount - 1 do
begin
if i < intRemainder then
resultArray[i] := intBaseValue + 1
else
resultArray[i] := intBaseValue;
end;
end;
end;
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure TfrmDyePlanCardInput.ShowDistributionResult(cardCount: Integer; pieceArray, qtyArray: array of Double);
var
i: Integer;
distributionInfo: string;
begin
distributionInfo := '<27>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>' + IntToStr(cardCount) + '<27>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' + #13#10;
for i := 0 to cardCount - 1 do
begin
distributionInfo := distributionInfo + Format('<27><>%d: %.0fƥ, %.2f<EFBFBD><EFBFBD>' + #13#10, [i + 1, pieceArray[i], qtyArray[i]]);
end;
ShowMessage(distributionInfo);
end;
2026-01-14 17:32:29 +08:00
procedure TfrmDyePlanCardInput.TbAbnormalKaiKaClick(Sender: TObject);
2025-06-06 13:56:41 +08:00
var
2026-01-14 17:32:29 +08:00
i, k, k2: integer;
maxId, KZmaxID, KZmaxID2: string;
totalPieces, totalQty: Double;
totalPieces2, totalQty2: Double;
pieceArray1, pieceArray2: array of Double;
qtyArray1, qtyArray2: array of Double;
mQRCode: string;
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
// <20><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
// if trim(C_Name.Text) = '' then
// begin
// application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
// exit;
// end;
//
// if (StrToFloatDef(PCPiece.Text, 0) + StrToFloatDef(PCQty.Text, 0)) = 0 then
// begin
// application.MessageBox('<27><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>Ϊ<EFBFBD>㣡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
// exit;
// end;
//
// if DTMPSlist.Text = '' then
// begin
// application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
// exit;
// end;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if strtointdef(trim(carNum1.text), 0) <= 1 then
k := 1
else
k := strtointdef(trim(carNum1.text), 0);
if strtointdef(trim(carNum2.text), 0) <= 1 then
k2 := 1
else
k2 := strtointdef(trim(carNum2.text), 0);
// <20><>ȡ<EFBFBD><C8A1>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
totalPieces := StrToFloatDef(PCPiece1.Text, 0);
totalQty := StrToFloatDef(PCQty1.Text, 0);
totalPieces2 := StrToFloatDef(PCPiece2.Text, 0);
totalQty2 := StrToFloatDef(PCQty2.Text, 0);
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetLength(pieceArray1, k);
SetLength(qtyArray1, k);
SetLength(pieceArray2, k2);
SetLength(qtyArray2, k2);
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ſ<EFBFBD><C5BF>ķ<EFBFBD><C4B7><EFBFBD>ֵ
CalculateDistribution(totalPieces, k, pieceArray1);
CalculateDistribution(totalQty, k, qtyArray1);
CalculateDistribution(totalPieces2, k2, pieceArray2);
CalculateDistribution(totalQty2, k2, qtyArray2);
// CDS_Color.Locate('C_Color', C_Color.Text, []);
// CDS_1.Last;
if GetLSNo(ADOQueryCmd, KZmaxID, 'KZ', 'Dye_Plan_Card_KZ', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
2025-06-06 13:56:41 +08:00
Exit;
2026-01-14 17:32:29 +08:00
end;
2025-06-06 13:56:41 +08:00
2026-01-14 17:32:29 +08:00
if GetLSNo(ADOQueryCmd, KZmaxID2, 'KZ', 'Dye_Plan_Card_KZ', 3, 1) = False then
2025-06-06 13:56:41 +08:00
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
2026-01-14 17:32:29 +08:00
2025-06-06 13:56:41 +08:00
try
ADOQueryCmd.Connection.BeginTrans;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>
2025-06-06 13:56:41 +08:00
with ADOQueryCmd do
begin
Close;
2026-01-14 17:32:29 +08:00
SQL.Clear;
SQL.Add(' select * from Dye_Plan_Card where KaZu = ' + QuotedStr(Trim(AbnormalKaZu.Text)));
2025-06-06 13:56:41 +08:00
Open;
end;
2026-01-14 17:32:29 +08:00
ADOQueryCmd.First;
2025-06-06 13:56:41 +08:00
2026-01-14 17:32:29 +08:00
while not ADOQueryCmd.Eof do
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
with ADOQueryBaseCmd do
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
Close;
Sql.Clear;
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ҹ<EFBFBD><D2B8>¿<EFBFBD><C2BF><EFBFBD>
Sql.Add('exec P_Dye_GreyCloth_Out_Del ');
Sql.Add('@PCID=' + quotedstr(Trim(ADOQueryCmd.fieldbyname('PCID').AsString)));
// showMessage(sql.Text);
Open;
end;
if ADOQueryBaseCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryBaseCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Next;
end;
//<2F><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ͣ<EFBFBD><CDA3>
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update Dye_Plan_Card SET isStop=''1'' ');
sql.Add(' ,Status = ''10'' ');
sql.Add('where KaZu=' + quotedstr(trim(AbnormalKaZu.Text)));
ExecSQL;
end;
for i := 0 to k + k2 - 1 do
begin
if GetLSNo(ADOQueryCmd, maxId, 'CZ', 'Dye_Plan_Card', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
FPCIDS := FPCIDS + maxId + ';';
mQRCode := CDS_3.FieldByName('C_Name').AsString + '|' + OrderNo1.Text + '|0|';
mQRCode := mQRCode + FormatDateTime('yyyymmddhhnnss', SGetServerDateTime(ADOQueryBaseTemp));
mQRCode := mQRCode + '|0|';
mQRCode := mQRCode + OrderNo1.Text + '*0|0';
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('select * from Dye_Plan_Card A where 1=2');
Open;
Append;
FieldByName('OrderNo').Value := OrderNo1.Text;
FieldByName('Mainid').Value := Trim(CDS_3.FieldByName('MainID').AsString);
FieldByName('Filler').Value := trim(DName);
FieldByName('Workshop').Value := trim(FWorkshop);
FieldByName('PCType').Value := trim(PCType1.Text);
FieldByName('PCID').Value := trim(maxId);
if i > k - 1 then
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
FieldByName('KaZu').Value := trim(KZmaxID2);
end
else
begin
FieldByName('KaZu').Value := trim(KZmaxID);
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
// FieldByName('PCTime').Value := formatdateTime('yyyy-MM-dd', PCTime.DateTime);
FieldByName('PCTime').Value := SGetServerDateTime(ADOQueryBaseTemp);
// FieldByName('GC_BatchNo').Value := trim(FGC_BatchNo);
// FieldByName('GC_Piece').Value := trim(FGC_Piece);
FieldByName('GC_STKID').Value := trim(FGC_STKID);
// FieldByName('GC_Position').Value := trim(FGC_Position);
FieldByName('DTMPSlist').Value := trim(DTMPSlist1.Text);
FieldByName('C_description').Value := Trim(CDS_3.FieldByName('C_description').AsString);
// FieldByName('bzunit').Value := trim(Fbzunit);
FieldByName('CustNo').Value := Trim(CDS_3.FieldByName('CustNo').AsString);
FieldByName('CustName').Value := Trim(CDS_3.FieldByName('CustName').AsString);
// FieldByName('Saleser').Value := trim(FSaleser);
FieldByName('C_Name').Value := Trim(CDS_3.FieldByName('C_Name').AsString);
FieldByName('C_Code').Value := Trim(CDS_3.FieldByName('C_Code').AsString);
FieldByName('C_GramWeight').Value := Trim(CDS_3.FieldByName('C_GramWeight').AsString);
FieldByName('C_Width').Value := Trim(CDS_3.FieldByName('C_Width').AsString);
FieldByName('C_Color').Value := Trim(CDS_3.FieldByName('C_Color').AsString);
// FieldByName('PCUnit').Value := trim(OrdUnit.Text);
FieldByName('C_ColorNo').Value := Trim(CDS_3.FieldByName('C_ColorNo').AsString);
FieldByName('CINote').Value := Trim(CDS_3.FieldByName('CINote').AsString);
// ʹ<><CAB9>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if i > k - 1 then
begin
FieldByName('PCPiece').Value := pieceArray2[i - k];
FieldByName('PCQty').Value := qtyArray2[i - k];
FieldByName('batchno').Value := INTTOSTR(k2) + '-' + INTTOSTR(i + 1 - k);
end
else
begin
FieldByName('PCPiece').Value := pieceArray1[i];
FieldByName('PCQty').Value := qtyArray1[i];
FieldByName('batchno').Value := INTTOSTR(k) + '-' + INTTOSTR(i + 1);
end;
FieldByName('QRCode').Value := trim(mQRCode);
FieldByName('PrtCount').Value := 0;
FieldByName('FromPCID').Value := AbnormalKaZu.Text;//<2F><><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD>
post;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
Sql.Add('exec P_Dye_GreyCloth_Out ');
Sql.Add('@PCID=' + quotedstr(trim(maxId)));
Sql.Add(',@Filler=' + quotedstr(trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
FGC_STKID := '';
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
2025-06-06 13:56:41 +08:00
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ŷֿ<C5B7><D6BF><EFBFBD>
Sql.Add('exec P_Dye_Plan_UpdateOrderNo ');
// Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID2)));
Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID)));
2025-06-06 13:56:41 +08:00
Open;
end;
2026-01-14 17:32:29 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ŷֿ<C5B7><D6BF><EFBFBD>
Sql.Add('exec P_Dye_Plan_UpdateOrderNo ');
Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID2)));
// Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID)));
Open;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>
Sql.Add('exec P_Dye_Cloth_GX @carno=' + QuotedStr(trim(KZmaxID)));
sql.add(',@dname=' + QuotedStr(trim(dname)));
SQL.Add(',@C_Name=' + QuotedStr(Trim(CDS_3.FieldByName('C_Name').AsString)));
SQL.Add(',@OrderNo=' + QuotedStr(Trim(OrderNo1.Text)));
SQL.Add(',@DTMID=' + QuotedStr(Trim(DTMID1.Text)));
execsql;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>
Sql.Add('exec P_Dye_Cloth_GX @carno=' + QuotedStr(trim(KZmaxID2)));
sql.add(',@dname=' + QuotedStr(trim(dname)));
SQL.Add(',@C_Name=' + QuotedStr(Trim(CDS_3.FieldByName('C_Name').AsString)));
SQL.Add(',@OrderNo=' + QuotedStr(Trim(OrderNo1.Text)));
SQL.Add(',@DTMID=' + QuotedStr(Trim(DTMID1.Text)));
execsql;
end;
with ADOQueryCmd do
begin
SQL.Clear;
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SQL.Add('EXEC P_InsertGxToKaika @PCID = ' + quotedstr(trim(KZmaxID)));
ExecSQL;
end;
with ADOQueryCmd do
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
SQL.Clear;
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SQL.Add('EXEC P_InsertGxToKaika @PCID = ' + quotedstr(trim(KZmaxID2)));
ExecSQL;
2025-06-06 13:56:41 +08:00
end;
2026-01-14 17:32:29 +08:00
InitCard();
InitGreyClothStk1();
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ShowDistributionResult(k, pieceArray1, qtyArray1);
ShowDistributionResult(k2, pieceArray2, qtyArray2);
2025-06-06 13:56:41 +08:00
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
2026-01-14 17:32:29 +08:00
//var
// maxId: string;
//begin
// PCID.SetFocus;
// if not GetCard() then
// Exit;
//
// if GetLSNo(ADOQueryCmd, maxId, 'CZ', 'Dye_Plan_Card', 3, 1) = False then
// begin
// Application.MessageBox('ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
// Exit;
// end;
// FPCIDS := FPCIDS + maxId + ';';
// try
// ADOQueryCmd.Connection.BeginTrans;
// CDS_3.DisableConstraints;
//
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('select * from Dye_Plan_Card A where 1=2');
// Open;
// Append;
// FieldByName('Filler').Value := trim(DName);
// FieldByName('Workshop').Value := trim(FWorkshop);
// FieldByName('PCType').Value := trim(RePCType.Text);
// FieldByName('PCID').Value := trim(maxId);
// FieldByName('PCTime').Value := formatdateTime('yyyy-MM-dd', now());
// FieldByName('GC_BatchNo').Value := '';
// FieldByName('GC_Piece').Value := '';
// FieldByName('GC_STKID').Value := '';
// FieldByName('GC_Position').Value := '';
// FieldByName('C_Name').Value := trim(CDS_3.FieldByName('C_Name').AsString);
// FieldByName('CustNo').Value := trim(CDS_3.FieldByName('CustNo').AsString);
// FieldByName('CustName').Value := trim(CDS_3.FieldByName('CustName').AsString);
// FieldByName('MainId').Value := trim(CDS_3.FieldByName('MainId').AsString);
// FieldByName('SubId').Value := trim(CDS_3.FieldByName('SubId').AsString);
// FieldByName('C_GramWeight').Value := trim(Re_GramWeight.Text);
// FieldByName('C_Width').Value := trim(Re_Width.Text);
// FieldByName('C_Color').Value := trim(Re_Color.Text);
// FieldByName('PCUnit').Value := trim(ReUnit.Text);
// FieldByName('C_ColorNo').Value := trim(Re_ColorNo.Text);
// FieldByName('PCPiece').Value := 0;
// FieldByName('PCQty').Value := 0;
// post;
// end;
//
// with CDS_3 do
// begin
// first;
// while not Eof do
// begin
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('select * from Dye_Plan_Card_Move A where 1=2');
// Open;
// Append;
// FieldByName('Filler').Value := trim(DName);
// FieldByName('FromID').Value := trim(CDS_3.FieldByName('PCID').AsString);
// FieldByName('ToID').Value := maxId;
// FieldByName('MvPiece').Value := CDS_3.FieldByName('MvPiece').AsFloat;
// FieldByName('MvQty').Value := CDS_3.FieldByName('MvQty').AsFloat;
// post;
// end;
// Next;
// end;
// end;
//
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_Dye_Card_Move ');
// Sql.Add('@PCID=' + quotedstr(trim(maxId)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// begin
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// end;
// ADOQueryCmd.Connection.CommitTrans;
// CDS_3.EnableConstraints;
// except
// ADOQueryCmd.Connection.RollbackTrans;
// CDS_3.EnableConstraints;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// end;
//
// InitCard();
//// InitRepairCard('');
//end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyePlanCardInput.Button2Click(Sender: TObject);
var
i, k, fhxInt: integer;
2025-11-12 17:32:20 +08:00
maxId, maxno, KZmaxID: string;
2025-12-09 17:30:34 +08:00
mQRCode: string;
2025-06-06 13:56:41 +08:00
begin
2025-07-22 10:58:40 +08:00
2025-09-08 14:31:40 +08:00
if trim(C_Name.Text) = '' then
begin
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
2025-06-06 13:56:41 +08:00
if (StrToFloatDef(PCPiece.Text, 0) + StrToFloatDef(PCQty.Text, 0)) = 0 then
begin
2025-08-01 15:42:49 +08:00
application.MessageBox('<27><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>Ϊ<EFBFBD>㣡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
exit;
end;
if DTMPSlist.Text = '' then
begin
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
2025-06-06 13:56:41 +08:00
exit;
end;
2025-11-12 17:32:20 +08:00
if GetLSNo(ADOQueryCmd, KZmaxID, 'KZ', 'Dye_Plan_Card_KZ', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
2025-06-06 13:56:41 +08:00
if strtointdef(trim(carNum.text), 0) <= 1 then
k := 1
else
k := strtointdef(trim(carNum.text), 0);
CDS_Color.Locate('C_Color', C_Color.Text, []);
CDS_1.Last;
for i := 1 to k do
begin
if GetLSNo(ADOQueryCmd, maxId, 'CZ', 'Dye_Plan_Card', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
FPCIDS := FPCIDS + maxId + ';';
2025-09-08 14:31:40 +08:00
2025-09-30 17:22:54 +08:00
// if not GetLSNo(ADOQueryCmd, maxno, 'PC', 'BS_Cloth_IO', 3, 1) then
// raise Exception.Create('ȡȾɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
2025-09-08 14:31:40 +08:00
2025-11-12 17:32:20 +08:00
mQRCode := FC_Name + '|' + OrderNo.Text + '|0|';
mQRCode := mQRCode + FormatDateTime('yyyymmddhhnnss', SGetServerDateTime(ADOQueryBaseTemp));
mQRCode := mQRCode + '|0|';
mQRCode := mQRCode + OrderNo.Text + '*0|0';
2025-06-06 13:56:41 +08:00
try
ADOQueryCmd.Connection.BeginTrans;
2025-11-12 17:32:20 +08:00
2025-06-06 13:56:41 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('select * from Dye_Plan_Card A where 1=2');
Open;
Append;
FieldByName('OrderNo').Value := OrderNo.Text;
2025-09-08 14:31:40 +08:00
// FieldByName('SubId').Value := CDS_Color.FieldByName('SubId').Value;
2025-06-06 13:56:41 +08:00
FieldByName('Mainid').Value := FMainid;
2025-09-30 17:22:54 +08:00
// FieldByName('BCIOID').Value := maxno;
2025-06-06 13:56:41 +08:00
FieldByName('Filler').Value := trim(DName);
FieldByName('Workshop').Value := trim(FWorkshop);
FieldByName('PCType').Value := trim(PCType.Text);
FieldByName('PCID').Value := trim(maxId);
2025-11-12 17:32:20 +08:00
FieldByName('KaZu').Value := trim(KZmaxID);
2025-06-06 13:56:41 +08:00
FieldByName('PCTime').Value := formatdateTime('yyyy-MM-dd', PCTime.DateTime);
FieldByName('GC_BatchNo').Value := trim(FGC_BatchNo);
FieldByName('GC_Piece').Value := trim(FGC_Piece);
FieldByName('GC_STKID').Value := trim(FGC_STKID);
FieldByName('GC_Position').Value := trim(FGC_Position);
2025-09-08 14:31:40 +08:00
FieldByName('DTMPSlist').Value := trim(DTMPSlist.Text);
2025-11-12 17:32:20 +08:00
FieldByName('C_description').Value := trim(C_description.Text);
2025-06-06 13:56:41 +08:00
FieldByName('bzunit').Value := trim(Fbzunit);
2025-11-12 17:32:20 +08:00
FieldByName('CINote').Value := trim(CINote.Text);
2025-06-06 13:56:41 +08:00
// FieldByName('STATUS').Value := '9';
FieldByName('CustNo').Value := trim(FFromCoNo);
FieldByName('CustName').Value := trim(FFromCoName);
FieldByName('Saleser').Value := trim(FSaleser);
FieldByName('C_Name').Value := trim(FC_Name);
2025-08-01 15:42:49 +08:00
FieldByName('C_Code').Value := trim(FC_Code);
2025-06-06 13:56:41 +08:00
FieldByName('C_GramWeight').Value := trim(C_GramWeight.Text);
FieldByName('C_Width').Value := trim(C_Width.Text);
FieldByName('C_Color').Value := trim(C_Color.Text);
FieldByName('PCUnit').Value := trim(OrdUnit.Text);
FieldByName('C_ColorNo').Value := trim(C_ColorNo.Text);
FieldByName('PCPiece').Value := StrtoIntDef(PCPiece.Text, 0);
FieldByName('PCQty').Value := StrtoFloatDef(PCQty.Text, 0);
2025-09-08 14:31:40 +08:00
// ShowMessage(FieldByName('PCQty').Value);
2025-06-06 13:56:41 +08:00
FieldByName('batchno').Value := INTTOSTR(k) + '-' + INTTOSTR(i);
2025-11-12 17:32:20 +08:00
FieldByName('QRCode').Value := trim(mQRCode);
FieldByName('PrtCount').Value := 0;
2025-06-06 13:56:41 +08:00
post;
end;
2025-09-08 14:31:40 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-09-08 14:31:40 +08:00
Sql.Add('exec P_Dye_GreyCloth_Out ');
Sql.Add('@PCID=' + quotedstr(trim(maxId)));
Sql.Add(',@Filler=' + quotedstr(trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
2025-10-16 19:49:06 +08:00
FGC_STKID := '';
2025-09-08 14:31:40 +08:00
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
2025-06-06 13:56:41 +08:00
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
2025-09-08 14:31:40 +08:00
2025-12-09 17:30:34 +08:00
end;
2025-10-16 19:49:06 +08:00
2025-12-09 17:30:34 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ŷֿ<C5B7><D6BF><EFBFBD>
2025-12-09 17:30:34 +08:00
Sql.Add('exec P_Dye_Plan_UpdateOrderNo ');
Sql.Add('@KaZu=' + quotedstr(Trim(KZmaxID)));
Open;
2025-06-06 13:56:41 +08:00
end;
2025-11-12 17:32:20 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
Sql.Add('exec P_Dye_Cloth_GX @carno=' + QuotedStr(trim(KZmaxID)));
sql.add(',@dname=' + QuotedStr(trim(dname)));
SQL.Add(',@C_Name=' + QuotedStr(Trim(C_Name.Text)));
SQL.Add(',@OrderNo=' + QuotedStr(Trim(OrderNo.Text)));
SQL.Add(',@DTMID=' + QuotedStr(Trim(DTMID.Text)));
execsql;
end;
with ADOQueryCmd do
begin
SQL.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
SQL.Add('EXEC P_InsertGxToKaika @PCID = ' + quotedstr(trim(KZmaxID)));
ExecSQL;
end;
2025-06-06 13:56:41 +08:00
InitCard();
InitGreyClothStk();
end;
2025-11-12 17:32:20 +08:00
procedure TfrmDyePlanCardInput.C_COLORChange(Sender: TObject);
2025-06-06 13:56:41 +08:00
begin
CDS_Color.Locate('C_Color', C_Color.Text, []);
C_COLOR.Text := CDS_Color.FieldByName('C_COLOR').AsString;
2025-09-08 14:31:40 +08:00
OrdQty.Text := CDS_Color.FieldByName('C_PlanQty').AsString;
OrdUnit.Text := CDS_Color.FieldByName('C_Unit').AsString;
2025-06-06 13:56:41 +08:00
C_COLORNO.Text := CDS_Color.FieldByName('C_COLORNO').AsString;
end;
procedure TfrmDyePlanCardInput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := cahide;
end;
procedure TfrmDyePlanCardInput.FormCreate(Sender: TObject);
begin
inherited;
PCTime.Date := DServerDate;
end;
procedure TfrmDyePlanCardInput.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(self.Caption + 'TV1', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(self.Caption + 'TV2', Tv2, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
2025-11-12 17:32:20 +08:00
ReadCxGrid(self.Caption + 'TV3', Tv3, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
2025-08-01 15:42:49 +08:00
InitOrder();
2025-06-06 13:56:41 +08:00
InitCard();
InitGreyClothStk();
2026-01-14 17:32:29 +08:00
// InitRepairCard('');
2025-11-12 17:32:20 +08:00
KeyPreview := True;
2025-06-06 13:56:41 +08:00
end;
procedure TfrmDyePlanCardInput.ToolButton1Click(Sender: TObject);
var
MPCIDS: string;
begin
if CDS_1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if Fieldbyname('Ssel').AsBoolean then
begin
MPCIDS := MPCIDS + trim(CDS_1.FieldByName('PCID').AsString) + ';';
end;
Next;
end;
EnableControls;
end;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select distinct GX=[dbo].[F_Dye_Card_GlideList](A.RTValue) from [dbo].[F_Tool_SplitString](' + quotedstr(MPCIDS) + ','';'') A ');
open;
end;
if ADOQueryTmp.RecordCount > 1 then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>༭!', '<27><>ʾ', 0);
Exit;
end;
try
frmDyeCardGlideEdit := TfrmDyeCardGlideEdit.Create(Application);
with frmDyeCardGlideEdit do
begin
FPCIDS := MPCIDS;
2025-07-22 09:36:42 +08:00
fname := SELF.CDS_1.FieldByName('c_name').AsString;
2025-06-06 13:56:41 +08:00
FWorkshop := self.FWorkshop;
if ShowModal = 1 then
begin
InitCard();
end;
end;
finally
frmDyeCardGlideEdit.Free;
end;
end;
procedure TfrmDyePlanCardInput.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(self.Caption + 'TV1', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(self.Caption + 'TV2', Tv2, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
2025-11-12 17:32:20 +08:00
WriteCxGrid(self.Caption + 'TV3', Tv3, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
2025-06-06 13:56:41 +08:00
end;
procedure TfrmDyePlanCardInput.ToolButton3Click(Sender: TObject);
begin
close;
end;
procedure TfrmDyePlanCardInput.ToolButton4Click(Sender: TObject);
begin
if CDS_1.IsEmpty then
exit;
if CDS_1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if Fieldbyname('Ssel').AsBoolean then
begin
try
ADOQueryCmd.Connection.BeginTrans;
2026-01-14 17:32:29 +08:00
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_BS_Cloth_Out_Del ');
// Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_1.fieldbyname('BCIOID').AsString)));
// Sql.Add(',@DCode=' + quotedstr(Trim(CDS_1.fieldbyname('C_Code').AsString)));
// Sql.Add(',@DName=' + quotedstr(Trim(CDS_1.fieldbyname('C_Name').AsString)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-09-08 14:31:40 +08:00
2025-06-06 13:56:41 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD>
2025-06-06 13:56:41 +08:00
Sql.Add('exec P_Dye_Card_Del ');
Sql.Add('@PCIDS=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
2025-09-08 14:31:40 +08:00
Sql.Add(',@DCode=' + quotedstr(Trim(CDS_1.fieldbyname('C_Code').AsString)));
Sql.Add(',@DName=' + quotedstr(Trim(CDS_1.fieldbyname('C_Name').AsString)));
2025-06-06 13:56:41 +08:00
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-11-12 17:32:20 +08:00
with ADOQueryTmp do
2025-09-08 14:31:40 +08:00
begin
Close;
2025-11-12 17:32:20 +08:00
SQL.Clear;
SQL.Add('select * from Dye_Plan_card where KaZu = ' + QuotedStr(Trim(CDS_1.FieldByName('KaZu').AsString)));
Open;
end;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ſ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
if ADOQueryTmp.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('delete from Dye_Plan_glide where PCID = ' + quotedstr(Trim(CDS_1.fieldbyname('KaZu').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//ɾ<><C9BE><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
Sql.Add('delete from Bs_Cloth_GY_Main_Kaika where PCID = ' + quotedstr(Trim(CDS_1.fieldbyname('KaZu').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//ɾ<><C9BE><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-11-12 17:32:20 +08:00
Sql.Add('delete from Bs_Cloth_GY_Sub_Kaika where PCID = ' + quotedstr(Trim(CDS_1.fieldbyname('KaZu').AsString)));
ExecSQL;
end;
2025-09-08 14:31:40 +08:00
end;
2026-01-14 17:32:29 +08:00
if (Trim(CDS_1.fieldbyname('PCType').AsString) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then
2025-06-06 13:56:41 +08:00
begin
2025-09-08 14:31:40 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ҹ<EFBFBD><D2B8>¿<EFBFBD><C2BF><EFBFBD>
2025-09-08 14:31:40 +08:00
Sql.Add('exec P_Dye_GreyCloth_Out_Del ');
Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
Open;
end;
2025-10-16 19:49:06 +08:00
2025-06-06 13:56:41 +08:00
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
2026-01-14 17:32:29 +08:00
// else
// begin
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_Dye_Card_Move_Del ');
// Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// end;
2025-06-06 13:56:41 +08:00
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
end;
end;
2025-10-16 19:49:06 +08:00
2025-06-06 13:56:41 +08:00
Next;
EnableControls;
end;
2025-10-16 19:49:06 +08:00
with ADOQueryCmd do
begin
Close;
Sql.Clear;
2026-01-14 17:32:29 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ŷֿ<C5B7><D6BF><EFBFBD>
2025-10-16 19:49:06 +08:00
Sql.Add('exec P_Dye_Plan_UpdateOrderNo ');
2025-12-09 17:30:34 +08:00
Sql.Add('@KaZu=' + quotedstr(Trim(CDS_1.fieldbyname('KaZu').AsString)));
2025-10-16 19:49:06 +08:00
Open;
end;
2025-06-06 13:56:41 +08:00
InitCard();
InitGreyClothStk();
end;
except
CDS_1.EnableControls;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmDyePlanCardInput.ToolButton5Click(Sender: TObject);
2025-11-12 17:32:20 +08:00
var
HasSaved: Boolean; // <20><>¼<EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>
2025-06-06 13:56:41 +08:00
begin
2026-01-14 17:32:29 +08:00
OrderNo.SetFocus;
2025-11-12 17:32:20 +08:00
HasSaved := False; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>־
2025-06-06 13:56:41 +08:00
try
CDS_1.DisableControls;
CDS_1.First;
while not CDS_1.Eof do
begin
2025-11-12 17:32:20 +08:00
// if CDS_1.Fieldbyname('Ssel').AsBoolean then
// begin
ADOQueryCmd.Connection.BeginTrans;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from Dye_Plan_Card A');
sql.Add('where PCID=''' + trim(CDS_1.fieldbyname('PCID').AsString) + '''');
open;
edit;
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTmp);
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Dye_Plan_Card', 0);
post;
end;
if (Trim(CDS_1.fieldbyname('PCType').AsString) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') or (Trim(CDS_1.fieldbyname('PCType').AsString) = <><C7B0><EFBFBD><EFBFBD>') then
begin
2025-06-06 13:56:41 +08:00
with ADOQueryCmd do
begin
2025-11-12 17:32:20 +08:00
Close;
Sql.Clear;
Sql.Add('exec P_Dye_GreyCloth_Out_Del ');
Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
Open;
2025-06-06 13:56:41 +08:00
end;
2025-11-12 17:32:20 +08:00
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
with ADOQueryCmd do
2025-06-06 13:56:41 +08:00
begin
2025-11-12 17:32:20 +08:00
Close;
Sql.Clear;
Sql.Add('exec P_Dye_GreyCloth_Out ');
Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
Sql.Add(',@Filler=' + quotedstr(trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
2025-06-06 13:56:41 +08:00
begin
2025-11-12 17:32:20 +08:00
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
end
else
begin
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_Dye_Card_Move ');
Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
2025-06-06 13:56:41 +08:00
end;
end;
2025-11-12 17:32:20 +08:00
ADOQueryCmd.Connection.CommitTrans;
HasSaved := True; // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
except
ADOQueryCmd.Connection.RollbackTrans;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
2025-06-06 13:56:41 +08:00
end;
2025-11-12 17:32:20 +08:00
// end;
2025-06-06 13:56:41 +08:00
CDS_1.Next;
end;
CDS_1.EnableControls;
2025-11-12 17:32:20 +08:00
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ʾ
if HasSaved then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK + MB_ICONINFORMATION);
end;
2025-06-06 13:56:41 +08:00
InitCard();
InitGreyClothStk();
except
CDS_1.EnableControls;
2025-11-12 17:32:20 +08:00
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK + MB_ICONERROR);
2025-06-06 13:56:41 +08:00
end;
end;
2025-11-12 17:32:20 +08:00
//procedure TfrmDyePlanCardInput.ToolButton5Click(Sender: TObject);
//begin
//
// try
// CDS_1.DisableControls;
// CDS_1.First;
// while not CDS_1.Eof do
// begin
// if CDS_1.Fieldbyname('Ssel').AsBoolean then
// begin
// ADOQueryCmd.Connection.BeginTrans;
// try
// with ADOQueryCmd do
// begin
// close;
// sql.Clear;
// sql.Add('select * from Dye_Plan_Card A');
// sql.Add('where PCID=''' + trim(CDS_1.fieldbyname('PCID').AsString) + '''');
// open;
// edit;
// FieldByName('Editer').Value := Trim(DName);
// FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTmp);
// RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Dye_Plan_Card', 0);
// post;
// end;
//
// if (Trim(CDS_1.fieldbyname('PCType').AsString) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') or (Trim(CDS_1.fieldbyname('PCType').AsString) = 'ǰ<><C7B0><EFBFBD><EFBFBD>') then
// begin
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_Dye_GreyCloth_Out_Del ');
// Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_Dye_GreyCloth_Out ');
// Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
// Sql.Add(',@Filler=' + quotedstr(trim(DName)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// begin
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// end;
// end
// else
// begin
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_Dye_Card_Move ');
// Sql.Add('@PCID=' + quotedstr(Trim(CDS_1.fieldbyname('PCID').AsString)));
// Open;
// end;
// if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
// begin
// raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
// end;
// end;
//
// ADOQueryCmd.Connection.CommitTrans;
// except
// ADOQueryCmd.Connection.RollbackTrans;
// raise Exception.Create(PChar(Exception(ExceptObject).Message));
// end;
// end;
// CDS_1.Next;
// end;
// CDS_1.EnableControls;
// InitCard();
// InitGreyClothStk();
// except
// CDS_1.EnableControls;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// end;
//
//end;
2025-06-06 13:56:41 +08:00
2025-09-08 14:31:40 +08:00
procedure TfrmDyePlanCardInput.TV2DblClick(Sender: TObject);
begin
inherited;
2026-01-14 17:32:29 +08:00
if OrderNo.Text = '' then
begin
Exit;
end;
2025-09-08 14:31:40 +08:00
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add(' select * from BS_Cloth_info where C_Name = ' + QuotedStr(Trim(CDS_2.FieldByName('C_Name').Value)));
Open;
end;
C_Width.Text := ADOQueryTmp.FieldByName('C_Width').AsString;
C_GramWeight.Text := ADOQueryTmp.FieldByName('C_GramWeight').AsString;
C_Color.Text := ADOQueryTmp.FieldByName('C_Color').AsString;
C_COLORNO.Text := ADOQueryTmp.FieldByName('C_COLORNO').AsString;
C_Name.Text := ADOQueryTmp.FieldByName('C_Name').AsString;
2025-10-16 19:49:06 +08:00
CINote.Text := ADOQueryTmp.FieldByName('CINote').AsString;
2025-11-12 17:32:20 +08:00
PCType.Text := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
carnum.Text := '1';
PCPiece.Text := CDS_2.FieldByName('StkPiece').AsString;
PCQty.Text := CDS_2.FieldByName('STKQty').AsString;
C_description.Text := CDS_2.FieldByName('C_description').AsString;
2025-10-16 19:49:06 +08:00
if (ADOQueryTmp.FieldByName('DTMID').AsString = '') or (ADOQueryTmp.FieldByName('DTMID').AsString = null) then
begin
Application.MessageBox(<><CEB4><EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
end;
DTMID.Text := ADOQueryTmp.FieldByName('DTMID').AsString;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add(' select * from Dye_Technics_Main where DTMID = ' + QuotedStr(Trim(DTMID.Text)));
Open;
end;
DTMPSlist.Text := ADOQueryCmd.FieldByName('DTMPSlist').AsString;
FC_Code := ADOQueryTmp.FieldByName('C_Code').AsString;
FC_Name := ADOQueryTmp.FieldByName('C_Name').AsString;
2025-09-08 14:31:40 +08:00
// C_Width.Text := ADOQueryTmp.FieldByName('C_Width').Value;
// C_Width.Text := ADOQueryTmp.FieldByName('C_Width').Value;
end;
2026-01-14 17:32:29 +08:00
//procedure TfrmDyePlanCardInput.TV3Column1PropertiesEditValueChanged(Sender: TObject);
//var
// mvalue: string;
//begin
//
// mvalue := TcxTextEdit(Sender).EditingText;
// with CDS_3 do
// begin
// Edit;
// FieldByName('MvPiece').Value := STRTOFLOATDEF(mvalue, 0);
// if FieldByName('PSC_StkPiece').AsFloat > 0 then
// FieldByName('MvQty').Value := STRTOFLOATDEF(mvalue, 0) * (FieldByName('PSC_StkQty').AsFloat / FieldByName('PSC_StkPiece').AsFloat)
// else
// FieldByName('MvQty').Value := 0;
// Post;
//
// end;
// Tv3.Controller.EditingController.ShowEdit();
//end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyePlanCardInput.TV3DblClick(Sender: TObject);
begin
2025-10-16 19:49:06 +08:00
// CDS_3.Delete;
2025-06-06 13:56:41 +08:00
end;
end.