D10gmBitao/B02基础纱线仓库/U_YarnInEdit.pas
“username” 16f469112b 111
2025-04-20 19:04:52 +08:00

613 lines
18 KiB
ObjectPascal
Raw 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_YarnInEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin,
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu,
cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, StdCtrls, ExtCtrls,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseInput,
System.ImageList, Vcl.ImgList, dxScrollbarAnnotations;
type
TfrmYarnInEdit = class(TfrmBaseInput)
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column2: TcxGridDBColumn;
v1SPName: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ToolBar1: TToolBar;
TBAdd: TToolButton;
TBDel: TToolButton;
TBSave: TToolButton;
TBClose: TToolButton;
v1Column4: TcxGridDBColumn;
DS_1: TDataSource;
CDS_Sub: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
GPM_1: TcxGridPopupMenu;
v1Column12: TcxGridDBColumn;
v1FactoryName: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1SPSpec: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column3: TcxGridDBColumn;
ToolButton2: TToolButton;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure FormDestroy(Sender: TObject);
procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Tv1Column3PropertiesEditValueChanged(Sender: TObject);
procedure v2Column6PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
function SaveCKData(): Boolean;
public
{ Public declarations }
FBCId, canshu3, FSTKName, FKHName: string;
end;
var
frmYarnInEdit: TfrmYarnInEdit;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_YarnInfoSel, U_CompanySel,
U_YarnPurchasePlanSel;
{$R *.dfm}
procedure TfrmYarnInEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmYarnInEdit.TBAddClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty = False then
begin
CopyAddRowCDS(CDS_Sub);
with CDS_Sub do
begin
Edit;
FieldByName('BYIOID').Value := null;
FieldByName('StkCoNo').Value := Trim(FSTKNAME) + '<27>ֿ<EFBFBD>';
FieldByName('StkCoName').Value := Trim(FSTKNAME) + '<27>ֿ<EFBFBD>';
post;
end;
end
else
begin
with CDS_Sub do
begin
Append;
FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
FieldByName('StkCoNo').Value := Trim(FSTKNAME) + '<27>ֿ<EFBFBD>';
FieldByName('StkCoName').Value := Trim(FSTKNAME) + '<27>ֿ<EFBFBD>';
FieldByName('QtyUnit').Value := 'Kg';
Post;
end;
end;
end;
function TfrmYarnInEdit.SaveCKData(): Boolean;
var
Maxno, MBYIOID: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Sub.DisableControls;
with CDS_Sub do
begin
First;
while not eof do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(CDS_Sub.fieldbyname('BYIOID').AsString) + '''');
open;
end;
MBYIOID := Trim(ADOQueryTemp.fieldbyname('BYIOID').AsString);
if Trim(MBYIOID) = '' then
begin
if not GetLSNo(ADOQueryCmd, Maxno, 'SPR', 'BS_Yarn_IO', 3, 1) then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
Maxno := Trim(MBYIOID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(Maxno) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(MBYIOID) = '' then
begin
Append;
FieldByName('Fillid').Value := Trim(Dcode);
FieldByName('Filler').Value := Trim(DName);
end
else
begin
Edit;
FieldByName('Editid').Value := Trim(Dcode);
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Sub, 'BS_Yarn_IO', 0);
FieldByName('FromCoNo').Value := CDS_Sub.fieldbyname('FromCoNo').Value;
FieldByName('StkCoNo').Value := CDS_Sub.fieldbyname('StkCoNo').Value;
FieldByName('FromOrdNo').Value := CDS_Sub.fieldbyname('FromOrdNo').value;
FieldByName('FromMainId').Value := CDS_Sub.fieldbyname('FromMainId').value;
FieldByName('FromSubId').Value := CDS_Sub.fieldbyname('FromSubId').value;
FieldByName('BYIOID').Value := Trim(Maxno);
FieldByName('STKID').Value := Trim(Maxno);
FieldByName('STKName').Value := FSTKName;
FieldByName('IOFlag').Value := '<27><><EFBFBD><EFBFBD>';
FieldByName('IOQtyFlag').Value := 1;
Post;
end;
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add('Update BS_Yarn_IO Set StkPiece=(select Sum(isnull(Piece,0)*IOQtyFlag) from BS_Yarn_IO A where A.STKID=BS_Yarn_IO.BYIOID)');
// sql.Add(',STKQty=(select Sum(isnull(Qty,0)*IOQtyFlag) from BS_Yarn_IO A where A.STKID=BS_Yarn_IO.BYIOID )');
// sql.Add('where BYIOID=''' + Trim(Maxno) + '''');
// ExecSQL;
// end;
// with ADOQueryTemp do
// begin
// Close;
// sql.Clear;
// sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(Maxno) + '''');
// Open;
// end;
// if ADOQueryTemp.FieldByName('STKQty').Value < 0 then
// raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>棡');
//
// if ADOQueryTemp.FieldByName('StkPiece').Value < 0 then
// raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>棡');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select FromCoName,StkCoName,Brand,Y_Name,stkqty=sum(ioqtyflag*qty),Price,QtyUnit,StkPosition ');
sql.Add(' from BS_Yarn_IO A ');
SQL.Add(' where 1=1 '); // isnull(StkQty,0)>0
if FstkName <> '' then
begin
sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');
end;
SQL.Add('GROUP BY FromCoName,StkCoName,Brand,Y_Name,Price,QtyUnit,StkPosition');
SQL.Add('HAVING sum(ioqtyflag*qty)<0');
sql.Add('order by StkCoName,Brand,Y_Name');
// sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(CDS_Sub.fieldbyname('STKID').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
// if ADOQueryTemp.FieldByName('StkPiece').Value < 0 then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>棡');
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId) values('<><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',' + quotedstr(Trim(Maxno)) + ') ');
ExecSQL;
end;
Edit;
FieldByName('BYIOID').Value := Trim(Maxno);
Post;
Next;
end;
end;
CDS_Sub.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
CDS_Sub.EnableControls;
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmYarnInEdit.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmYarnInEdit.FormDestroy(Sender: TObject);
begin
inherited;
frmYarnInEdit := nil;
end;
procedure TfrmYarnInEdit.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Yarn_IO A');
sql.Add(' where BYIOID=''' + Trim(FBCId) + '''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_Sub);
SInitCDSData(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmYarnInEdit.TBDelClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if Trim(CDS_Sub.fieldbyname('BYIOID').AsString) <> '' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_BS_Yarn_In_Del ');
Sql.Add(' @BYIOIDS=' + quotedstr(Trim(CDS_Sub.fieldbyname('BYIOID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
CDS_Sub.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end
else
begin
CDS_Sub.Delete;
end;
end;
procedure TfrmYarnInEdit.TBSaveClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if CDS_Sub.Locate('IOTime', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('IOType', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('Y_Name', null, []) = True then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('Qty', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('QtyUnit', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if SaveCKData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult := 1;
Exit;
end;
end;
procedure TfrmYarnInEdit.ToolButton1Click(Sender: TObject);
begin
WriteCxGrid(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
end;
procedure TfrmYarnInEdit.ToolButton2Click(Sender: TObject);
begin
try
frmYarnPurchasePlanSel := TfrmYarnPurchasePlanSel.Create(Application);
with frmYarnPurchasePlanSel do
begin
FSTKName := Self.FSTKName;
if ShowModal = 1 then
begin
with CDS_1 do
begin
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
with Self.CDS_Sub do
begin
Append;
FieldByName('IOType').Value := '<27>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('FromCoNo').Value := CDS_1.fieldbyname('SellNo').value;
FieldByName('FromCoName').Value := CDS_1.fieldbyname('SellName').value;
FieldByName('StkCoNo').Value := Trim(CDS_1.fieldbyname('BuyNo').AsString);
FieldByName('StkCoName').Value := CDS_1.fieldbyname('BuyName').value;
FieldByName('Brand').Value := CDS_1.fieldbyname('Brand').value;
FieldByName('Y_Name').Value := CDS_1.fieldbyname('Y_Name').value;
FieldByName('Y_Spec').Value := CDS_1.fieldbyname('Y_Spec').value;
FieldByName('Y_Composition').Value := CDS_1.fieldbyname('Y_Composition').value;
FieldByName('Denier').Value := CDS_1.fieldbyname('Denier').value;
FieldByName('Y_Color').Value := CDS_1.fieldbyname('Y_Color').value;
FieldByName('Qty').Value := CDS_1.fieldbyname('Qty').value;
FieldByName('Price').Value := CDS_1.fieldbyname('Price').value;
FieldByName('Amount').Value := CDS_1.fieldbyname('Amount').value;
FieldByName('QtyUnit').Value := CDS_1.fieldbyname('QtyUnit').value;
FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
FieldByName('FromOrdNo').Value := CDS_1.fieldbyname('PurNo').value;
FieldByName('FromMainId').Value := CDS_1.fieldbyname('PurMId').value;
FieldByName('FromSubId').Value := CDS_1.fieldbyname('PurSId').value;
end;
end;
Next;
end;
end;
end;
end;
finally
frmYarnPurchasePlanSel.Free;
end;
end;
procedure TfrmYarnInEdit.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('StkCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
FieldByName('StkCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmYarnInEdit.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmYarnInfoSel := TfrmYarnInfoSel.Create(Application);
with frmYarnInfoSel do
begin
FSTKName := Self.FSTKName;
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('Brand').Value := CDS_1.fieldbyname('Brand').value;
FieldByName('Y_Name').Value := CDS_1.fieldbyname('Y_Name').value;
FieldByName('Y_Spec').Value := CDS_1.fieldbyname('Y_Spec').value;
FieldByName('Y_Composition').Value := CDS_1.fieldbyname('Y_Composition').value;
FieldByName('Denier').Value := CDS_1.fieldbyname('Denier').value;
FieldByName('FromCoName').Value := CDS_1.fieldbyname('FromCoName').value;
FieldByName('FromCoNo').Value := Trim(CDS_1.fieldbyname('FromCoNo').value);
end;
end;
end;
finally
frmYarnInfoSel.Free;
end;
end;
procedure TfrmYarnInEdit.Tv1Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FPiece, FPieceQty, FQty, FPrice, FAmount: Double; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><DBA3><EFBFBD><EFBFBD><EFBFBD>
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_Sub do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FPiece := Fieldbyname('Piece').AsFloat;
FPieceQty := Fieldbyname('PieceQty').AsFloat;
FQty := RoundFloat(FPiece * FPieceQty, 2);
FPrice := Fieldbyname('Price').AsFloat;
end;
FAmount := RoundFloat(FQty * FPrice, 2);
with CDS_Sub do
begin
Edit;
FieldByName('Qty').Value := FQty;
FieldByName('Price').Value := FPrice;
FieldByName('Amount').Value := FAmount;
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmYarnInEdit.v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
if trim(CDS_Sub.FieldByName('IOType').AsString) = '<27>ͻ<EFBFBD><CDBB>Դ<EFBFBD>' then
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27>ͻ<EFBFBD>';
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('FromCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
FieldByName('FromCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end
else
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('FromCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
FieldByName('FromCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end;
end;
procedure TfrmYarnInEdit.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'StkPosition';
flagname := '<27><>λ';
MainType := FSTKName;
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('StkPosition').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmYarnInEdit.v2Column6PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FQty, FPrice, FAmount: Double; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><DBA3><EFBFBD><EFBFBD><EFBFBD>
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_Sub do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FQty := Fieldbyname('Qty').AsFloat;
FPrice := Fieldbyname('Price').AsFloat;
end;
FAmount := RoundFloat(FQty * FPrice, 2);
with CDS_Sub do
begin
Edit;
FieldByName('Qty').Value := FQty;
FieldByName('Price').Value := FPrice;
FieldByName('Amount').Value := FAmount;
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
end.