D7myChengxie/布匹仓库2/U_MLCKlist.pas
DESKTOP-E401PHE\Administrator e4d35a6883 1234
2025-08-25 10:39:41 +08:00

595 lines
17 KiB
ObjectPascal
Raw Permalink 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_MLCKlist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu,
cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System,
RM_Dataset, cxTextEdit, cxPC, cxCheckBox, Menus;
type
TfrmMLCKlist = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_CodeName: TcxGridDBColumn;
v1P_SPEC: TcxGridDBColumn;
v1P_MF: TcxGridDBColumn;
v1P_KZ: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1CRType: TcxGridDBColumn;
v1CRTime: TcxGridDBColumn;
v1CRNO: TcxGridDBColumn;
v1Filler: TcxGridDBColumn;
v1FillTime: TcxGridDBColumn;
Label2: TLabel;
Label3: TLabel;
OrderNo: TEdit;
CRType: TComboBox;
Label5: TLabel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
v1MJID: TcxGridDBColumn;
v1MJXH: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
ADOPrint: TADOQuery;
RMXLSExport1: TRMXLSExport;
v1P_Code: TcxGridDBColumn;
v1inoutNO: TcxGridDBColumn;
inoutNo: TEdit;
Label7: TLabel;
v1custName: TcxGridDBColumn;
v1TocustName: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
RMDB_Main: TRMDBDataSet;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyle_fontBlack: TcxStyle;
cxStyle_fontclFuchsia: TcxStyle;
cxStyle_fontclPurple: TcxStyle;
cxStyle_fontclGreen: TcxStyle;
cxStyle_fontclBlue: TcxStyle;
cxStyle_fontclTeal: TcxStyle;
cxStyle_fontclOlive: TcxStyle;
Label8: TLabel;
custName: TEdit;
ADOQueryMain: TADOQuery;
v1Column18: TcxGridDBColumn;
RM1: TRMGridReport;
v1Column5: TcxGridDBColumn;
P_CodeName: TEdit;
P_Color: TEdit;
Label10: TLabel;
Label11: TLabel;
MJID: TEdit;
Label12: TLabel;
P_Code: TEdit;
Label14: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure OrderNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure v1Column6CompareRowValuesForCellMerging(
Sender: TcxGridColumn; ARow1: TcxGridDataRow;
AProperties1: TcxCustomEditProperties; const AValue1: Variant;
ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties;
const AValue2: Variant; var AAreEqual: Boolean);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
procedure InitGrid();
function YSData(ADO:TADOQuery):Boolean;
function YSData_Other(ADO:TADOQuery;fYFName:string;fmoney:double):Boolean;
procedure SetStatus();
{ Private declarations }
public
canshu1,canshu2:string;
{ Public declarations }
end;
var
frmMLCKlist: TfrmMLCKlist;
implementation
uses
U_DataLink,U_Fun10,U_ZDYHelp, U_MLCk;
{$R *.dfm}
procedure TfrmMLCKlist.SetStatus();
begin
TBEdit.Visible:=False;
TBDel.Visible:=False;
if Trim(canshu1)='<27><>Ȩ<EFBFBD><C8A8>' then
begin
TBEdit.Visible:=true;
TBDel.Visible:=true;
end
else
begin
end;
end;
function TfrmMLCKlist.YSData(ADO:TADOQuery):Boolean;
var
CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,cust:String;
begin
Result:=False;
with ADOQueryTmp do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(ADO.fieldbyname('custName').asstring)+''' and YFDefFlag1=0 ');
Open;
end;
if not ADOQueryTmp.IsEmpty then
begin
CRID:=ADOQueryTmp.fieldbyname('CRID').AsString;
end
else
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID:=ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value:=StrToInt(CRID);
FieldByName('FactoryName').Value:=Trim(ADO.fieldbyname('custName').asstring);
FieldByName('ZdyStr1').Value:=<><D3A6><EFBFBD><EFBFBD>';
Post;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete from YF_Money_CR ');
sql.Add(' where MainID='''+Trim(ADO.fieldbyname('CRNO').AsString)+'''');
sql.Add(' and subID='''+Trim(ADO.fieldbyname('CRID').AsString)+'''');
sql.Add(' and YFName=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'' ');
execsql;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR ');
sql.Add(' where MainID='''+Trim(ADO.fieldbyname('CRNO').AsString)+'''');
sql.Add(' and subID='''+Trim(ADO.fieldbyname('CRID').AsString)+'''');
sql.Add(' and YFName=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'' ');
Open;
end;
if ADOQueryTmp.IsEmpty then
begin
if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then
begin
Application.MessageBox('ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value:=Trim(YFID);
FieldByName('YFTypeId').Value:=Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('CRID').Value:=StrToInt(CRID);
FieldByName('Filler').Value:=Trim(DName);
FieldByName('CRType').Value:=<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value:=<><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value:=1;
FieldByName('FactoryName').Value:=Trim(ADO.fieldbyname('custName').asstring);
FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',ADO.fieldbyname('CRTime').AsDateTime));
FieldByName('YFType').Value:='<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('ps').Value:=ADO.fieldbyname('RollNum').AsFloat;
FieldByName('Qty').Value:=ADO.fieldbyname('Qty').AsFloat;
FieldByName('Price').Value:=ADO.fieldbyname('Price').AsFloat;
FieldByName('Money').Value:=ADO.fieldbyname('Money').AsFloat;
FieldByName('BBMoney').Value:=ADO.fieldbyname('Money').AsFloat;
FieldByName('HuiLv').Value:=1;
FieldByName('BZType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('QtyUnit').Value:=Trim(ADO.fieldbyname('QtyUnit').AsString);
FieldByName('ComTaiTou').Value:=Trim(cust);
FieldByName('YFName').Value:='<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>';
FieldByName('MainId').Value:=Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('subID').Value:=Trim(ADO.fieldbyname('CRID').AsString);
FieldByName('status').Value:='0';
Post;
end;
end
else
begin
YFID:=Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(' where CRID='+CRID);
ExecSQL;
end;
Result:=True;
end;
function TfrmMLCKlist.YSData_Other(ADO:TADOQuery;fYFName:string;fmoney:double):Boolean;
var
CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,cust:String;
begin
Result:=False;
with ADOQueryTmp do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(ADO.fieldbyname('custName').asstring)+''' and YFDefFlag1=0 ');
Open;
end;
if not ADOQueryTmp.IsEmpty then
begin
CRID:=ADOQueryTmp.fieldbyname('CRID').AsString;
end
else
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID:=ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value:=StrToInt(CRID);
FieldByName('FactoryName').Value:=Trim(ADO.fieldbyname('custName').asstring);
FieldByName('ZdyStr1').Value:=<><D3A6><EFBFBD><EFBFBD>';
Post;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete from YF_Money_CR ');
sql.Add(' where MainID='''+Trim(ADO.fieldbyname('CRNO').AsString)+'''');
sql.Add(' and subID='''+Trim(ADO.fieldbyname('CRID').AsString)+'''');
sql.Add(' and YFName='''+trim(fYFName)+''' ');
execsql;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR ');
sql.Add(' where MainID='''+Trim(ADO.fieldbyname('CRNO').AsString)+'''');
sql.Add(' and subID='''+Trim(ADO.fieldbyname('CRID').AsString)+'''');
sql.Add(' and YFName='''+trim(fYFName)+''' ');
Open;
end;
if ADOQueryTmp.IsEmpty then
begin
if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then
begin
Application.MessageBox('ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value:=Trim(YFID);
FieldByName('YFTypeId').Value:=Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('CRID').Value:=StrToInt(CRID);
FieldByName('Filler').Value:=Trim(DName);
FieldByName('CRType').Value:=<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value:=<><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value:=1;
FieldByName('FactoryName').Value:=Trim(ADO.fieldbyname('custName').asstring);
FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',ADO.fieldbyname('CRTIme').AsDateTime));
FieldByName('YFType').Value:='<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('Qty').Value:=1;
FieldByName('Price').Value:=fmoney;
FieldByName('Money').Value:=fmoney;
FieldByName('BBMoney').Value:=fmoney;
FieldByName('HuiLv').Value:=1;
FieldByName('BZType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('QtyUnit').Value:='<27><>';
FieldByName('ComTaiTou').Value:=Trim(cust);
FieldByName('YFName').Value:=fYFName;
FieldByName('MainId').Value:=Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('subID').Value:=Trim(ADO.fieldbyname('CRID').AsString);
FieldByName('status').Value:='0';
Post;
end;
end
else
begin
YFID:=Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(' where CRID='+CRID);
ExecSQL;
end;
Result:=True;
end;
procedure TfrmMLCKlist.InitGrid();
begin
try
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add(' select A.* ');
SQL.Add(' from CK_ML_CR A ');
sql.Add(' where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' ');
sql.Add(' and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' ');
sql.Add(' and CKName=''<27><><EFBFBD>ϲֿ<CFB2>'' and CRFlag=''<27><><EFBFBD><EFBFBD>'' and A.valid=''Y'' ');
open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
end;
end;
procedure TfrmMLCKlist.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TfrmMLCKlist.FormDestroy(Sender: TObject);
begin
frmMLCKlist:=nil;
end;
procedure TfrmMLCKlist.TBAddClick(Sender: TObject);
begin
frmMLCk:=TfrmMLCk.create(self);
with frmMLCk do
begin
fkeyNo:='';
fType:=0;
if showmodal=1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmMLCKlist.OrderNoChange(Sender: TObject);
begin
if ADOQuerymain.Active=False then Exit;
SDofilter(ADOQuerymain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQuerymain,CDS_Main);
SInitCDSData20(ADOQuerymain,CDS_Main);
end;
procedure TfrmMLCKlist.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption,Tv1,'<27><><EFBFBD>ϲֿ<CFB2>');
SetStatus();
InitGrid();
end;
procedure TfrmMLCKlist.FormCreate(Sender: TObject);
begin
EndDate.Date:=SGetServerDate10(ADOQueryTmp);
BegDate.Date:=EndDate.Date-30;
cxGrid1.Align:=alclient;
canshu1:=trim(DParameters1);
end;
procedure TfrmMLCKlist.TBCloseClick(Sender: TObject);
begin
writeCxGrid(self.Caption,Tv1,'<27><><EFBFBD>ϲֿ<CFB2>');
close;
end;
procedure TfrmMLCKlist.TBEditClick(Sender: TObject);
begin
if cds_main.IsEmpty then exit;
IF (cds_main.fieldbyname('Filler').AsString<>trim(DName)) and (trim(canshu2)<>'<27><>Ȩ<EFBFBD><C8A8>') then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
frmMLCk:=TfrmMLCk.create(self);
with frmMLCk do
begin
fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString;
fType:=1;
InoutNo.Enabled:=false;
if showmodal=1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('CRNO',trim(fkeyNo),[]) ;
end;
free;
end;
end;
procedure TfrmMLCKlist.TBDelClick(Sender: TObject);
var
YFID,CRID,note:string;
begin
if CDS_Main.IsEmpty then Exit;
if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<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
if Trim(CDS_Main.FieldByName('CRNO').AsString)<>'' then
begin
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CK_ML_CR set Valid=''N'' where CRNO='+quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_MLKc '+quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString)));
Open;
end;
if Trim(ADOQueryCmd.FieldByName('Msg').AsString)='<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
end;
except
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
procedure TfrmMLCKlist.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmMLCKlist.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
TcxGridToExcel(self.Caption,cxgrid1);
end;
procedure TfrmMLCKlist.v1Column6CompareRowValuesForCellMerging(
Sender: TcxGridColumn; ARow1: TcxGridDataRow;
AProperties1: TcxCustomEditProperties; const AValue1: Variant;
ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties;
const AValue2: Variant; var AAreEqual: Boolean);
var
colIdx0,colIdx1:integer;
begin
colIdx0:= tv1.GetColumnByFieldName('CRNO').Index;
if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then
AAreEqual := True
else
AAreEqual := False;
end;
procedure TfrmMLCKlist.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main,True);
end;
procedure TfrmMLCKlist.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main,False);
end;
end.