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

422 lines
11 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_YarnInList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList,
dxScrollbarAnnotations;
type
TfrmYarnInList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Label1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
TBDel: TToolButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
TBAdd: TToolButton;
TBEdit: TToolButton;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label12: TLabel;
Y_Name: TEdit;
FromCoName: TEdit;
Y_spec: TEdit;
IOType: TComboBox;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v1Column10: TcxGridDBColumn;
Label10: TLabel;
BatchNo: TEdit;
v1Column20: TcxGridDBColumn;
ToolButton1: TToolButton;
Label6: TLabel;
BYIOID: TEdit;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
btn1: TToolButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure BYIOIDChange(Sender: TObject);
procedure Y_specChange(Sender: TObject);
procedure FromCoNameChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
canshu1, FStkName, canshu3: string;
procedure InitGrid();
procedure setStatus();
{ Private declarations }
public
{ Public declarations }
end;
implementation
uses
U_DataLink, U_RTFun, U_YarnInEdit, U_LabelPrint;
{$R *.dfm}
procedure TfrmYarnInList.setStatus();
begin
if canshu1 = '<27><><EFBFBD><EFBFBD>' then
begin
TBAdd.Visible := true;
TBEdit.Visible := true;
TBDel.Visible := true;
end
else
begin
TBAdd.Visible := false;
TBEdit.Visible := false;
TBDel.Visible := false;
end;
end;
procedure TfrmYarnInList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmYarnInList.FormCreate(Sender: TObject);
begin
inherited;
EndDate.DateTime := SGetServerDate(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 30;
canshu1 := Trim(self.fParameters1);
FStkName := Trim(self.fParameters2);
canshu3 := Trim(self.fParameters3);
end;
procedure TfrmYarnInList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from BS_Yarn_IO A');
sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''');
sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + '''');
sql.Add(' and isnull(StkName,'''')=''' + Trim(FStkName) + '''');
SQL.Add(' and IOFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add(' order by StkCoName,Brand,Y_Name,IOTime desc');
// ShowMessage(sql.text);
Open;
end;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmYarnInList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmYarnInList.ToolButton1Click(Sender: TObject);
begin
WriteCxGrid(Self.Caption + '1', Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmYarnInList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmYarnInList.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmYarnInList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(Self.Caption + '1', Tv1, 'Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
setStatus();
InitGrid();
end;
procedure TfrmYarnInList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel(FStkName + '<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmYarnInList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmYarnInList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmYarnInList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmYarnInList.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('select * from Finance_Flow where Status=''9'' and FromID1=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + '');
open;
end;
if ADOQueryCmd.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>޷<EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
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_Main.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)));
with ADOQueryTemp do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId) values('<><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ') ');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmYarnInList.TBAddClick(Sender: TObject);
begin
try
frmYarnInEdit := TfrmYarnInEdit.Create(Application);
with frmYarnInEdit do
begin
FBCId := '';
frmYarnInEdit.canshu3 := Trim(Self.canshu3);
FStkName := Self.FStkName;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmYarnInEdit.Free;
end;
end;
procedure TfrmYarnInList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('select * from Finance_Flow where Status=''9'' and FromID1=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + '');
open;
end;
if ADOQueryCmd.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>޷<EFBFBD><DEB7>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
Sql.Clear;
Sql.Add('exec P_BS_Yarn_In_Edit ');
Sql.Add(' @BYIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').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;
with ADOQueryTemp do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId) values('<><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ') ');
ExecSQL;
end;
try
frmYarnInEdit := TfrmYarnInEdit.Create(Application);
with frmYarnInEdit do
begin
FBCId := Trim(CDS_Main.fieldbyname('BYIOID').AsString);
TBDel.Visible := False;
TBAdd.Visible := False;
FStkName := Self.FStkName;
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmYarnInEdit.Free;
end;
end;
procedure TfrmYarnInList.btn1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'YarnStoragePrint';
FFiltration1 := QuotedStr(Trim(self.CDS_Main.fieldbyname('BYIOID').AsString));
CheckBox1.Checked := True;
if ShowModal = 1 then
begin
end;
end;
finally
frmLabelPrint.Free;
end;
end;
procedure TfrmYarnInList.BYIOIDChange(Sender: TObject);
begin
if Length(Trim(BYIOID.Text)) < 4 then
begin
if Trim(BYIOID.Text) <> '' then
Exit;
end;
TBFind.Click;
end;
procedure TfrmYarnInList.Y_specChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnInList.FromCoNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmYarnInList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
end.