D10xhGemei/T05贸易门市管理/U_TradeMarketQtyInPut.pas
DESKTOP-E401PHE\Administrator c73edaf684 ~
2025-09-24 13:59:21 +08:00

350 lines
8.4 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_TradeMarketQtyInPut;
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;
type
TfrmTradeMarketQtyInPut = 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 Split(const s: string; Separator: char): TStringDynArray;
public
{ Public declarations }
PMTMSId, PFTMMID: string;
FName, FColor, FColorNo: string;
MTMSId, FTMMID: string;
end;
var
frmTradeMarketQtyInPut: TfrmTradeMarketQtyInPut;
implementation
uses
U_DataLink, U_RTFun, U_RPFun;
{$R *.dfm}
// <20>ָ<EFBFBD><D6B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function TfrmTradeMarketQtyInPut.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 TfrmTradeMarketQtyInPut.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('QtyUnit').Value := 'M';
Post;
end;
end;
end;
procedure TfrmTradeMarketQtyInPut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
function TfrmTradeMarketQtyInPut.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 := FieldByName('TMSQID').AsString;
FieldByName('TMSId').AsString := FieldByName('TMSId').AsString;
FieldByName('TMMId').AsString := 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 TfrmTradeMarketQtyInPut.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv1, <><C3B3><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>');
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select A.* from Trade_Market_Sub_Qty A');
sql.Add('where TMSId=''' + Trim(PMTMSId) + '''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_1);
SInitCDSData(ADOQueryTemp, CDS_1);
end;
procedure TfrmTradeMarketQtyInPut.FromCoNameDblClick(Sender: TObject);
begin
TcxButtonEdit(Sender).Text := '';
TcxButtonEdit(Sender).Properties.LookupItems.Text := '';
end;
procedure TfrmTradeMarketQtyInPut.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 := MaxNo;
// FieldByName('TMSId').Value := PMTMSId;
// FieldByName('TMMId').Value := PFTMMId;
Post;
end;
EnableControls;
end;
inPiece.Text := '1';
inQty.Text := '';
end;
end;
procedure TfrmTradeMarketQtyInPut.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 TfrmTradeMarketQtyInPut.TBCloseClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmTradeMarketQtyInPut.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 TfrmTradeMarketQtyInPut.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.