D7wmguihua/样品/U_YPCR.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

347 lines
9.1 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_YPCR;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar,
cxButtonEdit, cxTextEdit;
type
TfrmYPCR = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
Label1: TLabel;
CYSpec: TEdit;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
CYName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure CYNameChange(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject);
procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
procedure InitGridHZ();
public
{ Public declarations }
RKFlag,FCYID:String;
procedure InitGrid();
function SaveData():Boolean;
end;
var
frmYPCR: TfrmYPCR;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmYPCR.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add(' select A.*,B.CYName,B.CYSpec,B.KCUnit from CK_YP_CR A');
sql.Add(' inner join CP_YDang B on A.CYID=B.CYID');
SQL.Add(' where A.CYID='''+Trim(FCYID)+'''');
sql.Add(' and A.CRType='''+Trim(RKFlag)+'''');
sql.Add('and A.CRTime>=:begdate and A.CRTime<:Enddate');
Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',begdate.DateTime));
Parameters.ParamByName('Enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1));
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmYPCR.InitGridHZ();
begin
end;
procedure TfrmYPCR.FormDestroy(Sender: TObject);
begin
frmYPCR:=nil;
end;
procedure TfrmYPCR.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmYPCR.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>',Tv2,'<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CK_YP_CR where isnull(CRTime,'''')='''' and CYID='''+Trim(FCYID)+''' and CRType='''+Trim(RKFlag)+'''');
ExecSQL;
end;
Close;
end;
procedure TfrmYPCR.TBDelClick(Sender: TObject);
begin
if CDS_HZ.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if Trim(CDS_HZ.fieldbyname('CRID').AsString)<>'' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CK_YP_CR where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+'''');
SQL.Add('Update CP_YDang Set KCQty=(select isnull(Sum(CRQty*CRFlag),0) from CK_YP_CR A where A.CYID=CP_YDang.CYID )');
sql.Add(' where CYID='''+Trim(CDS_HZ.fieldbyname('CYID').AsString)+'''');
ExecSQL;
end;
end;
CDS_HZ.Delete;
end;
procedure TfrmYPCR.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>',Tv2,'<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
Enddate.DateTime:=SGetServerDate(ADOQueryTemp);
begdate.DateTime:=Enddate.DateTime-7;
//InitGrid();
end;
procedure TfrmYPCR.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmYPCR.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
end;
end;
procedure TfrmYPCR.CYNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmYPCR.Button2Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if Trim(CDS_HZ.fieldbyname('SubID').AsString)<>'' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete YCL_SG_HZ where SubID='''+Trim(CDS_HZ.fieldbyname('SubID').AsString)+'''');
ExecSQL;
end;
end;
CDS_HZ.Delete;
end;
function TfrmYPCR.SaveData():Boolean;
var
maxId:String;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if GetLSNo(ADOQueryCmd,maxId,'RK','CK_YP_CR',4,1)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from CK_YP_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CYId').Value:=Trim(FCYID);
FieldByName('CRId').Value:=Trim(maxId);
SSetSaveDataCDSNew(ADOQueryCmd,Tv2,CDS_HZ,'CK_YP_CR',3);
FieldByName('Filler').Value:=Trim(DName);
FieldByName('CRType').Value:=Trim(RKFlag);
if Trim(RKFlag)='<27><><EFBFBD><EFBFBD>' then
begin
FieldByName('CRFlag').Value:=1;
end else
begin
FieldByName('CRFlag').Value:=-1;
end;
Post;
end;
with CDS_HZ do
begin
Edit;
FieldByName('CRId').Value:=Trim(maxId);
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
Result:=True;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
end;
end;
procedure TfrmYPCR.cxGridDBColumn8PropertiesEditValueChanged(
Sender: TObject);
var
mvalue,FFieldName:String;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value:=Trim(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate YCL_SG_HZ ');
if Trim(mvalue)<>'' then
begin
sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+'''');
end else
begin
sql.Add(' Set '+FFieldName+'=NULL');
end;
SQL.Add(',Editer='''+Trim(DName)+'''');
SQL.Add(',Edittime=getdate() ');
SQL.Add(' where SubId='''+Trim(CDS_HZ.fieldbyname('SubId').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmYPCR.cxGridDBColumn5PropertiesEditValueChanged(
Sender: TObject);
var
mvalue,FFieldName:String;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value:=Trim(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate CK_YP_CR ');
sql.Add(' Set '+FFieldName+'='+Trim(mvalue));
SQL.Add(',Editer='''+Trim(DName)+'''');
SQL.Add(',Edittime=getdate() ');
SQL.Add(' where CRId='''+Trim(CDS_HZ.fieldbyname('CRId').AsString)+'''');
SQL.Add('Update CP_YDang Set KCQty=(select isnull(Sum(CRQty*CRFlag),0) from CK_YP_CR A where A.CYID=CP_YDang.CYID )');
sql.Add(' where CYID='''+Trim(CDS_HZ.fieldbyname('CYID').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmYPCR.cxGridDBColumn1PropertiesEditValueChanged(
Sender: TObject);
var
mvalue,FFieldName:String;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value:=Trim(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate CK_YP_CR ');
if Trim(mvalue)<>'' then
begin
sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+'''');
end else
begin
sql.Add(' Set '+FFieldName+'=NULL');
end;
SQL.Add(',Editer='''+Trim(DName)+'''');
SQL.Add(',Edittime=getdate() ');
SQL.Add(' where CRId='''+Trim(CDS_HZ.fieldbyname('CRId').AsString)+'''');
ExecSQL;
end;
end;
end.