发新话题
打印

软件大功告成!

引用:
原帖由 远帆 于 2008-3-12 20:04 发表
天下第一出手就是不般,一下子就 6 页了。
x_uy_u_n,也没必要和 第一 对着来,做为学生确实是非常不错了。
那是天下第一很有意思,不在于他做了什么软件,而是他的帖实在是牛.我本身是一个木意思的人.他在,这里才热闹,不然的话这里太闷了.
Search author named w1984721 ,You will be surprised.
支持 (0)  反对 (0)

TOP

公布一些代码!为了开源!动态定义报表(单据头)

#if !defined(AFX_FORMDJ_H__64D4271C_31E0_46EC_ABD7_A4D6F7B46CE3__INCLUDED_)
#define AFX_FORMDJ_H__64D4271C_31E0_46EC_ABD7_A4D6F7B46CE3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FormDJ.h : header file
//
#include "LDataRunSQL.h"//基础数据类
#include "Public.h"//全局变量类
#include "DJConfig.h"
#include "PPTooltip.h"
#include "Print.h"
#include "PrintAdapt.h"
/////////////////////////////////////////////////////////////////////////////
// CFormDJ form view

#ifndef __AFXEXT_H__
#include <afxext.h>
#endif

class CFormDJ : public CFormView
{
protected:
        CFormDJ();           // protected constructor used by dynamic creation
        DECLARE_DYNCREATE(CFormDJ)

// Form Data
public:
        //{{AFX_DATA(CFormDJ)
        enum { IDD = IDD_DJ };
        CString        m_kind;
        //}}AFX_DATA
        long m_lStyle;//1单据式样,2折扣,3含税
        long m_lIndex;//引索
    long m_lRed;
    long m_lAdapt;//
        CPPToolTip m_TipSubject;
    typedef struct Format_
        {
       _bstr_t _Format1;
       _bstr_t _Format2;
       _bstr_t _Format3;
       _bstr_t _Format4;
        } Format;
    Format m_Format;
// Attributes
public:
       IGridppReportPtr m_pGridppReport;
           IGRDisplayViewerPtr m_pDisplayViewer;
           CGridppReportEventImpl *m_pReportEvents;
       CLDataRunSQL m_DataRun;//用于连接基数据库
       CString sql;
           _bstr_t sql_;
       double m_dHeaderHight;
       double m_dFooterHight;
// Operations
public:
        void AdaptMethod(int m_iAdapt);
        void OnExportWay(long m_lExport);
        void InitialData();
        void DefineReportFoot();
        void DefineDetailGrid();
        void DefineReportHeader();
        void ProgramDefineReport();
        void AdjustViewerSize();

// Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CFormDJ)
        public:
        virtual void OnInitialUpdate();
        virtual BOOL PreTranslateMessage(MSG* pMsg);
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
        //}}AFX_VIRTUAL

// Implementation
protected:
        virtual ~CFormDJ();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif

        // Generated message map functions
        //{{AFX_MSG(CFormDJ)
        afx_msg void OnButtonCancel();
        afx_msg void OnButtonPrint();
        afx_msg void OnSize(UINT nType, int cx, int cy);
        afx_msg void OnButtonConfig();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FORMDJ_H__64D4271C_31E0_46EC_ABD7_A4D6F7B46CE3__INCLUDED_)
支持 (0)  反对 (0)

TOP

cpp文件

// FormDJ.cpp : implementation file
//

#include "stdafx.h"
#include "WQJXC.h"
#include "FormDJ.h"
#include "PTooltip.h"
#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFormDJ
class CDJReportEvent :public CGridppReportEventImpl
{
public:
        virtual void Initialize(void)
        {
             m_pMain->rogramDefineReport();
        }
        IGridppReportPtr m_pGridppReport;
    CFormDJ *m_pMain;
};

IMPLEMENT_DYNCREATE(CFormDJ, CFormView)

CFormDJ::CFormDJ()
        : CFormView(CFormDJ::IDD)
{
        //{{AFX_DATA_INIT(CFormDJ)
        m_kind = _T("进货单");
        //}}AFX_DATA_INIT
     m_dHeaderHight=1;
     m_dFooterHight=0.5;
         m_lStyle=0;
         m_lIndex=0;
     m_lAdapt=0;
}

CFormDJ::~CFormDJ()
{
((CMainFrame*)AfxGetMainWnd())->m_bDJ=1;
    ((CMainFrame*)AfxGetMainWnd())->Frame_DJ=NULL;
        ((CMainFrame*)AfxGetMainWnd())->m_ViewManager.RemoveView(this);
}

void CFormDJ:oDataExchange(CDataExchange* pDX)
{
        CFormView:oDataExchange(pDX);
        //{{AFX_DATA_MAP(CFormDJ)
        DDX_Text(pDX, IDC_STATIC_KIND, m_kind);
        //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFormDJ, CFormView)
        //{{AFX_MSG_MAP(CFormDJ)
        ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel)
        ON_BN_CLICKED(IDC_BUTTON_PRINT, OnButtonPrint)
        ON_WM_SIZE()
        ON_BN_CLICKED(IDC_BUTTON_CONFIG, OnButtonConfig)
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFormDJ diagnostics

#ifdef _DEBUG
void CFormDJ::AssertValid() const
{
        CFormView::AssertValid();
}

void CFormDJ:ump(CDumpContext& dc) const
{
        CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFormDJ message handlers

void CFormDJ::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{
        // TODO: Add your specialized code here and/or call the base class
        ((CMainFrame*)AfxGetMainWnd())->m_ViewManager.OnActivateView(bActivate, this);
        CFormView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}

void CFormDJ::OnInitialUpdate()
{   
        CFormView::OnInitialUpdate();
        GetParentFrame()->SetWindowText(_T("单据")); // 设置标题
    CString cs;
    GetParentFrame()->GetWindowText(cs);//获得窗口标题
   ((CMainFrame*)AfxGetMainWnd())->m_ViewManager.AddView(cs,this);//显示顶部Tab标题
        // TODO: Add your specialized code here and/or call the base class
   InitialData();
m_pGridppReport.CreateInstance( __uuidof(GridppReport) );
        ATLASSERT(m_pGridppReport != NULL);
        //取得查询显示器控件的接口指针
        CWnd *pDispalyViewerWnd = GetDlgItem(IDC_GRDISPLAYVIEWER1);
        LPUNKNOWN spUnk = pDispalyViewerWnd->GetControlUnknown();
        spUnk->QueryInterface(__uuidof(IGRDisplayViewer), (void**)(&m_pDisplayViewer));
        ATLASSERT(m_pDisplayViewer != NULL);
        
        //从文件中载入报表模板数据到报表主对象
//        m_pGridppReport->LoadFromFile("D:\\Frame1\\WQJXC\\Report\\单据.grf");

    //设置与数据源的连接串,因为在设计时指定的数据库路径是绝对路径。
    //m_pGridppReport->DetailGrid->Recordset->C" border=0 smilieid="3">atabase Password=123";
    //m_pGridppReport->DetailGrid->Recordset->QuerySQL ="select * from 单据查询  where 引索=10";
//创建事件响应对象
        CComObject<CDJReportEvent> *pEvent;
        CComObject<CDJReportEvent>::CreateInstance( &pEvent );
        m_pReportEvents = pEvent;
        m_pReportEvents->AddRef();
        pEvent->m_pGridppReport = m_pGridppReport;
        pEvent->m_pMain = this;
        HRESULT hr = m_pReportEvents->DispEventAdvise(m_pGridppReport, &__uuidof(_IGridppReportEvents)) ;
        hr;
        ATLASSERT( SUCCEEDED(hr) );
    AdjustViewerSize();
//查询显示器控件关联报表主对象
        m_pDisplayViewer->Report = m_pGridppReport;

        //启动查询显示器的运行
        m_pDisplayViewer->Start();
        this->UpdateData(0);
}

BOOL CFormDJ:reTranslateMessage(MSG* pMsg)
{
        // TODO: Add your specialized code here and/or call the base class
        HWND hwnd;
        if(pMsg->hwnd!=NULL)
                hwnd=pMsg->hwnd;
    if(hwnd==GetDlgItem(IDC_GRDISPLAYVIEWER1)->GetSafeHwnd()&&pMsg->message==WM_MOUSEWHEEL)
        {
       int zDelta = (int)(pMsg->wParam);

       if(zDelta<0)
           {
            pMsg->wParam=VK_DOWN;
           }
           else
           {
           pMsg->wParam=VK_UP;
           }

      pMsg->message=WM_KEYDOWN;
        }
    m_TipSubject.RelayEvent(pMsg);
        return CFormView:reTranslateMessage(pMsg);
}

void CFormDJ::OnButtonCancel()
{
        // TODO: Add your control notification handler code here
            ::SendMessage(this->GetParent()->GetSafeHwnd(),WM_CLOSE,0,0);
}

void CFormDJ::OnButtonPrint()
{
        // TODO: Add your control notification handler code here

        m_pDisplayViewer->ostColumnLayout();
    m_pGridppReport->;Printer->LeftMargin=0.2;
        m_pGridppReport->;Printer->RightMargin=0.2;
    m_pGridppReport->DetailGrid->;PrintAdaptMethod = grcpamDiscard;      
        CPrint m_DlgPrint;
    m_DlgPrint.DoModal();
        for(;;)
        {
       if(m_DlgPrint.m_lExport)
           {
                    OnExportWay(m_DlgPrint.m_lExport);
                        m_DlgPrint.DoModal();
           }
        else
                break;
        }



}

void CFormDJ::AdjustViewerSize()
{
/* CWnd *pDispalyViewerWnd = GetDlgItem(IDC_GRDISPLAYVIEWER1);
        if (pDispalyViewerWnd)
        {
        RECT ClientRect;
        GetClientRect( &ClientRect );
            ClientRect.top+=60;
                pDispalyViewerWnd->MoveWindow(&ClientRect, FALSE);
        }*/
}

void CFormDJ::OnSize(UINT nType, int cx, int cy)
{
        CFormView::OnSize(nType, cx, cy);
        
        // TODO: Add your message handler code here
        AdjustViewerSize();
}

void CFormDJ:rogramDefineReport()
{
    //清除报表已有的定义
    m_pGridppReport->Clear();
    //定义报表主对象的属性
    m_pGridppReport->Font->;Point = 9;

        DefineReportHeader();
    DefineDetailGrid();
    DefineReportFoot();
}

void CFormDJ::DefineReportHeader()
{
     IGRReportHeaderPtr Reportheader = m_pGridppReport->InsertReportHeader();

//表头
    IGRStaticBoxPtr StaticBox = Reportheader->Controls->Add(grctStaticBox)->AsStaticBox;
    StaticBox->Center = grcsHorizontal;//使部件框在节中水平方向上居中对齐
    StaticBox->TextAlign = grtaMiddleCenter ;//文字中中对齐
        StaticBox->Font->;Point = 18;
    StaticBox->Font->Bold = true;
    StaticBox->Top = 0.10;
    StaticBox->Width = 15.00;
    StaticBox->Height = 1.68;

    sql.Format("select * from 查帐设置 where 单据类型='%s' and 单据结构='表头' order by 列序",m_kind);
    if(m_DataRun.CheckSQLResult1(sql))
       StaticBox->Text = m_DataRun._GetCollect1("重名列名");


        CString  m_FieldName="";
        bool m_bLeft=1;double m_dTop=1.0;
    sql.Format("select * from 查帐设置 where 单据类型='%s' and 单据结构='上头' order by 列序",m_kind);
        if(m_DataRun.CheckSQLResult1(sql))
        {
                sql.Format("select * from 单据头查询 where 引索=%d and 红字冲帐=%d",m_lIndex,m_lRed);
        m_DataRun.RunSQL2(sql);

                m_DataRun.m_DATARecordset1->MoveFirst();
           while(!m_DataRun.m_DATARecordset1->adoEOF)
           {
          if(m_DataRun.BoolGetCollect1("是否显示"))
                  {
           IGRMemoBoxPtr MemoBox = Reportheader->Controls->Add(grctMemoBox)->AsMemoBox;
            if(m_bLeft)//左
                        {
            MemoBox->Text = m_DataRun._GetCollect1("重名列名");
            m_FieldName=m_DataRun.GetCollect1("列名");
                        MemoBox->Text +=m_DataRun._GetCollect2((_variant_t)m_FieldName);
            MemoBox->Left = 0.5; //使部件框在节中水平方向上居中对齐
            MemoBox->Font->;Point = 12;
            MemoBox->Font->Bold = 0;
            //MemoBox->TextAlign = grtaMiddleLeft ;//文字中左对齐
            m_dTop+=0.6;
                        MemoBox->Top = m_dTop;
            MemoBox->Width =7.5;
            MemoBox->Height = 0.5;
            MemoBox->Anchor=grasLeft;
            m_bLeft=0;
                        }
                        else//右
                        {
            MemoBox->Text = m_DataRun._GetCollect1("重名列名");
            m_FieldName=m_DataRun.GetCollect1("列名");
                        MemoBox->Text +=m_DataRun._GetCollect2((_variant_t)m_FieldName);
            MemoBox->Left = 9.0; //使部件框在节中水平方向上居中对齐
            MemoBox->Font->;Point = 12;
            MemoBox->Font->Bold = 0;
            //MemoBox->TextAlign = grtaMiddleLeft ;//文字中左对齐
            MemoBox->Top = m_dTop;
            MemoBox->Width =12;
            MemoBox->Height = 0.5;
            MemoBox->Anchor=grasRight;
            m_bLeft=1;
                        }
            
                  }
                 m_DataRun.m_DATARecordset1->MoveNext();
           }
        }
    m_dHeaderHight+=m_dTop;
        Reportheader->Height = m_dHeaderHight;

}

[ 本帖最后由 w1984721 于 2008-3-12 21:05 编辑 ]
支持 (0)  反对 (0)

TOP

void CFormDJ:efineDetailGrid()
void CFormDJ:efineDetailGrid()
{
    bool m_bGroup=0;
    m_pGridppReport->InsertDetailGrid();
        m_pGridppReport->DetailGrid->ColumnTitle->Height = 0.58;
        m_pGridppReport->DetailGrid->ColumnContent->Height = 0.58;

    sql.Format("select * from 单据查询  where 引索=%d",m_lIndex);
    _bstr_t sql_=sql;
    m_pGridppReport->DetailGrid->Recordset->C" border=0 smilieid="3">atabase Password=123";
    m_pGridppReport->DetailGrid->Recordset->QuerySQL =sql_;
    m_pGridppReport->DetailGrid->Font->oint = 11;
      IGRGroupPtr Group = m_pGridppReport->DetailGrid->Groups->Add();
          Group->Header->Height = 0.0;
          Group->Footer->Height = 0.9;
          Group->Footer->Font->Bold = true;
//是否分分组
        sql.Format("select * from 查帐设置 where 单据类型='%s' and 单据结构='合计' order by 列序",m_kind);
    if(m_DataRun.CheckSQLResult1(sql))
     m_bGroup=m_DataRun.BoolGetCollect1("是否显示");
        
     if(m_bGroup)
         {
      IGRStaticBoxPtr StaticBox = Group->Footer->Controls->Add(grctStaticBox)->AsStaticBox;
      StaticBox->Text = L"本单小计:";
      StaticBox->Left = 0.0;
      StaticBox->Top = 0.1;
      StaticBox->Width = 2.59;
      StaticBox->Height = 0.60;
         }
         else
          Group->Footer->Height = 0.0;
        
        sql.Format("select * from 查帐设置 where 单据类型='%s' and 单据结构='单据体' order by 列序",m_kind);
    long index=0,i=0,m_lWith=0,m_lFormat=0,m_lTextAlign=0;
        double m_dWith=0.0;
        _bstr_t m_Name_="",m_Rename_="", m_Number_="",m_Format_="";
        CString m_Number="";
  
    if(m_DataRun.CheckSQLResult1(sql))
        {
                m_DataRun.m_DATARecordset1->MoveFirst();
           while(!m_DataRun.m_DATARecordset1->adoEOF)
           {
                   if((m_lStyle==1)&&(m_DataRun.GetCollect1("列名")=="折扣"))
                        {//简单
                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                         }
          if((m_lStyle==2)&&(m_DataRun.GetCollect1("列名")=="税率"))
                   {//折扣
                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                        }

          if((m_lStyle==3)&&(m_DataRun.GetCollect1("列名")=="折扣"))
                        {//税率
                  m_DataRun.m_DATARecordset1->MoveNext();
                                  m_DataRun.m_DATARecordset1->MoveNext();
                          m_DataRun.m_DATARecordset1->MoveNext();
                        }

                  if(m_DataRun.BoolGetCollect1("是否显示"))
                  {
                  
                        m_Name_=m_DataRun.GetCollect1("列名");
            m_Rename_=m_DataRun.GetCollect1("重名列名");
            m_lFormat=m_DataRun.LongGetCollect1("数据格式");
            m_lWith=m_DataRun.LongGetCollect1("列宽");
            m_dWith=m_lWith/10;
            m_Number.Format("%d",i);
            m_Number_=m_Number;
            i++;
                m_pGridppReport->DetailGrid->AddColumn(m_Number_,m_Rename_,m_Name_,m_dWith);
                        
                        if(m_DataRun.LongGetCollect1("数据类型")==0)
                        {
              m_pGridppReport->DetailGrid->Recordset->AddField(m_Name_,grftString );
                        }
                        else
                        {
              sql.Format("select * from 数据格式 where 格式=%d",m_lFormat);
                          if(m_DataRun.CheckSQLResult2(sql))
                          {
              m_Format_=m_DataRun.GetCollect2("Format");
                          m_pGridppReport->DetailGrid->Recordset->AddField(m_Name_,grftFloat)->Format =m_Format_;
                if((m_bGroup)&&(m_DataRun.LongGetCollect1("合计")==1))
                                {
                   IGRSummaryBoxPtr SummaryBox = Group->Footer->Controls->Add(grctSummaryBox)->AsSummaryBox;
                   SummaryBox->SummaryFun = grsfSum;
                      //SummaryBox->TextAlign = grtaMiddleRight;
                   SummaryBox->Format = m_Format_;
                   SummaryBox->DataField = m_Name_;
                   SummaryBox->AlignColumn = m_Number_; //通过对齐到列确定部件框的左边位置与宽度
                   SummaryBox->Top = 0.1;
                   SummaryBox->Height = 0.60;
                                }

                          }
                          else
              m_pGridppReport->DetailGrid->Recordset->AddField(m_Name_,grftFloat);

                        }
               
                  }        
           m_DataRun.m_DATARecordset1->MoveNext();
         
           }
        }

}
//科目明细
        sql.Format("select * from 科目明细 where 引索=%d and 红字冲帐=%d",m_lIndex,m_lRed);
        if(m_DataRun.CheckSQLResult1(sql))
        {
           m_DataRun.m_DATARecordset1->MoveFirst();
           while(!m_DataRun.m_DATARecordset1->adoEOF)
           {
                   m_DataRun.get1("科目名称",m_Name);
                   m_DataRun.get1("发生额",m_dMoney);
           m_Money.Format("%0.2f",m_dMoney);
           m_Html+="<font color=blue>";
           m_Html+=m_Name;
           m_Html+=": </font>";
                   if(m_dMoney<0)
                   {
             m_Html+="<font color=red>";
             m_Html+=m_Money;
             m_Html+="</font>";
             m_Html+="<br>";
                   }
                   else
                   {
            m_Html+=m_Money;
            m_Html+="<br>";
                   }

                   m_DataRun.m_DATARecordset1->MoveNext();
           }
        }
    m_TipSubject.Create(this);
    m_TipSubject.SetDelayTime(PPTOOLTIP_TIME_INITIAL,0);
        m_TipSubject.SetBehaviour(PPTOOLTIP_NOCLOSE_OVER | PPTOOLTIP_CLOSE_LEAVEWND | PPTOOLTIP_DISABLE_AUTOPOP);
        m_TipSubject.AddTool(GetDlgItem(IDC_BUTTON_SUBJECT),m_Html);
           
}

[ 本帖最后由 w1984721 于 2008-3-12 21:09 编辑 ]
支持 (0)  反对 (0)

TOP

void CFormDJ::OnExportWay(long m_lExport)
{
        switch(m_lExport)
                {
                case 1:
           m_pGridppReport->Print(TRUE);
                   break;

                case 2:
            m_pGridppReport->PrintPreviewEx(grpgsAll, TRUE, TRUE);
            break;

                case 3:
             m_pGridppReport->ExportDirect(gretXLS, "", TRUE, TRUE);
                         break;
                case 4:
             m_pGridppReport->ExportDirect(gretHTM, "", TRUE, TRUE);
                         break;
                case 5:
             m_pGridppReport->ExportDirect(gretTXT, "", TRUE, TRUE);
                         break;
                case 6:
           m_pGridppReport->Printer->PageSetupDialog();
                      break;
                case 7:
         
                  CPrintAdapt m_Dlg;
          if(m_Dlg.DoModal()==IDOK)
                  {
            AdaptMethod(m_Dlg.m_iAdapt);
                  }
                         break;

                }
}

void CFormDJ::AdaptMethod(int m_iAdapt)
{
       switch(m_iAdapt)
           {
                case 0:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamDiscard;
            break;
        case 1:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamWrap ;
            break;
        case 2:
        m_pGridppReport->DetailGrid->PrintAdaptMethod =  grcpamResizeToFit;
            break;
        case 3:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamShrinkToFit;
            break;
        case 4:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamToNewPage;
            break;
        case 5:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamToNewPageEx;
            break;
        case 7:
        m_pGridppReport->DetailGrid->PrintAdaptMethod = grcpamToNewPageRFCEx;
            break;
           }
}
支持 (0)  反对 (0)

TOP

原来天下第一叫王钦,这么久了,现在才知道,实在是不好意思.
代码就是牛啊就是牛.
Search author named w1984721 ,You will be surprised.
支持 (0)  反对 (0)

TOP

我检讨,很多年前我就用过Tab来动态控制子窗口,每个页签里都host了一个子Dialog,没想到N年后侵犯了天下第一的专利,抱歉!
Free as in free speech, not as in free beer.
www.nill.cn
支持 (0)  反对 (0)

TOP

m_pGridppReport->DetailGrid->Recordset->ConnectionString ="rovider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\\Frame1\\WQJXC\\DATA\\王钦\\WQJXC.mdb;Jet OLEDBatabase Password=123";


楼主啊楼主
支持 (0)  反对 (0)

TOP

WQJXC

WangQinJinXiaoCun

wang_qin_jin_xiao_cun
超级简单易用的音视频转换控件 2008.09.05 最新版本 2.1 推出,更强大 FFmpeg for Delphi http://www.CCAVC.com
MSN: CodeCoolie#live.com QQ: 25758206 (请填写相关验证信息, 谢谢)
支持 (0)  反对 (0)

TOP

呼唤人肉搜索。。。
超级简单易用的音视频转换控件 2008.09.05 最新版本 2.1 推出,更强大 FFmpeg for Delphi http://www.CCAVC.com
MSN: CodeCoolie#live.com QQ: 25758206 (请填写相关验证信息, 谢谢)
支持 (0)  反对 (0)

TOP

发新话题