D7szYidui/纱线仓库/U_ContractListCGSel.pas

332 lines
10 KiB
ObjectPascal
Raw Normal View History

2025-07-19 09:32:10 +08:00
unit U_ContractListCGSel;
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,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit,
cxTextEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxBarBuiltInMenu;
type
TfrmContractListCGSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_Main: TDataSource;
v1OrdDate: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1OrdPerson1: TcxGridDBColumn;
v1ConNo: TcxGridDBColumn;
CDS_Sub: TClientDataSet;
RM1: TRMGridReport;
RMDBDataSet1: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1CustomerNoName: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
v1Column4: TcxGridDBColumn;
PopupMenu2: TPopupMenu;
N11: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
Panel1: TPanel;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
Label12: TLabel;
Label13: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
BuyName: TEdit;
ywyname: TEdit;
MPRTCodeName: TEdit;
ConNo: TEdit;
MPRTKZ: TEdit;
MPRTMF: TEdit;
cxTabControl1: TcxTabControl;
cxSplitter1: TcxSplitter;
DS_Sub: TDataSource;
Label2: TLabel;
v1Column10: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
cxGridPopupMenu2: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
v1XHNo: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
v1PRTPrice: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
v1Column13: TcxGridDBColumn;
Label3: TLabel;
Filler: TEdit;
V2Column2: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
V2Column1: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
V2Column3: TcxGridDBColumn;
V2Column4: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure BuyNameChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure Tv1DblClick(Sender: TObject);
private
procedure InitGrid();
procedure InitForm();
procedure SetStatus();
procedure InitSub();
{ Private declarations }
public
FFInt, FCloth: Integer;
canshu1, FGSTT: string;
{ Public declarations }
end;
var
frmContractListCGSel: TfrmContractListCGSel;
implementation
uses
U_DataLink, U_ZDYHelp, U_Fun;
{$R *.dfm}
procedure TfrmContractListCGSel.InitSub();
begin
if CDS_Main.IsEmpty then
exit;
with ADOQueryTemp do
begin
close;
sql.Clear;
sql.Add('select A.*, AA.YCGQty,');
SQL.Add(' WCGQty= (case when ISNULL(A.Qty, 0)-ISNULL(AA.YCGQty, 0)<0 then 0 else ISNULL(A.Qty, 0)-ISNULL(AA.YCGQty, 0) end)');
SQL.Add(' FROM Contract_sub A ');
SQL.Add(' INNER JOIN (SELECT sum(B.Qty) YCGQty,B.Y_CodeName,C.ConMainId FROM CK_Yarn_CR B INNER JOIN Contract_Main C ON B.ConNo=C.ConNo ');
SQL.Add(' GROUP BY B.Y_CodeName,C.ConMainId) AA ON AA.ConMainId=A.ConMainId');
sql.Add(' where A.ConmainID =' + quotedstr((CDS_Main.fieldbyname('ConmainID').AsString)));
SQL.Add(' and A.P_Name=AA.Y_CodeName');
//ShowMessage(SQL.Text);
open;
end;
SCreateCDS20(ADOQueryTemp, CDS_Sub);
SInitCDSData20(ADOQueryTemp, CDS_Sub);
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select A.*, YCGQty=0');
SQL.Add(' ,WCGQty=Qty');
SQL.Add(' FROM Contract_sub A ');
sql.Add(' where A.ConmainID =' + quotedstr((CDS_Main.fieldbyname('ConmainID').AsString)));
//ShowMessage(SQL.Text);
open;
end;
SCreateCDS20(ADOQueryCmd, CDS_Sub);
SInitCDSData20(ADOQueryCmd, CDS_Sub);
end;
end;
procedure TfrmContractListCGSel.SetStatus();
begin
end;
procedure TfrmContractListCGSel.FormDestroy(Sender: TObject);
begin
// frmContractListNX:=nil;
end;
procedure TfrmContractListCGSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caHide;
end;
procedure TfrmContractListCGSel.TBCloseClick(Sender: TObject);
begin
Close;
writeCxGrid(self.Caption + tv1.Name, Tv1, '<27>ɹ<EFBFBD><C9B9><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
writeCxGrid(self.Caption + tv2.Name, Tv2, '<27>ɹ<EFBFBD><C9B9><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
end;
procedure TfrmContractListCGSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select A.*');
sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.ConMainId and X.TFType=''<27><>ͬ''),0)>0 then 1 else 0 end) as bit)');
sql.Add(',ZJinE=(select sum(MxMoney) MxMoney from Contract_sub B where B.ConMainId=A.ConMainId group by B.ConMainID)');
sql.Add(',ZJinUnit=(select TOP 1 BZType from Contract_sub B where B.ConMainId=A.ConMainId)');
sql.Add(',ZShuL=(select sum(Qty) Qty from Contract_sub B where B.ConMainId=A.ConMainId group by B.ConMainId)');
sql.Add(',ZPiQty=(select sum(PiQty) PiQty from Contract_sub B where B.ConMainId=A.ConMainId group by B.ConMainId)');
sql.Add(',ZYCGQty=(SELECT sum(B.Qty) FROM CK_Yarn_CR B where B.ConNo=A.ConNo)');
sql.Add(',ZWCGQty=(case when ISNULL((select sum(Qty) from Contract_sub B where B.ConMainId=A.ConMainId group by B.ConMainId), 0)-ISNULL((SELECT sum(B.Qty) FROM CK_Yarn_CR B where B.ConNo=A.ConNo), 0)<0');
SQL.Add(' then 0 else ISNULL((select sum(Qty) from Contract_sub B where B.ConMainId=A.ConMainId group by B.ConMainId), 0)-ISNULL((SELECT sum(B.Qty) FROM CK_Yarn_CR B where B.ConNo=A.ConNo), 0) end)');
sql.Add(',ZShuUnit=(select TOP 1 QtyUnit from Contract_sub B where B.ConMainId=A.ConMainId)');
sql.Add(' from Contract_Main A ');
SQL.Add('where A.ConDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + '''');
SQL.Add('and A.ConDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + '''');
sql.Add(' and A.ConType=''<27>ɹ<EFBFBD>'' ');
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' and isnull(A.status,''-1'')=''-1''');
end;
1:
begin
sql.Add(' and isnull(A.status,''-1'')=''0''');
end;
2:
begin
sql.Add(' and isnull(A.status,''-1'')=''1''');
end;
3:
begin
sql.Add(' and isnull(A.status,''-1'')=''2''');
end;
end;
//showmessage(sql.text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmContractListCGSel.InitForm();
begin
readCxGrid(self.Caption + tv1.Name, Tv1, '<27>ɹ<EFBFBD><C9B9><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
readCxGrid(self.Caption + tv2.Name, Tv2, '<27>ɹ<EFBFBD><C9B9><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
if FCloth = 1 then
begin
v1Column4.Visible := True;
end
else
begin
v1Column4.Visible := False;
end;
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 90;
InitGrid();
end;
procedure TfrmContractListCGSel.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
procedure TfrmContractListCGSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmContractListCGSel.FormShow(Sender: TObject);
begin
InitForm();
SetStatus();
end;
procedure TfrmContractListCGSel.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmContractListCGSel.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmContractListCGSel.BuyNameChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
procedure TfrmContractListCGSel.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
TBRafresh.Click;
end;
procedure TfrmContractListCGSel.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
InitSub();
end;
procedure TfrmContractListCGSel.Tv1DblClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if cxTabControl1.TabIndex<>2 then
Exit;
ModalResult := 1;
end;
end.