341 lines
9.8 KiB
ObjectPascal
341 lines
9.8 KiB
ObjectPascal
![]() |
unit U_JYOrderOther_Main;
|
|||
|
|
|||
|
interface
|
|||
|
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
|
|||
|
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
|
|||
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
|
|||
|
cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB,
|
|||
|
cxGridCustomPopupMenu, cxGridPopupMenu, DBClient, Buttons, cxTextEdit,
|
|||
|
cxButtonEdit;
|
|||
|
|
|||
|
type
|
|||
|
TFrmJYOrderOther = class(TForm)
|
|||
|
Panel1: TPanel;
|
|||
|
OrderNo: TEdit;
|
|||
|
Label1: TLabel;
|
|||
|
cxGrid1: TcxGrid;
|
|||
|
Tv1: TcxGridDBTableView;
|
|||
|
cxGrid1Level1: TcxGridLevel;
|
|||
|
v1OrderNo: TcxGridDBColumn;
|
|||
|
v1CustomerNoName: TcxGridDBColumn;
|
|||
|
v1PRTCodeName: TcxGridDBColumn;
|
|||
|
Order_Sub: TClientDataSet;
|
|||
|
Order_Main: TClientDataSet;
|
|||
|
DataSource1: TDataSource;
|
|||
|
cxGridPopupMenu1: TcxGridPopupMenu;
|
|||
|
DataSource2: TDataSource;
|
|||
|
ADOQuerySub: TADOQuery;
|
|||
|
ADOQueryMain: TADOQuery;
|
|||
|
cxGridPopupMenu2: TcxGridPopupMenu;
|
|||
|
ToolBar1: TToolBar;
|
|||
|
TBRafresh: TToolButton;
|
|||
|
TBFind: TToolButton;
|
|||
|
TBClose: TToolButton;
|
|||
|
Panel2: TPanel;
|
|||
|
ToolBar3: TToolBar;
|
|||
|
ToolButton11: TToolButton;
|
|||
|
ToolButton12: TToolButton;
|
|||
|
cxGrid2: TcxGrid;
|
|||
|
TV2: TcxGridDBTableView;
|
|||
|
TVQty: TcxGridDBColumn;
|
|||
|
TVWeight: TcxGridDBColumn;
|
|||
|
TVLength: TcxGridDBColumn;
|
|||
|
TVHeight: TcxGridDBColumn;
|
|||
|
TVwidth: TcxGridDBColumn;
|
|||
|
cxGridLevel1: TcxGridLevel;
|
|||
|
Panel3: TPanel;
|
|||
|
SpeedButton1: TSpeedButton;
|
|||
|
SpeedButton2: TSpeedButton;
|
|||
|
SpeedButton3: TSpeedButton;
|
|||
|
SpeedButton4: TSpeedButton;
|
|||
|
SpeedButton5: TSpeedButton;
|
|||
|
SpeedButton6: TSpeedButton;
|
|||
|
SpeedButton7: TSpeedButton;
|
|||
|
SpeedButton8: TSpeedButton;
|
|||
|
SpeedButton9: TSpeedButton;
|
|||
|
SpeedButton10: TSpeedButton;
|
|||
|
SpeedButton11: TSpeedButton;
|
|||
|
SpeedButton12: TSpeedButton;
|
|||
|
SpeedButton49: TSpeedButton;
|
|||
|
ToolButton1: TToolButton;
|
|||
|
procedure TBCloseClick(Sender: TObject);
|
|||
|
procedure OrderNoChange(Sender: TObject);
|
|||
|
procedure TBFindClick(Sender: TObject);
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure TBRafreshClick(Sender: TObject);
|
|||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
procedure FormDestroy(Sender: TObject);
|
|||
|
procedure ToolButton2Click(Sender: TObject);
|
|||
|
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
|
|||
|
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
|
|||
|
ANewItemRecordFocusingChanged: Boolean);
|
|||
|
procedure ToolButton3Click(Sender: TObject);
|
|||
|
procedure TV2CustomDrawIndicatorCell(Sender: TcxGridTableView;
|
|||
|
ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
|
|||
|
var ADone: Boolean);
|
|||
|
procedure SpeedButton1Click(Sender: TObject);
|
|||
|
procedure SpeedButton12Click(Sender: TObject);
|
|||
|
procedure SpeedButton49Click(Sender: TObject);
|
|||
|
procedure ToolButton1Click(Sender: TObject);
|
|||
|
private
|
|||
|
Procedure InitData();
|
|||
|
Procedure Savedata();
|
|||
|
function JsXj(str1:string):string;
|
|||
|
{ Private declarations }
|
|||
|
public
|
|||
|
fdatabase:string;
|
|||
|
{ Public declarations }
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
FrmJYOrderOther: TFrmJYOrderOther;
|
|||
|
|
|||
|
implementation
|
|||
|
|
|||
|
uses U_Fun,U_DataLink;
|
|||
|
{$R *.dfm}
|
|||
|
|
|||
|
function TFrmJYOrderOther.JsXj(str1:string):string;
|
|||
|
begin
|
|||
|
{str1:=trim(str1);
|
|||
|
result:=str1;
|
|||
|
str1:=StringReplace(str1,'.','',[rfReplaceAll]);
|
|||
|
IF length(str1)<1 then exit;
|
|||
|
|
|||
|
try
|
|||
|
//IF length(str1)>1 then
|
|||
|
//str1:=inttostr(strtoint(copy(str1,1,length(str1)-1)))+'.'+copy(str1,length(str1),1)
|
|||
|
//else
|
|||
|
str1:=copy(str1,length(str1),1);
|
|||
|
result:=str1;
|
|||
|
except
|
|||
|
end;}
|
|||
|
end;
|
|||
|
|
|||
|
Procedure TFrmJYOrderOther.Savedata();
|
|||
|
var
|
|||
|
FMainid: string;
|
|||
|
begin
|
|||
|
|
|||
|
try
|
|||
|
with order_Sub do
|
|||
|
begin
|
|||
|
first;
|
|||
|
while not eof do
|
|||
|
begin
|
|||
|
if Trim(Order_Sub.fieldbyname('Mainid').AsString)='' then
|
|||
|
begin
|
|||
|
if GetLSNo(ADOQuerySub,FMainid,'DD','JYOrder_Other',4,1)=False then
|
|||
|
begin
|
|||
|
Application.MessageBox('ȡ<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
|
|||
|
Exit;
|
|||
|
end;
|
|||
|
end else
|
|||
|
begin
|
|||
|
FMainid:=Trim(Order_Sub.fieldbyname('Mainid').AsString);
|
|||
|
end;
|
|||
|
with ADOQuerySub do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.add('select * from JYOrder_Other ');
|
|||
|
sql.Add('where OrderNo='''+trim(Order_Main.fieldbyname('OrderNo').AsString)+''' ');
|
|||
|
sql.add('and PRTCodeName='''+trim(Order_Main.fieldbyname('PRTCodeName').AsString)+''' ');
|
|||
|
sql.add('and Mainid='''+trim(FMainid)+'''');
|
|||
|
open;
|
|||
|
if isempty then
|
|||
|
append
|
|||
|
else
|
|||
|
edit;
|
|||
|
fieldbyname('Mainid').asstring:=Trim(FMainid);
|
|||
|
fieldbyname('OrderNo').asstring:=Trim(Order_Main.fieldbyname('OrderNo').AsString);
|
|||
|
fieldbyname('PRTCodeName').asstring:=Trim(Order_Main.fieldbyname('PRTCodeName').AsString);
|
|||
|
fieldbyname('Qty').Value:=Order_Sub.fieldbyname('Qty').AsFloat;
|
|||
|
fieldbyname('Weight').Value:=Order_Sub.fieldbyname('Weight').AsFloat;
|
|||
|
fieldbyname('Length').Value:=Order_Sub.fieldbyname('Length').AsFloat;
|
|||
|
fieldbyname('width').Value:=Order_Sub.fieldbyname('width').AsFloat;
|
|||
|
fieldbyname('Height').Value:=Order_Sub.fieldbyname('Height').AsFloat;
|
|||
|
post;
|
|||
|
end;
|
|||
|
next;
|
|||
|
end;
|
|||
|
end;
|
|||
|
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>','<27><>ʾ');
|
|||
|
except
|
|||
|
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>','<27><>ʾ',0);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
Procedure TFrmJYOrderOther.InitData();
|
|||
|
begin
|
|||
|
try
|
|||
|
ADOQueryMain.DisableControls;
|
|||
|
with ADOQueryMain do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.add('select A.OrderNo,A.CustomerNoName,isnull(B.PRTCodeName,'''') as PRTCodeName from JYOrder_Main A ');
|
|||
|
sql.add('Inner join JYOrder_Sub B on B.Mainid=A.Mainid ');
|
|||
|
sql.add('where 1=1 ');
|
|||
|
sql.add('Group by A.OrderNo,A.CustomerNoName,B.PRTCodeName');
|
|||
|
open;
|
|||
|
end;
|
|||
|
SCreateCDS20(ADOQueryMain,Order_Main);
|
|||
|
SInitCDSData20(ADOQueryMain,Order_Main);
|
|||
|
finally
|
|||
|
ADOQueryMain.EnableControls;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.TBCloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
close;
|
|||
|
WriteCxGrid(self.Caption+Tv1.Name,Tv1,'<27><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6>1');
|
|||
|
WriteCxGrid(self.Caption+Tv2.Name,Tv2,'<27><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6>2');
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.OrderNoChange(Sender: TObject);
|
|||
|
begin
|
|||
|
TBFind.Click;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.TBFindClick(Sender: TObject);
|
|||
|
begin
|
|||
|
if ADOQueryMain.Active=False then Exit;
|
|||
|
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
|
|||
|
SCreateCDS20(ADOQueryMain,Order_Main);
|
|||
|
SInitCDSData20(ADOQueryMain,Order_Main);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
ReadCxGrid(self.Caption+Tv1.Name,Tv1,'<27><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6>1');
|
|||
|
ReadCxGrid(self.Caption+Tv2.Name,Tv2,'<27><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6>2');
|
|||
|
|
|||
|
IF trim(fdatabase)='<27><>ѯ'then
|
|||
|
begin
|
|||
|
ToolBar3.Visible:=false;
|
|||
|
tv2.OptionsData.Editing:=false;
|
|||
|
end;
|
|||
|
InitData();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.TBRafreshClick(Sender: TObject);
|
|||
|
begin
|
|||
|
ToolBar1.SetFocus;
|
|||
|
InitData();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.FormClose(Sender: TObject;
|
|||
|
var Action: TCloseAction);
|
|||
|
begin
|
|||
|
Action:=caFree;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.FormDestroy(Sender: TObject);
|
|||
|
begin
|
|||
|
FrmJYOrderOther:=nil;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.ToolButton2Click(Sender: TObject);
|
|||
|
begin
|
|||
|
with Order_Sub do
|
|||
|
begin
|
|||
|
append;
|
|||
|
post;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.Tv1FocusedRecordChanged(
|
|||
|
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
|||
|
AFocusedRecord: TcxCustomGridRecord;
|
|||
|
ANewItemRecordFocusingChanged: Boolean);
|
|||
|
begin
|
|||
|
if Order_Main.IsEmpty then exit;
|
|||
|
with ADOQuerySub do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.clear;
|
|||
|
sql.Add('select * from JYOrder_Other ');
|
|||
|
sql.add('where OrderNo='''+trim(Order_Main.fieldbyname('OrderNo').AsString)+''' ');
|
|||
|
sql.add('and PRTCodeName='''+trim(Order_Main.fieldbyname('PRTCodeName').AsString)+''' ');
|
|||
|
open;
|
|||
|
end;
|
|||
|
SCreateCDS20(ADOQuerySub,Order_Sub);
|
|||
|
SInitCDSData20(ADOQuerySub,Order_Sub);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.ToolButton3Click(Sender: TObject);
|
|||
|
begin
|
|||
|
if Order_Sub.IsEmpty then exit;
|
|||
|
if application.MessageBox('ȷ<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',1)=2 then exit;
|
|||
|
with ADOQueryMain do
|
|||
|
begin
|
|||
|
close;
|
|||
|
sql.Clear;
|
|||
|
sql.add('delete from JYOrder_Other where Mainid='''+trim(Order_Sub.fieldbyname('Mainid').AsString)+'''');
|
|||
|
execsql;
|
|||
|
end;
|
|||
|
order_Sub.Delete;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.TV2CustomDrawIndicatorCell(
|
|||
|
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
|||
|
AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
|
|||
|
var
|
|||
|
FValue: string;
|
|||
|
FBounds: TRect;
|
|||
|
begin
|
|||
|
FBounds := AViewInfo.Bounds;
|
|||
|
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
|
|||
|
begin
|
|||
|
ACanvas.FillRect(FBounds);
|
|||
|
ACanvas.DrawComplexFrame(FBounds, clDefault, clDefault, [bBottom, bLeft, bRight], 1);
|
|||
|
FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1);
|
|||
|
InflateRect(FBounds, -3, -2);
|
|||
|
ACanvas.Font.Color := clDefault;
|
|||
|
ACanvas.Brush.Style := bsClear;
|
|||
|
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
|
|||
|
ADone := True;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.SpeedButton1Click(Sender: TObject);
|
|||
|
var
|
|||
|
fsj:string;
|
|||
|
begin
|
|||
|
fsj:=Trim(TSpeedButton(Sender).Hint);
|
|||
|
showmessage(Trim(TSpeedButton(Sender).Hint));
|
|||
|
if Trim(fsj)='' then Exit;
|
|||
|
fsj:=Trim(TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).EditingText);
|
|||
|
TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).EditingText:=fsj+Trim(TSpeedButton(Sender).Caption);
|
|||
|
TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.SpeedButton12Click(Sender: TObject);
|
|||
|
var
|
|||
|
fsj:string;
|
|||
|
begin
|
|||
|
fsj:=Trim(TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).EditingText);
|
|||
|
if Trim(fsj)='' then Exit;
|
|||
|
TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).EditingText:=Copy(fsj,1,Length(fsj)-1);
|
|||
|
TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.SpeedButton49Click(Sender: TObject);
|
|||
|
begin
|
|||
|
Panel3.Visible:=False;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TFrmJYOrderOther.ToolButton1Click(Sender: TObject);
|
|||
|
begin
|
|||
|
if order_Sub.IsEmpty then exit;
|
|||
|
Savedata();
|
|||
|
// initData();
|
|||
|
end;
|
|||
|
|
|||
|
end.
|