D10SZKaiXiYa/B03基础物料仓库/U_QryBSPrtMachStkList.pas
DESKTOP-E401PHE\Administrator 53e8f4820d 11
2025-03-01 10:55:52 +08:00

227 lines
6.5 KiB
ObjectPascal
Raw 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_QryBSPrtMachStkList;
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
TfrmQryBSPrtMachStkList = class(TfrmBaseList)
ToolBar3: TToolBar;
Trefresh: TToolButton;
TsaveGrid: TToolButton;
Tclose: TToolButton;
DataSource1: TDataSource;
ADOQueryList: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
dxLayoutControl_query: TdxLayoutControl;
dxLayoutControl_queryGroup_Root: TdxLayoutGroup;
CDS_List: TClientDataSet;
cxProgressBar1: TMovePanel;
ADOQueryCmd: TADOQuery;
ToolButton1: TToolButton;
TBexcpet: TToolButton;
TgridSet: TToolButton;
P_Name: TcxTextEdit;
dxLayoutItem2: TdxLayoutItem;
P_Spec: TcxTextEdit;
dxLayoutItem3: TdxLayoutItem;
ADOQueryTemp: TADOQuery;
BatchNo: TcxTextEdit;
dxLayoutItem1: TdxLayoutItem;
P_Code: TcxTextEdit;
dxLayoutItem4: TdxLayoutItem;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column14: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
procedure TrefreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TcloseClick(Sender: TObject);
procedure TsaveGridClick(Sender: TObject);
procedure dxLayoutControl_queryDblClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBexcpetClick(Sender: TObject);
procedure TgridSetClick(Sender: TObject);
procedure P_CodeKeyPress(Sender: TObject; var Key: Char);
private
fWindowDesign: TWindowFormdesign;
fDesignCode:string;
procedure initGrid();
procedure initForm();
protected
public
canshu1, FSTKName, canshu3: string;
end;
var
frmQryBSPrtMachStkList: TfrmQryBSPrtMachStkList;
implementation
uses
U_RTFun, U_globalVar, U_dataLink,U_FormLayOutDesign,
U_LabelPrint,U_cxGridCustomSet, U_PrtDyeInfoInPut, U_ZDYHelp;
{$R *.dfm}
procedure TfrmQryBSPrtMachStkList.TsaveGridClick(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 TfrmQryBSPrtMachStkList.ToolButton1Click(Sender: TObject);
begin
if CDS_List.IsEmpty then
Exit;
if CDS_List.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ModalResult := 1;
end;
procedure TfrmQryBSPrtMachStkList.TBexcpetClick(Sender: TObject);
begin
inherited;
if ADOQueryList.IsEmpty then
exit;
TcxGridToExcel(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmQryBSPrtMachStkList.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmQryBSPrtMachStkList.TgridSetClick(Sender: TObject);
begin
fWindowDesign.OpenGridDesignWin10(fDesignCode,'cxgrid2',tv1);
end;
procedure TfrmQryBSPrtMachStkList.TrefreshClick(Sender: TObject);
begin
inherited;
initGrid();
end;
procedure TfrmQryBSPrtMachStkList.cxTabControl1Change(Sender: TObject);
begin
inherited;
initGrid();
end;
procedure TfrmQryBSPrtMachStkList.dxLayoutControl_queryDblClick(
Sender: TObject);
begin
layoutDesign(TdxLayoutControl(Sender),ADOQueryCmd,PWideChar(dcode));
end;
procedure TfrmQryBSPrtMachStkList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action:=cafree;
end;
procedure TfrmQryBSPrtMachStkList.FormCreate(Sender: TObject);
begin
inherited;
cxgrid2.Align:=alClient;
canshu1 := Trim(Self.fParameters1);
FSTKName := Trim(Self.fParameters2);
canshu3 := Trim(Self.fParameters3);
end;
procedure TfrmQryBSPrtMachStkList.FormDestroy(Sender: TObject);
begin
inherited;
frmQryBSPrtMachStkList := nil;
end;
procedure TfrmQryBSPrtMachStkList.FormShow(Sender: TObject);
begin
inherited;
InitForm();
end;
procedure TfrmQryBSPrtMachStkList.InitForm();
begin
addQryContionByLay(ADOQueryBaseTemp,fformId,'cxgrid2',dxLayoutControl_query,7);
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
InitGrid();
end;
procedure TfrmQryBSPrtMachStkList.InitGrid();
var
mSqlWhere: string;
begin
mSqlWhere := SLGetFilters(dxLayoutControl_query, 1, 2);
if trim(mSqlWhere) <> '' then
begin
mSqlWhere := ' and ' + trim(mSqlWhere);
end;
try
ADOQueryList.DisableControls;
with ADOQueryList do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select price,P_Code,P_Name,P_Spec,BatchNo,SUM(StkQty)StkQty,QtyUnit,money=sum(price*StkQty) ');
SQL.Add(' ,p_type=(select p_type from Bs_Product_Info e where e.p_code=a.p_code)');
sql.Add(' from BS_Product_IO A ');
SQL.Add(' where A.IOFlag=''<27><><EFBFBD><EFBFBD>'' and isnull(StkQty,0)>0 ');
sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');
sql.Add(Trim(mSqlWhere));
SQL.Add('GROUP BY price,P_Code,P_Name,P_Spec,BatchNo, QtyUnit');
Open;
end;
SCreateCDS(ADOQueryList, CDS_List);
SInitCDSData(ADOQueryList, CDS_List);
finally
ADOQueryList.EnableControls;
end;
end;
procedure TfrmQryBSPrtMachStkList.P_CodeKeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if key = #13 then
begin
initGrid();
end;
end;
end.