D7zzXiangHeng/纱线仓库(CYSXCK.dll)/U_ShaKCHZList.pas
DESKTOP-E401PHE\Administrator 0026e9e246 0
2025-08-08 10:42:50 +08:00

457 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_ShaKCHZList;
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;
type
TfrmShaKCHZList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v2Column1: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label3: TLabel;
SPName: TEdit;
ToolButton2: TToolButton;
v1Column17: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
RMDBMain: TRMDBDataSet;
ToolButton3: TToolButton;
ADOQueryPrint: TADOQuery;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
CheckBox1: TCheckBox;
ToolButton4: TToolButton;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
ToolButton5: TToolButton;
Panel5: TPanel;
Label2: TLabel;
Button5: TButton;
Button6: TButton;
Edit2: TEdit;
CheckBox2: TCheckBox;
Label1: TLabel;
FACTORYNAME: TEdit;
Label4: TLabel;
spspec: TEdit;
Label5: TLabel;
batchno: TEdit;
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 N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SXBatchNOChange(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Tv1Column1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure CheckBox1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
{ Public declarations }
CANSHU1: string;
FCHEJIAN: string;
end;
var
frmShaKCHZList: TfrmShaKCHZList;
implementation
uses
U_DataLink, U_RTFun, U_SXCKInPut, U_ShaOutList, U_ShaKCList, U_ZDYHelp;
{$R *.dfm}
procedure TfrmShaKCHZList.FormDestroy(Sender: TObject);
begin
frmShaKCHZList := nil;
end;
procedure TfrmShaKCHZList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmShaKCHZList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select * from V_SX_YJ where 1=1');
if CheckBox1.Checked = True then
begin
sql.Add('and DDYJ=1');
end;
SQL.Add('AND CHEJIAN=' + QuotedStr(FCHEJIAN));
// ShowMessage(SQL.Text);
if CheckBox2.Checked = False then
begin
sql.Add('and KCQty<>0');
// SQL.Add('having Sum(isnull(CRQtyFlag*Qty,0))<>0');
end;
// SQL.Add('having SUM(CRQtyFlag*qty)>0');
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmShaKCHZList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmShaKCHZList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmShaKCHZList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', Tv1, <>ֿ߲<DFB2>');
Close;
end;
procedure TfrmShaKCHZList.FormShow(Sender: TObject);
begin
ReadCxGrid(<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', Tv1, <>ֿ߲<DFB2>');
if CANSHU1 = '<27><><EFBFBD><EFBFBD>' then
begin
ToolButton5.Visible := True;
end
else
begin
ToolButton5.Visible := False;
end;
//InitGrid();
end;
procedure TfrmShaKCHZList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmShaKCHZList.MPRTCodeNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmShaKCHZList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmShaKCHZList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmShaKCHZList.SXBatchNOChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmShaKCHZList.FactoryNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmShaKCHZList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
try
frmShaKCList := TfrmShaKCList.Create(Application);
with frmShaKCList do
begin
frmShaKCList.Align := alClient;
FDYFlag := '99';
frmShaKCList.SPName.Text := Trim(Self.CDS_Main.fieldbyname('SPName').AsString);
frmShaKCList.SPSpec.Text := Trim(Self.CDS_Main.fieldbyname('SPSpec').AsString);
frmShaKCList.BatchNo.Text := Trim(Self.CDS_Main.fieldbyname('BatchNo').AsString);
frmShaKCList.SXPinPai.Text := Trim(Self.CDS_Main.fieldbyname('SXPinPai').AsString);
if ShowModal = 1 then
begin
end;
end;
finally
frmShaKCList.Free;
end;
end;
procedure TfrmShaKCHZList.ToolButton2Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
TcxGridToExcel(<>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmShaKCHZList.ToolButton1Click(Sender: TObject);
var
filepath: string;
begin
try
filepath := ExtractFilePath(Application.ExeName) + 'report\ɴ<>߿<EFBFBD><DFBF><EFBFBD><E6B1A8>.rmf';
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add(' select FactoryName,SPName,SPSpec,BatchNo,SXPinPai,SPNameGYS,SPColor');
sql.Add(' ,RKPiQty=Sum(isnull(PiQty,0)),RKQty=Sum(isnull(Qty,0))');
sql.Add(' ,KCPiQty=Sum(isnull(MXKCPiQty,0)),KCQty=Sum(isnull(MXKCQty,0))');
sql.Add(' ,CKPiQty=Sum(isnull(PiQty,0))-Sum(isnull(MXKCPiQty,0)),CKQty=Sum(isnull(Qty,0))-Sum(isnull(MXKCQty,0))');
sql.Add(' from CK_SXPB_CR A where isnull(CKName,'''')='<><C9B4>'' ');
SQL.Add(' and A.CRFlag=''<27><><EFBFBD><EFBFBD>'' and MXKCQty>0 and ZFFlag=0 ');
SQL.Add(' Group by FactoryName,SPName,SPSpec,BatchNo,SXPinPai,SPNameGYS,SPColor');
Open;
end;
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>[' + filepath + ']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_IConError);
exit;
end;
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmShaKCHZList.ToolButton3Click(Sender: TObject);
var
filepath: string;
begin
try
filepath := ExtractFilePath(Application.ExeName) + 'report\ɴ<>߻<EFBFBD><DFBB>ܱ<EFBFBD><DCB1><EFBFBD>.rmf';
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add(' select FactoryName,SPName,SPSpec');
sql.Add(' ,KCPiQty=Sum(isnull(MXKCPiQty,0)),KCQty=Sum(isnull(MXKCQty,0))');
sql.Add(' from CK_SXPB_CR A where isnull(CKName,'''')='<><C9B4>'' ');
SQL.Add(' and A.CRFlag=''<27><><EFBFBD><EFBFBD>'' and MXKCQty>0 and ZFFlag=0 ');
SQL.Add(' Group by FactoryName,SPName,SPSpec');
Open;
end;
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>[' + filepath + ']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_IConError);
exit;
end;
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmShaKCHZList.Tv1Column1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
F1, F2, f3: Double;
begin
F1 := StrToFloatDef((AViewInfo.GridRecord.Values[Tv1Column1.Index]), 0); //<2F><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>
F2 := StrToFloatDef((AViewInfo.GridRecord.Values[v2Column6.Index]), 0);
f3 := StrToFloatDef((AViewInfo.GridRecord.Values[Tv1Column2.Index]), 0);
// if F1 >= F2 then
// begin
// ACanvas.Brush.Color := clRed;
// end;
if f3 = 1 then
begin
ACanvas.Brush.Color := clRed;
end;
end;
procedure TfrmShaKCHZList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmShaKCHZList.ToolButton4Click(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'SXYCLName';
flagname := <><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
fnote := True;
V1Note.Caption := <><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmShaKCHZList.ToolButton5Click(Sender: TObject);
begin
if CDS_Main.IsEmpty = True then
Exit;
Panel5.Visible := True;
Edit2.Text := Trim(CDS_Main.fieldbyname('kcqty').AsString);
end;
procedure TfrmShaKCHZList.Button5Click(Sender: TObject);
var
MAXNO: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if GetLSNo(ADOQueryTemp, MAXNO, 'SR', 'CK_SXPB_CR', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('ȡɴ<C8A1><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_SXPB_CR');
sql.Add('where 1<>1');
open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('SPID').Value := Trim(MAXNO);
FieldByName('FZSPID').Value := Trim(MAXNO);
FieldByName('CKName').Value := <><C9B4>';
FieldByName('crtime').Value := SGetServerDate(ADOQueryTemp);
FieldByName('CRFlag').Value := '<27><><EFBFBD><EFBFBD>';
FieldByName('CRtype').Value := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('CRQtyFlag').Value := 1;
FieldByName('Filler').Value := Trim(DName);
FieldByName('QtyUnit').Value := 'KG';
FieldByName('ToFactoryName').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>';
FieldByName('SPName').Value := CDS_Main.fieldbyname('SPName').AsString;
FieldByName('FACTORYNAME').Value := CDS_Main.fieldbyname('FACTORYNAME').AsString;
FieldByName('spspec').Value := CDS_Main.fieldbyname('spspec').AsString;
FieldByName('batchno').Value := CDS_Main.fieldbyname('batchno').AsString;
FieldByName('QTY').Value := STRTOFLOATDEF(Edit2.Text, 0) - CDS_Main.fieldbyname('kcQty').AsFloat;
Post;
end;
with ADOQueryTemp 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('<27>޸<EFBFBD>ɴ<EFBFBD>߿<EFBFBD><DFBF><EFBFBD>')));
sql.Add(',' + quotedstr(trim('Ʒ<><C6B7>' + Trim(CDS_Main.fieldbyname('SPName').AsString) + '<27><>Ӧ<EFBFBD><D3A6>' + Trim(CDS_Main.fieldbyname('FACTORYNAME').AsString) + <><D4AD><EFBFBD><EFBFBD>:' + Trim(CDS_Main.fieldbyname('kcqty').AsString) + ';<3B>ֿ<EFBFBD><D6BF><EFBFBD>:' + Trim(edit2.Text))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
with CDS_Main do
begin
Edit;
CDS_Main.fieldbyname('kcqty').AsString := edit2.text;
Post;
end;
CDS_Main.EnableControls;
Panel5.Visible := False;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
// InitGrid();
except
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmShaKCHZList.CheckBox2Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmShaKCHZList.Button6Click(Sender: TObject);
begin
panel5.Visible := false;
end;
end.