D10xhGemei/T02贸易汇总仓库/U_TradeClothTotalInInput1.pas

1158 lines
33 KiB
ObjectPascal
Raw Normal View History

2024-12-30 22:05:29 +08:00
unit U_TradeClothTotalInInput1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
2025-01-16 12:45:51 +08:00
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,
2025-01-20 13:05:39 +08:00
cxMaskEdit, cxImageList, cxCurrencyEdit, Vcl.Menus, Clipbrd;
2024-12-30 22:05:29 +08:00
type
TfrmTradeClothTotalInInput1 = class(TfrmBaseInput)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
DataSource3: TDataSource;
CDS_Sub: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
GPM_1: TcxGridPopupMenu;
CDS_LM: TClientDataSet;
OpenDialog1: TOpenDialog;
Panel1: TPanel;
Label12: TLabel;
Label1: TLabel;
IOType: TcxComboBox;
IOTime: TcxDateEdit;
Label14: TLabel;
FromCoName: TcxButtonEdit;
Label2: TLabel;
Label5: TLabel;
Label15: TLabel;
Label22: TLabel;
Label4: TLabel;
Label7: TLabel;
Label6: TLabel;
Label11: TLabel;
Label10: TLabel;
Label16: TLabel;
Label21: TLabel;
C_Name: TcxTextEdit;
C_Color: TcxTextEdit;
FtyPCId: TcxTextEdit;
C_EName: TcxTextEdit;
C_Code: TcxButtonEdit;
Label27: TLabel;
QtyUnit: TcxComboBox;
Label3: TLabel;
StkCoName: TcxButtonEdit;
C_EComposition: TcxTextEdit;
C_GramWeight: TcxTextEdit;
C_Composition: TcxTextEdit;
C_Width: TcxTextEdit;
C_Spec: TcxTextEdit;
C_Pattern: TcxTextEdit;
Label8: TLabel;
C_Colorno: TcxTextEdit;
pnl1: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
tlb1: TToolBar;
btn1: TToolButton;
btn3: TToolButton;
btn4: TToolButton;
pnl2: TPanel;
inPiece: TcxCurrencyEdit;
Label9: TLabel;
inQty: TcxCurrencyEdit;
Label13: TLabel;
Label17: TLabel;
C_Degree: TcxComboBox;
Label18: TLabel;
BCIONO: TcxTextEdit;
2024-12-31 16:22:23 +08:00
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
btndaoru: TToolButton;
2025-01-16 12:45:51 +08:00
PopupMenu1: TPopupMenu;
N1: TMenuItem;
2025-01-20 13:05:39 +08:00
btn2: TToolButton;
2025-02-17 12:31:41 +08:00
ToolButton1: TToolButton;
ToolButton2: TToolButton;
2024-12-30 22:05:29 +08:00
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 v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure FromCoNameDblClick(Sender: TObject);
procedure FromCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure C_CodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure inQtyKeyPress(Sender: TObject; var Key: Char);
procedure StkCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
2024-12-31 16:22:23 +08:00
procedure btndaoruClick(Sender: TObject);
2025-01-16 12:45:51 +08:00
procedure N1Click(Sender: TObject);
2025-01-20 13:05:39 +08:00
procedure btn2Click(Sender: TObject);
2025-02-17 12:31:41 +08:00
procedure ToolButton2Click(Sender: TObject);
2024-12-30 22:05:29 +08:00
private
{ Private declarations }
function SaveCKData(): Boolean;
2025-01-14 16:18:44 +08:00
procedure JSKC();
2025-01-16 12:45:51 +08:00
procedure NianTie();
function Split(const s: string; Separator: char): TStringDynArray;
2024-12-30 22:05:29 +08:00
public
{ Public declarations }
FBCId, canshu3, FSTKName, FKHName: string;
end;
var
frmTradeClothTotalInInput1: TfrmTradeClothTotalInInput1;
implementation
uses
2025-02-17 12:31:41 +08:00
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_TradePlanSel, U_ClothInfoSel,
U_RPFun;
2024-12-30 22:05:29 +08:00
{$R *.dfm}
2025-01-16 12:45:51 +08:00
function TfrmTradeClothTotalInInput1.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;
SeparatorCount := 0;
for i := 1 to len do
begin
if s[i] = Separator then
begin
inc(SeparatorCount);
end;
end;
SetLength(Result, SeparatorCount + 1);
ItemIndex := 0;
Start := 1;
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 TfrmTradeClothTotalInInput1.N1Click(Sender: TObject);
var
hmem: THandle;
ClipboardText: PChar;
Lines: TStringDynArray;
Cells: TStringDynArray;
i: Integer;
begin
// <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ClipboardText<78><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OpenClipboard(0);
hmem := GetClipboardData(CF_TEXT);
ClipboardText := GlobalLock(hmem);
// <20><><EFBFBD>Ȱ<EFBFBD><C8B0><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>
Lines := Split(ClipboardText, #13); // Windowsϵͳ<CFB5>л<EFBFBD><D0BB>з<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>#13#10
// <20><><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>
for i := 0 to Length(Lines) - 1 do
begin
// <20><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>ֳɵ<D6B3>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Cells := Split(Lines[i], ',');
// <20><>ʱCells<6C><73><EFBFBD><EFBFBD><EFBFBD>оʹ<CDB4><E6B4A2>ÿһ<C3BF>еĵ<D0B5>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>в<EFBFBD><D0B2>ֺ<EFBFBD><D6BA><EFBFBD>Cells[0]='<27><><EFBFBD><EFBFBD>'<27><>Cells[1]='<27><><EFBFBD><EFBFBD>'<27><>Cells[2]='<27>Ա<EFBFBD>'
// <20><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>ݵ<EFBFBD><DDB5>뵽cxGrid<69><64>
end;
end;
procedure TfrmTradeClothTotalInInput1.NianTie();
var
hmem: THandle;
pstr: PChar;
ArrStr: TStringList;
i, x, h, Row, Z: Integer;
FColumn: string;
begin
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if IsClipboardFormatAvailable(CF_TEXT) then
begin
OpenClipboard(0);
hmem := GetClipboardData(CF_TEXT);
pstr := GlobalLock(hmem);
// Memo1.Text := pstr;
pstr := PChar(StringReplace(pstr, #$A, #$A#$3F, [rfReplaceAll]));
// pstr := PAnsiChar(StringReplace(pstr, #$D#$A#$D, #$D#$A#$20#$D, [rfReplaceAll]));
ArrStr := TStringList.Create;
ArrStr.Clear;
ExtractStrings([#13], [], PChar(pstr), ArrStr);
GlobalUnlock(hmem);
CloseClipboard;
end;
ArrStr.Delete(ArrStr.Count - 1);
Row := Tv1.Controller.FocusedRowIndex;
CDS_Sub.Locate('xhno', Row + 1, []);
x := (Tv1.DataController.RowCount - (Row + 1));
// showmessage(ArrStr.Text);
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
if x < ArrStr.count then
begin
for i := x to ArrStr.count - 2 do
begin
if VarIsNull(Tv1.DataController.Summary.FooterSummaryValues[0]) = True then
begin
h := 0;
end
else
h := Tv1.DataController.Summary.FooterSummaryValues[0];
h := h + 1;
with CDS_Sub do
begin
Append;
FieldByName('XHNO').Value := IntToStr(h);
Post;
end;
end;
end;
CDS_Sub.Locate('xhno', Row + 1, []);
i := 0;
Z := 0;
FColumn := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
with CDS_Sub do
begin
DisableControls;
while not Eof do
begin
edit;
if ArrStr.Count > i then
begin
CDS_Sub.FieldByName(FColumn).Value := StringReplace(ArrStr[i], '?', '', [rfReplaceAll]);
end
else
Break;
i := i + 1;
Post;
Next;
end;
EnableControls;
end;
end;
2025-01-14 16:18:44 +08:00
procedure TfrmTradeClothTotalInInput1.JSKC();
begin
with CDS_Sub do
begin
DisableControls;
First;
while not Eof do
begin
Edit;
FieldByName('Qty').Value := StrTofloatDef(inQty.Text, 0);
if QtyUnit.Text = 'M' then
begin
FieldByName('Qty').Value := FieldByName('Meter').Value;
end
else if QtyUnit.Text = 'Y' then
begin
FieldByName('Qty').Value := FieldByName('Yardage').Value;
end
else
begin
FieldByName('Qty').Value := FieldByName('NetWeight').Value;
end;
Post;
Next;
end;
EnableControls;
end;
end;
2024-12-30 22:05:29 +08:00
2025-01-20 13:05:39 +08:00
procedure TfrmTradeClothTotalInInput1.btn2Click(Sender: TObject);
var
RowData: TArray<string>;
rowColData: TArray<string>;
RowIndex, ColIndex, i: Integer;
clipboardText, rowStr: string;
lRect: TRect;
begin
if Clipboard.HasFormat(CF_TEXT) then
begin
clipboardText := Clipboard.AsText;
RowData := clipboardText.Split([#13#10]); // <20><><EFBFBD>ݻ<EFBFBD><DDBB>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for RowIndex := Low(RowData) to High(RowData) do
begin
rowStr := RowData[RowIndex];
if trim(rowStr) = '' then
continue;
rowColData := rowStr.Split([#9]);
ShowMessage(rowStr);
// lRect := FGrid.Selection;
// ColIndex := 0;
// for i := lRect.Left to lRect.Right do
// begin
// if lRect.Top + RowIndex < FGrid.RowCount then
// begin
// FGrid.Cells[i, lRect.Top + RowIndex].Text := trim(rowColData[ColIndex]);
// ColIndex := ColIndex + 1;
// end;
// end;
end;
end;
end;
2024-12-31 16:22:23 +08:00
procedure TfrmTradeClothTotalInInput1.btndaoruClick(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, t1, t2, t3, FFID: string;
begin
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>EXCEL<45><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
CDS_LM.EmptyDataSet;
for j := 0 to Tv1.ColumnCount - 1 do
begin
with CDS_LM do
begin
Append;
FieldByName('LCode').Value := trim(Tv1.Columns[j].DataBinding.FieldName);
FieldByName('LName').Value := trim(Tv1.Columns[j].Caption);
Post;
end;
end;
try
for i := 1 to 50 do
begin
if trim(WorkBook.WorkSheets[1].Cells[1, i].value) = '' then
continue;
if CDS_LM.Locate('LName', trim(WorkBook.WorkSheets[1].Cells[1, i].value), []) then
begin
with CDS_LM do
begin
Edit;
FieldByName('LXH').Value := i;
Post;
end;
end;
end;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
try
for i := 2 to ExcelRowCount do
begin
with CDS_Sub do
begin
Append;
CDS_LM.First;
while not CDS_LM.Eof do
begin
if CDS_LM.FieldByName('LXH').AsInteger > 0 then
CDS_Sub.fieldbyname(CDS_LM.FieldByName('LCode').AsString).Value := WorkBook.WorkSheets[1].Cells[i, CDS_LM.FieldByName('LXH').AsInteger].Value;
CDS_LM.Next;
end;
Post;
end;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
exit;
end;
end;
2024-12-30 22:05:29 +08:00
procedure TfrmTradeClothTotalInInput1.C_CodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
frmClothInfoSel := TfrmClothInfoSel.Create(self);
with frmClothInfoSel do
begin
if showmodal = 1 then
begin
self.C_Code.text := frmClothInfoSel.CDS_1.fieldbyname('C_Code').asstring;
self.C_Name.text := frmClothInfoSel.CDS_1.fieldbyname('C_Name').asstring;
self.C_EName.text := frmClothInfoSel.CDS_1.fieldbyname('C_EName').asstring;
self.C_Spec.text := frmClothInfoSel.CDS_1.fieldbyname('C_Spec').asstring;
self.C_Composition.text := frmClothInfoSel.CDS_1.fieldbyname('C_Composition').asstring;
self.C_EComposition.text := frmClothInfoSel.CDS_1.fieldbyname('C_EComposition').asstring;
self.C_Width.text := frmClothInfoSel.CDS_1.fieldbyname('C_Width').asstring;
self.C_GramWeight.text := frmClothInfoSel.CDS_1.fieldbyname('C_GramWeight').asstring;
self.C_Color.text := frmClothInfoSel.CDS_3.fieldbyname('C_Color').asstring;
self.C_Colorno.text := frmClothInfoSel.CDS_3.fieldbyname('C_Colorno').asstring;
QtyUnit.text := 'M';
end;
free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmTradeClothTotalInInput1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTradeClothTotalInInput1.TBAddClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty = False then
begin
CopyAddRowCDS(CDS_Sub);
with CDS_Sub do
begin
Edit;
FieldByName('BCIOID').Value := null;
FieldByName('StkCoNo').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>';
FieldByName('StkCoName').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>';
post;
end;
end
else
begin
with CDS_Sub do
begin
Append;
FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
FieldByName('StkCoNo').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>';
FieldByName('StkCoName').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>';
FieldByName('QtyUnit').Value := 'M';
Post;
end;
end;
end;
function TfrmTradeClothTotalInInput1.SaveCKData(): Boolean;
var
Maxno, MBCIOID: 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_Cloth_IO where BCIOID=''' + Trim(CDS_Sub.fieldbyname('BCIOID').AsString) + '''');
open;
end;
MBCIOID := Trim(ADOQueryTemp.fieldbyname('BCIOID').AsString);
if Trim(MBCIOID) = '' then
begin
if not GetLSNo(ADOQueryCmd, Maxno, 'MR', '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);
2025-01-14 16:18:44 +08:00
FieldByName('BCIOID').Value := Trim(Maxno);
FieldByName('STKID').Value := Trim(Maxno);
FieldByName('CIID').Value := Trim(Maxno);
2024-12-30 22:05:29 +08:00
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_Cloth_IO', 0);
RTSetsavedata(ADOQueryCmd, 'BS_Cloth_IO', Panel1, 0);
FieldByName('FromCoNo').Value := Trim(FromCoName.Properties.LookupItems.Text);
FieldByName('CustNo').Value := CDS_Sub.fieldbyname('CustNo').Value;
FieldByName('FromCoNo').Value := CDS_Sub.fieldbyname('FromCoNo').Value;
FieldByName('StkCoNo').Value := Trim(StkCoName.Properties.LookupItems.Text);
FieldByName('FromMainId').Value := CDS_Sub.fieldbyname('FromMainId').Value;
FieldByName('FromSubId').Value := CDS_Sub.fieldbyname('FromSubId').Value;
FieldByName('STKName').Value := FSTKName;
FieldByName('IOFlag').Value := '<27><><EFBFBD><EFBFBD>';
FieldByName('IOQtyFlag').Value := 1;
2025-02-13 15:43:36 +08:00
FieldByName('Qty').Value := CDS_Sub.FieldByName('Qty').Value;
2024-12-30 22:05:29 +08:00
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(' where BCIOID=''' + Trim(Maxno) + '''');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select stkQty,StkPiece from BS_Cloth_IO where BCIOID=''' + Trim(Maxno) + '''');
Open;
end;
if ADOQueryTemp.FieldByName('stkQty').Value < 0 then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!');
if ADOQueryTemp.FieldByName('StkPiece').Value < 0 then
raise Exception.Create('<27><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>С<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!');
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_Sub.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmTradeClothTotalInInput1.StkCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
if ShowModal = 1 then
begin
self.StkCoName.Properties.LookupItems.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString);
self.StkCoName.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTradeClothTotalInInput1.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>', Tv1, <>׻<EFBFBD><D7BB>ֿܲ<DCB2>');
IOTime.Date := SGetServerDate(ADOQueryTemp);
// IOType.text :='<27>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>';
with CDS_LM do
begin
FieldDefs.Clear;
FieldDefs.Add('LXH', ftInteger, 0);
FieldDefs.Add('lCode', ftString, 40);
FieldDefs.Add('LName', ftString, 40);
close;
CreateDataSet;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Cloth_IO A');
sql.Add(' where BCIOID=''' + Trim(FBCId) + '''');
Open;
end;
SCSHData(ADOQueryTemp, Panel1, 0);
FromCoName.Properties.LookupItems.Text := Trim(ADOQueryTemp.FieldByName('FromCoNo').AsString);
StkCoName.Properties.LookupItems.Text := Trim(ADOQueryTemp.FieldByName('StkCoNo').AsString);
SCreateCDS(ADOQueryTemp, CDS_Sub);
SInitCDSData(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmTradeClothTotalInInput1.FromCoNameDblClick(Sender: TObject);
begin
TcxButtonEdit(Sender).Text := '';
TcxButtonEdit(Sender).Properties.LookupItems.Text := '';
end;
procedure TfrmTradeClothTotalInInput1.FromCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
if IoType.text = '<27><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD>' then
begin
FCoType := '<27>ͻ<EFBFBD>';
end
else
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
end;
if ShowModal = 1 then
begin
self.FromCoName.Properties.LookupItems.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString);
self.FromCoName.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.inQtyKeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
begin
if Key = #13 then
begin
with CDS_Sub do
begin
DisableControls;
for i := 1 to StrToIntDef(inPiece.Text, 1) do
begin
Append;
FieldByName('Qty').Value := StrTofloatDef(inQty.Text, 0);
2025-01-14 16:18:44 +08:00
if QtyUnit.Text = 'M' then
begin
FieldByName('Meter').Value := StrTofloatDef(inQty.Text, 0);
end
else if QtyUnit.Text = 'Y' then
begin
FieldByName('Yardage').Value := StrTofloatDef(inQty.Text, 0);
end
else
begin
FieldByName('NetWeight').Value := StrTofloatDef(inQty.Text, 0);
end;
2024-12-30 22:05:29 +08:00
Post;
end;
EnableControls;
end;
inPiece.Text := '1';
inQty.Text := '';
end;
end;
procedure TfrmTradeClothTotalInInput1.TBDelClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if Trim(CDS_Sub.fieldbyname('BCIOID').AsString) <> '' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('exec P_Fin_Flow_Judge ');
Sql.Add(' @FFIDS=' + quotedstr(Trim(CDS_Sub.fieldbyname('BCIOID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
Open;
end;
if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then
begin
Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '<27><>ʾ', 0);
exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
sql.Add('values('<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(Trim(CDS_Sub.fieldbyname('BCIOID').AsString)));
sql.Add(','<><C9BE>'' ');
sql.Add(',' + quotedstr(DName));
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(Trim(CDS_Sub.fieldbyname('BCIOID').AsString)));
sql.Add(') ');
Sql.Add('exec P_BS_Cloth_In_Del ');
Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_Sub.fieldbyname('BCIOID').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 TfrmTradeClothTotalInInput1.TBSaveClick(Sender: TObject);
var
Maxno: string;
begin
if CDS_Sub.IsEmpty then
Exit;
if not GetLSNo(ADOQueryCmd, Maxno, 'BRO', 'BS_Cloth_IO', 4, 1) then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><E2B5A5>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end
else
BCIONO.Text := Maxno;
2025-02-13 15:43:36 +08:00
with CDS_Sub do
begin
DisableControls;
First;
while not Eof do
begin
Edit;
if QtyUnit.Text = 'M' then
begin
FieldByName('Qty').Value := FieldByName('Meter').Value;
end
else if QtyUnit.Text = 'Y' then
begin
FieldByName('Qty').Value := FieldByName('Yardage').Value;
end
else
begin
FieldByName('Qty').Value := FieldByName('NetWeight').Value;
end;
Post;
Next;
end;
EnableControls;
end;
2024-12-30 22:05:29 +08:00
if trim(IOType.text) = '' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
2025-01-14 16:18:44 +08:00
if trim(C_Code.text) = '' then
begin
Application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
2024-12-30 22:05:29 +08:00
if CDS_Sub.Locate('Qty', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
2025-02-13 15:43:36 +08:00
if CDS_Sub.Locate('Qty', 0, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0!', '<27><>ʾ', 0);
Exit;
end;
2024-12-30 22:05:29 +08:00
if SaveCKData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
//ModalResult:=1;
Exit;
end;
end;
procedure TfrmTradeClothTotalInInput1.ToolButton1Click(Sender: TObject);
begin
2025-02-17 12:31:41 +08:00
if CDS_Sub.Locate('BCIOID', '', []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('BCIOID', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
BCIONO.Text := '';
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Cloth_IO A');
sql.Add(' where 1<>1');
Open;
end;
SCSHData(ADOQueryTemp, Panel1, 0);
SCreateCDS(ADOQueryTemp, CDS_Sub);
SInitCDSData(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmTradeClothTotalInInput1.ToolButton2Click(Sender: TObject);
var
MFiltration: string;
MPrintJson: string;
begin
if CDS_sub.IsEmpty then
Exit;
if CDS_Sub.Locate('BCIOID', '', []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('BCIOID', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
MFiltration := '';
with CDS_sub do
begin
First;
while not eof do
begin
MFiltration := MFiltration + ',' + CDS_sub.FieldByName('BCIOID').AsString;
next;
end;
end;
// MFiltration:=
// MFiltration := SelCDSKey(CDS_sub, ['BCIOID'])[0];
MPrintJson := ' {"LMType": "TradeFinishClothInPrt1" ';
MPrintJson := MPrintJson + ' ,"PreviewPrint": true ';
MPrintJson := MPrintJson + ' ,"PrtArgs": [ { "IsSql": false, "Filtration":" ' + MFiltration + '" }, ';
MPrintJson := MPrintJson + ' { "IsSql": false, "Filtration":" ' + MFiltration + '" }, ';
MPrintJson := MPrintJson + ' { "IsSql": false, "Filtration":" ' + MFiltration + '" }, ';
MPrintJson := MPrintJson + ' { "IsSql": false, "Filtration":" ' + MFiltration + '" }, ';
MPrintJson := MPrintJson + ' { "IsSql": false, "Filtration":" ' + MFiltration + '" } ] } ';
FromPrintFr3(Application, PChar(DConString), PChar(MPrintJson));
2024-12-30 22:05:29 +08:00
end;
procedure TfrmTradeClothTotalInInput1.Tv1Column16PropertiesButtonClick(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('CustNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
FieldByName('CustName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
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('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 TfrmTradeClothTotalInInput1.Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmTradePlanSel := TfrmTradePlanSel.Create(Application);
with frmTradePlanSel do
begin
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('FromCoNo').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('FtyNo').AsString);
FieldByName('FromCoName').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('FtyName').AsString);
FieldByName('FromOrdNo').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString);
FieldByName('FromMainId').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('MainId').AsString);
FieldByName('FromSubId').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('SubId').AsString);
FieldByName('C_Code').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Code').AsString);
FieldByName('C_Name').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Name').AsString);
FieldByName('C_Spec').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Spec').AsString);
FieldByName('C_Composition').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Composition').AsString);
FieldByName('C_Width').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Width').AsString);
FieldByName('C_GramWeight').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_GramWeight').AsString);
FieldByName('C_Color').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Color').AsString);
FieldByName('C_ColorNo').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_ColorNo').AsString);
FieldByName('C_Pattern').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('C_Pattern').AsString);
end;
end;
end;
finally
frmTradePlanSel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.Tv1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmClothInfoSel := TfrmClothInfoSel.Create(Application);
with frmClothInfoSel do
begin
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
edit;
FieldByName('C_Code').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Code').AsString);
FieldByName('C_Name').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Name').AsString);
FieldByName('C_Spec').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Spec').AsString);
FieldByName('C_Composition').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Composition').AsString);
FieldByName('C_Width').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Width').AsString);
FieldByName('C_GramWeight').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_GramWeight').AsString);
Fieldbyname('C_ColorNo').value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_ColorNo').AsString);
Fieldbyname('C_Color').value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Color').AsString);
Fieldbyname('C_Pattern').value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Pattern').AsString);
Fieldbyname('GC_Name').value := trim(frmClothInfoSel.CDS_1.Fieldbyname('GC_Name').AsString);
Fieldbyname('CraftCode').value := trim(frmClothInfoSel.CDS_1.Fieldbyname('CraftCode').AsString);
end;
end;
end;
finally
frmClothInfoSel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
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);
FieldByName('SalesER').Value := Trim(CDS_1.fieldbyname('SalesER').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'JWLYCLName';
flagname := 'Ʒ<><C6B7>';
MainType := FSTKName;
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('C_Name').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmTradeClothTotalInInput1.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 TfrmTradeClothTotalInInput1.v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'C_Spec';
flagname := '<27><><EFBFBD><EFBFBD>';
MainType := FSTKName;
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('C_Spec').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
end.