?? sy_lxqldbl.pas
字號:
procedure TFrmY_LXQLDBL.bbtModifyClick(Sender: TObject);
begin
if qryQld.IsEmpty then Exit;
if not qryQld.FieldByName('SDate').IsNull then
begin
CHQMsgBox('此數(shù)據(jù)已發(fā)送!');
Exit;
end;
SetControlsState(false);
dgQld.Options := dgQld.Options + [dgEditing];
setButtonState(false, false, false, false, true, true);
end;
procedure TFrmY_LXQLDBL.bbtSaveClick(Sender: TObject);
var
vsQldh: string;
begin
try
qryQld.DisableControls;
while not qryQld.eof do
begin
if qryQld.FieldByName('sl').AsInteger = 0 then
qryQld.delete
else
qryQld.next;
end;
qryQld.First;
if not qryQld.Eof then
begin
qryQld.edit;
qryQld.FieldByName('bz').AsString := Memo1.Text;
qryQld.post;
end;
//*************************************************
with qryQld do
if (not qryQld.IsEmpty) and (FCurrQldh = clsQldh) then
begin
vsQldh := GetQLDH(FslDwdm.Strings[cbbDwmc.ItemIndex]);
First;
while not eof do
begin
Edit;
FieldByName('qldh').AsString := vsQldh;
Next;
end;
FCurrQldh := vsQldh;
end;
finally
qryQld.EnableControls;
end;
with data do
begin
if DM.InTransaction then
DM.Rollback;
try
DM.StartTransaction;
qryQLD.ApplyUpdates;
Dm.Commit;
qryQld.CommitUpdates;
except
if DM.InTransaction then
DM.Rollback;
CHQMsgBox('數(shù)據(jù)保存出錯');
SetButtonState(false, false, true, false, false, true);
end;
end;
cbbDwmcChange(Self);
SetControlsState(true);
if dgEditing in dgQld.Options then
dgQld.Options := dgQld.Options - [dgEditing];
SetButtonState(true, true, true, true, false, false);
end;
procedure TFrmY_LXQLDBL.bbtCancelClick(Sender: TObject);
begin
qryQld.CancelUpdates;
if FCurrQldh = clsQldh then
FCurrQldh := '';
cbbDwmcChange(Self);
SetControlsState(true);
if dgEditing in dgQld.Options then
dgQld.Options := dgQld.Options - [dgEditing];
SetButtonState(true, true, true, true, false, false);
end;
procedure TFrmY_LXQLDBL.qryQldSLSetText(Sender: TField;
const Text: string);
var
TextValue: Integer;
begin
try
TextValue := StrToInt(Text);
if TextValue < 0 then
begin
CHQMsgBox('非法數(shù)值!');
abort;
end;
Sender.AsInteger := TextValue;
qryQld.FieldByName('je').AsFloat := qryQld.FieldByName('sl').AsFloat * qryQld.FieldByName('MZ').AsFloat;
edHj.Text := FormatFloat('#,##0.00##', SumField(qryQld, qryQld.FieldByName('je'))/100);
except
if not (TextValue < 0) then
chqmsgbox('非法數(shù)值');
abort;
end;
end;
procedure TFrmY_LXQLDBL.qryQldBeforePost(DataSet: TDataSet);
begin
// qryQld.FieldByName('je').AsFloat := qryQld.FieldByName('sl').AsInteger * (qryQld.FieldByName('MZ').AsInteger);
end;
procedure TFrmY_LXQLDBL.dgQldKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_Return then
begin
key := 0;
with dgQld do
if SelectedIndex < (Columns.Count - 1) then
SelectedIndex := SelectedIndex + 1
else
SelectedIndex := 0;
end;
end;
procedure TFrmY_LXQLDBL.qryQldAfterPost(DataSet: TDataSet);
var
adouble: double;
begin
{ adouble := SumField(DataSet, DataSet.FieldByName('je'));
edHj.Text := FormatFloat('#,##0.00##', adouble / 10000); }
end;
procedure TFrmY_LXQLDBL.GetQldhList(Sender: TObject);
const
csGetQldhLish: string
= ' select distinct qldh from tys_txpqld where dwdm = :dwdm and nd = :nd and yf = :yf ';
var
vsTemp: string;
begin
cbbQldh.Clear;
if cbbDwmc.ItemIndex <> -1 then
vsTemp := FslDwdm.Strings[cbbdwmc.ItemIndex]
else
vsTemp := '';
with qryTemp do
begin
Close;
Sql.Clear;
Sql.Add(csGetQldhLish);
ParamByName('dwdm').AsString := vsTemp;
ParamByName('nd').AsString := inttostr(speYear.Value);
ParamByName('yf').AsString := inttostr(speMonth.Value);
open;
if not IsEmpty then
begin
first;
while not eof do
begin
cbbQldh.Items.Add(FieldByName('qldh').AsString);
next;
end;
end;
end;
if cbbQldh.Items.IndexOf(FCurrQldh) <> -1 then
cbbQldh.ItemIndex := cbbQldh.Items.IndexOf(FCurrQldh)
else if cbbQldh.Items.Count > 0 then
begin
cbbQldh.ItemIndex := 0;
FCurrQldh := cbbQldh.Items[cbbQldh.ItemIndex];
end
else
FCurrQldh := '';
end;
procedure TFrmY_LXQLDBL.NewQld(Sender: TObject);
const
csNewQld: string = ' select * from tys_txpqld where qldh = :qldh ';
begin
if cbbDwmc.ItemIndex <> -1 then
begin
Memo1.Clear;
FCurrQldh := clsQldh;
with qryQld do
begin
Close;
Sql.Clear;
Sql.Add(csNewQld);
ParamByName('qldh').AsString := FCurrQldh;
Open;
end;
end;
end;
procedure TFrmY_LXQLDBL.SetControlsState(Enabled: bool);
begin
cbbDwmc.Enabled := Enabled;
cbbQldh.Enabled := Enabled;
speYear.Enabled := Enabled;
speMonth.Enabled := Enabled;
sbAdd.Enabled := not Enabled;
sbDelete.Enabled := not Enabled;
Memo1.ReadOnly := Enabled;
end;
procedure TFrmY_LXQLDBL.cbbQldhChange(Sender: TObject);
begin
GetQld(Self);
end;
procedure TFrmY_LXQLDBL.cbbDwmcChange(Sender: TObject);
begin
if (speYear.Text = '') or (speMonth.Text = '') then Exit;
cbbQldh.OnChange := nil;
GetQldhList(Self);
cbbQldh.OnChange := cbbQldhChange;
cbbQldhChange(nil);
end;
procedure TFrmY_LXQLDBL.dgQldKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and (key = vk_Delete) then
key := 0;
end;
function TFrmY_LXQLDBL.SumField(Dataset: TDataSet;
numField: TField): double;
var
vBookmark: TBookmark;
adouble: double;
begin
Result := 0;
if not (numField is TNumericField) then
exit;
with Dataset do
if (not IsEmpty) and Active then
begin
vBookmark := GetBookmark;
try
DisableControls;
adouble := 0;
First;
while not eof do
begin
adouble := adouble + numField.AsFloat;
next;
end;
Result := adouble;
GotoBookmark(vBookmark);
finally
FreeBookmark(vBookmark);
EnableControls;
end;
end;
end;
procedure TFrmY_LXQLDBL.RG_JBClick(Sender: TObject);
begin
GetDwmcList(nil);
cbbDwmcChange(nil);
end;
procedure TFrmY_LXQLDBL.qryQldMZGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrmY_LXQLDBL.Bbt_SendClick(Sender: TObject);
begin
if qryQld.IsEmpty then
begin
CHQMsgBox('請選擇要上報的請領(lǐng)單!');
Exit;
end;
VG_SQLWhere := ' select * from tys_txpqld '
+ ' where QLDH =''' + cbbQldh.Text + ''' ';
if SendData(VG_SQLWhere, 'TYS_TXPQLD', false) = IDOK then
CHQMsgBox('信息發(fā)送成功!');
end;
procedure TFrmY_LXQLDBL.bbtPrintClick(Sender: TObject);
begin
if cbbQldh.ItemIndex <> -1 then
begin
FrmLxQl := TFrmLxQl.Create(Application);
try
FrmLxQl.Qldh := cbbQldh.Items[cbbQldh.ItemIndex];
FrmLxQl.PrintZxd(Application, 2);
finally
FrmLxQl.Free;
end;
end;
end;
procedure TFrmY_LXQLDBL.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveAllColWidth(Self);
end;
procedure TFrmY_LXQLDBL.qryQldBeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -