D10xhGemei/T05贸易门市管理/U_TradeMarketQtyTHInPut.pas
DESKTOP-E401PHE\Administrator 9f5fcadbd1 123545
2026-06-13 16:49:18 +08:00

478 lines
12 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_TradeMarketQtyTHInPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
System.Types, 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, dxDateRanges, dxBarBuiltInMenu, U_BaseInput, System.ImageList,
Vcl.ImgList, ComObj, dxScrollbarAnnotations, cxContainer, dxCore, cxDateUtils,
cxMaskEdit, cxImageList, cxCurrencyEdit, Vcl.Menus, Clipbrd, dxSkinsCore,
dxSkinsDefaultPainters, dxSkinWXI;
type
TfrmTradeMarketQtyTHnPut = class(TfrmBaseInput)
DS_1: TDataSource;
CDS_1: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
GPM_1: TcxGridPopupMenu;
CDS_LM: TClientDataSet;
pnl1: TPanel;
tlb1: TToolBar;
btn4: TToolButton;
pnl2: TPanel;
inPiece: TcxCurrencyEdit;
Label9: TLabel;
inQty: TcxCurrencyEdit;
Label13: TLabel;
TBSave: TToolButton;
TBClose: TToolButton;
Label1: TLabel;
GroupBox1: TGroupBox;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridDBColumn8: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
btnAdd: TToolButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure FromCoNameDblClick(Sender: TObject);
procedure inQtyKeyPress(Sender: TObject; var Key: Char);
procedure TBCloseClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Tv1DblClick(Sender: TObject);
private
{ Private declarations }
function SaveData(): Boolean;
function SaveData2(): Boolean;
function Split(const s: string; Separator: char): TStringDynArray;
public
{ Public declarations }
PMTMSId, PFTMMID: string;
canshu4: string;
FName, FColor, FColorNo: string;
MTMSId, FTMMID: string;
end;
var
frmTradeMarketQtyTHnPut: TfrmTradeMarketQtyTHnPut;
implementation
uses
U_DataLink, U_RTFun, U_RPFun;
{$R *.dfm}
// <20>ָ<EFBFBD><D6B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function TfrmTradeMarketQtyTHnPut.SaveData2(): Boolean;
var
MBCIOID, Maxno: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
CDS_1.DisableControls;
with CDS_1 do
begin
First;
while not eof do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Cloth_IO where BCIOID=''' + Trim(CDS_1.fieldbyname('BCIOID').AsString) + '''');
Open;
end;
MBCIOID := Trim(ADOQueryTemp.fieldbyname('BCIOID').AsString);
if Trim(MBCIOID) = '' then
begin
if not GetLSNo(ADOQueryCmd, Maxno, 'MC', 'BS_Cloth_IO', 4, 1) then
raise Exception.Create('ȡȾɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
Maxno := Trim(MBCIOID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Cloth_IO where BCIOID=''' + Trim(Maxno) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(MBCIOID) = '' then
begin
Append;
FieldByName('Fillid').Value := Trim(Dcode);
FieldByName('Filler').Value := Trim(DName);
FieldByName('status').value := '0';
end
else
begin
Edit;
FieldByName('Editid').Value := Trim(Dcode);
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'BS_Cloth_IO', 0);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update BS_Cloth_IO Set StkPiece=(select Sum(isnull(Piece,0)*IOQtyFlag) from BS_Cloth_IO A where A.STKID=BS_Cloth_IO.BCIOID)');
// sql.Add(',STKQty=(select Sum(isnull(Qty,0)*IOQtyFlag) from BS_Cloth_IO A where A.STKID=BS_Cloth_IO.BCIOID )');
sql.Add(',StkQty=(select Sum([dbo].[F_UnitConversion](A.QTYUNIT,A.NETWeight ,A.Meter ,A.Yardage ) *IOQtyFlag) from BS_Cloth_IO A where A.STKID=BS_Cloth_IO.BCIOID )');
sql.Add('where BCIOID=''' + Trim(CDS_1.fieldbyname('STKID').AsString) + '''');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from BS_Cloth_IO where BCIOID=''' + Trim(CDS_1.fieldbyname('STKID').AsString) + '''');
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>棡');
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_BS_Cloth_Move ');
Sql.Add(' @BCIOID=' + quotedstr(Trim(Maxno)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
sql.Add('values('<>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(Maxno));
sql.Add(',''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(DName));
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(Maxno));
sql.Add(') ');
ExecSQL;
end;
Edit;
FieldByName('BCIOID').Value := Trim(Maxno);
Post;
Next;
end;
end;
CDS_1.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
function TfrmTradeMarketQtyTHnPut.Split(const s: string; Separator: char): TStringDynArray;
var
i, ItemIndex: Integer;
len: Integer;
SeparatorCount: Integer;
Start: Integer;
begin
len := Length(s);
if len = 0 then
begin
Result := nil;
Exit;
end;
// <20><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SeparatorCount := 0;
for i := 1 to len do
if s[i] = Separator then
Inc(SeparatorCount);
SetLength(Result, SeparatorCount + 1);
ItemIndex := 0;
Start := 1;
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
for i := 1 to len do
begin
if s[i] = Separator then
begin
Result[ItemIndex] := Copy(s, Start, i - Start);
Inc(ItemIndex);
Start := i + 1;
end;
end;
Result[ItemIndex] := Copy(s, Start, len - Start + 1);
end;
procedure TfrmTradeMarketQtyTHnPut.btnAddClick(Sender: TObject);
begin
if CDS_1.IsEmpty = False then
begin
CopyAddRowCDS(CDS_1);
with CDS_1 do
begin
Edit;
FieldByName('TMSQID').Value := null;
post;
end;
end
else
begin
with CDS_1 do
begin
Append;
FieldByName('tmsid').Value := MTMSId;
Post;
end;
end;
end;
procedure TfrmTradeMarketQtyTHnPut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
function TfrmTradeMarketQtyTHnPut.SaveData(): Boolean;
var
Maxno, PTMSQID: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
CDS_1.DisableControls;
with CDS_1 do
begin
First;
while not eof do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from Trade_Market_Sub_Qty where TMSQID=''' + Trim(CDS_1.fieldbyname('TMSQID').AsString) + '''');
open;
end;
PTMSQID := Trim(ADOQueryTemp.fieldbyname('TMSQID').AsString);
if Trim(PTMSQID) = '' then
begin
if GetLSNo(ADOQueryTemp, Maxno, 'MX', 'Trade_Market_Sub_Qty', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
Maxno := Trim(PTMSQID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from Trade_Market_Sub_Qty where TMSQID=''' + Trim(Maxno) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(PTMSQID) = '' then
begin
Append;
FieldByName('FillId').Value := Trim(DCode);
FieldByName('Filler').Value := Trim(DName);
FieldByName('TMSQID').Value := Trim(Maxno);
end
else
begin
Edit;
FieldByName('EditId').Value := Trim(DCode);
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Trade_Market_Sub_Qty', 0);
FieldByName('TMSQID').AsString := Trim(Maxno);
FieldByName('TMSId').AsString := CDS_1.FieldByName('TMSId').AsString;
FieldByName('TMMId').AsString := CDS_1.FieldByName('TMMId').AsString;
// FieldByName('Qty').value := StrTofloatDef(inQty.Text, 0);
Post;
end;
Next;
end;
end;
CDS_1.EnableControls;
// with ADOQueryCmd do
// begin
// Close;
// Sql.Clear;
//
// Sql.Add('exec P_BS_Cloth_UpdateByTradeMarket ');
// Sql.Add(' @TIMId=' + quotedstr(Trim(FTMMID)));
// Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
// Sql.Add(',@DName=' + quotedstr(Trim(DName)));
// Open;
// end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmTradeMarketQtyTHnPut.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv1, <><C3B3><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>');
// TBSave.Visible := true;
pnl2.Visible := true;
btnAdd.Visible := true;
TBSave.Visible := true;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select A.* from Trade_Market_Sub_Qty A');
sql.Add('where A.TMSId=''' + Trim(MTMSId) + '''');
// sql.Add(' select * from Bs_Cloth_IO A inner join Trade_Market_Sub B on A.TMMID=B.TMMId and A.TMSId=B.TMSId');
// sql.Add('where A.TMSId=''' + Trim(MTMSId) + '''');
// showmessage(sql.text);
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_1);
SInitCDSData(ADOQueryTemp, CDS_1);
end;
procedure TfrmTradeMarketQtyTHnPut.FromCoNameDblClick(Sender: TObject);
begin
TcxButtonEdit(Sender).Text := '';
TcxButtonEdit(Sender).Properties.LookupItems.Text := '';
end;
procedure TfrmTradeMarketQtyTHnPut.inQtyKeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
MaxNo: string;
begin
if Key = #13 then
begin
with CDS_1 do
begin
DisableControls;
for i := 1 to StrToIntDef(inPiece.Text, 1) do
begin
Append;
FieldByName('Qty').Value := StrTofloatDef(inQty.Text, 0);
FieldByName('TMSQID').Value := NULL;
FieldByName('TMSId').Value := MTMSId;
FieldByName('TMMId').Value := PFTMMId;
Post;
end;
EnableControls;
end;
inPiece.Text := '1';
inQty.Text := '';
end;
end;
procedure TfrmTradeMarketQtyTHnPut.TBSaveClick(Sender: TObject);
var
Maxno: string;
begin
if CDS_1.Locate('Qty', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_1.Locate('Qty', 0, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0!', '<27><>ʾ', 0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
procedure TfrmTradeMarketQtyTHnPut.TBCloseClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmTradeMarketQtyTHnPut.Tv1DblClick(Sender: TObject);
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('delete Trade_Market_Sub_Qty where TMSQID=' + quotedstr(Trim(CDS_1.FieldByName('TMSQID').AsString)));
ExecSQL;
end;
CDS_1.Delete;
end;
procedure TfrmTradeMarketQtyTHnPut.Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> Ctrl+V
if (Key = Ord('V')) and (Shift = [ssCtrl]) then
begin
pasteDatatTocxGrid(Tv1);
end;
end;
end.