D7gmYushang/发货申请(ShipmentRequest.dll)/U_DYSQInPut.pas
DESKTOP-E401PHE\Administrator 1d94a89439 0
2025-09-24 13:13:14 +08:00

576 lines
16 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_DYSQInPut;
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, cxCalendar, StrUtils,
cxDropDownEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator;
type
TfrmDYSQInPut = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
ScrollBox1: TScrollBox;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
ADOQuery1: TADOQuery;
Label14: TLabel;
cxGridPopupMenu2: TcxGridPopupMenu;
Label1: TLabel;
CRType: TComboBox;
Note: TEdit;
Label12: TLabel;
Label11: TLabel;
SHDanWei: TBtnEditC;
CustomerNoName: TBtnEditA;
v1Column1: TcxGridDBColumn;
cv1Column3: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
dazi1: TcxStyle;
lbl2: TLabel;
DLYDATE: TDateTimePicker;
Label3: TLabel;
v1Column2: TcxGridDBColumn;
Label7: TLabel;
XSType: TComboBox;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
filler: TEdit;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Label16: TLabel;
HZUnit: TBtnEditC;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Label28: TLabel;
MDTT: TComboBox;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure SHDanWeiBtnUpClick(Sender: TObject);
procedure SHDanWeiBtnDnClick(Sender: TObject);
procedure CustomerNoNameBtnClick(Sender: TObject);
procedure cv1Column3PropertiesEditValueChanged(Sender: TObject);
procedure Tv1Column6PropertiesEditValueChanged(Sender: TObject);
procedure HZUnitBtnUpClick(Sender: TObject);
procedure HZUnitBtnDnClick(Sender: TObject);
private
fuserName: string;
procedure InitData();
function SaveData(): Boolean;
{ Private declarations }
public
PState, CopyInt: Integer;
FMainId, FFMainId, ChkStr, ConPriceStr: string;
FXS: Integer;
{ Public declarations }
end;
var
frmDYSQInPut: TfrmDYSQInPut;
newh: hwnd;
implementation
uses
U_DataLink, U_ZDYHelp, U_RTFun, U_SQKCHZSelList, U_ContractListNXSel,
U_CPManageFMSel, U_ZdyAttachment, U_ClothSCYWYListSel, U_ProductOrderListSel,
U_CKProductBCPKCListSel;
{$R *.dfm}
procedure TfrmDYSQInPut.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>77');
end;
procedure TfrmDYSQInPut.InitData();
var
fsj: string;
begin
if PState = 0 then
begin
DLYDATE.datetime := strtodatetime(Trim(FormatDateTime('yyyy-MM-dd', Now)));
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add(' select A.* ');
sql.Add(' from FHSQ_Sub A');
if PState = 1 then
begin
sql.Add('where FSId=''' + Trim(FMainId) + '''');
end;
if PState = 0 then
begin
sql.Add(' where 1<>1');
end;
Open;
end;
SCreateCDS20(ADOQuery1, Order_Sub);
SInitCDSData20(ADOQuery1, Order_Sub);
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(' from FHSQ_Main A');
sql.Add(' where FSId=''' + Trim(FMainId) + ''' ');
Open;
end;
SCSHDataNew(ADOQuery1, ScrollBox1, 1);
if ADOQuery1.IsEmpty = True then
begin
filler.Text := Trim(DName);
end;
if FMainId = '' then
begin
CustomerNoName.Text := '<27>巿';
end;
end;
procedure TfrmDYSQInPut.FormShow(Sender: TObject);
var
fsj: string;
begin
readCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>77');
InitData();
end;
function TfrmDYSQInPut.SaveData(): Boolean;
var
maxno, maxmnno, FSSId: string;
fconNO, fmxType: string;
begin
try
ADOCmd.Connection.BeginTrans;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(FMainId) = '' then
begin
if GetLSNo(ADOCmd, maxno, 'SM', 'FHSQ_Main', 4, 1) = False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxno := Trim(FMainId);
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from FHSQ_Main where FSID=''' + Trim(FMainId) + '''');
Open;
end;
with ADOCmd do
begin
if Trim(FMainId) = '' then
begin
Append;
end
else
begin
Edit;
end;
FieldByName('SQType').Value := '<27><><EFBFBD><EFBFBD>';
FieldByName('FSID').Value := Trim(maxno);
RTSetsavedata(ADOCmd, 'FHSQ_Main', ScrollBox1, 1);
if Trim(FMainId) = '' then
begin
// FieldByName('Filler').Value := Trim(DName);
FieldByName('SQDate').Value := SGetServerDate(ADOTemp);
end
else
begin
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
end;
Post;
end;
FMainId := Trim(maxno);
///<2F><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
Order_Sub.DisableControls;
with Order_Sub do
begin
First;
while not Eof do
begin
if Trim(Order_Sub.fieldbyname('SSId').AsString) = '' then
begin
if GetLSNo(ADOCmd, maxno, 'SS', 'FHSQ_Sub', 4, 1) = False then
begin
Order_Sub.EnableControls;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxno := Trim(Order_Sub.fieldbyname('SSId').AsString);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from FHSQ_Sub ');
sql.Add(' where SSId=''' + Trim(maxno) + '''');
Open;
end;
if ADOCmd.IsEmpty then
begin
FSSId := '';
end
else
begin
FSSId := Trim(maxno);
end;
with ADOCmd do
begin
if Trim(FSSId) = '' then
begin
Append;
FieldByName('Filler').Value := Trim(DName);
end
else
begin
Edit;
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
end;
FieldByName('FSID').Value := Trim(FMainId);
FieldByName('SSID').Value := Trim(maxno);
RTSetSaveDataCDS(ADOCmd, Tv1, Order_Sub, 'FHSQ_Sub', 0);
FieldByName('MJID').Value := Order_Sub.fieldbyname('MJID').Value;
FieldByName('MainId').Value := Order_Sub.fieldbyname('MainId').Value;
FieldByName('SubId').Value := Order_Sub.fieldbyname('SubId').Value;
FieldByName('SSConMainId').Value := Order_Sub.fieldbyname('SSConMainId').Value;
FieldByName('SSConSubId').Value := Order_Sub.fieldbyname('SSConSubId').Value;
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('SSID').Value := Trim(maxno);
Next;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('update FHSQ_Main set DBConNo=cast((select '' ''+ SSConNo from FHSQ_Sub X where X.FSId=FHSQ_Main.FSId and X.SSConNo<>FHSQ_Main.ConNo for xml Path('''')) as varchar(100)) ');
SQL.Add(', SQPSHZ= (select sum(SQPS) from FHSQ_Sub X where X.FSId=FHSQ_Main.FSId ) ');
SQL.Add(', SQqtyHZ= (select sum(SQqty) from FHSQ_Sub X where X.FSId=FHSQ_Main.FSId ) ');
SQL.Add('where FSID=''' + Trim(FMainId) + '''');
ExecSQL;
end;
end;
Order_Sub.EnableControls;
ADOCmd.Connection.CommitTrans;
Result := True;
except
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Result := False;
end;
end;
procedure TfrmDYSQInPut.TBSaveClick(Sender: TObject);
var
Freal: Double;
begin
ToolBar1.SetFocus;
if Trim(CRType.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Trim(MDTT.Text) = '' then
begin
Application.MessageBox('<27>뵥̧ͷ<CCA7><CDB7><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Trim(CustomerNoName.Text) = '' then
begin
Application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if (Order_Sub.Locate('SQPS', null, [])) and (Order_Sub.Locate('SQqty', null, [])) = True then
begin
Application.MessageBox(<><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫΪ<C8AB>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with Order_Sub do
begin
First;
while not Eof do
begin
if Order_Sub.FieldByName('sqqty').AsFloat < 0 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
Next;
end;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
procedure TfrmDYSQInPut.ToolButton1Click(Sender: TObject);
var
FQtyUnit, FFSubid: string;
begin
// if Trim(CustomerNoName.Text) = '' then
// begin
// Application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
// Exit;
// end;
try
frmCKProductBCPKCListSel := TfrmCKProductBCPKCListSel.Create(Application);
with frmCKProductBCPKCListSel do
begin
if ShowModal = 1 then
begin
while CDS_Main.locate('SSel', true, []) do
begin
if (Self.Order_Sub.Locate('MJID', Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MJID').AsString), []) = False) and ((frmCKProductBCPKCListSel.CDS_Main.fieldbyname('ISSD').AsString <> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')) then
begin
with Self.Order_Sub do
begin
Append;
FieldByName('SCConNo').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('Orderno').AsString);
FieldByName('MainId').Value := frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MainId').Value;
FieldByName('SubId').Value := frmCKProductBCPKCListSel.CDS_Main.fieldbyname('SubId').Value;
FieldByName('PRTColor').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('PRTColor').AsString);
FieldByName('SPrtCode').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTCode').AsString);
FieldByName('SPrtCodeName').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTCodeName').AsString);
FieldByName('PRTHX').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('PRTHX').AsString);
FieldByName('MJID').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MJID').AsString);
FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('Qty').AsString);
FieldByName('gangno').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('GANGHAO').AsString);
FieldByName('CANGWEI').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('rkPLACE').AsString);
FieldByName('orderUnit').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('qtyunit').AsString);
FieldByName('sfkp').Value := '<27><>';
FieldByName('orderUnit').Value := Trim(HZUnit.Text);
FieldByName('PRICE').Value := 0;
FieldByName('money').Value := 0;
if (Trim(HZUnit.Text) = 'KG') or (Trim(HZUnit.Text) = '<27><><EFBFBD><EFBFBD>') then
begin
FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('KGQty').AsString);
end
else
begin
FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('QTY').AsString);
// if XSType.Text <> '<27>ֻ<EFBFBD>' then
// begin
// FieldByName('money').Value := StrToFloatdef(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('QTY').AsString, 0) * StrToFloatdef(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('SCSPRICE').AsString, 0);
// end;
end;
Post;
end;
end;
CDS_Main.Delete;
end;
end;
end;
finally
frmCKProductBCPKCListSel.Free;
end;
end;
procedure TfrmDYSQInPut.ToolButton2Click(Sender: TObject);
begin
if Order_Sub.IsEmpty then
Exit;
if Trim(Order_Sub.fieldbyname('SSId').AsString) <> '' then
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select * from FHSQ_Sub where SSId=''' + Trim(Order_Sub.fieldbyname('SSId').AsString) + '''');
sql.add(' and isnull(FHPS,0)>0');
Open;
end;
if ADOTemp.IsEmpty = False then
begin
Application.MessageBox('<27>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
exit;
end;
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 FHSQ_Sub where SSId=''' + Trim(Order_Sub.fieldbyname('SSId').AsString) + '''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update FHSQ_Main Set ');
sql.Add('SQPSHZ=(select Sum(SQPS) from FHSQ_Sub A where A.FSID=FHSQ_Main.FSID)');
sql.Add('where FSID=''' + Trim(FMainId) + '''');
ExecSQL;
end;
end;
Order_Sub.Delete;
end;
procedure TfrmDYSQInPut.SHDanWeiBtnUpClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'SHDanWei';
flagname := '<27>ջ<EFBFBD><D5BB><EFBFBD>λ';
if ShowModal = 1 then
begin
Self.SHDanWei.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmDYSQInPut.SHDanWeiBtnDnClick(Sender: TObject);
begin
SHDanWei.Text := '';
end;
procedure TfrmDYSQInPut.CustomerNoNameBtnClick(Sender: TObject);
begin
try
frmZdyAttachment := TfrmZdyAttachment.Create(Application);
with frmZdyAttachment do
begin
if ShowModal = 1 then
begin
Self.CustomerNoName.Text := Trim(frmZdyAttachment.CDS_HZ.fieldbyname('CoName').AsString);
end;
end;
finally
frmZdyAttachment.Free;
end;
end;
procedure TfrmDYSQInPut.cv1Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with Order_Sub do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
FieldbyName('Money').Value := format('%.2f', [FieldByName('sqqty').AsFloat * FieldByName('Price').AsFloat + FieldByName('BGFee').AsFloat]);
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmDYSQInPut.Tv1Column6PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with Order_Sub do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
FieldbyName('Money').Value := format('%.2f', [FieldByName('sqqty').AsFloat * FieldByName('Price').AsFloat + FieldByName('BGFee').AsFloat]);
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmDYSQInPut.HZUnitBtnUpClick(Sender: TObject);
begin
if not Order_Sub.IsEmpty then
begin
Application.MessageBox('<27><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
exit;
end;
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'HZUnit';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if ShowModal = 1 then
begin
Self.HZUnit.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmDYSQInPut.HZUnitBtnDnClick(Sender: TObject);
begin
if not Order_Sub.IsEmpty then
begin
Application.MessageBox('<27><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
exit;
end;
HZUnit.Text := '';
end;
end.