unit U_GetDllForm; interface uses Windows,Messages,forms,OleCtnrs,DateUtils,SysUtils,ADODB; function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; Language: integer; WinStyle:integer; GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;export;stdcall; function ConnData():Boolean; implementation uses U_DataLink,U_Fun,U_YFCR,U_FKCR, U_YFFKList,U_YSCR,U_SKCR,U_YSSKList,U_ProductOrderCost,U_YFFP,U_YSFP ,U_YFCRLZ,U_YSCRLZ,U_YSHZMX,U_YFCRYCL,U_YSCROL,U_SKCROLJ,U_YSHZMXOLJ ,U_SKCRLZ,U_YSHZMXDL,U_FKCRLZ,U_YSHZMXView,U_YFCRLZView,U_YFCRLZQty, U_YSCRJZC,U_YSCR_Gd,U_SKCR_Gd,U_YFZDList_MX,U_YSZDList_MX,U_YFMXlist,U_YSMXlist,U_FKCR_GD,U_YFCR_GD; ///////////////////////////////////////////////////////////////// // 功能说明:取Dll中得窗体 // // 参数说明:App>>调用应用程序; // // FormH>>调用窗口句柄 ; // // FormID>>窗口号; // // Language>>语言种类; // // WinStyle>>窗口类型; // ///////////////////////////////////////////////////////////////// function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; Language: integer; WinStyle:integer; GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; Parameters9:PChar;Parameters10:PChar; DataBaseStr:PChar):hwnd; var mnewHandle: hwnd; mstyle: TFormStyle; // 0:子窗口; 1:普通窗口 mstate: TWindowState; mborderstyle: TFormBorderStyle; begin mNewHandle:=0; DName:=GName; DCode:=GCode; DdataBase:=DataBase; DTitCaption:=Title; DParameters1:=Parameters1; DParameters2:=Parameters2; DParameters3:=Parameters3; DParameters4:=Parameters4; DParameters5:=Parameters5; DParameters6:=Parameters6; DParameters7:=Parameters7; DParameters8:=Parameters8; DParameters9:=Parameters9; DParameters10:=Parameters10; MainApplication:=App; DCurHandle:=FormH; IsDelphiLanguage:= Language; Application:=TApplication(App); DCurHandle:=0; //赋值链接字符串 SetLength(server, 255); SetLength(dtbase, 255); SetLength(user, 255); SetLength(pswd, 255); //server:='192.168.1.99'; //192.168.1.113 server:='202.96.107.70,7781'; dtbase:='haoyuedata'; // dtbase:='jianweidata'; user:='sa'; pswd:='rightsoft@123'; // pswd:='numlock'; DConString := 'Provider=SQLOLEDB.1;Password='+pswd+';Persist Security Info=True;User ID=' +user+';Initial Catalog='+dtbase+';Data Source='+server; DConString:=DataBaseStr; // DParameters1:='无订单号'; //DParameters1:='管理';//103 // DParameters2:='人民币'; Parameters1:='高权限'; // DataBase:='高权限'; // DataBase:='1'; // DParameters1:='2'; // DParameters3:='项目分开'; // DParameters4:='对方单位分开'; //DParameters5:='开票'; //DParameters6:='其它'; //应付款 //DParameters7:='匹数'; //应收款 //DCode:='test'; //DName:='虞晓'; //DParameters9:='支付台头'; //DParameters8:='FactoryNo1Name'; //DParameters10:='P_YSSK_ListTT'; if not ConnData() then begin result:=0; exit; end; { if IsINIFile() then ReadINIFile() else WriteINIFile ;} // 定义窗口类型 、状态 if WinStyle=0 then begin mstyle := fsMDIChild ; mstate := wsMaximized ; mborderstyle := bsSizeable; end else begin mstyle := fsNormal ; mstate := wsNormal ; mborderstyle := bsSizeable; end; //////////////////// { GetSWLDZ('192.168.1.246'); if IpCall<>0 then begin Result:=0; Application.MessageBox('!!网络不通!!','提示',0); Exit; end; if Trim(IpWLDZStr)<>'D4:AE:52:BE:9F:02' then begin Result:=0; Application.MessageBox('!!数据库连接失败!!','提示',0); Exit; end; } ///////////////////// //调用子模块窗口 case FormId of 1: //应付款登记 begin if frmYFCR=nil then begin frmYFCR:= TfrmYFCR.Create(application.MainForm); with frmYFCR do begin caption:=Trim(Title); fmanage:=trim(Parameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFCR.BringToFront; //句柄 mNewHandle:=frmYFCR.Handle; end ; 2: //付款登记 begin if frmFKCR=nil then begin frmFKCR:= TfrmFKCR.Create(application.MainForm); with frmFKCR do begin caption:=Trim(Title); fmanage:=trim(Parameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFKCR.BringToFront; //句柄 mNewHandle:=frmFKCR.Handle; end ; 3: //应付款付款统计 begin if frmYFFKList=nil then begin frmYFFKList:= TfrmYFFKList.Create(application.MainForm); with frmYFFKList do begin caption:=Trim(Title); // fDParameters1:=trim('0'); fDParameters1:=trim(DParameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFFKList.BringToFront; //句柄 mNewHandle:=frmYFFKList.Handle; end ; 31: //应付款明细账单 begin if frmYFZDList_MX=nil then begin frmYFZDList_MX:= TfrmYFZDList_MX.Create(application.MainForm); with frmYFZDList_MX do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFZDList_MX.BringToFront; //句柄 mNewHandle:=frmYFZDList_MX.Handle; end ; 4: //应收款登记 begin if frmYSCR=nil then begin frmYSCR:= TfrmYSCR.Create(application.MainForm); with frmYSCR do begin fflag:=strtointdef(trim(DataBase),0); fmanage:=trim(Parameters1); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSCR.BringToFront; //句柄 mNewHandle:=frmYSCR.Handle; end ; 5: //收款登记 begin if frmSKCR=nil then begin frmSKCR:= TfrmSKCR.Create(application.MainForm); with frmSKCR do begin caption:=Trim(Title); fflag:=strtointdef(trim(DataBase),0); fmanage:=trim(Parameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmSKCR.BringToFront; //句柄 mNewHandle:=frmSKCR.Handle; end ; 6: //应收款收款统计 begin if frmYSSKList=nil then begin frmYSSKList:= TfrmYSSKList.Create(application.MainForm); with frmYSSKList do begin caption:=Trim(Title); fDParameters1:=trim(DParameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSSKList.BringToFront; //句柄 mNewHandle:=frmYSSKList.Handle; end ; 61: //应收款收款统计 begin if frmYSZDList_MX=nil then begin frmYSZDList_MX:= TfrmYSZDList_MX.Create(application.MainForm); with frmYSZDList_MX do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSZDList_MX.BringToFront; //句柄 mNewHandle:=frmYSZDList_MX.Handle; end ; 7: //订单核算统计查询 begin if frmProductOrderCost=nil then begin frmProductOrderCost:= TfrmProductOrderCost.Create(application.MainForm); with frmProductOrderCost do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmProductOrderCost.BringToFront; //句柄 mNewHandle:=frmProductOrderCost.Handle; end; 8: //进项发票登记 begin if frmYFFP=nil then begin frmYFFP:= TfrmYFFP.Create(application.MainForm); with frmYFFP do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFFP.BringToFront; //句柄 mNewHandle:=frmYFFP.Handle; end; 9: //销项发票登记 begin if frmYSFP=nil then begin frmYSFP:= TfrmYSFP.Create(application.MainForm); with frmYSFP do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSFP.BringToFront; //句柄 mNewHandle:=frmYSFP.Handle; end; 10: //应收账款明细 begin if frmYSHZMX=nil then begin frmYSHZMX:= TfrmYSHZMX.Create(application.MainForm); with frmYSHZMX do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSHZMX.BringToFront; //句柄 mNewHandle:=frmYSHZMX.Handle; end; 102: //应收账款明细(代理) begin if frmYSHZMXDL=nil then begin frmYSHZMXDL:= TfrmYSHZMXDL.Create(application.MainForm); with frmYSHZMXDL do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSHZMXDL.BringToFront; //句柄 mNewHandle:=frmYSHZMXDL.Handle; end; 103: //应收账款明细查询 begin if frmYSHZMXView=nil then begin frmYSHZMXView:= TfrmYSHZMXView.Create(application.MainForm); with frmYSHZMXView do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSHZMXView.BringToFront; //句柄 mNewHandle:=frmYSHZMXView.Handle; end; 101: //应收账款明细OLJ begin if frmYSHZMXOLJ=nil then begin frmYSHZMXOLJ:= TfrmYSHZMXOLJ.Create(application.MainForm); with frmYSHZMXOLJ do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSHZMXOLJ.BringToFront; //句柄 mNewHandle:=frmYSHZMXOLJ.Handle; end; 20: //应收账款明细OLJ begin if frmYFMXlist=nil then begin frmYFMXlist:= TfrmYFMXlist.Create(application.MainForm); with frmYFMXlist do begin caption:=Trim(Title); fType:=trim(DataBase); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFMXlist.BringToFront; //句柄 mNewHandle:=frmYFMXlist.Handle; end; 201: //应收账款明细OLJ begin if frmYSMXlist=nil then begin frmYSMXlist:= TfrmYSMXlist.Create(application.MainForm); with frmYSMXlist do begin caption:=Trim(Title); // fType:='0'; fType:=trim(DataBase); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSMXlist.BringToFront; //句柄 mNewHandle:=frmYSMXlist.Handle; end; end ; // end case Result:= mnewHandle; NewDllApp:=Application ; end; //=========================================================== //建立数据库连接池 //=========================================================== function ConnData():Boolean; begin if not Assigned(DataLink_YSYF) then DataLink_YSYF:=TDataLink_YSYF.Create(Application); Try with DataLink_YSYF.ADOLink do begin if not Connected then begin Connected:=false; ConnectionString:=DConString; LoginPrompt:=false; Connected:=true; end; end; Result:=true; Except Result:=false; application.MessageBox('数据库连接失败!','错误',mb_Ok+ MB_ICONERROR); end; end; INITIALIZATION OldDllApp:= Application; FINALIZATION DataLink_YSYF.Free; Application := OldDllApp; end.