D10SZKaiXiYa/B03基础物料仓库/U_BSPrtDyeejInList.pas

411 lines
11 KiB
ObjectPascal
Raw Normal View History

2025-03-01 10:55:52 +08:00
unit U_BSPrtDyeejInList;
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,
cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList,
dxScrollbarAnnotations, cxContainer, cxProgressBar, FrameDateSel, dxSkinsCore,
dxSkinsDefaultPainters, dxSkinWXI;
type
TfrmBSPrtDyeejInList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
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;
P_name: TcxTextEdit;
FromCoName: TcxTextEdit;
P_spec: TcxTextEdit;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v1Column10: TcxGridDBColumn;
Label10: TLabel;
BatchNo: TcxTextEdit;
v1Column20: TcxGridDBColumn;
ToolButton1: TToolButton;
BPIOID: TcxTextEdit;
ToolButton2: TToolButton;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
frmFrameDateSel1: TfrmFrameDateSel;
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 BPIOIDChange(Sender: TObject);
procedure P_specChange(Sender: TObject);
procedure FromCoNameChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
procedure InitGrid();
procedure setStatus();
{ Private declarations }
public
canshu1, FSTKName, canshu3: string;
{ Public declarations }
end;
implementation
uses
U_DataLink, U_RTFun, U_BSPrtDyeejInEdit, U_LabelPrint;
{$R *.dfm}
procedure TfrmBSPrtDyeejInList.setStatus();
begin
end;
procedure TfrmBSPrtDyeejInList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmBSPrtDyeejInList.FormCreate(Sender: TObject);
begin
inherited;
frmFrameDateSel1.EndDate.Date := SGetServerDate(ADOQueryTemp);
frmFrameDateSel1.BegDate.Date := frmFrameDateSel1.EndDate.Date;
canshu1 := Trim(self.fParameters1);
FSTKName := Trim(self.fParameters2);
canshu3 := Trim(self.fParameters3);
end;
procedure TfrmBSPrtDyeejInList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.*,money=isnull(price,0)*Qty ');
SQL.Add(' ,p_type=(select p_type from Bs_Product_Info e where e.C_SCcode=a.p_code)');
SQL.Add(',QTYKG=(QTY/1000)');
sql.Add(' from BS_Product_IO A');
sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.BegDate.Date)) + '''');
sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.EndDate.Date + 1)) + '''');
sql.Add(' and isnull(STKNAME,'''')=''' + Trim(FSTKName) + '''');
SQL.Add(' and IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add(' order by ziono desc');
Open;
end;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmBSPrtDyeejInList.TBRafreshClick(Sender: TObject);
begin
toolbar1.SetFocus;
InitGrid();
end;
procedure TfrmBSPrtDyeejInList.ToolButton1Click(Sender: TObject);
begin
WriteCxGrid(Self.Caption, Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmBSPrtDyeejInList.ToolButton2Click(Sender: TObject);
var
WSQL: string;
begin
inherited;
if CDS_MAIN.IsEmpty then
Exit;
// if not CDS_MAIN.Locate('SSel', True, []) then
// begin
// Application.MessageBox('û<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
// Exit;
// end;
// WSQL := '';
// CDS_MAIN.DisableControls;
// with CDS_MAIN do
// begin
// First;
// while not Eof do
// begin
// if CDS_MAIN.fieldbyname('SSel').AsBoolean then
// begin
// if WSQL <> '' then
// begin
// WSQL := WSQL + ',' + QuotedStr(Trim(CDS_MAIN.fieldbyname('BPIOID').AsString));
// end
// else
// begin
// WSQL := QuotedStr(TRIM(CDS_MAIN.fieldbyname('BPIOID').AsString));
// end;
// end;
// Next;
// end;
// end;
// CDS_MAIN.Locate('SSel', True, []);
// CDS_MAIN.EnableControls;
WSQL := CDS_MAIN.fieldbyname('ZIONO').AsString;
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'RHL';
FFiltration1 := WSQL;
if ShowModal = 1 then
begin
end;
end;
finally
frmLabelPrint.Free;
end;
end;
procedure TfrmBSPrtDyeejInList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmBSPrtDyeejInList.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmBSPrtDyeejInList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(Self.Caption, Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
setStatus();
InitGrid();
end;
procedure TfrmBSPrtDyeejInList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmBSPrtDyeejInList.TBFindClick(Sender: TObject);
begin
CDSDataFilter(ADOQueryMain, CDS_Main, Tv1, '{"FilterStr":"' + CommonFiltersByContainer(Panel1, ' {"EquTag": 1,"LikeTag": 2,"Fields": ""}') + '" }');
end;
procedure TfrmBSPrtDyeejInList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmBSPrtDyeejInList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmBSPrtDyeejInList.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
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('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
sql.Add('values(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(CDS_Main.fieldbyname('BPIOID').AsString));
sql.Add(',''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(DName));
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(CDS_Main.fieldbyname('BPIOID').AsString));
sql.Add(') ');
execsql;
end;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_BS_Product_In_Del ');
Sql.Add(' @BPIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BPIOID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmBSPrtDyeejInList.TBAddClick(Sender: TObject);
begin
try
frmBSPrtDyeejInEdit := TfrmBSPrtDyeejInEdit.Create(Application);
with frmBSPrtDyeejInEdit do
begin
FBCId := '';
frmBSPrtDyeejInEdit.canshu3 := Trim(Self.canshu3);
FSTKName := Self.FSTKName;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmBSPrtDyeejInEdit.Free;
end;
end;
procedure TfrmBSPrtDyeejInList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('exec P_Fin_Flow_Judge ');
Sql.Add(' @FFIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BPIOID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
Open;
end;
if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then
begin
Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '<27><>ʾ', 0);
exit;
end;
// with ADOQueryTemp do
// begin
// Close;
// Sql.Clear;
// Sql.Add('exec P_BS_Product_In_Edit ');
// Sql.Add(' @BPIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BPIOID').AsString)));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// Open;
// end;
// if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then
// begin
// Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '<27><>ʾ', 0);
// exit;
// end;
try
frmBSPrtDyeejInEdit := TfrmBSPrtDyeejInEdit.Create(Application);
with frmBSPrtDyeejInEdit do
begin
FBCId := Trim(CDS_Main.fieldbyname('BPIOID').AsString);
TBDel.Visible := False;
TBAdd.Visible := False;
FSTKName := Self.FSTKName;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmBSPrtDyeejInEdit.Free;
end;
end;
procedure TfrmBSPrtDyeejInList.BPIOIDChange(Sender: TObject);
begin
if Length(Trim(BPIOID.Text)) < 4 then
begin
if Trim(BPIOID.Text) <> '' then
Exit;
end;
TBFind.Click;
end;
procedure TfrmBSPrtDyeejInList.P_specChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmBSPrtDyeejInList.FromCoNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmBSPrtDyeejInList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
end.