D7DJkairan/坯布码单待检(PBMDDJ.dll)/U_ContractSelList.pas

492 lines
14 KiB
ObjectPascal
Raw Permalink Normal View History

2025-07-19 13:52:55 +08:00
unit U_ContractSelList;
2025-04-30 19:46:29 +08:00
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,
2025-07-19 13:52:55 +08:00
Menus, cxPC;
2025-04-30 19:46:29 +08:00
type
2025-07-19 13:52:55 +08:00
TfrmContractSelList = class(TForm)
2025-04-30 19:46:29 +08:00
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
2025-07-19 13:52:55 +08:00
TBExport: TToolButton;
v1OrdDate: TcxGridDBColumn;
2025-04-30 19:46:29 +08:00
v1ConNo: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
v1MPRTSpec: TcxGridDBColumn;
v1MPRTCF: TcxGridDBColumn;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
2025-07-19 13:52:55 +08:00
RMDBDataSet1: TRMDBDataSet;
2025-04-30 19:46:29 +08:00
RMXLSExport1: TRMXLSExport;
2025-07-19 13:52:55 +08:00
v1CustomerNoName: TcxGridDBColumn;
2025-04-30 19:46:29 +08:00
v1MPRTCodeName: TcxGridDBColumn;
v1MPRTMF: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
2025-07-19 13:52:55 +08:00
v1PRTPrice: TcxGridDBColumn;
ToolButton1: TToolButton;
v1Column1: TcxGridDBColumn;
2025-04-30 19:46:29 +08:00
ADOQueryPrint: TADOQuery;
CDS_Print: TClientDataSet;
v1Column4: TcxGridDBColumn;
2025-07-19 13:52:55 +08:00
Panel1: TPanel;
Label1: TLabel;
Label4: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CustomerNoName: TEdit;
SYRName: TEdit;
PRTGYHZ: TEdit;
ConNo: TEdit;
PRTGY: TEdit;
v1Column2: TcxGridDBColumn;
ComboBox1: TComboBox;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
Label2: TLabel;
PRTCode: TEdit;
Label3: TLabel;
Label5: TLabel;
PRTSpec: TEdit;
PRTCF: TEdit;
Panel2: TPanel;
CheckBox1: TCheckBox;
ToolButton2: TToolButton;
2025-04-30 19:46:29 +08:00
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
2025-07-19 13:52:55 +08:00
procedure TBExportClick(Sender: TObject);
2025-04-30 19:46:29 +08:00
procedure TBPrintClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
2025-07-19 13:52:55 +08:00
procedure ToolButton1Click(Sender: TObject);
procedure CustomerNoNameChange(Sender: TObject);
procedure ConNoKeyPress(Sender: TObject; var Key: Char);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ToolButton2Click(Sender: TObject);
2025-04-30 19:46:29 +08:00
private
DQdate:TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
{ Private declarations }
public
FFInt,FCloth:Integer;
{ Public declarations }
end;
var
2025-07-19 13:52:55 +08:00
frmContractSelList: TfrmContractSelList;
2025-04-30 19:46:29 +08:00
implementation
uses
2025-07-19 13:52:55 +08:00
U_DataLink,U_ConInPut,U_RTFun;
2025-04-30 19:46:29 +08:00
{$R *.dfm}
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.FormDestroy(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
frmContractSelList:=nil;
2025-04-30 19:46:29 +08:00
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.FormClose(Sender: TObject;
2025-04-30 19:46:29 +08:00
var Action: TCloseAction);
begin
Action:=caFree;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.FormCreate(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
cxgrid1.Align:=alClient;
//BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7;
//EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
DQdate:=SGetServerDate(ADOQueryTemp);
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.TBCloseClick(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
Close;
2025-07-19 13:52:55 +08:00
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
2025-04-30 19:46:29 +08:00
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.InitGrid();
2025-04-30 19:46:29 +08:00
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
2025-07-19 13:52:55 +08:00
sql.Add('select A.*,B.* ');
sql.Add(' from JYOrderCon_Main A ');
sql.Add(' inner join JYOrderCon_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)+'''');
{if Trim(DParameters1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
sql.Add('and A.Filler='''+Trim(DName)+'''');
end; }
2025-04-30 19:46:29 +08:00
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.InitForm();
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7;
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
InitGrid();
with ADOQueryTemp do
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
Close;
sql.Clear;
sql.Add('select Top 10* from JYOrderCon_Main Order by FillTime desc');
Open;
2025-04-30 19:46:29 +08:00
end;
2025-07-19 13:52:55 +08:00
ComboBox1.Clear;
with ADOQueryTemp do
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
First;
while not Eof do
begin
ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString));
Next;
end;
2025-04-30 19:46:29 +08:00
end;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.TBFindClick(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
2025-07-19 13:52:55 +08:00
function TfrmContractSelList.DelData():Boolean;
2025-04-30 19:46:29 +08:00
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
2025-07-19 13:52:55 +08:00
sql.Add('delete JYOrderCon_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+'''');
2025-04-30 19:46:29 +08:00
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
2025-07-19 13:52:55 +08:00
sql.Add('select * from JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
2025-04-30 19:46:29 +08:00
Open;
end;
2025-07-19 13:52:55 +08:00
if ADOQueryTemp.IsEmpty then
2025-04-30 19:46:29 +08:00
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
2025-07-19 13:52:55 +08:00
sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
2025-04-30 19:46:29 +08:00
ExecSQL;
end;
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;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.TBExportClick(Sender: TObject);
begin
//if ADOQueryMain.IsEmpty then Exit;
//SelExportData(Tv1,ADOQueryMain,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>');
if Order_Main.IsEmpty then Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ',cxGrid1);
end;
procedure TfrmContractSelList.TBPrintClick(Sender: TObject);
2025-04-30 19:46:29 +08:00
var
fPrintFile:string;
2025-07-19 13:52:55 +08:00
EngMoney:string;
2025-04-30 19:46:29 +08:00
begin
if Order_Main.IsEmpty then Exit;
2025-07-19 13:52:55 +08:00
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\Ӣ<>ĺ<EFBFBD>ͬ.rmf' ;
2025-04-30 19:46:29 +08:00
with ADOQueryPrint do
begin
Close;
sql.Clear;
2025-07-19 13:52:55 +08:00
sql.Add('select A.*,B.*,ConMoney=B.PRTOrderQty*B.PRTPrice,COL=''COL:'' ');
sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId ');
sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
2025-04-30 19:46:29 +08:00
Open;
end;
SCreateCDS20(ADOQueryPrint,CDS_Print);
SInitCDSData20(ADOQueryPrint,CDS_Print);
2025-07-19 13:52:55 +08:00
//
with ADOQueryTemp do
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
close;
sql.Clear;
sql.Add('select TolConMoney=Sum(PRTOrderQty*PRTPrice)');
sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId ');
sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
Open;
2025-04-30 19:46:29 +08:00
end;
2025-07-19 13:52:55 +08:00
EngMoney:=num2cengnum(ADOQueryTemp.fieldbyname('TolConMoney').AsString);
EngMoney:=UpperCase(EngMoney);
2025-04-30 19:46:29 +08:00
if FileExists(fPrintFile) then
begin
2025-07-19 13:52:55 +08:00
RMVariables['EngMoney']:=EngMoney;
2025-04-30 19:46:29 +08:00
//RMVariables['enddate']:=enddate.DateTime;
//RMVariables['printtime']:=Now;
//RMVariables['printer']:=Trim(gUserName);
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
2025-07-19 13:52:55 +08:00
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\Ӣ<>ĺ<EFBFBD>ͬ.rmf'),'<27><>ʾ',0);
2025-04-30 19:46:29 +08:00
end;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.TBRafreshClick(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
InitGrid();
with ADOQueryTemp do
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
Close;
sql.Clear;
sql.Add('select Top 10* from JYOrderCon_Main Order by FillTime desc ');
Open;
end;
ComboBox1.Clear;
with ADOQueryTemp do
begin
First;
while not Eof do
begin
ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('ConNO').AsString));
Next;
end;
end;
2025-04-30 19:46:29 +08:00
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.FormShow(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
InitForm();
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.Tv1StylesGetContentStyle(
2025-04-30 19:46:29 +08:00
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;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.v1DeliveryDateCustomDrawCell(
2025-04-30 19:46:29 +08:00
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]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then
ACanvas.Brush.Color:=clYellow
else
if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(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;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.ToolButton1Click(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
if Order_Main.IsEmpty then Exit;
2025-07-19 13:52:55 +08:00
try
frmConInPut:=TfrmConInPut.Create(Application);
with frmConInPut do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString);
ToolBar2.Visible:=False;
TBSave.Visible:=False;
ScrollBox1.Enabled:=False;
Tv1.OptionsSelection.CellSelect:=False;
if ShowModal=1 then
begin
end;
end;
finally
frmConInPut.Free;
2025-04-30 19:46:29 +08:00
end;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.CustomerNoNameChange(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
2025-04-30 19:46:29 +08:00
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
2025-07-19 13:52:55 +08:00
end;
procedure TfrmContractSelList.ConNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
if Length(ConNo.Text)<3 then Exit;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add('select A.*,B.* ');
sql.Add(' from JYOrderCon_Main A ');
sql.Add(' inner join JYOrderCon_Sub B on A.MainId=B.MainId');
SQL.Add('where 1=1');
{if Trim(DParameters1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add('and A.Filler='''+Trim(DName)+'''');
end; }
{if cxTabControl1.TabIndex=0 then
begin
SQL.Add(' and isnull(SChkTime,'''')<>'''' ');
SQL.Add(' and isnull(ChkTime,'''')='''' ');
end else
if cxTabControl1.TabIndex=1 then
begin
SQL.Add(' and isnull(ChkTime,'''')<>'''' ');
end; }
sql.Add(' and A.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
2025-04-30 19:46:29 +08:00
end;
end;
2025-07-19 13:52:55 +08:00
procedure TfrmContractSelList.cxTabControl1Change(Sender: TObject);
2025-04-30 19:46:29 +08:00
begin
2025-07-19 13:52:55 +08:00
InitGrid();
end;
procedure TfrmContractSelList.Tv1CellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if Order_Main.IsEmpty then Exit;
ModalResult:=1;
end;
procedure TfrmContractSelList.ToolButton2Click(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
2025-04-30 19:46:29 +08:00
ModalResult:=1;
end;
end.