D7zzXiangHeng/机物料仓库(GYJWLCK.dll)/U_ZZJWLRKList.pas

519 lines
13 KiB
ObjectPascal
Raw Normal View History

2025-08-08 10:42:50 +08:00
unit U_ZZJWLRKList;
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
TfrmZZJWLRKList = 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;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label12: TLabel;
SPName: TEdit;
FactoryName: TEdit;
SPID: TEdit;
SPSpec: TEdit;
CRType: TComboBox;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v1Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
Label10: TLabel;
SXPinPai: TEdit;
TBZF: TToolButton;
cxTabControl1: TcxTabControl;
v1Column7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
chkprice: TCheckBox;
TBPrice: TToolButton;
Label6: TLabel;
Note: TEdit;
v1Column11: TcxGridDBColumn;
Label7: TLabel;
FKNote: TEdit;
v1Column13: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
Label9: TLabel;
KuWei: TEdit;
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 N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure SPIDChange(Sender: TObject);
procedure SPSpecChange(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure TBZFClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TBPriceClick(Sender: TObject);
procedure chkpriceClick(Sender: TObject);
private
canshu1, canshu2, canshu3: string;
procedure InitGrid();
procedure SetStatus();
{ Private declarations }
public
{ Public declarations }
end;
//var
// frmShaRKList: TfrmShaRKList;
implementation
uses
U_DataLink, U_RTFun, U_ShaRKInPut;
{$R *.dfm}
procedure TfrmZZJWLRKList.SetStatus();
begin
TBAdd.Visible := False;
TBDel.Visible := False;
TBEdit.Visible := False;
TBZF.Visible := False;
cxTabControl1.Visible := False;
TBPrice.Visible := False;
if Trim(Self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
TBAdd.Visible := True;
TBDel.Visible := True;
TBEdit.Visible := True;
TBZF.Visible := True;
cxTabControl1.Visible := True;
end;
if Trim(Self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>Ȩ<EFBFBD><C8A8>)' then
begin
TBAdd.Visible := True;
TBDel.Visible := True;
TBEdit.Visible := True;
TBZF.Visible := True;
cxTabControl1.Visible := True;
end;
if Trim(Self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5A5><EFBFBD>޸<EFBFBD>' then
begin
TBPrice.Visible := True;
end;
end;
procedure TfrmZZJWLRKList.FormDestroy(Sender: TObject);
begin
//frmShaRKList:=nil;
end;
procedure TfrmZZJWLRKList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmZZJWLRKList.FormCreate(Sender: TObject);
begin
//cxGrid1.Align:=alClient;
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 30;
canshu1 := Trim(DParameters1);
canshu2 := Trim(DParameters2);
canshu3 := Trim(DParameters3);
end;
procedure TfrmZZJWLRKList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' ,JSMoney=price*Qty ');
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 chkprice.Checked then
SQL.Add(' and isnull(price,0)=0 ');
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;
if Trim(Self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
Sql.Add(' and Filler=' + quotedstr(Trim(DName)));
end;
SQL.Add(' order by CRTime desc');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZZJWLRKList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmZZJWLRKList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmZZJWLRKList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
Close;
end;
procedure TfrmZZJWLRKList.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
SetStatus();
//InitGrid();
end;
procedure TfrmZZJWLRKList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmZZJWLRKList.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 TfrmZZJWLRKList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmZZJWLRKList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmZZJWLRKList.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
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFTypeId=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EEB2BB>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
sql.Add(' and CRQtyFlag=-1');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>!', '<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
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C9BE><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end
else
begin
CDS_Main.Delete;
end;
end;
procedure TfrmZZJWLRKList.TBAddClick(Sender: TObject);
begin
try
frmShaRKInPut := TfrmShaRKInPut.Create(Application);
with frmShaRKInPut do
begin
FBCId := '';
frmShaRKInPut.canshu3 := Trim(Self.canshu3);
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmShaRKInPut.Free;
end;
end;
procedure TfrmZZJWLRKList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if cxTabControl1.TabIndex <> 0 then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFTypeId=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EEB2BB><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
frmShaRKInPut := TfrmShaRKInPut.Create(Application);
with frmShaRKInPut 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
frmShaRKInPut.Free;
end;
end;
procedure TfrmZZJWLRKList.SPIDChange(Sender: TObject);
begin
if Length(Trim(SPID.Text)) < 4 then
begin
if Trim(SPID.Text) <> '' then
Exit;
end;
TBFind.Click;
end;
procedure TfrmZZJWLRKList.SPSpecChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmZZJWLRKList.FactoryNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmZZJWLRKList.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
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFTypeId=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EEB2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
sql.Add(' and CRQtyFlag=-1 and ZFFlag=0 ');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if Application.MessageBox('<27><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼һ<C2BC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
end
else
begin
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
end;
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 FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end
else
begin
CDS_Main.Delete;
end;
end;
procedure TfrmZZJWLRKList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZZJWLRKList.TBPriceClick(Sender: TObject);
var
str: string;
dstr: Double;
begin
if CDS_Main.IsEmpty then
Exit;
if InputQuery('<27><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', str) then
begin
if TryStrToFloat(str, dstr) then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' UPdate CK_SXPB_CR Set Price=' + str);
sql.Add(' , Money=' + str + '*Qty ');
sql.Add(' where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
ExecSQL;
end;
Application.MessageBox(<>ϳɹ<CFB3>!', '<27><>ʾ', 0);
with CDS_Main do
begin
Edit;
FieldByName('Price').Value := dstr;
FieldByName('Money').Value := FieldByName('Qty').AsFloat * dstr;
end;
end
else
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
end;
end;
end;
procedure TfrmZZJWLRKList.chkpriceClick(Sender: TObject);
begin
InitGrid();
end;
end.