D7myYunxiang/云翔OA(WTOA.dll)/U_GRYearPFList_Sub.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

665 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_GRYearPFList_Sub;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer,
cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB,
ExtCtrls, BtnEdit, cxDropDownEdit, cxCalendar, cxGridCustomPopupMenu,
cxGridPopupMenu;
type
TfrmGRYearPFList_Sub = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
ScrollBox1: TScrollBox;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
ADOQuery1: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
Panel1: TPanel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
PFDate: TDateTimePicker;
Dept: TBtnEditA;
GRName: TEdit;
Label6: TLabel;
RZDate: TDateTimePicker;
lbl1: TLabel;
v1PFYDian: TcxGridDBColumn;
v1PFMNum: TcxGridDBColumn;
v1PFZPNum: TcxGridDBColumn;
Label5: TLabel;
PFNote: TEdit;
ZDept: TBtnEditA;
GangWei: TBtnEditA;
ToolBar2: TToolBar;
ToolButton2: TToolButton;
PFMonth: TComboBox;
Label7: TLabel;
Label2: TLabel;
PFYear: TEdit;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure WorkerBtnClick(Sender: TObject);
procedure v1Column3PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column3PropertiesEditValueChanged(Sender: TObject);
procedure v1Column9PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1priceUnitPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure DeptBtnClick(Sender: TObject);
procedure v1ZhaiYaoPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1PFZPNumPropertiesEditValueChanged(Sender: TObject);
procedure ZDeptBtnClick(Sender: TObject);
procedure GangWeiBtnClick(Sender: TObject);
procedure Tv1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ToolButton2Click(Sender: TObject);
private
FXS:Integer;
procedure InitData();
function SaveData():Boolean;
procedure InitDataXG();
{ Private declarations }
public
PState:Integer;
FormId,PFSubID:String;
{ Public declarations }
end;
var
frmGRYearPFList_Sub: TfrmGRYearPFList_Sub;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_GYSList,U_ZDYHelpSel,U_YGCXList,
U_SYDeptUserView, U_SYDeptView;
{$R *.dfm}
procedure TfrmGRYearPFList_Sub.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵǼ<D6B5>',Tv1,<><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmGRYearPFList_Sub.InitData();
var FDPID,FDEPT: string;
Fint: integer;
begin
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add('select dateadd(month,-1,getdate()) PFfilltime,A.*,B.* ');
sql.add('from OA_YG_DangAn A ');
sql.Add('inner join SY_Dept B on A.DPID=B.DPID');
SQL.Add('where isnull(A.YGEName,YGName)='''+trim(DName)+'''');
Open;
end;
Dept.Text:=Trim(ADOQuery1.fieldbyname('Dept').AsString);
RZDate.DateTime:=ADOQuery1.fieldbyname('ZhuanZhengDate').AsDateTime;
GangWei.text:=ADOQuery1.fieldbyname('GangWei').AsString;
PFDate.DateTime:=ADOQuery1.fieldbyname('PFfilltime').AsDateTime;
PFMonth.Text:=uppercase(formatdatetime('MM',ADOQuery1.fieldbyname('PFfilltime').AsDateTime));
PFYear.Text:=uppercase(formatdatetime('yyyy',ADOQuery1.fieldbyname('PFfilltime').AsDateTime));
GRName.Text:=Trim(DName);
FDPID:=Trim(ADOQuery1.fieldbyname('DPID').AsString);
FDEPT:=Trim(ADOQuery1.fieldbyname('DPParent').AsString);
for Fint:=2 to ADOQuery1.fieldbyname('DPlevel').AsInteger-1 do
begin
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from SY_Dept where DPID='''+trim(FDEPT)+'''');
open;
end;
FDEPT:=Trim(ADOCmd.fieldbyname('DPParent').AsString);
end;
if ADOCmd.IsEmpty=False then
ZDept.Text:=trim(ADOCmd.fieldbyname('DPName').asstring);
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add('select * from GRYearPF_SubMX ');
sql.Add(' where PFSubID='''+Trim(PFSubID)+'''');
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
with ADOQuery1 do
begin
close;
sql.Clear;
SQL.Add('select * from PF_User where DPID='''+trim(FDPID)+'''');
Open;
end;
with ADOQuery1 do
begin
First;
while not eof do
begin
with Order_Sub do
begin
Append;
FieldByName('PFYDian').Value:=ADOQuery1.fieldbyname('PFYDian').AsString;
FieldByName('PFMNum').Value:=ADOQuery1.fieldbyname('PFMNum').AsFloat;
post;
end;
Next;
end;
end;
end;
procedure TfrmGRYearPFList_Sub.InitDataXG();
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add('select A.* from GRYearPF_Sub A ');
sql.Add(' where A.PFSubID='''+Trim(PFSubID)+'''');
Open;
end;
SCSHDataNew(ADOQuery1,Panel1,0);
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add('select * from GRYearPF_SubMX ');
sql.Add(' where PFSubID='''+Trim(PFSubID)+'''');
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
end;
procedure TfrmGRYearPFList_Sub.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵǼ<D6B5>',Tv1,<><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
if Trim(FormId)='0' then
begin
InitData();
end
else
begin
InitDataXG();
end;
end;
function TfrmGRYearPFList_Sub.SaveData():Boolean;
var
maxno,maxSubNo:String;
begin
try
Result:=False;
ADOCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(PFSubID)='' then
begin
if GetLSNo(ADOCmd,maxno,'PF','GRYearPF_Sub',3,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(PFSubID);
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from GRYearPF_Sub where PFSubID='''+Trim(PFSubID)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(PFSubID)='' then
begin
Append;
end
else begin
Edit;
end;
FieldByName('PFSubID').Value:=Trim(maxno);
RTSetsavedata(ADOCmd,'GRYearPF_Sub',Panel1,0);
fieldbyname('filltime').Value:=SGetServerDate(ADOQuery1);
fieldbyname('PFType').Value:='<27>ڲ<EFBFBD>';
FieldByName('PFStatus').Value:='<27><><EFBFBD>ύ';
Post;
end;
with ADOCmd DO
begin
Close;
sql.Clear;
sql.Add('select * from GRYearPF_Sub ');
sql.add('where PFYear='''+trim(PFYear.Text)+''' ');
sql.add('and PFMonth='''+trim(PFMonth.Text)+''' ');
sql.add('and GRName='''+trim(DName)+'''');
open;
end;
if ADOCmd.RecordCount>1 then
begin
ADOCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ');
exit;
end;
//<2F>ⲿ
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select * from GRYearPFWB_Sub ');
sql.Add('where PFSubID='''+Trim(PFSubID)+'''');
open;
if isempty then
begin
append;
end
else
edit;
fieldbyname('PFSubID').AsString:=trim(maxno);
RTSetsavedata(ADOCmd,'GRYearPFWB_Sub',Panel1,0);
fieldbyname('filltime').Value:=SGetServerDate(ADOQuery1);
fieldbyname('PFType').value:='<27>ⲿ';
FieldByName('PFStatus').Value:='<27><><EFBFBD>ύ';
post;
end;
with ADOCmd do
begin
close;
sql.Clear;
sql.Add('select A.*,B.* from PF_User A ');
SQL.Add('Inner join SY_Dept B on A.DPID=B.DPID ');
sql.add('where B.DPName=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''');
open;
end;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from GRYearPFWB_SubMX ');
sql.add('where PFSubID='''+trim(PFSubID)+'''');
open;
if isempty then
begin
with ADOCmd do
begin
first;
while not eof do
begin
if GetLSNo(ADOTemp,maxSubno,'WPF','GRYearPFWB_SubMX',4,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOQuery1 do
begin
append;
fieldbyname('PFSubMXID').asstring:=trim(MaxSubno);
fieldbyname('PFSubid').AsString:=trim(maxNo);
fieldbyname('PFYDian').AsString:=trim(ADOCmd.fieldbyname('PFYDian').AsString);
fieldbyname('PFMNum').asfloat:=ADOCmd.fieldbyname('PFMNum').AsFloat;
post;
end;
next;
end;
end;
end;
end;
///<2F><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
with Order_Sub do
begin
First;
while not Eof do
begin
if Trim(Order_Sub.fieldbyname('PFSubMXID').AsString)='' then
begin
if GetLSNo(ADOCmd,maxSubNo,'PX','GRYearPF_SubMX',4,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
exit;
end;
end else
begin
maxSubNo:=Trim(Order_Sub.fieldbyname('PFSubMXID').AsString);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from GRYearPF_SubMX where ');
sql.Add(' PFSubMXID='''+Trim(maxSubNo)+'''');
Open;
end;
with ADOCmd do
begin
if isempty then
Append
else
Edit;
FieldByName('PFSubID').Value:=Trim(maxno);
FieldByName('PFSubMXID').Value:=Trim(maxSubNo);
RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'GRYearPF_SubMX',0);
fieldbyname('PFZPNum').asfloat:=Order_Sub.fieldbyname('PFZPNum').AsFloat;
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('PFSubMXID').Value:=Trim(maxSubNo);
Next;
end;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update GRYearPF_Sub Set PFNum=');
sql.Add('(select isnull(Sum(PFZPNum),0) from GRYearPF_SubMX A where A.PFSubID=GRYearPF_Sub.PFSubID)');
sql.Add(' where PFSubID='''+Trim(maxno)+'''');
ExecSQL;
end;
ADOCmd.Connection.CommitTrans;
PFSubID:=Trim(maxno);
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmGRYearPFList_Sub.TBSaveClick(Sender: TObject);
var
FReal:Double;
FInt:Integer;
FPPrice,PRTPrice,BCMoney,FPQty,ChaMoney,FYear,FMonth:string;
begin
ToolBar1.SetFocus;
if trystrtoInt(PFYear.Text,Fint)=False then
begin
application.MessageBox('<27><><EFBFBD>ݷǷ<DDB7><C7B7><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ');
exit;
end;
if trystrtoInt(PFMonth.Text,Fint)=False then
begin
application.MessageBox('<27>·ݷǷ<DDB7><C7B7><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ');
exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
ModalResult:=1;
end;
end;
procedure TfrmGRYearPFList_Sub.WorkerBtnClick(Sender: TObject);
begin
frmYGCXList:=TfrmYGCXList.Create(self);
with frmYGCXList do
begin
FFInt:=100;
TSel.Visible:=True;
if showModal=1 then
begin
Dept.Text:=trim(CDS_Tree.fieldbyname('DPName').AsString);
end;
free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1Column3PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='KeMu';
flagname:='<27><>Ŀ';
if ShowModal=1 then
begin
with Self.Order_Sub do
begin
Edit;
FieldByName('KeMu').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
// Post;
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1Column3PropertiesEditValueChanged(
Sender: TObject);
var
FName,FQty,FPrice,mvalue:string;
begin
FName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
mvalue:=TcxTextEdit(Sender).EditingText;
with Order_Sub do
begin
Edit;
if Trim(mvalue)='' then
FieldByName(FName).Value:=null
else
FieldByName(FName).Value:=mvalue;
Post;
end;
FQty:=Trim(Order_Sub.fieldbyname('YCLQty').AsString);
FPrice:=Trim(Order_Sub.fieldbyname('YCLPrice').AsString);
if Trim(FQty)='' then FQty:='0';
if Trim(FPrice)='' then FPrice:='0';
with Order_Sub do
begin
Edit;
FieldByName('Money').Value:=StrToFloat(FQty)*StrToFloat(FPrice);
Post;
end;
end;
procedure TfrmGRYearPFList_Sub.v1Column9PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag:='YCLUnit';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if showModal=1 then
begin
with Order_Sub do
begin
edit;
fieldbyname('YCLUnit').asstring:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1Column1PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag:='ZhaiYao';
flagname:='<27><><EFBFBD>λ';
if showModal=1 then
begin
with Order_Sub do
begin
edit;
fieldbyname('ZhaiYao').asstring:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1priceUnitPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag:='priceUnit';
flagname:='<27><><EFBFBD><EFBFBD>';
if showModal=1 then
begin
with Order_Sub do
begin
edit;
fieldbyname('priceUnit').asstring:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
free;
end;
end;
procedure TfrmGRYearPFList_Sub.DeptBtnClick(Sender: TObject);
begin
try
frmSYDeptView:=TfrmSYDeptView.Create(Application);
with frmSYDeptView do
begin
if ShowModal=1 then
begin
Self.Dept.Text:=Trim(frmSYDeptView.CDS_Tree.fieldbyname('DPName').AsString);
Self.Dept.TxtCode:=Trim(frmSYDeptView.CDS_Tree.fieldbyname('DPID').AsString);
with ADOQuery1 do
begin
close;
sql.Clear;
SQL.Add('select * from PF_User where DPID='''+trim(Self.Dept.TxtCode)+'''');
Open;
end;
with ADOQuery1 do
begin
First;
while not eof do
begin
with Order_Sub do
begin
Append;
FieldByName('PFYDian').Value:=ADOQuery1.fieldbyname('PFYDian').AsString;
FieldByName('PFMNum').Value:=ADOQuery1.fieldbyname('PFMNum').AsFloat;
post;
end;
Next;
end;
end;
end;
end;
finally
frmSYDeptView.Free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1ZhaiYaoPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
frmZDYHelp:=TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag:='ZhaiYao';
flagname:='<27><><EFBFBD>λ';
if showModal=1 then
begin
Order_Sub.Edit;
Order_Sub.FieldByName('ZhaiYao').AsString:=trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
free;
end;
end;
procedure TfrmGRYearPFList_Sub.v1PFZPNumPropertiesEditValueChanged(
Sender: TObject);
var mavlue: string;
begin
mavlue:=TcxTextEdit(Sender).EditingText;
if strtofloat(mavlue)>Order_Sub.fieldbyname('PFMNum').asfloat then
begin
application.messagebox('<27><><EFBFBD>ֲ<EFBFBD><D6B2>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ');
mavlue:='';
end;
with Order_Sub do
begin
edit;
fieldbyname('PFZPNum').AsString:=trim(mavlue);
post;
end;
end;
procedure TfrmGRYearPFList_Sub.ZDeptBtnClick(Sender: TObject);
begin
try
frmSYDeptView:=TfrmSYDeptView.Create(Application);
with frmSYDeptView do
begin
if ShowModal=1 then
begin
Self.ZDept.Text:=Trim(frmSYDeptView.CDS_Tree.fieldbyname('DPName').AsString);
end;
end;
finally;
frmSYDeptView.Free;
end;
end;
procedure TfrmGRYearPFList_Sub.GangWeiBtnClick(Sender: TObject);
begin
try
frmSYDeptView:=TfrmSYDeptView.Create(Application);
with frmSYDeptView do
begin
if ShowModal=1 then
begin
Self.GangWei.Text:=Trim(frmSYDeptView.CDS_Tree.fieldbyname('DPName').AsString);
end;
end;
finally;
frmSYDeptView.Free;
end;
end;
procedure TfrmGRYearPFList_Sub.Tv1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
TV1.DataController.GotoNext;
end;
procedure TfrmGRYearPFList_Sub.ToolButton2Click(Sender: TObject);
begin
Order_Sub.Delete;
end;
end.