D7DJjunhao/检验管理/U_OrderSel.pas
DESKTOP-E401PHE\Administrator 41f7218fc4 ~
2025-04-30 19:46:56 +08:00

217 lines
6.8 KiB
ObjectPascal
Raw Permalink 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_OrderSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls,
ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox, Menus;
type
TfrmOrderSel = class(TForm)
cxGrid1: TcxGrid;
Tv2: TcxGridDBTableView;
v1OrderNo: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
v1PRTMF: TcxGridDBColumn;
v1PRTKZ: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Panel1: TPanel;
Label2: TLabel;
OrderNo: TEdit;
Label3: TLabel;
PRTColor: TEdit;
CDS_OrderSel: TClientDataSet;
DataSource1: TDataSource;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
Button1: TButton;
Button2: TButton;
Button3: TButton;
cxGridPopupMenu1: TcxGridPopupMenu;
v2Column2: TcxGridDBColumn;
Label8: TLabel;
CustomerNoName: TEdit;
v2Column3: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
v2Column1: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyleRepository2: TcxStyleRepository;
cxStyle2: TcxStyle;
cxStyleRepository3: TcxStyleRepository;
cxStyle3: TcxStyle;
v2Column7: TcxGridDBColumn;
PRTCodeName: TEdit;
Label1: TLabel;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v2Column8: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure OrderNoChange(Sender: TObject);
procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
{ Public declarations }
end;
var
frmOrderSel: TfrmOrderSel;
implementation
uses
U_DataLink,U_Fun ;
{$R *.dfm}
procedure TfrmOrderSel.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmOrderSel.Button2Click(Sender: TObject);
var
KHName:String;
begin
if CDS_OrderSel.Locate('SSel',True,[])=False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
CDS_OrderSel.DisableControls;
KHName:='';
with CDS_OrderSel do
begin
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean=True then
begin
if Trim(KHName)='' then
begin
KHName:=Trim(fieldbyname('CustomerNo').AsString);
end else
begin
if Trim(fieldbyname('CustomerNo').AsString)<>KHName then
begin
CDS_OrderSel.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ͬ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
end;
Next;
end;
end;
CDS_OrderSel.EnableControls;
ModalResult:=1;
end;
procedure TfrmOrderSel.FormDestroy(Sender: TObject);
begin
frmOrderSel:=nil;
end;
procedure TfrmOrderSel.Button3Click(Sender: TObject);
begin
ModalResult:=-1;
WriteCxGrid('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>',Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmOrderSel.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>',Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
InitGrid();
end;
procedure TfrmOrderSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
Filtered:=False;
sql.Clear;
sql.Add('select A.OrderNo,A.CustomerNoName,A.CustomerNo,');
sql.add('B.PRTCodeName,A.MainId,B.SubId,B.PRTColor,B.SOrddefstr1,B.OrderUnit,B.PRTOrderQty');
sql.Add(',B.PRTMF,B.PRTKZ,B.PRTHX');
sql.Add(',ZPPS=(select Count(CR.MJID) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0)and isnull(CPType,'''')<>''<27><>Ʒ'' ) ');
sql.Add(',ZPQty=(select sum(KCQty) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0) and isnull(CPType,'''')<>''<27><>Ʒ'' ) ');
sql.Add(',ZPKGQty=(select sum(KCKGQty) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0) and isnull(CPType,'''')<>''<27><>Ʒ'' ) ');
sql.Add(',CPPS=(select Count(CR.MJID) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0) and CPType=''<27><>Ʒ'') ');
sql.Add(',CPQty=(select sum(KCQty) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0) and CPType=''<27><>Ʒ'') ');
sql.Add(',CPKGQty=(select sum(KCKGQty) from CK_BanCP_CR CR Inner join CK_BanCP_KC KC on CR.CRID=KC.CRID ');
sql.Add(' where CR.subid=B.subid and CR.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (KC.KCQty>0 or KCKGQty>0) and CPType=''<27><>Ʒ'') ');
sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid');
sql.Add(' where exists(select AA.CRID from CK_BanCP_CR AA inner join CK_BanCP_KC BB on AA.CRID=BB.CRID ');
sql.Add(' where AA.MainId=A.MainId and AA.SubId=B.SubId and AA.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and (BB.KCQty>0 or BB.KCKGQty>0))');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_OrderSel);
SInitCDSData20(ADOQueryMain,CDS_OrderSel);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmOrderSel.Button1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmOrderSel.OrderNoChange(Sender: TObject);
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_OrderSel);
SInitCDSData20(ADOQueryMain,CDS_OrderSel);
end;
procedure TfrmOrderSel.Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
ModalResult:=1;
end;
procedure TfrmOrderSel.N1Click(Sender: TObject);
begin
SelOKNo(CDS_OrderSel,True);
end;
procedure TfrmOrderSel.N2Click(Sender: TObject);
begin
SelOKNo(CDS_OrderSel,False);
end;
end.