12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- unit ProjectGLFme;
- interface
- uses
- ProjectGLDm,
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, sdGridDBA, ZJGrid, dxBar, ActnList;
- type
- TProjectGLFrame = class(TFrame)
- zgProjectGL: TZJGrid;
- saProjectGL: TsdGridDBA;
- dxpmProjectGL: TdxBarPopupMenu;
- actnProjectGL: TActionList;
- actnCalculatePriceMargin: TAction;
- procedure zgProjectGLMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure dxpmProjectGLPopup(Sender: TObject);
- procedure actnCalculatePriceMarginExecute(Sender: TObject);
- private
- FProjectGLData: TProjectGLData;
- public
- constructor Create(AProjectGLData: TProjectGLData);
- destructor Destroy; override;
- procedure ResetViewControl;
- end;
- implementation
- uses
- ProjectData, MainFrm, UtilMethods;
- {$R *.dfm}
- { TProjectGLFrame }
- constructor TProjectGLFrame.Create(AProjectGLData: TProjectGLData);
- begin
- inherited Create(nil);
- FProjectGLData := AProjectGLData;
- saProjectGL.DataView := FProjectGLData.sdvProjectGL;
- ResetViewControl;
- end;
- destructor TProjectGLFrame.Destroy;
- begin
- inherited;
- end;
- procedure TProjectGLFrame.ResetViewControl;
- var
- AReadOnly: Boolean;
- begin
- with TProjectData(FProjectGLData.ProjectData) do
- AReadOnly := PriceMarginReadOnly;
- saProjectGL.Columns.ColumnByName('Code').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('Name').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('Units').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('Specs').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('BasePrice').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('RiskRange').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('InfoPrice').ReadOnly := AReadOnly;
- saProjectGL.Columns.ColumnByName('InfoDate').ReadOnly := AReadOnly;
- if AReadOnly then
- saProjectGL.Options := saProjectGL.Options - [aoAllowInsert, aoAllowDelete]
- else
- saProjectGL.Options := saProjectGL.Options + [aoAllowInsert, aoAllowDelete];
- end;
- procedure TProjectGLFrame.zgProjectGLMouseDown(Sender: TObject;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- begin
- if Button = mbRight then
- dxpmProjectGL.PopupFromCursorPos;
- end;
- procedure TProjectGLFrame.dxpmProjectGLPopup(Sender: TObject);
- begin
- SetDxBtnAction(actnCalculatePriceMargin, MainForm.dxbtnCalculatePriceMargin);
- end;
- procedure TProjectGLFrame.actnCalculatePriceMarginExecute(Sender: TObject);
- begin
- if TProjectData(FProjectGLData.ProjectData).PhaseData.StageDataReadOnly then
- TipMessage('历史数据不可重新计算。')
- else
- TProjectData(FProjectGLData.ProjectData).CalculatePriceMargin;
- end;
- end.
|