D7DJenchuang/检验管理/U_JYOrderOther_Main.pas
DESKTOP-E401PHE\Administrator 6716567ef8 ~
2025-04-28 17:09:12 +08:00

341 lines
9.9 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_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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
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.