ykrishnarao Ответов: 0

Как динамически создать следующую страницу и вставить содержимое 1-й страницы на 2-ю страницу


Я экспортирую данные в таблицу документов word, таблица не расширяется, если записей больше, чем строк таблицы в word

Что я уже пробовал:

Вот мой код

try
{
    SqlDataReader drTemp;
    SqlCommand cmdTemp = new SqlCommand();
    WordDoc = new Word.Application();
    string strFinalCertificateNo = "";
    char[] separators = new char[] { '-', '-' };
    string[] CertificateNo = new string[0];
    CertificateNo = CertificateNum.Split(separators, StringSplitOptions.RemoveEmptyEntries);
    if (CertificateNo.Length > 1)
        strFinalCertificateNo = "PFESC" + "_" + CertificateNo[0].ToString() + "_" + CertificateNo[1].ToString();
    else
        strFinalCertificateNo = "PFESC" + "_" + CertificateNo[0].ToString();

    DateTime dtDate = DateTime.Now.Date;
    string strSource = Application.StartupPath + Path.DirectorySeparatorChar + "App_Certificate" + Path.DirectorySeparatorChar + "PFESC";
    string strDestination = Application.StartupPath + Path.DirectorySeparatorChar + "App_ExportCertificate" + Path.DirectorySeparatorChar;
    if (!Directory.Exists(strDestination))
        Directory.CreateDirectory(strDestination);
  //  strDestination += strFinalCertificateNo + "-" + dtDate.Day + "-" + dtDate.Month + "-" + dtDate.Year + ".docx";
    strDestination += 111 ;

    if (File.Exists(strDestination))
    {
        try
        {
            File.Delete(strDestination);
        }
        catch { }
    }
    object fileName = strSource;
    object readOnly = false;
    object isVisible = true;
    object missing = System.Reflection.Missing.Value;
    WordDoc.Visible = true;
    Doc = WordDoc.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
    Doc.Activate();

    object fileName1 = strSource;
    object readOnly1 = false;
    object isVisible1 = true;
    object missing1 = System.Reflection.Missing.Value;
    WordDoc.Visible = true;
    Doc = WordDoc.Documents.Open(ref fileName1, ref missing1, ref readOnly1, ref missing1, ref missing1, ref missing1,
    ref missing1, ref missing1, ref missing1, ref missing1, ref missing1, ref isVisible1);
    Doc.Activate();


    //Vessel Details
    strQuery = "select InsDate, InsVesselName,InsImoNo,InsClass,InsFlag from InspectionMaster where CompID = '" + strCompanyid +
        "' and InsDeleted = 0 and InsNo = '" + CertificateNum + "'";
    if (cn.State != ConnectionState.Open) cn.Open();
    cmdTemp.Connection = cn;
    cmdTemp.CommandText = strQuery;
    drTemp = cmdTemp.ExecuteReader();
    if (drTemp.Read())
    {
        DateTime dtInsDate = drTemp.GetDateTime(0);
        FindAndReplace(WordDoc, "<vy>", dtInsDate.Year);
        FindAndReplace(WordDoc, "<vm>", dtInsDate.ToString("MMMM"));
        FindAndReplace(WordDoc, "<vd>", dtInsDate.ToString("dd"));
        if (CertificateNum != "")
            FindAndReplace(WordDoc, "<vcertificateno>", CertificateNum);
        else
            FindAndReplace(WordDoc, "<vcertificateno>", "");

        if (drTemp["InsVesselName"] != DBNull.Value)
            FindAndReplace(WordDoc, "<vesselname>", drTemp["InsVesselName"].ToString());
        else
            FindAndReplace(WordDoc, "<vesselname>", "");

        if (drTemp["InsClass"] != DBNull.Value)
            FindAndReplace(WordDoc, "<vclass>", drTemp["InsClass"].ToString());
        else
            FindAndReplace(WordDoc, "<vclass>", "");
        if (drTemp["InsFlag"] != DBNull.Value)
            FindAndReplace(WordDoc, "<vflag>", drTemp["InsFlag"].ToString());
        else
            FindAndReplace(WordDoc, "<vflag>", "");
        if (drTemp["InsImoNo"] != DBNull.Value)
            FindAndReplace(WordDoc, "<vimo>", drTemp["InsImono"].ToString());
        else
            FindAndReplace(WordDoc, "<vimo>", "");

    }
    drTemp.Close();

    // To Export Details Data 
    Word.Table tbl = Doc.Tables[2];
    int intRow = 1, intCol = 2;
    strQuery = "";
    strQuery = "Select SCOrder,SCSerialNo,SCLocation,SCMaker,SCLastServiceDate,SCLastHydroTestDate,SCDType,SCFireClass,SCCapacity," +
               " SCWorkCode from InspPFESCDetails where InsNo = '" + CertificateNum + "' and SCOrder<=25 AND CompID = '" + strCompanyid + "' and SCDeleted  = 0 " +
               " order by SCId";
    if (cn.State != ConnectionState.Open) cn.Open();
    cmdTemp.Connection = cn;
    cmdTemp.CommandText = strQuery;
    drTemp = cmdTemp.ExecuteReader();
    try
    {
        while (drTemp.Read())
        {
            intRow += 1;
            for (intCol = 1; intCol < drTemp.FieldCount; intCol++)
            {
                if (drTemp.GetValue(intCol) != DBNull.Value)
                    tbl.Cell(intRow, intCol + 1).Range.Text = drTemp.GetValue(intCol).ToString();
            }
        }
    }
    catch { }
    drTemp.Close();


    strQuery = "";
    strQuery = "Select SCComments from " + strTechTableName + " where InsNo = '" + CertificateNum + "' and CompID = '" + strCompanyid + "' and SCDeleted  = 0";
    if (cn.State != ConnectionState.Open) cn.Open();
    cmdTemp.Connection = cn;
    cmdTemp.CommandText = strQuery;
    drTemp = cmdTemp.ExecuteReader();
    while (drTemp.Read())
    {
        if (drTemp["SCComments"] != DBNull.Value)
            FindAndReplace(WordDoc, "<sercomment>", drTemp["SCComments"].ToString());
        else
            FindAndReplace(WordDoc, "<sercomment>", "");
    }
    drTemp.Close();
    Doc.SaveAs(strDestination);
}
catch { }

0 Ответов