123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- unit BGLFme;
- interface
- uses
- BGLDm,
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ZjGridDBA, StdCtrls, DBCtrls, ZJGrid, ExtCtrls, ComCtrls,
- ToolWin, JimLabels, ActnList, DB, dxBar, ZJEdits;
- type
- TBGLFrame = class(TFrame)
- labTitle: TJimGradLabel;
- ToolBar: TToolBar;
- tobtnNew: TToolButton;
- pnlBGLList: TPanel;
- zgBGL: TZJGrid;
- pnlBGLMemo: TPanel;
- lblPosition: TLabel;
- dbmPos_Reason: TDBMemo;
- lblDirection: TLabel;
- dbmDirection: TDBMemo;
- pnlBGBills: TPanel;
- zgBGBills: TZJGrid;
- zaBGL: TZjGridDBA;
- zaBGBills: TZjGridDBA;
- alBGL: TActionList;
- actnNew: TAction;
- actnApply: TAction;
- dxpmBGL: TdxBarPopupMenu;
- dxpmBGBills: TdxBarPopupMenu;
- actnBatchWritePos_Reason: TAction;
- pnlBGL: TPanel;
- sprBGL: TSplitter;
- actnCopyBGLBlock: TAction;
- cbbBGLType: TZjComboBox;
- procedure actnNewExecute(Sender: TObject);
- procedure dbmPos_ReasonExit(Sender: TObject);
- procedure zgBGLMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure zgBGBillsMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure dxpmBGLPopup(Sender: TObject);
- procedure actnBatchWritePos_ReasonExecute(Sender: TObject);
- procedure zaBGBillsGridSetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String);
- procedure actnCopyBGLBlockExecute(Sender: TObject);
- procedure zgBGLCopy(Sender: TObject; const ABounds: TRect;
- var Allow: Boolean);
- procedure zgBGLPaste(Sender: TObject; const ABounds: TRect;
- var Allow: Boolean);
- procedure actnCopyBGLBlockUpdate(Sender: TObject);
- procedure zgBGLGetCellEditor(Sender: TObject; ACoord: TPoint;
- var AControl: TWinControl);
- procedure zgBGLEditorSaveCell(Sender: TObject; ACoord: TPoint;
- AControl: TWinControl);
- procedure zgBGLEditorLoadCell(Sender: TObject; ACoord: TPoint;
- AControl: TWinControl);
- procedure zgBGLCellTextChanged(Sender: TObject; Col, Row: Integer);
- private
- FBGLData: TBGLData;
- procedure CopyBGLBlock(ABounds: TRect);
- procedure PasteBGLBlock;
- public
- constructor Create(AParent: TFrame; ABGLData: TBGLData);
- end;
- implementation
- uses
- UtilMethods, MergeTextFrm, ProjectData, MainFrm, mEncryptEditions,
- BGLClipboard, ConditionalDefines, ZjCells;
- {$R *.dfm}
- { TBGLFrame }
- constructor TBGLFrame.Create(AParent: TFrame; ABGLData: TBGLData);
- begin
- inherited Create(AParent);
- FBGLData := ABGLData;
- zgBGL.CellClass.Cols[zaBGL.ColumnCol('BGLType')] := TZjComboCell;
- zaBGL.DataSet := FBGLData.cdsBGLView;
- zgBGL.OnGetCellEditor := zgBGLGetCellEditor;
- zgBGL.OnEditorLoadCell := zgBGLEditorLoadCell;
- zgBGL.OnEditorSaveCell := zgBGLEditorSaveCell;
- dbmPos_Reason.DataSource := FBGLData.dsBGL;
- dbmDirection.DataSource := FBGLData.dsBGL;
- zaBGBills.DataSet := FBGLData.cdsBGBillsView;
- SetDxBtnAction(actnNew, tobtnNew);
- end;
- procedure TBGLFrame.actnNewExecute(Sender: TObject);
- var
- sCode: string;
- begin
- sCode := Format('%s-%d-%d', ['', TProjectData(FBGLData.ProjectData).PhaseIndex,
- FBGLData.cdsBGL.RecordCount + 1]);
- if GetMergeText('±ä¸üÁîºÅ', sCode) then
- FBGLData.AddBGL(sCode);
- end;
- procedure TBGLFrame.dbmPos_ReasonExit(Sender: TObject);
- begin
- if FBGLData.cdsBGLView.State in [dsEdit] then
- FBGLData.cdsBGLView.Post;
- end;
- procedure TBGLFrame.zgBGLMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- if Button = mbRight then
- dxpmBGL.PopupFromCursorPos;
- end;
- procedure TBGLFrame.zgBGBillsMouseDown(Sender: TObject;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- begin
- if Button = mbRight then
- dxpmBGBills.PopupFromCursorPos;
- end;
- procedure TBGLFrame.dxpmBGLPopup(Sender: TObject);
- begin
- SetDxBtnAction(actnBatchWritePos_Reason, MainForm.dxbtnBatchWritePos_Reason);
- SetDxBtnAction(actnCopyBGLBlock, MainForm.dxbtnCopyBillsBlock);
- end;
- procedure TBGLFrame.actnBatchWritePos_ReasonExecute(Sender: TObject);
- begin
- FBGLData.BatchWritePos_Reason;
- end;
- procedure TBGLFrame.zaBGBillsGridSetCellText(Sender: TObject;
- const ACoord: TPoint; var Value: String);
- begin
- if SameText(Value, zgBGBills.Cells[ACoord.X, ACoord.Y].Text) then
- Abort;
- end;
- procedure TBGLFrame.actnCopyBGLBlockExecute(Sender: TObject);
- var
- iCount: Integer;
- begin
- if CheckMeasureEdition then
- begin
- zgBGL.Tag := 1;
- iCount := zgBGL.Selection.Bottom - zgBGL.Selection.Top;
- zgBGL.CopyToClipboard(zgBGL.Selection.Bounds);
- zgBGL.Selection.SelectRow(zgBGL.Selection.Top, zgBGL.Selection.Top + iCount - 1);
- end;
- end;
- procedure TBGLFrame.zgBGLCopy(Sender: TObject; const ABounds: TRect;
- var Allow: Boolean);
- begin
- Allow := TZJGrid(Sender).Tag = 0;
- if not Allow then
- begin
- CopyBGLBlock(ABounds);
- TZJGrid(Sender).Tag := 0;
- end;
- end;
- procedure TBGLFrame.CopyBGLBlock(ABounds: TRect);
- var
- Clipboard: TBGLClipboard;
- begin
- Clipboard := TBGLClipboard.Create(FBGLData);
- try
- Clipboard.Copy(ABounds.Bottom - ABounds.Top);
- finally
- Clipboard.Free;
- end;
- end;
- procedure TBGLFrame.PasteBGLBlock;
- var
- Clipboard: TBGLClipboard;
- begin
- Clipboard := TBGLClipboard.Create(FBGLData);
- try
- Clipboard.Paste;
- finally
- Clipboard.Free;
- end;
- end;
- procedure TBGLFrame.zgBGLPaste(Sender: TObject; const ABounds: TRect;
- var Allow: Boolean);
- begin
- if HasBGLBlockFormat then
- begin
- Allow := False;
- PasteBGLBlock;
- end;
- end;
- procedure TBGLFrame.actnCopyBGLBlockUpdate(Sender: TObject);
- begin
- if _IsDebugView then
- TAction(Sender).Visible := True
- else
- TAction(Sender).Visible := False;
- end;
- procedure TBGLFrame.zgBGLGetCellEditor(Sender: TObject; ACoord: TPoint;
- var AControl: TWinControl);
- begin
- if ACoord.X = zaBGL.ColumnCol('BGLType') then
- AControl := cbbBGLType;
- end;
- procedure TBGLFrame.zgBGLEditorSaveCell(Sender: TObject; ACoord: TPoint;
- AControl: TWinControl);
- begin
- if AControl = cbbBGLType then
- begin
- zaBGL.DataSet.Edit;
- if cbbBGLType.ItemIndex = -1 then
- zaBGL.DataSet.FieldByName('BGLType').Clear
- else
- zaBGL.DataSet.FieldByName('BGLType').AsString := cbbBGLType.Text;
- zaBGL.DataSet.Post;
- end;
- end;
- procedure TBGLFrame.zgBGLEditorLoadCell(Sender: TObject; ACoord: TPoint;
- AControl: TWinControl);
- begin
- if AControl = cbbBGLType then
- if zaBGL.DataSet.FieldByName('BGLType').AsString = '' then
- cbbBGLType.ItemIndex := -1
- else
- cbbBGLType.Text := zaBGL.DataSet.FieldByName('BGLType').AsString;
- end;
- procedure TBGLFrame.zgBGLCellTextChanged(Sender: TObject; Col,
- Row: Integer);
- begin
- if Col = 6 then
- begin
- if (zgBGL.Cells[Col, Row].Text <> '') and (cbbBGLType.Items.IndexOf(zgBGL.Cells[Col, Row].Text) = -1) then
- zgBGL.Cells[Col, Row].Text := '';
- end;
- end;
- end.
|