⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 easy_gasmain.pas

📁 EasyGasDpr 瓶装液化气 钢瓶 SQL,用户名:SYSTEM 密码:空
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  Showmessage('数据备份成功!');
end;

procedure TMAINFORM.FormCreate(Sender: TObject);
begin
  ADOC.ConnectionString:=ReadINIStr('网络设置','数据库连接字符','');
  ADOC.Open;
  ADOCOMM.Commandtext:='SET ANSI_NULLS OFF';
  ADOCOMM.execute;
  LOGIN.Execute;
end;

procedure TMAINFORM.CONExecute(Sender: TObject);
begin
  EditConnectionString(ADOC);
  WriteINIStr('本地设置','数据链接符',ADOC.ConnectionString);
end;

procedure TMAINFORM.SEtMANGTYPEExecute(Sender: TObject);
begin
  With Tmangtypeset.Create(Application) do
  Begin
    TYPES.Open;
    try
    if showmodal=mrok then
    With TYPES do
    Begin
      Edit;Post;
    end else TYPES.Cancel;
    finally
    Free;
    end;
  end;
end;

procedure TMAINFORM.ClientSetExecute(Sender: TObject);
begin
  With TClientDlg.Create(Application) do
  Begin
    MAIN.Open;
    try
    if showmodal=mrok then
    With MAIN do
    Begin
      Edit;Post;
    end else MAIN.Cancel;
    finally
    MAIN.Close;
    Free;
    end;
  end;

end;

procedure TMAINFORM.MarkTickExecute(Sender: TObject);
begin
 if Not ExistsMDI(Self,'ButtleList') then ButtleList:=TButtleList.create(Application) else ButtleList.Show;
 With ButtleList do
 Begin
   MAIN.Open;
 end;
end;

procedure TMAINFORM.AllfuncExecute(Sender: TObject);
begin
 if Not ExistsMDI(Self,'ButtleDlg') then ButtleDlg:=TButtleDlg.create(Application) else ButtleDlg.Show;
end;

procedure TMAINFORM.BTINFOExecute(Sender: TObject);
begin
  With TButtleEditor.Create(Application) do
  Begin
    BUTTLE.Open;
    try
    DATAS.DataSet:=BUTTLE;
    With Datas.DataSet do
    if showmodal=mrok then
    Begin
      Edit;
      Post;
    end else Cancel;
    finally
    free;
    end;
  end;

end;

procedure TMAINFORM.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=Self.MDIChildCount<=1;
end;

procedure TMAINFORM.SELLGASExecute(Sender: TObject);
begin
  SellTick(nil);
end;

procedure TMAINFORM.AboutExecute(Sender: TObject);
begin
  With TPREForm.create(Self) do
  Begin
    Show;
  end;
end;

Procedure MarkReport(R_Caption,SQL:String;SumList:String='';CountList:String='');
var Sums,counts:TStrings;
    I:Integer;
Begin
Wait:=TWaitDlg.Create(Application);
Wait.show;
Wait.Repaint;
Application.ProcessMessages;
Sums:=GetListFromText(SumList);
counts:=getlistfromtext(countlist);
try
With TReportDlg.create(Application) do
Begin
Caption:=R_Caption;
MAIN.CommandText:=SQL;
MAIN.Open;
  for I:=0 to Sums.Count-1 do
  begin
    if GetColFromName(DBG,SUMS.Strings[I])<>nil then
    GetColFromName(DBG,SUMS.Strings[I]).Footer.ValueType:=fvtSum;
  end;
  for I:=0 to counts.Count-1 do
  begin
    if GetColFromName(DBG,counts.Strings[I])<>nil then
    GetColFromName(DBG,counts.Strings[I]).Footer.ValueType:=fvtCount;
  end;
  DBG.SumList.Active:=True;
end;
finally
counts.free;
sums.free;
Wait.free;
end;
end;

procedure TMAINFORM.LOSTCUExecute(Sender: TObject);
begin
MarkReport(TAction(Sender).Caption,'SELECT 瓶身码, 钢瓶类型,灌装规格,客户姓名, 区域, 地点, CONVERT([int],托管到期 - { fn NOW() }) AS 托管欠费天数, CONVERT(int, 年审到期 - { fn NOW() })'+
      ' AS 年审欠费天数,押金, 操作日期 AS 最后交费日期, 报废时间 FROM GAS_BOTTLE WHERE (convert(datetime,托管到期)<{fn Now()}) or (convert(datetime,年审到期)<{fn Now()})');
end;

procedure TMAINFORM.MANGReportExecute(Sender: TObject);
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,'SELECT GAS_MANAGE.票号, GAS_MANAGE.钢瓶编码, GAS_BOTTLE.钢瓶类型,GAS_BOTTLE.灌装规格, GAS_BOTTLE.客户姓名,GAS_MANAGE.操作日期 as 开单日期, GAS_BOTTLE.区域,'+
      'GAS_BOTTLE.地点, GAS_MANAGE.操作类型 AS 收费项目,操作值 as 收费金额, GAS_MANAGE.有效天数,GAS_MANAGE.操作员, GAS_MANAGE.银行, GAS_MANAGE.银行名称 FROM GAS_MANAGE INNER JOIN GAS_BOTTLE ON GAS_MANAGE.钢瓶编码 = GAS_BOTTLE.编码'+
      ' WHERE GAS_MANAGE.操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and GAS_MANAGE.操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+') ORDER BY 区域,地点,银行','收费金额,有效天数');
  end;
  finally
  free;
  end;
end;

end;

procedure TMAINFORM.LOGINExecute(Sender: TObject);
label Fin;
begin
  With TLoginDlg.create(Application) do
  Begin
    try
    USERS.Open;
    if showmodal=mrok then
    begin
      if USERS.Locate('姓名',USERNAMEEdit.text,[]) then
      Begin
          if UNPassword(USERS.FieldByName('密码').AsString)=PASSWORDEDIT.Text then
          Begin
          USER.Name:=USERNAMEEDIT.Text;
          USER.No:=USERS.fieldbyname('序号').AsInteger;
          USER.CTRLS:=TStringList.Create;
          USER.CTRLS.Assign(TBlobField(USERS.Fieldbyname('权限')));
          Goto Fin;
          end else Showmessage('密码错误!');
      end else Showmessage('用户名错误!');
    end;
    Halt;
Fin:
    finally
    free;
    end;
  end;
end;

procedure TMAINFORM.CloseFmtExecute(Sender: TObject);
begin
  Close;
end;

procedure TMAINFORM.CloseFmtUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled:=Self.MDIChildCount=1;
end;

procedure TMAINFORM.INSELLREPExecute(Sender: TObject);
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,'SELECT MAX(单据类型) as 单据类型,sum(数量) as 总销售数量,sum(金额) as 总销售金额 FROM GAS_SELL WHERE 操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and 操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+') '+'GROUP BY 单据类型 ','总销售金额,总销售数量');
  end;
  finally
  free;
  end;
end;
end;

procedure TMAINFORM.BANKSETExecute(Sender: TObject);
begin
  With TBANKDLG.create(Application) do
  Begin
    try
    BANKS.open;
    if showmodal=mrok then
    Begin
      BANKS.edit;
      BANKS.post;
    end else BANKS.cancel;
    finally
    free;
    end;
  end;
end;

procedure TMAINFORM.ClearDataExecute(Sender: TObject);
var I:Integer;
begin
  if MessageBox(Handle,'清除后无法恢复!是否继续?','警告!',MB_YESNO)=ID_NO then Exit;
  With TCheckListDlg.create(Application) do
  Begin
    try
    ADOC.GetTableNames(CList.Items);
    if showmodal=mrok then
    For I:=0 to CList.items.Count-1 do
    begin
      if CList.Checked[I] then
      Begin
      ADOCOMM.CommandText:='TRUNCATE TABLE '+CList.Items.Strings[I];
      ADOCOMM.Execute;
      Info:=CList.Items.Strings[I]+'清除完毕!';
      end;
    end;
    finally
    free;
    end;
  end;
end;

procedure TMAINFORM.DelayTimerTimer(Sender: TObject);
begin
  if FHintDelay>0 then FHintDelay:=FHintDelay-1;
  if FHintDelay=0 then
  Begin
    Info:='';
    DelayTimer.Enabled:=False;
  end;
end;

Procedure SellTick(BUTTLE:TADODataset);
Begin
  With TSellDlg.create(Application) do
  Begin
    try
    SELLTICK.Open;
    SELLTYPE.open;
    BANK.open;
    CLIENT.open;
    SELLTICK.append;
    SELLTICK.edit;
    if BUTTLE<>nil then
    Begin
    SELLTICK.FieldByName('钢瓶编码').AsInteger:=BUTTLE.fieldbyname('编码').asInteger;
    SELLTICK.FieldByName('钢瓶类型').AsString:=BUTTLE.fieldbyname('钢瓶类型').asString;
    SELLTICK.FieldByName('数量').AsFloat:=BUTTLE.fieldbyname('灌装规格').AsFloat;
    SELLTICK.FieldByName('灌装规格').AsFloat:=BUTTLE.fieldbyname('灌装规格').AsFloat;
    end;
    if showmodal=mrok then
    Begin
      SELLTICK.Edit;
      SELLTICK.Post;
      if SELLTICK.fieldbyname('运算').AsString='-' then
      Begin
        SELLTICK.Edit;
        SELLTICK.FieldByName('数量').AsFloat:=-abs(SELLTICK.FieldByName('数量').AsFloat);
        SELLTICK.Post;
      end;
    end else SELLTICK.Cancel;
    finally
    free;
    end;
  end;
end;

procedure TMAINFORM.DSELLREPExecute(Sender: TObject);
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,'SELECT * FROM GAS_SELL WHERE 操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and 操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+') '+'ORDER BY 单据类型 ','金额,数量');
  end;
  finally
  free;
  end;
end;
end;

procedure TMAINFORM.MANAGETYPEREPExecute(Sender: TObject);
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,'SELECT MAX(归属) as 管理类型,count(归属) as 瓶数 ,sum(有效天数) as 有效天数,sum(操作值) as 总金额 from GAS_MANAGE WHERE 操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and 操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+') '+'GROUP BY 归属 ORDER BY 总金额','瓶数,有效天数,总金额');
  end;
  finally
  free;
  end;
end;
end;

// GROUP BY 银行

procedure TMAINFORM.MANGBANKREPExecute(Sender: TObject);
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,'SELECT MAX(银行名称) as 银行名称,count(银行)as 单据数量,SUM(操作值)as 总金额 FROM GAS_MANAGE WHERE 操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and 操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+') '+'GROUP BY 银行 ORDER BY 总金额','单据数量,总金额');
  end;
  finally
  free;
  end;
end;
end;

procedure TMAINFORM.SELLDATEREPExecute(Sender: TObject);
Const SQL = 'SELECT convert(varchar,datename(year,max(操作日期)),4)+'+#39+'-'+#39+'+convert(varchar,datename(month,max(操作日期)),4)+'+#39+'-'+#39+'+convert(varchar,datename(day,max(操作日期)),4) as 销售日期,MAX(银行名称) as 银行名称,count(银行)as 单据数量,SUM(操作值)as 总金额 FROM GAS_MANAGE %s GROUP BY convert(varchar,datename(year,操作日期),4)+'+#39+'-'+#39+'+convert(varchar,datename(month,操作日期),4)+'+#39+'-'+#39+'+convert(varchar,datename(day,操作日期),4),银行 ORDER BY 销售日期';
begin
With TTimeSel.Create(Application) do
Begin
  try
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,Format(SQL,['WHERE 操作日期 >convert(datetime,'+#39+DateTimeToStr(Start)+#39+') and 操作日期<convert(Datetime,'+#39+DateTimeToStr(Ending)+#39+')']),'单据数量,总金额');
  end;
  finally
  free;
  end;
end;

end;

procedure TMAINFORM.LOSTBOTTLEExecute(Sender: TObject);
const SQL = 'SELECT MAX(GAS_BOTTLE.编码) AS 编码, MAX(GAS_BOTTLE.钢瓶类型) AS 钢瓶类型,MAX(GAS_BOTTLE.区域) AS 区域, MAX(GAS_BOTTLE.地点) AS 地点,MAX(GAS_BOTTLE.出厂时间)'+
            ' AS 出厂时间, MAX(GAS_BOTTLE.报废时间) AS 报废时间, SUM(GAS_SELL.金额) AS 总销售金额, ABS(SUM(GAS_SELL.数量)) AS 销售量,count(GAS_SELL.钢瓶编码) as 开单数 FROM GAS_SELL INNER JOIN'+
            ' GAS_BOTTLE ON GAS_SELL.钢瓶编码 = GAS_BOTTLE.编码 AND GAS_BOTTLE.报废时间 <> NULL AND GAS_BOTTLE.报废时间<convert(datetime,%s) GROUP BY GAS_SELL.钢瓶编码';

begin
With TTimeSel.Create(Application) do
Begin
  try
  DateEnd.Enabled:=False;
  if Showmodal=mrok then
  Begin
    MarkReport(TAction(Sender).Caption,Format(SQL,[#39+DateTimeToStr(Start)+#39]),'');
  end;
  finally
  free;
  end;
end;
end;

procedure TMAINFORM.SELLTOPExecute(Sender: TObject);
const SQL = 'SELECT MAX(GAS_BOTTLE.编码) AS 编码, MAX(GAS_BOTTLE.钢瓶类型) AS 钢瓶类型,MAX(GAS_BOTTLE.区域) AS 区域, MAX(GAS_BOTTLE.地点) AS 地点,MAX(GAS_BOTTLE.出厂时间)'+
            ' AS 出厂时间, MAX(GAS_BOTTLE.报废时间) AS 报废时间, SUM(GAS_SELL.金额) AS 总销售金额, ABS(SUM(GAS_SELL.数量)) AS 销售量,count(GAS_SELL.钢瓶编码) as 开单数 FROM GAS_SELL INNER JOIN'+
            ' GAS_BOTTLE ON GAS_SELL.钢瓶编码 = GAS_BOTTLE.编码 GROUP BY GAS_SELL.钢瓶编码 ORDER BY 总销售金额 DESC';
begin
    MarkReport(TAction(Sender).Caption,SQL,'');
end;

procedure TMAINFORM.SETUSERExecute(Sender: TObject);
begin
 if Not ExistsMDI(Self,'USERDlg') then USERDlg:=TUSERDlg.create(Application) else USERDlg.Show;
end;

Procedure TMAINFORM.MyWINMENUCLICK(SENDER:TOBJECT);
var I:Integer;
BEgin
  For I:=0 to Self.MDIChildCount-1 do
  Begin
    if Self.MDIChildren[I].name=TMenuItem(Sender).Hint then
    Begin
      MDIChildren[I].Show;
      Break;
    end;
  end;
end;

procedure TMAINFORM.W1Click(Sender: TObject);
var MENU:TMENUITEM;
    I:Integer;
begin
  WINMENU.Clear;
  For I:=0 to Self.MDIChildCount-1 do
  Begin
    MENU:=TMenuItem.Create(WINMENU);
    MENU.Caption:=Self.MDIChildren[I].Caption;
    MENU.Hint:=Self.MDIChildren[I].Name;
    MENU.ImageIndex:=40;
    MENU.OnClick:=MyWINMENUCLICK;
    WINMENU.Add(MENU);
  end;
end;

Function GetQX(QX:String):Boolean;
Begin
  Result:= (USER.CTRLS<>nil) and (USER.CTRLS.IndexOf(QX)>-1);
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -