D7wmhengming/样品/U_BaseInList.pas
DESKTOP-E401PHE\Administrator 8f2f47d8f5 ~
2025-04-16 09:11:01 +08:00

332 lines
9.2 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_BaseInList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, cxCalendar, cxButtonEdit, cxDropDownEdit;
type
TfrmBaseInList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
TBView: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label7: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
PlanNo: TEdit;
P_ChnName20: TEdit;
ShorName: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column1: TcxGridDBColumn;
v1ShortName: TcxGridDBColumn;
v1Quantity: TcxGridDBColumn;
v1UnitName: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1batchnum: TcxGridDBColumn;
v1DepotClass: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
ToolButton1: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBViewClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure PlanNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
private
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frmBaseInList: TfrmBaseInList;
implementation
uses
U_DataLink,U_Fun,U_BaseIn;
{$R *.dfm}
procedure TfrmBaseInList.FormDestroy(Sender: TObject);
begin
frmBaseInList:=nil;
end;
procedure TfrmBaseInList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmBaseInList.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
end;
procedure TfrmBaseInList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><>˹<EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmBaseInList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec P_Get_ClothInOutList :begdate,:enddate,:DepotNo,:DepotCode,:PState,:CRK');
Parameters.ParamByName('DepotCode').Value:=Trim(gDef1);
Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime));
Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1));
Parameters.ParamByName('PState').Value:=1;
Parameters.ParamByName('CRK').Value:=1;
Open;
end;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmBaseInList.InitForm();
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><>˹<EFBFBD>ֿ<EFBFBD>');
BegDate.DateTime:=GetServerTime10(ADOQueryTemp);//SGetServerDate10(ADOQueryTemp);
EndDate.DateTime:=GetServerTime10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmBaseInList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
end;
procedure TfrmBaseInList.TBEditClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('select * from WC_ClothInout_Info where KCID='+Trim(ADOQueryMain.fieldbyname('KCID').AsString));
sql.Add(' and DepotNO like ''BC%'' ');
open;
if ADOQueryTemp.RecordCount>0 then
begin
Application.MessageBox('<27>˱<EFBFBD>˹<EFBFBD>Ѿ<EFBFBD><D1BE>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
try
frmBaseIn:=TfrmBaseIn.Create(Application);
with frmBaseIn do
begin
DepotNo:=Trim(self.ADOQueryMain.fieldbyname('DepotNo').AsString);
ToolButton1.Visible:=False;
ToolButton2.Visible:=False;
ToolButton3.Visible:=False;
ToolButton4.Visible:=False;
if ShowModal=1 then
begin
Self.InitGrid();
Self.TBFind.Click;
Self.ADOQueryMain.Locate('DepotNo',DepotNo,[]);
end;
end;
finally
frmBaseIn.Free;
end;
end;
procedure TfrmBaseInList.TBDelClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('select * from WC_ClothInout_Info where KCID='+Trim(ADOQueryMain.fieldbyname('KCID').AsString));
sql.Add(' and DepotNO like ''BC%'' ');
open;
if ADOQueryTemp.RecordCount>0 then
begin
Application.MessageBox('<27>˱<EFBFBD>˹<EFBFBD>Ѿ<EFBFBD><D1BE>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if DelData() then
begin
TBRafresh.Click;
TBFind.Click;
end;
end;
function TfrmBaseInList.DelData():Boolean;
var
FInt:Integer;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from WC_ClothInout_Info where DefFlt2>0 ');
SQL.Add(' and DepotNo<>'''+Trim(ADOQueryMain.fieldbyname('DepotNo').AsString)+'''');
if Trim(ADOQueryMain.fieldbyname('PlanNo').AsString)<>'' then
SQL.Add(' and PlanNo='''+ADOQueryMain.fieldbyname('PlanNo').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('P_Code').AsString)<>'' then
SQL.Add(' and P_Code='''+ADOQueryMain.fieldbyname('P_Code').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('DefStr1').AsString)<>'' then
SQL.Add(' and DefStr1='''+ADOQueryMain.fieldbyname('DefStr1').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('DefStr2').AsString)<>'' then
SQL.Add(' and DefStr2='''+ADOQueryMain.fieldbyname('DefStr2').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('DefStr3').AsString)<>'' then
SQL.Add(' and DefStr3='''+ADOQueryMain.fieldbyname('DefStr3').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('DefStr4').AsString)<>'' then
SQL.Add(' and DefStr4='''+ADOQueryMain.fieldbyname('DefStr4').AsString+'''');
if Trim(ADOQueryMain.fieldbyname('Defflt1').AsString)<>'' then
SQL.Add(' and Defflt1='+ADOQueryMain.fieldbyname('Defflt1').AsString);
Open;
end;
with ADOQueryTemp do
begin
if not IsEmpty then
begin
First;
FInt:=1;
while not Eof do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update WC_ClothInout_Info Set DefFlt2='+inttostr(FInt));
sql.Add(',DefFlt3='+inttostr((FInt-1) div 10));
sql.Add(' where DepotNo='''+Trim(ADOQueryTemp.fieldbyname('DepotNo').AsString)+'''');
ExecSQL;
end;
FInt:=FInt+1;
Next;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete WC_ClothInout_Info where depotno='''+Trim(ADOQueryMain.fieldbyname('depotno').AsString)+'''');
sql.Add(' delete WC_ClothInout where depotno='''+Trim(ADOQueryMain.fieldbyname('depotno').AsString)+'''');
sql.Add(' delete WC_ClothClothing where KCID='+Trim(ADOQueryMain.fieldbyname('KCID').AsString));
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
end;
end;
procedure TfrmBaseInList.TBViewClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
end;
procedure TfrmBaseInList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',cxGrid1);
end;
procedure TfrmBaseInList.TBPrintClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
end;
procedure TfrmBaseInList.TBAddClick(Sender: TObject);
begin
try
frmBaseIn:=TfrmBaseIn.Create(Application);
with frmBaseIn do
begin
if ShowModal=1 then
begin
Self.InitGrid();
Self.TBFind.Click;
Self.ADOQueryMain.Locate('DepotNo',DepotNo,[]);
end;
end;
finally
frmBaseIn.Free;
end;
end;
procedure TfrmBaseInList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBaseInList.PlanNoChange(Sender: TObject);
begin
if ADOQueryMain.Active then
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
end;
procedure TfrmBaseInList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmBaseInList.ToolButton1Click(Sender: TObject);
begin
// if ADOQueryMain.IsEmpty then Exit;
SeniorFilter(Tv1,ADOQueryMain);
end;
end.