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

213 lines
6.3 KiB
ObjectPascal
Raw Permalink Normal View History

2025-03-01 10:55:52 +08:00
unit U_QryBSPrtDyeEJStkList;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ToolWin, cxGraphics,
cxControls, cxLookAndFeels,
cxContainer, cxEdit, dxLayoutcxEditAdapters, dxBarBuiltInMenu, cxPC,
dxLayoutContainer, cxClasses, cxTextEdit, dxLayoutControl, cxStyles,
cxCustomData, cxFilter, cxData, cxDataStorage, cxNavigator, dxDateRanges,
dxScrollbarAnnotations, Data.DB, cxDBData, cxCalendar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridCustomView,
cxGrid, U_BaseList, Data.Win.ADODB, cxGridCustomPopupMenu, cxGridPopupMenu,
Datasnap.DBClient, cxCheckBox, cxButtonEdit, cxSplitter, dxCore, cxDateUtils,
cxMaskEdit, cxDropDownEdit, cxProgressBar, Vcl.Menus,
RM_Common, RM_Class, RM_GridReport, RM_Dataset, cxLookAndFeelPainters,
Vcl.ExtCtrls, dxSkinsCore, dxSkinsDefaultPainters, dxLayoutControlAdapters,
FrameDateSel10, Vcl.StdCtrls, MovePanel, cxCurrencyEdit, U_WindowFormdesign,
BtnEdit, dxSkinWXI;
type
TfrmQryBSPrtDyeEJStkList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
CDS_HZ: TClientDataSet;
PopupMenu1: TPopupMenu;
ToolButton1: TToolButton;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
dxLayoutControl_query: TdxLayoutControl;
cxTextEdit1: TcxTextEdit;
cxTextEdit2: TcxTextEdit;
cxTextEdit3: TcxTextEdit;
dxLayoutControl_queryGroup_Root: TdxLayoutGroup;
dxLayoutItem2: TdxLayoutItem;
dxLayoutItem3: TdxLayoutItem;
dxLayoutItem1: TdxLayoutItem;
ToolButton4: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBRafreshClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure FormCreate(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure cxTextEdit1KeyPress(Sender: TObject; var Key: Char);
private
fWindowDesign: TWindowFormdesign;
fDesignCode:string;
procedure InitGrid();
{ Private declarations }
public
canshu1, FSTKName, canshu3: string;
{ Public declarations }
end;
var
frmQryBSPrtDyeEJStkList: TfrmQryBSPrtDyeEJStkList;
implementation
uses
U_RTFun, U_globalVar, U_dataLink, U_FormLayOutDesign,
U_LabelPrint,U_cxGridCustomSet, U_ZDYHelp;
{$R *.dfm}
procedure TfrmQryBSPrtDyeEJStkList.FormDestroy(Sender: TObject);
begin
inherited;
frmQryBSPrtDyeEJStkList := nil;
end;
procedure TfrmQryBSPrtDyeEJStkList.cxTextEdit1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if key = #13 then
begin
initGrid();
end;
end;
procedure TfrmQryBSPrtDyeEJStkList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmQryBSPrtDyeEJStkList.FormCreate(Sender: TObject);
begin
inherited;
canshu1 := Trim(self.fParameters1);
FSTKName := Trim(self.fParameters2);
canshu3 := Trim(self.fParameters3);
end;
procedure TfrmQryBSPrtDyeEJStkList.InitGrid();
var
mSqlWhere: string;
begin
mSqlWhere := SLGetFilters(dxLayoutControl_query, 1, 2);
if trim(mSqlWhere) <> '' then
begin
mSqlWhere := ' and ' + trim(mSqlWhere);
end;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select P_Code,P_Name,P_Spec,BatchNo,SUM(IOQtyFlag*Qty)StkQty,SUM(IOQtyFlag*Qty/1000)StkQtyKG,money=sum(IOQtyFlag*price*Qty) ');
SQL.Add(' ,p_type=(select p_type from Bs_Product_Info e where e.C_SCcode=a.p_code)');
sql.Add(' from BS_Product_IO A ');
sql.Add(' where isnull(stkName,'''')=''' + Trim(FstkName) + '''');
SQL.Add(Trim(mSqlWhere));
SQL.Add('GROUP BY P_Code,P_Name,P_Spec,BatchNo');
sql.add('having sum(IOQtyFlag*Qty)>0');
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmQryBSPrtDyeEJStkList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmQryBSPrtDyeEJStkList.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmQryBSPrtDyeEJStkList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(Self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
InitGrid();
end;
procedure TfrmQryBSPrtDyeEJStkList.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ModalResult := 1;
end;
procedure TfrmQryBSPrtDyeEJStkList.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
if gIsCanDesign then
begin
saveLayOut(application, dxLayoutControl_query, ADOQueryCmd,PWideChar( fDllFileName + '|' + Self.Name + '|' + dxLayoutControl_query.Name + '.ini'));
end;
end;
procedure TfrmQryBSPrtDyeEJStkList.ToolButton3Click(Sender: TObject);
begin
inherited;
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel(trim(self.Caption), cxGrid2);
end;
procedure TfrmQryBSPrtDyeEJStkList.ToolButton4Click(Sender: TObject);
begin
fWindowDesign.OpenGridDesignWin10(fDesignCode,'cxgrid2',tv1);
end;
procedure TfrmQryBSPrtDyeEJStkList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ModalResult := 1;
end;
end.