D10szGerun/E03梭织坯布检验/U_TatKnitterQuery.pas

366 lines
10 KiB
ObjectPascal
Raw Permalink Normal View History

2026-10-15 17:27:46 +08:00
unit U_TatKnitterQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar,
cxPC, Math, U_BaseList, MovePanel, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters,
dxDateRanges, System.StrUtils, dxScrollbarAnnotations, dxSkinWXI;
type
TfrmTatKnitterQuery = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBExpSum: TToolButton;
TBExpDet: TToolButton;
TBSaveFmt: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
knitter: TEdit;
Label2: TLabel;
C_Name: TEdit;
IsJYTime: TCheckBox;
BegDate: TDateTimePicker;
Label4: TLabel;
EndDate: TDateTimePicker;
cxPageControl1: TcxPageControl;
TabSum: TcxTabSheet;
cxGridS: TcxGrid;
TvS: TcxGridDBTableView;
TvSknitter: TcxGridDBColumn;
TvSC_Name: TcxGridDBColumn;
TvSSumQty: TcxGridDBColumn;
TvSRollCount: TcxGridDBColumn;
cxGridSLevel1: TcxGridLevel;
PanelS: TPanel;
LabelS1: TLabel;
TCBNORS: TComboBox;
BTLPS: TButton;
LBCPAPS: TLabel;
BTNPS: TButton;
TabDet: TcxTabSheet;
cxGridD: TcxGrid;
TvD: TcxGridDBTableView;
TvDCARNO: TcxGridDBColumn;
TvDknitter: TcxGridDBColumn;
TvDC_Name: TcxGridDBColumn;
TvDqty: TcxGridDBColumn;
TvDCIID: TcxGridDBColumn;
cxGridDLevel1: TcxGridLevel;
PanelD: TPanel;
LabelD1: TLabel;
TCBNORD: TComboBox;
BTLPD: TButton;
LBCPAPD: TLabel;
BNTPD: TButton;
MovePanel2: TMovePanel;
ADOQSum: TADOQuery;
ADOQDetail: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_S: TDataSource;
DS_D: TDataSource;
CDS_Sum: TClientDataSet;
CDS_Detail: TClientDataSet;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBExpSumClick(Sender: TObject);
procedure TBExpDetClick(Sender: TObject);
procedure TBSaveFmtClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure knitterKeyPress(Sender: TObject; var Key: Char);
procedure C_NameKeyPress(Sender: TObject; var Key: Char);
procedure BTLPSClick(Sender: TObject);
procedure BTNPSClick(Sender: TObject);
procedure TCBNORSChange(Sender: TObject);
procedure BTLPDClick(Sender: TObject);
procedure BNTPDClick(Sender: TObject);
procedure TCBNORDChange(Sender: TObject);
procedure TvSCustomDrawIndicatorCell(Sender: TcxGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
var ADone: Boolean);
procedure TvDCustomDrawIndicatorCell(Sender: TcxGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
var ADone: Boolean);
private
FWorkshop: string;
CurrentPageS, RecordsNumberS, CurrentPageD, RecordsNumberD: Integer;
function BuildCriteria(): string;
procedure InitSum();
procedure InitDetail();
{ Private declarations }
public
{ Public declarations }
end;
var
frmTatKnitterQuery: TfrmTatKnitterQuery;
implementation
uses
U_DataLink, U_RTFun;
{$R *.dfm}
procedure TfrmTatKnitterQuery.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTatKnitterQuery.FormCreate(Sender: TObject);
begin
inherited;
FWorkshop := Trim(Self.fParameters3);
end;
procedure TfrmTatKnitterQuery.FormShow(Sender: TObject);
begin
inherited;
CurrentPageS := 1;
RecordsNumberS := 500;
CurrentPageD := 1;
RecordsNumberD := 500;
ReadCxGrid(Trim(Self.Caption) + 'TvS', TvS, 'ó<>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(Trim(Self.Caption) + 'TvD', TvD, 'ó<>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
EndDate.DateTime := SGetServerDate(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
InitSum();
InitDetail();
end;
function TfrmTatKnitterQuery.BuildCriteria(): string;
var
WSql: string;
begin
WSql := SGetFilters(Panel1, 1, 2);
if Trim(WSql) <> '' then
WSql := ' and ' + Trim(WSql);
if Trim(FWorkshop) <> '' then
WSql := WSql + ' and A.Workshop=' + QuotedStr(Trim(FWorkshop));
if IsJYTime.Checked then
begin
WSql := WSql + ' and A.FillTime>' + QuotedStr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime));
WSql := WSql + ' and A.FillTime<=' + QuotedStr(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1));
end
else if Trim(WSql) = '' then
WSql := ' and 1=2 ';
Result := WSql;
end;
procedure TfrmTatKnitterQuery.InitSum();
var
WSql: string;
begin
MovePanel2.Left := (Self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
WSql := BuildCriteria();
if Trim(WSql) = 'and 1=2' then
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
try
CDS_Sum.DisableControls;
with ADOQSum do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Tat_Knitter_Sum_Get_Page ');
SQL.Add('@pageIndex=' + IntToStr(CurrentPageS));
SQL.Add(',@pageSize=' + IntToStr(RecordsNumberS));
SQL.Add(',@criteria=' + QuotedStr(WSql));
Open;
end;
SCreateCDS(ADOQSum, CDS_Sum);
SInitCDSData(ADOQSum, CDS_Sum);
LBCPAPS.Caption := IntToStr(CurrentPageS) + '/' + IntToStr(Ceil(ADOQSum.FieldByName('TotalCount').AsInteger / RecordsNumberS));
finally
CDS_Sum.EnableControls;
MovePanel2.Visible := False;
end;
end;
procedure TfrmTatKnitterQuery.InitDetail();
var
WSql: string;
begin
MovePanel2.Left := (Self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
WSql := BuildCriteria();
if Trim(WSql) = 'and 1=2' then
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
try
CDS_Detail.DisableControls;
with ADOQDetail do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Tat_Knitter_Get_Page ');
SQL.Add('@pageIndex=' + IntToStr(CurrentPageD));
SQL.Add(',@pageSize=' + IntToStr(RecordsNumberD));
SQL.Add(',@criteria=' + QuotedStr(WSql));
Open;
end;
SCreateCDS(ADOQDetail, CDS_Detail);
SInitCDSData(ADOQDetail, CDS_Detail);
LBCPAPD.Caption := IntToStr(CurrentPageD) + '/' + IntToStr(Ceil(ADOQDetail.FieldByName('TotalCount').AsInteger / RecordsNumberD));
finally
CDS_Detail.EnableControls;
MovePanel2.Visible := False;
end;
end;
procedure TfrmTatKnitterQuery.TBRafreshClick(Sender: TObject);
begin
CurrentPageS := 1;
CurrentPageD := 1;
InitSum();
InitDetail();
end;
procedure TfrmTatKnitterQuery.TBExpSumClick(Sender: TObject);
begin
if CDS_Sum.IsEmpty then
Exit;
TcxGridToExcel(Trim(Self.Caption) + '-<2D><><EFBFBD><EFBFBD>', cxGridS);
end;
procedure TfrmTatKnitterQuery.TBExpDetClick(Sender: TObject);
begin
if CDS_Detail.IsEmpty then
Exit;
TcxGridToExcel(Trim(Self.Caption) + '-<2D><>ϸ', cxGridD);
end;
procedure TfrmTatKnitterQuery.TBSaveFmtClick(Sender: TObject);
begin
WriteCxGrid(Trim(Self.Caption) + 'TvS', TvS, 'ó<>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(Trim(Self.Caption) + 'TvD', TvD, 'ó<>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmTatKnitterQuery.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTatKnitterQuery.knitterKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPageS := 1;
CurrentPageD := 1;
InitSum();
InitDetail();
end;
end;
procedure TfrmTatKnitterQuery.C_NameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPageS := 1;
CurrentPageD := 1;
InitSum();
InitDetail();
end;
end;
procedure TfrmTatKnitterQuery.BTLPSClick(Sender: TObject);
begin
if CurrentPageS > 1 then
CurrentPageS := CurrentPageS - 1;
InitSum();
end;
procedure TfrmTatKnitterQuery.BTNPSClick(Sender: TObject);
begin
if CurrentPageS < ADOQSum.FieldByName('TotalCount').AsInteger / RecordsNumberS then
CurrentPageS := CurrentPageS + 1;
InitSum();
end;
procedure TfrmTatKnitterQuery.TCBNORSChange(Sender: TObject);
begin
RecordsNumberS := StrToInt(TCBNORS.Text);
CurrentPageS := 1;
InitSum();
end;
procedure TfrmTatKnitterQuery.BTLPDClick(Sender: TObject);
begin
if CurrentPageD > 1 then
CurrentPageD := CurrentPageD - 1;
InitDetail();
end;
procedure TfrmTatKnitterQuery.BNTPDClick(Sender: TObject);
begin
if CurrentPageD < ADOQDetail.FieldByName('TotalCount').AsInteger / RecordsNumberD then
CurrentPageD := CurrentPageD + 1;
InitDetail();
end;
procedure TfrmTatKnitterQuery.TCBNORDChange(Sender: TObject);
begin
RecordsNumberD := StrToInt(TCBNORD.Text);
CurrentPageD := 1;
InitDetail();
end;
procedure TfrmTatKnitterQuery.TvSCustomDrawIndicatorCell(Sender: TcxGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, [bBottom, bLeft, bRight], 1);
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
InflateRect(FBounds, -3, -2);
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
procedure TfrmTatKnitterQuery.TvDCustomDrawIndicatorCell(Sender: TcxGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, [bBottom, bLeft, bRight], 1);
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
InflateRect(FBounds, -3, -2);
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
end.