D7zzXiangHeng/机物料仓库(GYJWLCK.dll)/U_ShaOutList.pas
DESKTOP-E401PHE\Administrator 0026e9e246 0
2025-08-08 10:42:50 +08:00

382 lines
10 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_ShaOutList;
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, cxPC;
type
TfrmShaOutList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Label1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
TBDel: TToolButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
TBAdd: TToolButton;
TBEdit: TToolButton;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label12: TLabel;
SPName: TEdit;
FactoryName: TEdit;
SPID: TEdit;
SPSpec: TEdit;
CRType: TComboBox;
v1Column20: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
Label9: TLabel;
SXPinPai: TEdit;
TBZF: TToolButton;
cxTabControl1: TcxTabControl;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure SPNameChange(Sender: TObject);
procedure SPIDChange(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure SPSpecChange(Sender: TObject);
procedure TBZFClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
private
canshu1,canshu2:string;
procedure InitGrid();
{ Private declarations }
public
FFSPID:String;
{ Public declarations }
end;
//var
// frmShaOutList: TfrmShaOutList;
implementation
uses
U_DataLink,U_RTFun,U_ShaOutPut;
{$R *.dfm}
procedure TfrmShaOutList.FormDestroy(Sender: TObject);
begin
//frmShaOutList:=nil;
end;
procedure TfrmShaOutList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmShaOutList.FormCreate(Sender: TObject);
begin
//cxGrid1.Align:=alClient;
canshu1:=Trim(DParameters1);
canshu2:=Trim(DParameters2);
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
BegDate.DateTime:=EndDate.DateTime-90;
end;
procedure TfrmShaOutList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from CK_SXPB_CR A');
sql.add(' where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''');
sql.Add(' and A.CRTime<='''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+'''');
sql.Add(' and isnull(CKName,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''');
SQL.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if cxTabControl1.TabIndex=0 then
begin
Sql.Add(' and ZFFlag=0 ');
end else
if cxTabControl1.TabIndex=1 then
begin
Sql.Add(' and ZFFlag=1 ');
end;
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmShaOutList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmShaOutList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
end;
end;
procedure TfrmShaOutList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
Close;
end;
procedure TfrmShaOutList.FormShow(Sender: TObject);
begin
if Trim(Self.Caption)='<27><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
TBEdit.Visible:=False;
TBDel.Visible:=False;
end else
if Trim(Self.Caption)='<27><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD>ѯ' then
begin
TBAdd.Visible:=False;
TBDel.Visible:=False;
TBEdit.Visible:=False;
TBZF.Visible:=False;
cxTabControl1.Visible:=False;
end;
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
if Trim(FFSPID)<>'' then
begin
TBAdd.Visible:=False;
TBDel.Visible:=False;
TBEdit.Visible:=False;
TBZF.Visible:=False;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from CK_SXPB_CR A');
sql.Add(' where A.FZSPID='''+Trim(FFSPID)+'''');
SQL.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add(' and isnull(CKName,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
Open;
//ShowMessage(SQL.Text);
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
//InitGrid();
end;
procedure TfrmShaOutList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD>б<EFBFBD>',cxGrid2);
end;
procedure TfrmShaOutList.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 TfrmShaOutList.SPNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmShaOutList.SPIDChange(Sender: TObject);
begin
if Length(Trim(SPID.Text))<4 then
begin
if Trim(SPID.Text)<>'' then Exit;
end;
TBFind.Click;
end;
procedure TfrmShaOutList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main,True);
end;
procedure TfrmShaOutList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main,False);
end;
procedure TfrmShaOutList.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
if cxTabControl1.TabIndex<>0 then Exit;
if Trim(CDS_Main.fieldbyname('SPID').AsString)<>'' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' delete CK_SXPB_CR where SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''');
sql.Add(' Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID and A.ZFFlag=0)');
sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID and A.ZFFlag=0 )');
sql.Add(' where SPID='''+Trim(CDS_Main.fieldbyname('FZSPID').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C9BE><EFBFBD>쳣!','<27><>ʾ',0);
end;
end;
CDS_Main.Delete;
end;
procedure TfrmShaOutList.TBAddClick(Sender: TObject);
begin
try
frmShaOutPut:=TfrmShaOutPut.Create(Application);
with frmShaOutPut do
begin
FBCId:='';
if ShowModal=1 then
begin
Self.InitGrid();
end;
end;
finally
frmShaOutPut.Free;
end;
end;
procedure TfrmShaOutList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
if cxTabControl1.TabIndex<>0 then Exit;
try
frmShaOutPut:=TfrmShaOutPut.Create(Application);
with frmShaOutPut do
begin
FBCId:=Trim(CDS_Main.fieldbyname('SPID').AsString);
TBDel.Visible:=False;
TBAdd.Visible:=False;
if ShowModal=1 then
begin
Self.InitGrid();
end;
end;
finally
frmShaOutPut.Free;
end;
end;
procedure TfrmShaOutList.SPSpecChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmShaOutList.TBZFClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
if cxTabControl1.TabIndex<>0 then Exit;
if Trim(CDS_Main.fieldbyname('SPID').AsString)<>'' then
begin
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' UPdate CK_SXPB_CR Set ZFFlag=1,ZFTime=Getdate(),ZFPerson='''+Trim(DName)+'''');
sql.Add(' where SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+'''') ;
sql.Add(' Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID and A.ZFFlag=0)');
sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID and A.ZFFlag=0 )');
sql.Add(' where SPID='''+Trim(CDS_Main.fieldbyname('FZSPID').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!','<27><>ʾ',0);
end;
end;
CDS_Main.Delete;
end;
procedure TfrmShaOutList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
end.