D10SZKaiXiYa/B02基础纱线仓库/U_YarnMX.pas
DESKTOP-E401PHE\Administrator 53e8f4820d 11
2025-03-01 10:55:52 +08:00

395 lines
10 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_YarnMX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit,
cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList,
dxScrollbarAnnotations, cxContainer,
cxMaskEdit, U_Basehelp, System.ImageList, Vcl.ImgList;
type
TfrmYarnMX = class(TfrmBasehelp)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
CDS_HZ: TClientDataSet;
PopupMenu1: TPopupMenu;
ToolButton1: TToolButton;
Label4: TLabel;
BanNo2: TcxTextEdit;
ToolButton2: TToolButton;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Label6: TLabel;
MXID: TcxTextEdit;
TV1Column1: TcxGridDBColumn;
TV1Column2: TcxGridDBColumn;
TV1Column3: TcxGridDBColumn;
TV1Column4: TcxGridDBColumn;
ToolButton3: TToolButton;
PopupMenu2: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
Panel2: TPanel;
ToolButton4: TToolButton;
Label1: TLabel;
XGBanNo: TcxTextEdit;
Button1: TButton;
Button2: TButton;
TV1Column5: TcxGridDBColumn;
Label2: TLabel;
BanID: TcxTextEdit;
ToolButton5: TToolButton;
TV1Column6: TcxGridDBColumn;
TV1Column7: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure MPRTCodeNameChange(Sender: TObject);
procedure SXBatchNOChange(Sender: TObject);
procedure FromCoNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure ToolButton2Click(Sender: TObject);
procedure FromCoNamePropertiesChange(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
private
canshu1, FStkName, canshu3: string;
procedure InitGrid();
{ Private declarations }
public
FBCId, FMXID: string;
{ Public declarations }
end;
var
frmYarnMX: TfrmYarnMX;
implementation
uses
U_DataLink, U_RTFun, U_LabelPrint;
{$R *.dfm}
procedure TfrmYarnMX.FormDestroy(Sender: TObject);
begin
inherited;
frmYarnMX := nil;
end;
procedure TfrmYarnMX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmYarnMX.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.*,BanNo2=cast(BanNO AS Varchar) ');
sql.Add(' from BS_Yarn_IO_MX A ');
sql.Add(' where BYIOID=''' + Trim(FBCId) + '''');
// ShowMessage(sql.text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmYarnMX.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYarnMX.Button1Click(Sender: TObject);
begin
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('update BS_Yarn_IO_MX set BanNO=' + trim(XGBanNo.text) + '');
Sql.Add(', BanID=(select top 1 BanID from BS_Yarn_IO_MX where BaoNO=' + trim(XGBanNo.text) + '');
sql.Add(' ) where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + quotedstr(FMXID) + ','','') X where BS_Yarn_IO_MX.MXID=X.RTValue ) ');
// ShowMessage(sql.text);
ExecSQL;
end;
FMXID := '';
XGBanNo.text := '';
cxGrid1.Enabled := true;
Panel2.Visible := false;
InitGrid();
end;
procedure TfrmYarnMX.Button2Click(Sender: TObject);
begin
FMXID := '';
XGBanNo.text := '';
cxGrid1.Enabled := true;
Panel2.Visible := false;
end;
procedure TfrmYarnMX.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmYarnMX.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmYarnMX.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(Self.Caption) + '2', Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
InitGrid();
end;
procedure TfrmYarnMX.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmYarnMX.MenuItem1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmYarnMX.MenuItem2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, false);
end;
procedure TfrmYarnMX.MPRTCodeNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnMX.SXBatchNOChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnMX.FromCoNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnMX.FromCoNamePropertiesChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnMX.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ModalResult := 1;
end;
procedure TfrmYarnMX.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(trim(Self.Caption) + '2', Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmYarnMX.ToolButton3Click(Sender: TObject);
var
MMXID: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
MMXID := '';
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while CDS_Main.Locate('SSel', True, []) do
begin
MMXID := MMXID + ',' + (Trim(CDS_Main.fieldbyname('MXID').AsString));
Edit;
FieldByName('SSel').Value := False;
Post;
end;
end;
CDS_Main.EnableControls;
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'BaoMX';
FFiltration1 := MMXID;
if ShowModal = 1 then
begin
end;
end;
finally
frmLabelPrint.Free;
end;
end;
procedure TfrmYarnMX.ToolButton4Click(Sender: TObject);
var
MMXID: string;
begin
MMXID := SelCDSKey(CDS_Main, ['MXID'])[0];
if MMXID = '' then
Exit;
FMXID := MMXID;
cxGrid1.Enabled := false;
Panel2.Visible := true;
end;
procedure TfrmYarnMX.ToolButton5Click(Sender: TObject);
var
MMXID: string;
begin
MMXID := SelCDSKey(CDS_Main, ['MXID'])[0];
if MMXID = '' then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('delete from BS_Yarn_IO_MX ');
sql.Add('where IOFlag =''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + quotedstr(MMXID) + ','','') X where BS_Yarn_IO_MX.MXID=X.RTValue ) ');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
// sql.Add('Update BS_Yarn_IO Set StkPiece=(select Sum(isnull(Piece,0)*IOQtyFlag) from BS_Yarn_IO A where A.STKID=BS_Yarn_IO.BYIOID and A.STKName =''ɴ<><C9B4>'')');
// sql.Add(',STKQty=(select Sum(isnull(Qty,0)*IOQtyFlag) from BS_Yarn_IO A where A.STKID=BS_Yarn_IO.BYIOID and A.STKName =''ɴ<><C9B4>'')');
// sql.Add(',Piece=(select count(*) from BS_Yarn_IO_MX A where A.BYIOID=BS_Yarn_IO.BYIOID )');
// sql.Add('where BYIOID=''' + Trim(FBCId) + '''');
sql.Add('Update BS_Yarn_IO Set StkPiece=(select count(*) from BS_Yarn_IO_MX X where X.BYIOID=A.BYIOID and X.IOFlag =''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and isnull(X.BaoQty,0) > 0 )');
sql.Add(',STKQty=(select Sum(BaoQty) from BS_Yarn_IO_MX X where X.BYIOID=A.BYIOID and X.IOFlag =''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and isnull(X.BaoQty,0) > 0 )');
sql.Add(',Piece=(select count(*) from BS_Yarn_IO_MX A where A.BYIOID=BS_Yarn_IO.BYIOID )');
sql.Add('from BS_Yarn_IO A');
sql.Add('where BYIOID=''' + Trim(FBCId) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim(<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ')));
sql.Add(',' + quotedstr(trim(MMXID)));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmYarnMX.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ModalResult := 1;
end;
end.