D10myYicheng/财务管理(Financial.dll)/U_ProductOrderSel.pas

486 lines
13 KiB
ObjectPascal
Raw Normal View History

2025-05-27 14:08:09 +08:00
unit U_ProductOrderSel;
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, StrUtils, Menus, cxTextEdit,
cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu,
U_BaseHelp, System.ImageList, Vcl.ImgList, U_BaseInput;
type
TfrmProductOrderSel = class(TfrmBaseHelp)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label1: TLabel;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
v1OrderNo: TcxGridDBColumn;
v1OrdDate: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1MPRTSpec: TcxGridDBColumn;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
Label4: TLabel;
BuyName: TEdit;
v1MPRTCodeName: TcxGridDBColumn;
v1MPRTMF: TcxGridDBColumn;
Label8: TLabel;
SCSName: TEdit;
Label9: TLabel;
ConNo: TEdit;
v1MPRTKZ: TcxGridDBColumn;
v1OrdDefStr1: TcxGridDBColumn;
Label10: TLabel;
SCOrderNo: TEdit;
Label11: TLabel;
SCSCode: TEdit;
Label12: TLabel;
SCSKZ: TEdit;
Label13: TLabel;
SCSMF: TEdit;
ADOQueryPrint: TADOQuery;
CDS_Print: TClientDataSet;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
ADOQueryCmdSC: TADOQuery;
ADOQueryCmdFileContent: TBlobField;
ADOQueryCmdFtFileName: TStringField;
ADOQueryCmdFileEditDate: TDateTimeField;
ADOQueryCmdFileSize: TFloatField;
ADOQueryCmdFiller: TStringField;
ADOQueryCmdLastEditTime: TDateTimeField;
ADOQueryCmdLastEditer: TStringField;
ADOQueryCmdFileCreateDate: TDateTimeField;
ADOQueryCmdchildPath: TStringField;
ADOQueryCmdFileType: TStringField;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Label2: TLabel;
SCSColor: TEdit;
Label3: TLabel;
Label5: TLabel;
SCSHX: TEdit;
SCSColorno: TEdit;
ToolButton1: TToolButton;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure OrderNoMChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure v1Column3PropertiesEditValueChanged(Sender: TObject);
procedure v1Column1PropertiesEditValueChanged(Sender: TObject);
procedure v1Column6PropertiesEditValueChanged(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure v1Column8PropertiesChange(Sender: TObject);
procedure ConNoChange(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
private
DQdate: TDateTime;
procedure InitGrid();
procedure InitForm();
function UPLabel(LabelName, LabelPath: string): Boolean;
function PostFileToData(LabelName, LabelPath: string): boolean;
{ Private declarations }
public
FFInt, FCloth: Integer;
canshu1, Forderno, FColor, FCROrderNo: string;
{ Public declarations }
end;
var
// newh: hwnd;
frmProductOrderSel: TfrmProductOrderSel;
implementation
uses
U_DataLink, U_RTFun, U_LabelList;
{$R *.dfm}
function TfrmProductOrderSel.PostFileToData(LabelName, LabelPath: string): boolean;
var
mFileName, fFileName, fpathFileName: string;
Stream: TMemoryStream;
mfileSize: integer;
mCreationTime: TdateTime;
mWriteTime: TdateTime;
// ADOQueryCmdFileContent: TBlobField;
begin
result := false;
fFileName := Trim(LabelName) + '.rmf';
fpathFileName := Trim(LabelPath);
try
ADOQueryCmdSC.Connection.BeginTrans;
try
with ADOQueryCmdSC do
begin
close;
sql.Clear;
sql.Add('delete from RT_FileUpdate');
sql.Add('where FileName=' + quotedStr(trim(fFileName)));
execsql;
end;
with ADOQueryCmdSC do
begin
close;
sql.Clear;
sql.Add('select * from RT_FileUpdate');
sql.Add('where FileName=' + quotedStr(trim(fFileName)));
Open;
//////////////////////////
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
GetFileInfo(Trim(fpathFileName), mfileSize, mCreationTime, mWriteTime);
if RecordCount <= 0 then
begin
Append;
fieldByName('FileName').AsString := trim(fFileName);
end
else
begin
edit;
end;
fieldByName('FileEditDate').Value := mWriteTime;
fieldByName('FileCreateDate').Value := mCreationTime;
fieldByName('FileSize').Value := mfileSize;
fieldByName('Filler').Value := Dname;
fieldByName('LastEditer').Value := Dname;
fieldByName('LastEditTime').Value := Now();
// if pos('.rmf',fFileName)>0 then
begin
fieldByName('FilePath').Value := 'report';
fieldByName('FileType').Value := '<27><><EFBFBD><EFBFBD>';
end;
//<2F><>OLE<4C><45><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
RM1.SaveToBlobField(TBlobField(FieldByName('Files')));
// ADOQueryCmdFileContent.LoadFromFile(fpathFileName);
//ADOQueryCmdFileContent.LoadFromStream(Stream);
post;
end;
finally
end;
result := true;
ADOQueryCmdSC.Connection.CommitTrans;
except
ADOQueryCmdSC.Connection.RollbackTrans;
Result := False;
application.MessageBox(pchar('<27><EFBFBD>ļ<EFBFBD>[' + trim(fFileName) + ']ʧ<><CAA7>!'), '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
function TfrmProductOrderSel.UPLabel(LabelName, LabelPath: string): Boolean;
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from P_Label');
sql.Add('where LabelCaption=' + quotedstr(LabelName));
Open;
if ADOQueryCmd.IsEmpty then
begin
Append;
fieldByName('filler').value := DName;
fieldByName('filltime').value := DServerDate;
fieldByName('beizhu').value := '';
fieldByName('LabelCaption').value := trim(LabelPath);
fieldByName('LabelType').value := '<27><><EFBFBD>ı<EFBFBD>ǩ';
fieldByName('LabelFileName').value := trim(LabelName);
RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
end
else
begin
Edit;
fieldByName('Editer').value := DName;
fieldByName('EditTime').value := DServerDate;
end;
RM1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
result := true;
except
ADOQueryCmd.Connection.RollbackTrans;
Result := false;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩģ<C7A9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end;
end;
procedure TfrmProductOrderSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmProductOrderSel.FormCreate(Sender: TObject);
begin
inherited;
cxgrid1.Align := alClient;
//BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7;
//EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
DQdate := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmProductOrderSel.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmProductOrderSel.InitGrid();
var
fwhere, Pwhere: string;
begin
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.add('select DISTINCT AA.* ,V.SCOrderNo ');
sql.add('from ');
sql.add('(select A.ConNo,A.OrdDate,A.BuyName,B.*');
sql.add('from SalesContract_Main A inner join SalesContract_Sub B on A.MainId=B.MainId ');
sql.add('where 1=1');
sql.add(')AA join V_Ord_MS V on AA.ConNo=V.ConNo where 1=1 ' + fwhere);
// showmessage(sql.text);
Open;
end;
SCreateCDS(ADOQueryMain, Order_Main);
SInitCDSData(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmProductOrderSel.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, True);
end;
procedure TfrmProductOrderSel.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, False);
end;
procedure TfrmProductOrderSel.InitForm();
begin
ReadCxGrid('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime := SGetServerDate(ADOQueryTemp) - 7;
EndDate.DateTime := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmProductOrderSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderSel.ToolButton1Click(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
ModalResult := 1;
end;
procedure TfrmProductOrderSel.OrderNoMChange(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 TfrmProductOrderSel.FormShow(Sender: TObject);
begin
inherited;
InitForm();
initgrid();
SCSColor.text := Fcolor;
SCOrderNo.text := FCROrderNo;
end;
procedure TfrmProductOrderSel.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderSel.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmProductOrderSel.ConNoChange(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 TfrmProductOrderSel.v1Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalues: string;
begin
mvalues := TCXTextEdit(Sender).Text;
with Order_Main do
begin
edit;
fieldbyname('NLBName').Value := mvalues;
post;
end;
tv1.Controller.EditingController.ShowEdit();
if trim(mvalues) = '' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_Main Set NLBName='''' ');
sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + '''');
ExecSQL;
end;
end
end;
procedure TfrmProductOrderSel.v1Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalues, FFieldName: string;
begin
mvalues := TCXTextEdit(Sender).Text;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with Order_Main do
begin
edit;
fieldbyname(FFieldName).Value := mvalues;
post;
end;
tv1.Controller.EditingController.ShowEdit();
if trim(mvalues) = '' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_Main Set' + Trim(FFieldName) + '='''' ');
sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + '''');
ExecSQL;
end;
end
end;
procedure TfrmProductOrderSel.v1Column6PropertiesEditValueChanged(Sender: TObject);
var
mvalues: string;
begin
mvalues := TCXTextEdit(Sender).Text;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_Main Set XSType=''' + trim(mvalues) + ''' ');
sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + '''');
ExecSQL;
end;
with Order_Main do
begin
edit;
fieldbyname('XSType').Value := mvalues;
post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmProductOrderSel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
// if Order_Main.IsEmpty then
// exit;
// ToolButton1.Click;
end;
procedure TfrmProductOrderSel.Tv1DblClick(Sender: TObject);
begin
ToolButton1.Click;
end;
procedure TfrmProductOrderSel.v1Column8PropertiesChange(Sender: TObject);
var
mvalues: string;
begin
mvalues := TCXTextEdit(Sender).Text;
with Order_Main do
begin
edit;
fieldbyname('Orddefstr15').Value := mvalues;
post;
end;
tv1.Controller.EditingController.ShowEdit();
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_Main Set Orddefstr15=''' + trim(mvalues) + ''' ');
sql.Add('where Mainid=''' + Trim(Order_Main.fieldbyname('Mainid').AsString) + '''');
ExecSQL;
end;
end;
end.