D7wmhengming/坯布码单待检(PBMDDJ.dll)/U_CIInPut.pas

478 lines
15 KiB
ObjectPascal
Raw Normal View History

2025-04-16 09:11:01 +08:00
unit U_CIInPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer,
cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB,
ExtCtrls, BtnEdit, cxDropDownEdit;
type
TfrmCIInPut = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
ScrollBox1: TScrollBox;
Label1: TLabel;
CINO: TEdit;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
DataSource2: TDataSource;
ADOZDY: TADOQuery;
CDS_ZDY: TClientDataSet;
ADOQuery1: TADOQuery;
Label2: TLabel;
CIDate: TDateTimePicker;
Label11: TLabel;
Label15: TLabel;
OtherFeeName: TBtnEditA;
CustomerNoName: TEdit;
Label7: TLabel;
OtherFee: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1ShipDate: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v2Column4: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure OtherFeeNameBtnClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure v2Column1PropertiesEditValueChanged(Sender: TObject);
procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
FXS:Integer;
procedure InitData();
procedure ZDYHelp(FButn:TcxButtonEdit;LType:string);
function SaveData():Boolean;
{ Private declarations }
public
PState,PCopyInt:Integer;
FMainId,FConNo,FConType:String;
{ Public declarations }
end;
var
frmCIInPut: TfrmCIInPut;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_GYSList,U_ZDYHelpSel,U_FHOKSelList;
{$R *.dfm}
procedure TfrmCIInPut.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmCIInPut.InitData();
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add(' select A.CIID,A.CINO,A.CIDate,A.OtherFeeName,A.OtherFee, ');
sql.Add(' B.CSID,C.ConNo,C.CustomerNoName,C.CustomerNo,D.FHQty,D.FHPS,D.FHDate,D.FHType,D.QtyUnit,');
sql.Add(' E.OrderNo,PRTCode=isnull(E.MPRTCode,'''')+isnull(E.MPRTGY,''''),');
sql.Add(' PRTColor=isnull(F.PRTColorNo,'''')+'' ''+isnull(F.PRTColor,'''')+'' ''+isnull(F.PRTColorEng,''''), ');
sql.Add(' F.PRTHX,G.PriceUnit,G.PRTPrice,FHMoney=G.PRTPrice*D.FHQty,PIMainId=G.MainId,PISubId=G.SubId,');
sql.Add(' F.MainId,F.SubId,D.FHID,B.CSPrice,B.CSMoney,B.SKKMoney');
sql.Add(' from JYOrder_CI A');
sql.Add(' inner join JYOrder_CI_Sub B on A.CIId=B.CIId');
sql.Add(' inner join JYOrder_FH D on B.FHID=D.FHID');
sql.Add(' inner join JYOrder_Main E on D.MainId=E.MainId');
sql.Add(' inner join JYOrder_Sub F on D.SubId=F.SubId');
sql.Add(' inner join JYOrderCon_Sub G on F.PISubId=G.SubId');
sql.Add(' inner join JYOrderCon_Main C on G.Mainid=C.MainId');
sql.Add(' where A.CIID='''+Trim(FMainId)+'''');
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
SCSHDataNew(ADOQuery1,ScrollBox1,0);
if PState=0 then
begin
CIDate.DateTime:=Now;
end;
end;
procedure TfrmCIInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string);
begin
end;
procedure TfrmCIInPut.FormShow(Sender: TObject);
begin
InitData();
end;
function TfrmCIInPut.SaveData():Boolean;
var
maxno,maxSubNo:String;
begin
try
Result:=False;
ADOCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(FMainId)='' then
begin
if GetLSNo(ADOCmd,maxno,'CI','JYOrder_CI',3,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(FMainId);
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from JYOrder_CI where CIID='''+Trim(FMainId)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(FMainId)='' then
begin
Append;
end
else begin
Edit;
end;
FieldByName('CIID').Value:=Trim(maxno);
FieldByName('CINO').Value:=Trim(CINO.Text);
FieldByName('CIDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',CIDate.Date));
FieldByName('OtherFeeName').Value:=Trim(OtherFeeName.Text);
if Trim(OtherFee.Text)<>'' then
FieldByName('OtherFee').Value:=Trim(OtherFee.Text)
else
FieldByName('OtherFee').Value:=Null;
if Trim(FMainId)='' then
begin
FieldByName('Filler').Value:=Trim(DName);
end else
begin
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp);
end;
Post;
end;
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select * from JYOrder_CI where CINO='''+Trim(CINO.Text)+'''');
Open;
end;
if ADOTemp.RecordCount>1 then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD>۷<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>ظ<EFBFBD>!','<27><>ʾ',0);
Exit;
end;
///<2F><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
with Order_Sub do
begin
First;
while not Eof do
begin
if Trim(Order_Sub.fieldbyname('CSId').AsString)='' then
begin
if GetLSNo(ADOCmd,maxSubNo,'CS','JYOrder_CI_Sub',4,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
exit;
end;
end else
begin
maxSubNo:=Trim(Order_Sub.fieldbyname('CSId').AsString);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from JYOrder_CI_Sub where ');
sql.Add(' CSId='''+Trim(maxSubNo)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(Order_Sub.fieldbyname('CSId').AsString)='' then
Append
else
Edit;
FieldByName('CIID').Value:=Trim(maxno);
FieldByName('CSId').Value:=Trim(maxSubNo);
FieldByName('PIMainId').Value:=Order_Sub.fieldbyname('PIMainId').Value;
FieldByName('PISubId').Value:=Order_Sub.fieldbyname('PISubId').Value;
FieldByName('FHID').Value:=Order_Sub.fieldbyname('FHID').Value;
FieldByName('CSBZType').Value:=Order_Sub.fieldbyname('PriceUnit').Value;
FieldByName('CSQtyUnit').Value:=Order_Sub.fieldbyname('QtyUnit').Value;
FieldByName('CSPrice').Value:=Order_Sub.fieldbyname('CSPrice').Value;
FieldByName('CSPS').Value:=Order_Sub.fieldbyname('FHPS').Value;
FieldByName('CSQty').Value:=Order_Sub.fieldbyname('FHQty').Value;
FieldByName('CSMoney').Value:=Order_Sub.fieldbyname('CSMoney').Value;
FieldByName('SKKMoney').Value:=Order_Sub.fieldbyname('SKKMoney').Value;
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('CSId').Value:=Trim(maxSubNo);
Next;
end;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_CI Set CustomerNoName='''+Trim(Order_Sub.fieldbyname('CustomerNoName').AsString)+''''); //
sql.Add(',CustomerNo='''+Trim(Order_Sub.fieldbyname('CustomerNo').AsString)+''''); //
sql.Add(',FHMoney=(select Sum(CSMoney) from JYOrder_CI_Sub CS where CS.CIID=JYOrder_CI.CIID)');
sql.Add(',KKMoney=(select Sum(SKKMoney) from JYOrder_CI_Sub CS where CS.CIID=JYOrder_CI.CIID)');
sql.Add(',BZType='''+Trim(Order_Sub.fieldbyname('PriceUnit').AsString)+'''');
sql.Add(' where CIID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_CI Set YSMoney=isnull(FHMoney,0)+isnull(OtherFee,0)+isnull(KKMoney,0)-isnull(DJMoney,0)');
sql.Add('-isnull(YKMoney,0)-isnull(QKMoney,0)-isnull(YJMoney,0)');
sql.Add(' where CIID='''+Trim(maxno)+'''');
ExecSQL;
end;
ADOCmd.Connection.CommitTrans;
FMainId:=Trim(maxno);
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmCIInPut.TBSaveClick(Sender: TObject);
var
PIMainId:String;
begin
CINO.SetFocus;
if Trim(CINO.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD>۷<EFBFBD>Ʊ<EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if Order_Sub.IsEmpty then
begin
Application.MessageBox('<27><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
exit;
end;
PIMainId:='';
Order_Sub.DisableControls;
with Order_Sub do
begin
First;
while not eof do
begin
if PIMainId='' then
begin
PIMainId:=Trim(Order_Sub.fieldbyname('CustomerNoName').AsString);
end else
begin
if Trim(PIMainId)<>Trim(Order_Sub.fieldbyname('CustomerNoName').AsString) then
begin
Order_Sub.EnableControls;
Application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
end;
if Trim(Order_Sub.fieldbyname('SKKMoney').AsString)<>'' then
begin
if Order_Sub.fieldbyname('SKKMoney').Value>0 then
begin
Order_Sub.EnableControls;
Application.MessageBox('<27>ۿ<EFBFBD><DBBF><EFBFBD><EFBFBD><EFBFBD><EEB2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
Next;
end;
end;
Order_Sub.EnableControls;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
ModalResult:=1;
end;
end;
procedure TfrmCIInPut.ToolButton2Click(Sender: TObject);
begin
if Order_Sub.IsEmpty then Exit;
if Trim(Order_Sub.fieldbyname('CSId').AsString)<>'' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_CI_Sub where CSId='''+Trim(Order_Sub.fieldbyname('CSId').AsString)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_CI Set ');
sql.Add(' FHMoney=(select Sum(CSMoney) from JYOrder_CI_Sub CS where CS.CIID=JYOrder_CI.CIID)');
sql.Add(' where CIID='''+Trim(FMainId)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYOrder_CI Set YSMoney=isnull(FHMoney,0)+isnull(OtherFee,0)-isnull(DJMoney,0)');
sql.Add('-isnull(YKMoney,0)-isnull(QKMoney,0)-isnull(YJMoney,0)+isnull(KKMoney,0)');
sql.Add(' where CIID='''+Trim(FMainId)+'''');
ExecSQL;
end;
end;
Order_Sub.Delete;
end;
procedure TfrmCIInPut.OtherFeeNameBtnClick(Sender: TObject);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='CIOtherFeeName';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
OtherFeeName.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmCIInPut.ToolButton1Click(Sender: TObject);
begin
try
frmFHOKSelList:=TfrmFHOKSelList.Create(Application);
with frmFHOKSelList do
begin
if ShowModal=1 then
begin
with frmFHOKSelList.Order_Main do
begin
First;
while Locate('SSel',True,[]) do
begin
with Self.Order_Sub do
begin
Append;
FieldByName('PIMainId').Value:=frmFHOKSelList.Order_Main.fieldbyname('PIMainId').Value;
FieldByName('PISubId').Value:=frmFHOKSelList.Order_Main.fieldbyname('PISubId').Value;
FieldByName('MainId').Value:=frmFHOKSelList.Order_Main.fieldbyname('MainId').Value;
FieldByName('SubId').Value:=frmFHOKSelList.Order_Main.fieldbyname('SubId').Value;
FieldByName('FHID').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHID').Value;
FieldByName('OrderNo').Value:=frmFHOKSelList.Order_Main.fieldbyname('OrderNo').Value;
FieldByName('PRTCode').Value:=frmFHOKSelList.Order_Main.fieldbyname('PRTCode').Value;
FieldByName('PRTColor').Value:=frmFHOKSelList.Order_Main.fieldbyname('PRTColor').Value;
FieldByName('PRTHX').Value:=frmFHOKSelList.Order_Main.fieldbyname('PRTHX').Value;
FieldByName('QtyUnit').Value:=frmFHOKSelList.Order_Main.fieldbyname('QtyUnit').Value;
FieldByName('FHType').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHType').Value;
FieldByName('FHDate').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHDate').Value;
FieldByName('FHPS').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHPS').Value;
FieldByName('FHQty').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHQty').Value;
FieldByName('PriceUnit').Value:=frmFHOKSelList.Order_Main.fieldbyname('PriceUnit').Value;
FieldByName('CSPrice').Value:=frmFHOKSelList.Order_Main.fieldbyname('PRTPrice').Value;
FieldByName('CSMoney').Value:=frmFHOKSelList.Order_Main.fieldbyname('FHMoney').Value;
FieldByName('ConNO').Value:=frmFHOKSelList.Order_Main.fieldbyname('ConNO').Value;
FieldByName('CustomerNoName').Value:=frmFHOKSelList.Order_Main.fieldbyname('CustomerNoName').Value;
FieldByName('CustomerNo').Value:=frmFHOKSelList.Order_Main.fieldbyname('CustomerNo').Value;
//FieldByName('OrderNo').Value:=frmFHOKSelList.Order_Main.fieldbyname('OrderNo').Value;
//FieldByName('OrderNo').Value:=frmFHOKSelList.Order_Main.fieldbyname('OrderNo').Value;
//FieldByName('OrderNo').Value:=frmFHOKSelList.Order_Main.fieldbyname('OrderNo').Value;
Post;
end;
frmFHOKSelList.Order_Main.Delete;
end;
end;
end;
end;
finally
frmFHOKSelList.Free;
end;
end;
procedure TfrmCIInPut.v2Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then mvalue:='0';
with Order_Sub do
begin
Edit;
FieldByName('CSPrice').Value:=mvalue;
Post;
end;
with Order_Sub do
begin
Edit;
FieldByName('CSMoney').Value:=FieldByName('CSPrice').Value*FieldByName('FHQty').Value;
end;
end;
procedure TfrmCIInPut.Tv2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Trim(DParameters1)='<27><>Ȩ<EFBFBD><C8A8>' then
begin
v2Column1.Options.Editing:=True;
end else
begin
v2Column1.Options.Editing:=False;
end;
end;
end.