1
This commit is contained in:
parent
f15e9f0c85
commit
344234cbdb
|
|
@ -594,6 +594,10 @@ inherited frmCustomer: TfrmCustomer
|
||||||
ClientRectTop = 0
|
ClientRectTop = 0
|
||||||
end
|
end
|
||||||
inherited cxProgressBar2: TcxProgressBar
|
inherited cxProgressBar2: TcxProgressBar
|
||||||
|
Left = 363
|
||||||
|
Top = 227
|
||||||
|
ExplicitLeft = 363
|
||||||
|
ExplicitTop = 227
|
||||||
ExplicitHeight = 29
|
ExplicitHeight = 29
|
||||||
end
|
end
|
||||||
inherited ADOQueryBaseCmd: TADOQuery
|
inherited ADOQueryBaseCmd: TADOQuery
|
||||||
|
|
|
||||||
|
|
@ -396,6 +396,7 @@ inherited frmTradeClothTotalInInput1: TfrmTradeClothTotalInInput1
|
||||||
Width = 534
|
Width = 534
|
||||||
Height = 422
|
Height = 422
|
||||||
Align = alClient
|
Align = alClient
|
||||||
|
PopupMenu = PopupMenu1
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object Tv1: TcxGridDBTableView
|
object Tv1: TcxGridDBTableView
|
||||||
Navigator.Buttons.CustomButtons = <>
|
Navigator.Buttons.CustomButtons = <>
|
||||||
|
|
@ -620,4 +621,12 @@ inherited frmTradeClothTotalInInput1: TfrmTradeClothTotalInInput1
|
||||||
Left = 522
|
Left = 522
|
||||||
Top = 338
|
Top = 338
|
||||||
end
|
end
|
||||||
|
object PopupMenu1: TPopupMenu
|
||||||
|
Left = 734
|
||||||
|
Top = 330
|
||||||
|
object N1: TMenuItem
|
||||||
|
Caption = #40655#36148
|
||||||
|
OnClick = N1Click
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@ interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
|
System.Types, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
||||||
cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin,
|
cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls,
|
||||||
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView,
|
||||||
cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu,
|
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
|
||||||
cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, StdCtrls, ExtCtrls,
|
cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxButtonEdit,
|
||||||
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges,
|
cxTextEdit, StdCtrls, ExtCtrls, cxLookAndFeels, cxLookAndFeelPainters,
|
||||||
dxBarBuiltInMenu, U_BaseInput, System.ImageList, Vcl.ImgList, ComObj,
|
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseInput, System.ImageList,
|
||||||
dxScrollbarAnnotations, cxContainer, dxCore, cxDateUtils, cxMaskEdit,
|
Vcl.ImgList, ComObj, dxScrollbarAnnotations, cxContainer, dxCore, cxDateUtils,
|
||||||
cxImageList, cxCurrencyEdit;
|
cxMaskEdit, cxImageList, cxCurrencyEdit, Vcl.Menus;
|
||||||
|
|
||||||
type
|
type
|
||||||
TfrmTradeClothTotalInInput1 = class(TfrmBaseInput)
|
TfrmTradeClothTotalInInput1 = class(TfrmBaseInput)
|
||||||
|
|
@ -84,6 +84,8 @@ type
|
||||||
Tv1Column4: TcxGridDBColumn;
|
Tv1Column4: TcxGridDBColumn;
|
||||||
Tv1Column5: TcxGridDBColumn;
|
Tv1Column5: TcxGridDBColumn;
|
||||||
btndaoru: TToolButton;
|
btndaoru: TToolButton;
|
||||||
|
PopupMenu1: TPopupMenu;
|
||||||
|
N1: TMenuItem;
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure TBAddClick(Sender: TObject);
|
procedure TBAddClick(Sender: TObject);
|
||||||
procedure TBCloseClick(Sender: TObject);
|
procedure TBCloseClick(Sender: TObject);
|
||||||
|
|
@ -105,10 +107,13 @@ type
|
||||||
procedure inQtyKeyPress(Sender: TObject; var Key: Char);
|
procedure inQtyKeyPress(Sender: TObject; var Key: Char);
|
||||||
procedure StkCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
procedure StkCoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
||||||
procedure btndaoruClick(Sender: TObject);
|
procedure btndaoruClick(Sender: TObject);
|
||||||
|
procedure N1Click(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
function SaveCKData(): Boolean;
|
function SaveCKData(): Boolean;
|
||||||
procedure JSKC();
|
procedure JSKC();
|
||||||
|
procedure NianTie();
|
||||||
|
function Split(const s: string; Separator: char): TStringDynArray;
|
||||||
public
|
public
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
FBCId, canshu3, FSTKName, FKHName: string;
|
FBCId, canshu3, FSTKName, FKHName: string;
|
||||||
|
|
@ -123,6 +128,152 @@ uses
|
||||||
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_TradePlanSel, U_ClothInfoSel;
|
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_TradePlanSel, U_ClothInfoSel;
|
||||||
|
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
|
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
|
||||||
|
// 假设已经从剪贴板获取到了文本,存放在ClipboardText变量中
|
||||||
|
|
||||||
|
OpenClipboard(0);
|
||||||
|
hmem := GetClipboardData(CF_TEXT);
|
||||||
|
|
||||||
|
ClipboardText := GlobalLock(hmem);
|
||||||
|
|
||||||
|
// 首先按换行符拆分成行
|
||||||
|
Lines := Split(ClipboardText, #13); // Windows系统中换行符通常是#13#10
|
||||||
|
|
||||||
|
// 遍历每一行
|
||||||
|
for i := 0 to Length(Lines) - 1 do
|
||||||
|
begin
|
||||||
|
// 按逗号拆分成单元格数据
|
||||||
|
Cells := Split(Lines[i], ',');
|
||||||
|
|
||||||
|
// 此时Cells数组中就存储了每一行的单元格数据
|
||||||
|
// 例如第一行拆分后,Cells[0]='姓名',Cells[1]='年龄',Cells[2]='性别'
|
||||||
|
// 可以根据需要将这些数据导入到cxGrid中
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmTradeClothTotalInInput1.NianTie();
|
||||||
|
var
|
||||||
|
hmem: THandle;
|
||||||
|
pstr: PChar;
|
||||||
|
ArrStr: TStringList;
|
||||||
|
i, x, h, Row, Z: Integer;
|
||||||
|
FColumn: string;
|
||||||
|
begin
|
||||||
|
//检查剪贴板类容类型
|
||||||
|
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);
|
||||||
|
//自动增行
|
||||||
|
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;
|
||||||
|
|
||||||
procedure TfrmTradeClothTotalInInput1.JSKC();
|
procedure TfrmTradeClothTotalInInput1.JSKC();
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user