123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- unit ZJJLFme;
- interface
- uses
- ZJJLDm,
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ExtCtrls, StdCtrls, DBCtrls, Mask, JimLabels, DB, ComCtrls,
- ToolWin, ActnList, ZjGridDBA, ZJGrid, dxBar;
- type
- TZJJLFrame = class(TFrame)
- labTitle: TJimGradLabel;
- alBGL: TActionList;
- actnGenerate: TAction;
- pnlTop: TPanel;
- pnlButton: TPanel;
- tobaTop: TToolBar;
- tobtnGenerate: TToolButton;
- lePreText: TLabeledEdit;
- zaZJJL: TZjGridDBA;
- pnlZJJL: TPanel;
- zgZJJL: TZJGrid;
- pnlListTitle: TPanel;
- pnlListBar: TPanel;
- lblListTitle: TLabel;
- pnlZJJLProperty: TPanel;
- pnlDataTitle: TPanel;
- lblDataTiel: TLabel;
- pnlDataBar: TPanel;
- dxpmZJJL: TdxBarPopupMenu;
- actnLocateBills: TAction;
- dxpmAutoGenerate: TdxBarPopupMenu;
- actnGenerateFxZJJL: TAction;
- actnGenerateGclZJJL: TAction;
- procedure actnGenerateExecute(Sender: TObject);
- procedure lePreTextExit(Sender: TObject);
- procedure zgZJJLMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure dxpmZJJLPopup(Sender: TObject);
- procedure actnLocateBillsExecute(Sender: TObject);
- procedure actnLocateBillsUpdate(Sender: TObject);
- procedure dxpmAutoGeneratePopup(Sender: TObject);
- procedure actnGenerateFxZJJLExecute(Sender: TObject);
- procedure actnGenerateGclZJJLExecute(Sender: TObject);
- procedure actnGenerateUpdate(Sender: TObject);
- private
- FZJJLData: TZJJLData;
- FDataReadOnly: Boolean;
- procedure SetDataReadOnly(const Value: Boolean);
- procedure RefreshTitle;
- procedure GenerateZJJL;
- public
- constructor Create(AParent: TFrame; AZJJLData: TZJJLData);
- destructor Destroy; override;
- procedure ResetFrameLink(AZJJLData: TZJJLData);
- property DataReadOnly: Boolean read FDataReadOnly write SetDataReadOnly;
- end;
- implementation
- uses
- MergeTextFrm, PhaseData, MainFrm, ProjectData, UtilMethods,
- PhaseProperty;
- {$R *.dfm}
- { TZJJLFrame }
- constructor TZJJLFrame.Create(AParent: TFrame; AZJJLData: TZJJLData);
- begin
- inherited Create(AParent);
- ResetFrameLink(AZJJLData);
- with TProjectData(TPhaseData(FZJJLData.PhaseData).ProjectData) do
- lePreText.Text := ProjProperties.ZJJLPreText;
- RefreshTitle;
- end;
- destructor TZJJLFrame.Destroy;
- begin
- inherited;
- end;
- procedure TZJJLFrame.ResetFrameLink(AZJJLData: TZJJLData);
- begin
- FZJJLData := AZJJLData;
- zaZJJL.DataSet := FZJJLData.cdsZJJLView;
- AlignControl(FZJJLData.DetailGrid, pnlZJJLProperty, alClient);
- end;
- procedure TZJJLFrame.actnGenerateExecute(Sender: TObject);
- var
- bIsRefer: Boolean;
- P: TPoint;
- begin
- with TProjectData(TPhaseData(FZJJLData.PhaseData).ProjectData) do
- bIsRefer := ProjProperties.AuditStatus = 0;
- if bIsRefer then
- begin
- P := pnlButton.ClientToScreen(Point(tobtnGenerate.Left, tobtnGenerate.Top + tobtnGenerate.Height));
- dxpmAutoGenerate.Popup(P.X, P.Y);
- end
- else
- GenerateZJJL;
- end;
- procedure TZJJLFrame.lePreTextExit(Sender: TObject);
- begin
- with TProjectData(TPhaseData(FZJJLData.PhaseData).ProjectData) do
- ProjProperties.ZJJLPreText := lePreText.Text;
- end;
- procedure TZJJLFrame.SetDataReadOnly(const Value: Boolean);
- begin
- FDataReadOnly := Value;
- actnGenerate.Enabled := not FDataReadOnly;
- lePreText.Enabled := not FDataReadOnly;
- zaZJJL.Column('Code').ReadOnly := FDataReadOnly;
- zaZJJL.Column('CertificateCode').ReadOnly := FDataReadOnly;
- end;
- procedure TZJJLFrame.zgZJJLMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- if Button = mbRight then
- dxpmZJJL.PopupFromCursorPos
- else if (ssDouble in Shift) and (zgZJJL.CurCol = 3) then
- begin
- if FZJJLData.cdsZJJLView.RecordCount > 0 then
- FZJJLData.LocateBills;
- end;
- end;
- procedure TZJJLFrame.dxpmZJJLPopup(Sender: TObject);
- begin
- SetDxBtnAction(actnLocateBills, MainForm.dxbtnLocateBills);
- end;
- procedure TZJJLFrame.actnLocateBillsExecute(Sender: TObject);
- begin
- FZJJLData.LocateBills;
- end;
- procedure TZJJLFrame.actnLocateBillsUpdate(Sender: TObject);
- begin
- TAction(Sender).Enabled := FZJJLData.cdsZJJLView.RecordCount > 0;
- end;
- procedure TZJJLFrame.RefreshTitle;
- var
- iType: Integer;
- begin
- if not TPhaseData(FZJJLData.PhaseData).Active then Exit;
- iType := TPhaseData(FZJJLData.PhaseData).PhaseProperty.ZJJLType;
- case iType of
- 0: labTitle.Caption := '中间计量(0号台账)';
- 1: labTitle.Caption := '中间计量(总量控制)';
- end;
- end;
- procedure TZJJLFrame.dxpmAutoGeneratePopup(Sender: TObject);
- begin
- SetDxBtnAction(actnGenerateFxZJJL, MainForm.dxbtnFxZJJL);
- SetDxBtnAction(actnGenerateGclZJJL, MainForm.dxbtnGclZJJL);
- end;
- procedure TZJJLFrame.actnGenerateFxZJJLExecute(Sender: TObject);
- begin
- with TPhaseData(FZJJLData.PhaseData).PhaseProperty do
- ZJJLType := 0;
- GenerateZJJL;
- end;
- procedure TZJJLFrame.GenerateZJJL;
- var
- iType: Integer;
- begin
- with TProjectData(TPhaseData(FZJJLData.PhaseData).ProjectData) do
- ProjProperties.ZJJLPreText := lePreText.Text;
- iType := TPhaseData(FZJJLData.PhaseData).PhaseProperty.ZJJLType;
- case iType of
- 0: FZJJLData.GenerateAll;
- 1: FZJJLData.GenerateAllByB_Code;
- end;
- FZJJLData.AssignedCurData;
- RefreshTitle;
- end;
- procedure TZJJLFrame.actnGenerateGclZJJLExecute(Sender: TObject);
- begin
- with TPhaseData(FZJJLData.PhaseData).PhaseProperty do
- ZJJLType := 1;
- GenerateZJJL;
- end;
- procedure TZJJLFrame.actnGenerateUpdate(Sender: TObject);
- begin
- with TProjectData(TPhaseData(FZJJLData.PhaseData).ProjectData) do
- TAction(Sender).Enabled := not StageDataReadOnly;
- end;
- end.
|