D7snShanfengT/山峰贸易管理/U_JWLChkOut.pas
DESKTOP-E401PHE\Administrator c363cb75a7 调整之后的山凤水泥厂
2026-02-26 09:41:35 +08:00

583 lines
17 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_JWLChkOut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, DBClient,
cxButtonEdit, cxDropDownEdit, cxCalendar, cxGridCustomPopupMenu,
cxGridPopupMenu, cxTextEdit;
type
TfrmJWLChkOut = class(TForm)
ToolBar1: TToolBar;
BtnSave: TToolButton;
BtnExit: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
v1P_ChnName: TcxGridDBColumn;
v1ShortName: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
v1CRQty: TcxGridDBColumn;
v1UnitName: TcxGridDBColumn;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
DataSource1: TDataSource;
CDS_Sub: TClientDataSet;
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
cxGridPopupMenu1: TcxGridPopupMenu;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
v1YCLMoney: TcxGridDBColumn;
v1YCLPrice10: TcxGridDBColumn;
v1CLName: TcxGridDBColumn;
v1SJName: TcxGridDBColumn;
v1CLSpec: TcxGridDBColumn;
v1CheHao: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure v1P_ChnNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1ShortNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1UnitNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column6PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1CRQtyPropertiesEditValueChanged(Sender: TObject);
procedure v1CLNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1SJNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
private
procedure InitGrid();
function SaveData():Boolean;
{ Private declarations }
public
FMainID,Canshu1:string;
{ Public declarations }
end;
var
frmJWLChkOut: TfrmJWLChkOut;
implementation
uses
U_DataLink,U_RTFun,U_ZDYHelp,U_JWLInChkSelList,U_CLManage;
{$R *.dfm}
procedure TfrmJWLChkOut.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
end;
procedure TfrmJWLChkOut.BtnExitClick(Sender: TObject);
begin
Close;
WriteCxGrid('Xԭ<58><D4AD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>1',Tv1,<><D4AD><EFBFBD>ϲֿ<CFB2>');
end;
procedure TfrmJWLChkOut.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,YCLName10=B.YCLName,YCLSpec10=B.YCLSpec,GYSName10=B.GYSName,CRUnit10=B.CRUnit ');
sql.Add(',YCLPrice10=B.YCLPrice,YCLMoney10=B.YCLPrice*A.CRQty');
sql.Add(' from CK_YCLONE_CR A');
sql.Add(' inner join CK_YCLONE_CR B on A.RKID=B.MSID');
SQL.Add(' where A.MSId='''+Trim(FMainID)+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Sub);
SInitCDSData20(ADOQueryMain,CDS_Sub);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmJWLChkOut.ToolButton2Click(Sender: TObject);
var
FDate:TDateTime;
begin
FDate:=SGetServerDate(ADOQueryTemp);
try
frmJWLInChkSelList:=TfrmJWLInChkSelList.Create(Application);
with frmJWLInChkSelList do
begin
if ShowModal=1 then
begin
with CDS_Main do
begin
First;
while not eof do
begin
if FieldByName('Ssel').AsBoolean=True then
begin
with Self.CDS_Sub do
begin
Append;
FieldByName('RKID').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('MSID').AsString);
FieldByName('YCLName10').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('YCLName').AsString);
FieldByName('YCLSpec10').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('YCLSpec').AsString);
FieldByName('GYSName10').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('GYSName').AsString);
FieldByName('CRUnit10').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('CRUnit').AsString);
FieldByName('YCLPrice10').Value:=Trim(frmJWLInChkSelList.CDS_Main.fieldbyname('JWLPrice').AsString);
Post;
end;
with Self.CDS_Sub do
begin
Edit;
FieldByName('CRTime').Value:=FDate;
FieldByName('CRType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
Post;
end;
end;
next;
end;
end;
end;
end;
finally
frmJWLInChkSelList.Free;
end;
end;
procedure TfrmJWLChkOut.ToolButton3Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then Exit;
if Trim(CDS_Sub.fieldbyname('MSID').AsString)<>'' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCLONE_CR where MSID='''+Trim(CDS_Sub.fieldbyname('MSID').AsString)+'''');
Open;
end;
if ADOQueryTemp.FieldByName('Chker').AsString<>'' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ɾ<EFBFBD><C9BE><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;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' delete from CK_YCLONE_CR where MSID='''+Trim(CDS_Sub.fieldbyname('MSID').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update CK_YCLONE_CR Set KCQty=');
sql.Add('(select Sum(CRQty*JSFlag) from CK_YCLONE_CR A where A.RKID=CK_YCLONE_CR.MSID)');
sql.Add(' where MSID='''+Trim(CDS_Sub.fieldbyname('RKID').AsString)+'''');
ExecSQL;
end;
CDS_Sub.Delete;
end else
begin
CDS_Sub.Delete;
end;
end;
function TfrmJWLChkOut.SaveData():Boolean;
var
MaxNo,CRID:string;
begin
try
Result:=False;
ADOQueryCmd.Connection.BeginTrans;
CDS_Sub.DisableControls;
CDS_Sub.First;
while not CDS_Sub.Eof do
begin
if Trim(CDS_Sub.fieldbyname('MSID').AsString)<>'' then
begin
MaxNo:=Trim(CDS_Sub.fieldbyname('MSID').AsString);
end else
begin
GetLSNo(ADOQueryCmd,MaxNo,'MC','CK_YCLONE_CR',4,1);
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from CK_YCLONE_CR where MSId='''+Trim(MaxNo)+'''');
Open;
end;
if ADOQueryCmd.IsEmpty=false then
begin
GetLSNo(ADOQueryTemp,MaxNo,'MC','CK_YCLONE_CR',4,1);
end;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from CK_YCLONE_CR where MSId='''+Trim(MaxNo)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_Sub.fieldbyname('MSId').AsString)<>'' then
begin
Edit;
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditerCode').Value:=Trim(DCode);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
end
else begin
Append;
FieldByName('Filler').Value:=Trim(DName);
FieldByName('FillerCode').Value:=Trim(DCode);
end;
FieldByName('MSId').Value:=Trim(MaxNo);
FieldByName('RKId').Value:=Trim(CDS_Sub.fieldbyname('RKId').AsString);
FieldByName('CRFlag').Value:='<27><><EFBFBD><EFBFBD>';
FieldByName('JSFlag').Value:=-1;
RTSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'CK_YCLONE_CR',2);
FieldByName('CRTime').Value:=Trim(CDS_Sub.fieldbyname('CRTime').AsString);
FieldByName('CRType').Value:=Trim(CDS_Sub.fieldbyname('CRType').AsString);
FieldByName('LYPerson').Value:=Trim(CDS_Sub.fieldbyname('LYPerson').AsString);
FieldByName('LYDept').Value:=Trim(CDS_Sub.fieldbyname('LYDept').AsString);
FieldByName('LYDPID').Value:=Trim(CDS_Sub.fieldbyname('LYDPID').AsString);
FieldByName('LYYGID').Value:=Trim(CDS_Sub.fieldbyname('LYYGID').AsString);
FieldByName('MoneyUserName').Value:=Trim(CDS_Sub.fieldbyname('MoneyUserName').AsString);
FieldByName('CKName').Value:=Trim(Canshu1);
FieldByName('Note').Value:=Trim(CDS_Sub.fieldbyname('Note').AsString);
FieldByName('YCLName').Value:=Trim(CDS_Sub.fieldbyname('YCLName10').AsString);
FieldByName('YCLSpec').Value:=Trim(CDS_Sub.fieldbyname('YCLSpec10').AsString);
FieldByName('GYSName').Value:=Trim(CDS_Sub.fieldbyname('GYSName10').AsString);
FieldByName('CRUnit').Value:=Trim(CDS_Sub.fieldbyname('CRUnit10').AsString);
FieldByName('YCLPrice').Value:=CDS_Sub.fieldbyname('YCLPrice10').AsFloat;
FieldByName('YCLMoney').Value:=CDS_Sub.fieldbyname('YCLMoney').AsFloat;
if Trim(CDS_Sub.fieldbyname('CRQty').AsString)='' then
begin
FieldByName('CRQty').Value:=0;
end else
begin
FieldByName('CRQty').Value:=Trim(CDS_Sub.fieldbyname('CRQty').AsString);
end;
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update CK_YCLONE_CR Set KCQty=');
sql.Add('(select Sum(CRQty*JSFlag) from CK_YCLONE_CR A where A.RKID=CK_YCLONE_CR.MSID)');
sql.Add(' where MSID='''+Trim(CDS_Sub.fieldbyname('RKID').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCLONE_CR ');
sql.Add(' where MSID='''+Trim(CDS_Sub.fieldbyname('RKID').AsString)+'''');
Open;
end;
if ADOQueryCmd.FieldByName('KCQty').Value<0 then
begin
ADOQueryCmd.Connection.RollbackTrans;
CDS_Sub.EnableControls;
Application.MessageBox(PChar(Trim(CDS_Sub.fieldbyname('YCLName10').AsString)+' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><E3A3AC><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!'),'<27><>ʾ',0);
Exit;
end;
with CDS_Sub do
begin
Edit;
FieldByName('MSID').Value:=Trim(MaxNo);
end;
CDS_Sub.Next;
end;
CDS_Sub.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
FMainID:=Trim(MaxNo);
Result:=True;
ModalResult:=1;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
end;
end;
procedure TfrmJWLChkOut.BtnSaveClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then Exit;
if CDS_Sub.Locate('CRTime',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('CRType',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('CRQty',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('LYPerson',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('LYDept',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmJWLChkOut.FormShow(Sender: TObject);
var
FDate:TDateTime;
begin
readCxGrid('Xԭ<58><D4AD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>1',Tv1,<><D4AD><EFBFBD>ϲֿ<CFB2>');
InitGrid();
end;
procedure TfrmJWLChkOut.v1P_ChnNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
{try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='YCL';
flagname:='ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
MainType:=Trim(Canshu1);
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
Self.CDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end; }
end;
procedure TfrmJWLChkOut.v1ShortNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='GYS'+Trim(Self.Canshu1);
flagname:='<27><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
MainType:=Trim(Canshu1);
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
Self.CDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmJWLChkOut.v1UnitNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='DW';
flagname:='<27><>λ';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('CRUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmJWLChkOut.v1Column2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
{try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='YCLSpec';
flagname:='ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end; }
end;
procedure TfrmJWLChkOut.v1Column6PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='LYDept';
flagname:='<27><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>';
if ShowModal=1 then
begin
with CDS_Sub do
begin
Edit;
FieldByName('LYDept').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmJWLChkOut.v1Column5PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='LYPerson';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
with CDS_Sub do
begin
Edit;
FieldByName('LYPerson').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmJWLChkOut.v1CRQtyPropertiesEditValueChanged(Sender: TObject);
var mavlue,FFieldName:string;
begin
mavlue:=TcxTextEdit(sender).EditingText;
FFieldName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
if mavlue='' then
begin
mavlue:='0';
end;
with CDS_Sub do
begin
edit;
FieldByName(FFieldName).Value:=mavlue;
end;
with CDS_Sub do
begin
edit;
FieldByName('YCLMoney').Value:=FieldByName('YCLPrice10').AsFloat*FieldByName('CRQty').AsFloat;
end;
end;
procedure TfrmJWLChkOut.v1CLNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmCLManage:=TfrmCLManage.Create(Application);
with frmCLManage do
begin
TSsel.Visible:=true;
TBAdd.Visible:=false;
TBEdit.Visible:=false;
TBDel.Visible:=false;
TCK.Visible:=false;
Panel2.Visible:=false;
ToolButton1.Visible:=false;
if ShowModal=1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('CLSpec').Value:=Trim(CDS_Main.fieldbyname('CLXNo').AsString);
FieldByName('CLName').Value:=Trim(CDS_Main.fieldbyname('CLName').AsString);
//FieldByName('CPNo').Value:=Trim(CDS_Main.fieldbyname('CPNo').AsString);
FieldByName('CheHao').Value:=Trim(CDS_Main.fieldbyname('CheHao').AsString);
end;
end;
end;
finally
frmCLManage.Free;
end;
end;
procedure TfrmJWLChkOut.v1SJNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='SJName';
flagname:=<><CBBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
with CDS_Sub do
begin
Edit;
FieldByName('SJName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
end.