D10myYicheng/坯布码单待检(PBMDDJ.dll)/U_CGContractListSel.pas

396 lines
12 KiB
ObjectPascal
Raw Permalink Normal View History

2025-05-27 14:08:09 +08:00
unit U_CGContractListSel;
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,
cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore,
dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu;
type
TfrmCGContractListSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBDataSet1: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
Panel1: TPanel;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
Label12: TLabel;
Label13: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
BuyName: TEdit;
Salesman: TEdit;
MPRTCodeName: TEdit;
ConNo: TEdit;
MPRTKZ: TEdit;
MPRTMF: TEdit;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
BuyConNo: TEdit;
Label3: TLabel;
V2Column1: TcxGridDBColumn;
V2Column4: TcxGridDBColumn;
V2Column2: TcxGridDBColumn;
V2Column3: TcxGridDBColumn;
V2Column5: TcxGridDBColumn;
N1: TMenuItem;
V1Column1: TcxGridDBColumn;
ToolButton2: TToolButton;
cxTabControl1: TcxTabControl;
V1Column2: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBTPClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure N1Click(Sender: TObject);
procedure BuyNameChange(Sender: TObject);
procedure ConNoKeyPress(Sender: TObject; var Key: Char);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure N2Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
DQdate: TDateTime;
fuserName: string;
procedure InitGrid();
procedure InitForm();
function DelData(): Boolean;
{ Private declarations }
public
FFInt, FCloth: Integer;
canshu1, FConNo, FGSTT: string;
{ Public declarations }
end;
var
frmCGContractListSel: TfrmCGContractListSel;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmCGContractListSel.FormDestroy(Sender: TObject);
begin
frmCGContractListSel := nil;
end;
procedure TfrmCGContractListSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCGContractListSel.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
DQdate := SGetServerDate(ADOQueryTemp);
canshu1 := trim(DParameters1);
end;
procedure TfrmCGContractListSel.TBCloseClick(Sender: TObject);
begin
Close;
writeCxGrid(self.Caption + tv1.Name, Tv1, '<27><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
end;
procedure TfrmCGContractListSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select A.* ,B.* ');
sql.Add(' from SalesContract_Main A inner join SalesContract_Sub B on A.MainId=B.MainId ');
SQL.Add('where A.OrdDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + '''');
SQL.Add('and A.OrdDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + '''');
SQL.Add(' and isnull(A.status,''0'')=''1'' ');
sql.Add(' and A.SCMType=''<27>ɹ<EFBFBD>'' ');
// SQL.Add(' and isnull(A.Salesman,''0'')=' + quotedstr(trim(DName)));
if trim(FConNo) <> '' then
SQL.Add(' and A.ConNo=' + quotedstr(trim(FConNo)));
case cxTabControl1.TabIndex of
0:
begin
SQL.Add('AND NOT EXISTS ( select X.MainId from CK_SXPB_CR X where X.CGSubID=B.SubID ) ');
end;
1:
begin
SQL.Add('AND EXISTS ( select X.MainId from CK_SXPB_CR X where X.CGSubID=B.SubID ) ');
end;
end;
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS(ADOQueryMain, Order_Main);
SInitCDSData(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmCGContractListSel.InitForm();
begin
readCxGrid(self.Caption + tv1.Name, Tv1, '<27><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
EndDate.DateTime := SGetServerDate(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 90;
InitGrid();
end;
procedure TfrmCGContractListSel.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, Order_Main);
SInitCDSData(ADOQueryMain, Order_Main);
end;
function TfrmCGContractListSel.DelData(): Boolean;
begin
try
Result := false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrderCon_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrderCon_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
end;
end;
procedure TfrmCGContractListSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCGContractListSel.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmCGContractListSel.TBTPClick(Sender: TObject);
var
FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string;
begin
end;
procedure TfrmCGContractListSel.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCGContractListSel.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmCGContractListSel.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
id, id10: Integer;
begin
{try
if Tv1.GroupedItemCount=0 then
begin
Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount;
Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount;
if Trim(VarToStr(ARecord.Values[id]))='' then Exit;
if Id<0 then Exit;
if ARecord.Values[id10]='<27><><EFBFBD><EFBFBD>' then exit;
if (ARecord.Values[id]-DQdate)>=4 then Exit;
if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then
AStyle:=DataLink_.QHuangSe
else
if ARecord.Values[id]-DQdate<0 then
begin
AStyle:=DataLink_OrderManage.FenHongS;
end;
end else
begin
end;
except
end; }
end;
procedure TfrmCGContractListSel.v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
{ Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount;
Id10:=TV1.GetColumnByFieldName('SubStatus').Index;
if Id<0 then Exit;
if AViewInfo.GridRecord.Values[Id10]='<27><><EFBFBD><EFBFBD>' then Exit;
if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit;
if ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then
ACanvas.Brush.Color:=clYellow
else
if (AViewInfo.GridRecord.Values[id])-(SGetServerDate(ADOQueryTemp)<0) then
begin
ACanvas.Brush.Color:=clRed;
end;
begin
ACanvas.Brush.Color:=clRed;
end else
if AViewInfo.GridRecord.Values[Id]='Purple' then
begin
ACanvas.Brush.Color:=clPurple;
end else
if AViewInfo.GridRecord.Values[Id]='Olive' then
begin
ACanvas.Brush.Color:=clOlive;
end else
if AViewInfo.GridRecord.Values[Id]='Teal' then
begin
ACanvas.Brush.Color:=clTeal;
end else
if AViewInfo.GridRecord.Values[Id]='Background' then
begin
ACanvas.Brush.Color:=clBackground;
end; }
end;
procedure TfrmCGContractListSel.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, false);
end;
procedure TfrmCGContractListSel.BuyNameChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, Order_Main);
SInitCDSData(ADOQueryMain, Order_Main);
end;
procedure TfrmCGContractListSel.ConNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if Length(Tedit(Sender).Text) < 1 then
Exit;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('select A.*,A.ConNo ConNoM ');
SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)');
SQL.Add(',ConMoney=(select Sum(PRTOrderQty*PRTPrice) from JYOrderCon_Sub B where B.MainId=A.MainId)');
SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)');
SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)');
SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.maiNID and X.TFType=''<27><>ͬ''),0)>0 then 1 else 0 end) as bit)');
sql.Add(' from JYOrderCon_Main A ');
SQL.Add('where OrdDate>=''' + '1899-01-01' + '''');
SQL.Add('and OrdDate<''' + '2050-01-01' + '''');
sql.Add(' and MPRTType=''<27><><EFBFBD><EFBFBD>'' ');
if Trim(DParameters1) <> '<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add('and A.Filler=''' + Trim(DName) + '''');
end;
// sql.Add(' and ConNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''');
sql.Add(' and ' + Tedit(Sender).Name + ' like ' + quotedstr(trim('%' + trim(Tedit(Sender).Text) + '%')));
Open;
end;
SCreateCDS(ADOQueryMain, Order_Main);
SInitCDSData(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
end;
procedure TfrmCGContractListSel.cxTabControl1Change(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmCGContractListSel.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index] = '2' then
ACanvas.Brush.Color := clLime;
end;
procedure TfrmCGContractListSel.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, true);
end;
procedure TfrmCGContractListSel.ToolButton2Click(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
ModalResult := 1;
end;
end.