📄 formbase.pas
字号:
PROCEDURE TBaseFrom.FormCreate(Sender:TObject);
BEGIN
PBar.Visible:=false;
END;
FUNCTION TBaseFrom.OpenWorker(AList:TStrings):Integer;
VAR sSQL:STRING;
k:Integer;
BEGIN
Result:=0;
IF AList=NIL THEN exit;
sSQL:='SELECT [工号], [姓名] FROM [House2Cash].[dbo].[职工表]'
+' ORDER BY [工号]';
IF OpenSQL(FDM.aqTemp, sSQL)<1 THEN exit;
AList.Clear;
TRY
FOR k:=0 TO FDM.aqTemp.RecordCount-1 DO
BEGIN
AList.Add(FDM.aqTemp.FieldByName('工号').AsString
+'='+FDM.aqTemp.FieldByName('姓名').AsString);
FDM.aqTemp.Next;
END;
FINALLY
FDM.aqTemp.Close;
END;
Result:=AList.Count;
{
sSQL:='SELECT [工号], [姓名]'
+' FROM [House2Cash].[dbo].[职工表]'
+' ORDER BY [工号]';
TRY
Screen.Cursor:=crHourGlass;
OpenSQL(AQ, sSQL);
Result:=AQ.Active;
FINALLY
Screen.Cursor:=crDefault;
END;
}
END;
PROCEDURE TBaseFrom.SetSelectList(FGrid:TDBGridEh);
VAR i:Integer;
BEGIN
IF FGrid=NIL THEN exit;
FOR i:=0 TO FGrid.Columns.Count-1 DO
BEGIN
{ if not FGrid.ReadOnly then
begin
IF (FGrid.Columns[i].Field.FieldName='工号')
OR(FGrid.Columns[i].Field.FieldName='工资号') THEN
BEGIN
FGrid.Columns[i].ButtonStyle:=cbsDropDown;
//OpenWorker(FGrid.Columns[i].PickList);
FGrid.Columns[i].AlwaysShowEditButton:=True;
FGrid.Columns[i].DropDownWidth:=-1;
FGrid.Columns[i].DropDownRows:=15;
FGrid.Columns[i].DropDownShowTitles:=true;
FGrid.Columns[i].DropDownSizing:=true;
FGrid.Columns[i].LookupDisplayFields:='工号;姓名';
// FGrid.Columns[i].DropDownSpecRow.CellsText:='<空值>;<空值>';
FGrid.Columns[i].DropDownSpecRow.Visible:=True;
END;
end; }
END;
END;
FUNCTION TBaseFrom.GetUseList(AList:TStrings):Integer;
VAR k:Integer;
sSQL:STRING;
BEGIN
Result:=0;
IF AList=NIL THEN exit;
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[公积金用途] ';
IF OpenSQL(FDM.aqTemp, sSQL)<1 THEN exit;
AList.Clear;
TRY
FOR k:=0 TO FDM.aqTemp.RecordCount-1 DO
BEGIN
AList.Add(FDM.aqTemp.FieldByName('说明').AsString);
FDM.aqTemp.Next;
END;
FINALLY
FDM.aqTemp.Close;
END;
Result:=AList.Count;
END;
FUNCTION TBaseFrom.OpenHouseKind(AList:TStrings):Integer;
VAR sSQL:STRING;
k:Integer;
BEGIN
Result:=0;
IF AList=NIL THEN exit;
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[住房结构]';
IF OpenSQL(FDM.aqTemp, sSQL)<1 THEN exit;
AList.Clear;
TRY
FOR k:=0 TO FDM.aqTemp.RecordCount-1 DO
BEGIN
AList.Add(FDM.aqTemp.FieldByName('说明').AsString);
FDM.aqTemp.Next;
END;
FINALLY
FDM.aqTemp.Close;
END;
Result:=AList.Count;
{
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[住房结构]';
TRY
Screen.Cursor:=crHourGlass;
OpenSQL(AQ, sSQL);
Result:=AQ.Active;
FINALLY
Screen.Cursor:=crDefault;
END;
}
END;
FUNCTION TBaseFrom.OpenHousePay(AList:TStrings):Integer;
VAR sSQL:STRING;
k:Integer;
BEGIN
Result:=0;
IF AList=NIL THEN exit;
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[房租类别]';
IF OpenSQL(FDM.aqTemp, sSQL)<1 THEN exit;
AList.Clear;
TRY
FOR k:=0 TO FDM.aqTemp.RecordCount-1 DO
BEGIN
AList.Add(FDM.aqTemp.FieldByName('说明').AsString);
FDM.aqTemp.Next;
END;
FINALLY
FDM.aqTemp.Close;
END;
Result:=AList.Count;
{
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[房租类别]';
TRY
Screen.Cursor:=crHourGlass;
OpenSQL(AQ, sSQL);
Result:=AQ.Active;
FINALLY
Screen.Cursor:=crDefault;
END;}
END;
FUNCTION TBaseFrom.OpenWorthKind(AList:TStrings):Integer;
VAR sSQL:STRING;
k:Integer;
BEGIN
Result:=0;
IF AList=NIL THEN exit;
sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[土地使用证用途]';
//sSQL:='SELECT [序号], [说明] FROM [House2Cash].[dbo].[公积金用途] ';
IF OpenSQL(FDM.aqTemp, sSQL)<1 THEN exit;
AList.Clear;
TRY
FOR k:=0 TO FDM.aqTemp.RecordCount-1 DO
BEGIN
AList.Add(FDM.aqTemp.FieldByName('说明').AsString);
FDM.aqTemp.Next;
END;
FINALLY
FDM.aqTemp.Close;
END;
Result:=AList.Count;
{
TRY
Screen.Cursor:=crHourGlass;
OpenSQL(AQ, sSQL);
Result:=AQ.Active;
FINALLY
Screen.Cursor:=crDefault;
END; }
END;
PROCEDURE TBaseFrom.GridTitleBtnClick(Sender:TObject; ACol:Integer; Column:TColumnEh);
VAR
sortstring:STRING; //排序列
BEGIN
//进行排序
WITH Column DO
BEGIN
IF FieldName='' THEN
exit;
CASE Title.SortMarker OF
smNoneEh:
BEGIN
Title.SortMarker:=smDownEh;
sortstring:=Column.FieldName+' ASC';
END;
smDownEh:sortstring:=Column.FieldName+' ASC';
smUpEh:sortstring:=Column.FieldName+' DESC';
END;
//进行排序
TRY
IF Column.Grid.DataSource.DataSet IS TCustomADODataSet THEN
TCustomADODataSet(Column.Grid.DataSource.DataSet).Sort:=sortstring;
EXCEPT
END;
END;
END;
FUNCTION TBaseFrom.OpenWorker(AQ:TADOQuery):Boolean;
VAR sSQL:STRING;
BEGIN
sSQL:='SELECT [工号], [姓名]'
+' FROM [House2Cash].[dbo].[职工表]'
+' ORDER BY [工号]';
TRY
Screen.Cursor:=crHourGlass;
OpenSQL(AQ, sSQL);
Result:=AQ.Active;
FINALLY
Screen.Cursor:=crDefault;
END;
END;
PROCEDURE TBaseFrom.DataBeforeEdit(DataSet:TDataSet);
BEGIN
IF DataSet.FindField('审核人')<>NIL THEN
BEGIN
IF DataSet.FieldByName('审核人').AsString<>'' THEN
BEGIN
Mywarning('数据已审核, 不允许再修改......');
DataSet.Cancel;
exit;
END;
END;
IF DataSet.FindField('录入人')<>NIL THEN
BEGIN
IF DataSet.FieldByName('录入人').AsString<>WorkUser.Name THEN
BEGIN
Mywarning('数据非你录入, 不允许再修改......');
DataSet.Cancel;
exit;
END;
END;
END;
PROCEDURE TBaseFrom.DataBeforeInsert(DataSet:TDataSet);
BEGIN
//
END;
FUNCTION TBaseFrom.CopyRecord:Integer;
VAR S:STRING;
i, k, j:Integer;
FField:ARRAY OF TTmpField;
bk:TBookmark;
BEGIN
IF InputQuery('请输入要复制的条数', '复制多少: ', S) THEN
BEGIN
k:=StrToIntDef(S, 0);
SetLength(FField, AData.FieldCount-1);
bk:=AData.GetBookmark;
FOR i:=0 TO AData.FieldCount-1 DO
BEGIN
IF (AData.Fields[i].FieldName='序号') THEN
continue;
FField[i].Name:=AData.Fields[i].FieldName;
FField[i].value:=AData.Fields[i].value;
END;
TRY
FOR i:=0 TO k-1 DO
BEGIN
TRY
AData.Append;
FOR j:=0 TO High(FField) DO
BEGIN
IF (AData.Fields[j].FieldName='序号') THEN
continue;
AData.FindField(FField[j].Name).value:=FField[j].value;
END;
AData.Post;
EXCEPT
END;
END;
FINALLY
AData.GotoBookmark(bk);
END;
END;
END;
PROCEDURE TBaseFrom.pmiCopyClick(Sender:TObject);
BEGIN
CopyRecord;
END;
PROCEDURE TBaseFrom.GridSortMarkingChanged(Sender:TObject);
VAR i:Integer;
S, sortstring:STRING;
BEGIN
sortstring:='';
FOR i:=0 TO AGrid.SortMarkedColumns.Count-1 DO
BEGIN
S:='';
IF AGrid.SortMarkedColumns[i].FieldName='' THEN
exit;
CASE AGrid.SortMarkedColumns[i].Title.SortMarker OF
smDownEh:S:=AGrid.SortMarkedColumns[i].FieldName+' DESC';
smUpEh:S:=AGrid.SortMarkedColumns[i].FieldName+' ASC';
END;
IF sortstring='' THEN
BEGIN
IF S<>'' THEN
sortstring:=S;
END ELSE
BEGIN
IF S<>'' THEN
sortstring:=sortstring+', '+S;
END;
END;
TRY
IF AGrid.DataSource.DataSet IS TCustomADODataSet THEN
IF sortstring<>'' THEN
TCustomADODataSet(AGrid.DataSource.DataSet).Sort:=sortstring;
EXCEPT
END;
END;
procedure TBaseFrom.InitShow;
begin
IF AGrid=NIL THEN
BEGIN
Mywarning('代码写的不对哦,参数调用错...');
exit;
END;
AData:=AGrid.DataSource.DataSet;
IF FFormName<>'' THEN sFileName:=AppPath.Report+FFormName+'_'+AGrid.Name+'.ini';
AGrid.RestoreGridLayoutIni(sFileName, 'default', [grpColWidthsEh, grpColVisibleEh,
grpColIndexEh, grpRowHeightEh]);
//AGrid.OnTitleBtnClick:=GridTitleBtnClick;
AGrid.OnSortMarkingChanged:=GridSortMarkingChanged;
IF AData<>NIL THEN
BEGIN
IF NOT Assigned(AData.AfterCancel) THEN
AData.AfterCancel:=DataAfterScroll;
IF NOT Assigned(AData.AfterDelete) THEN
AData.AfterDelete:=DataAfterScroll;
IF NOT Assigned(AData.AfterEdit) THEN
AData.AfterEdit:=DataAfterScroll;
IF NOT Assigned(AData.AfterInsert) THEN
AData.AfterInsert:=DataAfterScroll;
IF NOT Assigned(AData.AfterPost) THEN
AData.AfterPost:=DataAfterScroll;
IF NOT Assigned(AData.AfterOpen) THEN
AData.AfterOpen:=DataAfterScroll;
END;
end;
procedure TBaseFrom.InitClose;
begin
IF (AData<>NIL)AND(AGrid<>NIL) THEN
BEGIN
IF sFileName<>'' THEN
AGrid.SaveGridLayoutIni(sFileName, 'default', false);
AData.AfterCancel:=NIL;
AData.AfterDelete:=NIL;
AData.AfterEdit:=NIL;
AData.AfterInsert:=NIL;
AData.AfterPost:=NIL;
AData.AfterOpen:=NIL;
AData:=NIL;
END;
end;
END.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -