D7myChuangpin/创品码单管理(FMMD.dll)/U_DJBCKOutList.pas

468 lines
13 KiB
ObjectPascal
Raw Normal View History

2024-07-23 20:18:14 +08:00
unit U_DJBCKOutList;
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,
RM_BarCode, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmDJBCKOutList = 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;
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;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label12: TLabel;
Label6: TLabel;
Label7: TLabel;
SPName: TEdit;
FactoryName: TEdit;
SPCode: TEdit;
SPSpec: TEdit;
CRType: TComboBox;
SPCF: TEdit;
QCorderNo: TEdit;
Label10: TLabel;
CKorderNo: TEdit;
Label11: TLabel;
FromFactoryName: TEdit;
Label13: TLabel;
ToFactoryName: TEdit;
Label9: TLabel;
Label14: TLabel;
RCGangNo: TEdit;
ConNoHZ: TEdit;
v1Column15: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
v1SSel: TcxGridDBColumn;
RM1: TRMGridReport;
RMBarCodeObject1: TRMBarCodeObject;
v1ConNoHZ: TcxGridDBColumn;
CDS_Print: TClientDataSet;
RM2: TRMGridReport;
v1BPType: TcxGridDBColumn;
v1SPCF: TcxGridDBColumn;
v1SPCode: TcxGridDBColumn;
v1FZSPID: TcxGridDBColumn;
Label15: TLabel;
FZSPID: 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 SPNameChange(Sender: TObject);
procedure SPCodeChange(Sender: TObject);
procedure SPCodeKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure PRTColorChange(Sender: TObject);
procedure PRTColorNoChange(Sender: TObject);
procedure PRTHXChange(Sender: TObject);
procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
private
canshu1, canshu2, canShu3: string;
procedure InitGrid();
{ Private declarations }
public
{ Public declarations }
end;
var
frmDJBCKOutList: TfrmDJBCKOutList;
implementation
uses
U_DataLink, U_RTFun, U_DJBCKOutPut;
{$R *.dfm}
procedure TfrmDJBCKOutList.FormDestroy(Sender: TObject);
begin
frmDJBCKOutList := nil;
end;
procedure TfrmDJBCKOutList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmDJBCKOutList.FormCreate(Sender: TObject);
begin
//cxGrid1.Align:=alClient;
canshu1 := Trim(DParameters1);
canshu2 := Trim(DParameters2);
canShu3 := trim(DParameters3);
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 30;
end;
procedure TfrmDJBCKOutList.InitGrid();
begin
ToolBar1.SetFocus;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.*');
sql.Add(' ,E.ConNo ConNoHZ');
sql.Add(' from CK_SXPB_CR A');
sql.add(' left join JYOrder_Main E on E.Mainid=A.OrdMainidCK');
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 CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add(' and isnull(CKName,'''')=''<27><><EFBFBD>첼'' ');
if Trim(canshu1) <> '<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add(' and A.Filler=''' + Trim(DName) + '''');
end;
SQL.Add(' order by A.CRTime desc');
Open;
//ShowMessage(SQL.Text);
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmDJBCKOutList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmDJBCKOutList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmDJBCKOutList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>PMD1', Tv1, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmDJBCKOutList.FormShow(Sender: TObject);
begin
if Trim(canshu2) = '<27>鿴' then
begin
TBAdd.Visible := False;
TBDel.Visible := False;
TBEdit.Visible := False;
end
else
begin
TBAdd.Visible := True;
TBDel.Visible := True;
TBEdit.Visible := True;
end;
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>PMD1', Tv1, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
//InitGrid();
end;
procedure TfrmDJBCKOutList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmDJBCKOutList.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 TfrmDJBCKOutList.SPNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmDJBCKOutList.SPCodeChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmDJBCKOutList.SPCodeKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
{if Length(Trim(SPID.Text))<4 then Exit;
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 SPID like :SXID');
Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%';
Open;
//ShowMessage(SQL.Text);
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end; }
end;
end;
procedure TfrmDJBCKOutList.N1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while not eof do
begin
if Trim(CDS_Main.fieldbyname('CRType').AsString) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
Edit;
FieldByName('SSel').Value := True;
Post;
end;
Next;
end;
end;
CDS_Main.EnableControls;
end;
procedure TfrmDJBCKOutList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmDJBCKOutList.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then
begin
if Trim(CDS_Main.fieldbyname('CRType').AsString) = 'ƽ<>Ƴ<EFBFBD><C6B3><EFBFBD>' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CR where FZSPID=');
sql.Add('(select SPID from CK_SXPB_CR where PYID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
sql.Add(' and isnull(CRType,'''')=''ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'')');
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;
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) + '''');
sql.Add(' Update CK_SXPB_CR Set MXKCKgQty=(select sum(isnull(KGQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
sql.add(',MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)');
sql.Add(' where SPID=''' + Trim(CDS_Main.fieldbyname('FZSPID').AsString) + '''');
if Trim(CDS_Main.fieldbyname('CRType').AsString) = 'ƽ<>Ƴ<EFBFBD><C6B3><EFBFBD>' then
begin
sql.Add(' delete CK_SXPB_CR where isnull(PYID,'''')=''' + Trim(CDS_Main.fieldbyname('PYID').AsString) + '''');
end;
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C9BE><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end;
CDS_Main.Delete;
end;
procedure TfrmDJBCKOutList.TBAddClick(Sender: TObject);
begin
try
frmDJBCKOutPut := TfrmDJBCKOutPut.Create(Application);
with frmDJBCKOutPut do
begin
FBCId := '';
FTYPE := trim(canShu3);
if Trim(FTYPE) = '<27><><EFBFBD><EFBFBD>' then
v1CRType.Options.Editing := False
else
v1CRType.Options.Editing := true;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmDJBCKOutPut.Free;
end;
end;
procedure TfrmDJBCKOutList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CR where FZSPID=');
sql.Add('(select SPID from CK_SXPB_CR where PYID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
sql.Add(' and isnull(CRType,'''')=''ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'')');
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>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
frmDJBCKOutPut := TfrmDJBCKOutPut.Create(Application);
with frmDJBCKOutPut do
begin
FTYPE := trim(canShu3);
FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString);
TBDel.Visible := False;
TBAdd.Visible := False;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
;
frmDJBCKOutPut.Free;
end;
end;
procedure TfrmDJBCKOutList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if CDS_Main.IsEmpty then
Exit;
if Trim(CDS_Main.fieldbyname('CRType').AsString) <> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
Tv1.OptionsSelection.CellSelect := False;
end
else
begin
Tv1.OptionsSelection.CellSelect := True;
end;
end;
procedure TfrmDJBCKOutList.PRTColorChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmDJBCKOutList.PRTColorNoChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmDJBCKOutList.PRTHXChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmDJBCKOutList.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
id: Integer;
begin
id := Tv1.GetColumnByFieldName('Ssel').Index;
if ARecord.Values[id] = true then
begin
AStyle := DataLink_FMMD.Red;
end;
end;
end.