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

227 lines
6.6 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_QryBSPrtDyeStkList;
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
TfrmQryBSPrtDyeStkList = 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;
Tv1Column3: TcxGridDBColumn;
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
frmQryBSPrtDyeStkList: TfrmQryBSPrtDyeStkList;
implementation
uses
U_RTFun, U_globalVar, U_dataLink, U_FormLayOutDesign, U_LabelPrint,
U_cxGridCustomSet, U_PrtDyeInfoInPut, U_ZDYHelp;
{$R *.dfm}
procedure TfrmQryBSPrtDyeStkList.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 TfrmQryBSPrtDyeStkList.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 TfrmQryBSPrtDyeStkList.TBexcpetClick(Sender: TObject);
begin
if CDS_List.IsEmpty then
exit;
TcxGridToExcel(self.Caption, cxGrid2);
end;
procedure TfrmQryBSPrtDyeStkList.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmQryBSPrtDyeStkList.TgridSetClick(Sender: TObject);
begin
fWindowDesign.OpenGridDesignWin10(fDesignCode, 'cxgrid2', tv1);
end;
procedure TfrmQryBSPrtDyeStkList.TrefreshClick(Sender: TObject);
begin
inherited;
initGrid();
end;
procedure TfrmQryBSPrtDyeStkList.cxTabControl1Change(Sender: TObject);
begin
inherited;
initGrid();
end;
procedure TfrmQryBSPrtDyeStkList.dxLayoutControl_queryDblClick(Sender: TObject);
begin
layoutDesign(TdxLayoutControl(Sender), ADOQueryCmd, PWideChar(dcode));
end;
procedure TfrmQryBSPrtDyeStkList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := cafree;
end;
procedure TfrmQryBSPrtDyeStkList.FormCreate(Sender: TObject);
begin
inherited;
cxgrid2.Align := alClient;
canshu1 := Trim(Self.fParameters1);
FSTKName := Trim(Self.fParameters2);
canshu3 := Trim(Self.fParameters3);
end;
procedure TfrmQryBSPrtDyeStkList.FormDestroy(Sender: TObject);
begin
inherited;
frmQryBSPrtDyeStkList := nil;
end;
procedure TfrmQryBSPrtDyeStkList.FormShow(Sender: TObject);
begin
inherited;
InitForm();
end;
procedure TfrmQryBSPrtDyeStkList.InitForm();
begin
addQryContionByLay(ADOQueryBaseTemp, fformId, 'cxgrid2', dxLayoutControl_query, 7);
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, gDllFileCaption);
InitGrid();
end;
procedure TfrmQryBSPrtDyeStkList.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 XH,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(Trim(mSqlWhere));
sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');
SQL.Add('GROUP BY XH,price,P_Code,P_Name,P_Spec,BatchNo, QtyUnit');
// showmessage(Sql.text);
Open;
end;
SCreateCDS(ADOQueryList, CDS_List);
SInitCDSData(ADOQueryList, CDS_List);
finally
ADOQueryList.EnableControls;
end;
end;
procedure TfrmQryBSPrtDyeStkList.P_CodeKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key = #13 then
begin
initGrid();
end;
end;
end.