using System;
using CCC.Utility;
namespace CCC.BLL
{
/// <summary>
/// Summary description for JVExcelBuilder.
/// </summary>
public class JVExcelBuilder
{
private const int detailGridRowStart = 11;
private const int detailGridColumnStart = 2;
private const int jvGridRowStart = 21;
private const int jvGridColumnStart = 4;
private int jvCombGridRowStart = 31;
private const int jvCombGridColumnStart = 7;
private Excel4JavaScript excel;
private int detailGridCurrentRow;
private int jvGridCurrentRow;
private int jvCombGridCurrentRow;
private int currentJVSheetIndex;
public JVExcelBuilder(string strFileName, int originalSheetCount)
{
excel = new Excel4JavaScript(strFileName, originalSheetCount);
detailGridCurrentRow = detailGridRowStart;
jvGridCurrentRow = jvGridRowStart;
jvCombGridCurrentRow = jvCombGridRowStart;
currentJVSheetIndex = 2;
}
public string ToExcelString()
{
return excel.ToExcelString();
}
#region Detail sheet
public void WriteDetailHeader1(string month, string rate)
{
string cellValue = string.Format("Accural rate of Month ({0}) from RMB to USD : {1}", month, rate);
excel.WriteComment( cellValue, 5, 2, 1);
}
public void WriteDetailHeader2(string month, string rate)
{
string cellValue = string.Format("Accural rate of Month ({0}) from HKD to USD : {1}", month, rate);
excel.WriteComment( cellValue, 6, 2, 1);
}
public void WriteDetailGridRow(params string[] strValues)
{
if( detailGridCurrentRow > detailGridRowStart )
excel.InsertRow( detailGridCurrentRow+1, 1 );
int currentColumn = detailGridColumnStart;
foreach( string strValue in strValues )
{
excel.WriteComment( strValue.Replace("'", "\\'"), detailGridCurrentRow, currentColumn, 1);
currentColumn++;
}
detailGridCurrentRow++;
}
public void DeleteLastDetailGridRow()
{
excel.DeleteRows(detailGridCurrentRow, 1);
}
#endregion
#region JV Sheet
public void SetFirstJVSheetName(string strWorkSheetName)
{
excel.SetWorkSheetName(2,strWorkSheetName);
}
public void CopyJVSheets(string sheetName)
{
excel.CopyWorkSheet(currentJVSheetIndex, sheetName);
currentJVSheetIndex++;
}
public void WriteJVAccountDate(int sheetIndex, DateTime date)
{
excel.WriteComment(date.ToString("MM/dd/yyyy"),9, 11, sheetIndex+1);
}
public void WriteJVBatchName(int sheetIndex, string strValue)
{
excel.WriteComment(strValue, 10, 11, sheetIndex+1);
}
public void WriteJVJournalName(int sheetIndex, string strValue)
{
excel.WriteComment(strValue, 11, 11, sheetIndex+1);
}
public void WriteJVJournalDesc(int sheetIndex, string strValue)
{
excel.WriteComment(strValue, 12, 11, sheetIndex+1);
}
public void WriteJVJournalPeriod(int sheetIndex, string strValue)
{
excel.WriteComment(strValue, 14, 11, sheetIndex+1);
}
public void WriteJVGridRow(int sheetIndex, params string[] strValues)
{
if( jvGridCurrentRow > jvGridRowStart )
excel.InsertRow( jvGridCurrentRow+1, sheetIndex+1 );
int currentColumn = jvGridColumnStart;
foreach( string strValue in strValues )
{
excel.WriteComment( strValue.Replace("'", "\\'"), jvGridCurrentRow, currentColumn, sheetIndex+1);
currentColumn++;
}
jvGridCurrentRow++;
}
/// <summary>
/// the index of JV sheets
/// </summary>
/// <param name="sheetIndex"></param>
public void HideJVTemplateSheet(int sheetIndex)
{
excel.HideSheet(sheetIndex+1);
}
public void DeleteLastJVGridRow(int sheetIndex)
{
if( jvGridCurrentRow == jvGridRowStart )
{
excel.DeleteRows(jvGridCurrentRow+1, sheetIndex+1);
jvCombGridRowStart += jvGridCurrentRow - jvGridRowStart - 1;
}
else
{
excel.DeleteRows(jvGridCurrentRow, sheetIndex+1);
jvCombGridRowStart += jvGridCurrentRow - jvGridRowStart -2;
}
jvCombGridCurrentRow = jvCombGridRowStart;
}
public void WriteJVCombGridRow(int sheetIndex, params string[] strValues)
{
if( jvCombGridCurrentRow > jvCombGridRowStart + 1 )
excel.InsertRow( jvCombGridCurrentRow+1, sheetIndex+1 );
int currentColumn = jvCombGridColumnStart;
foreach( string strValue in strValues )
{
excel.WriteComment( strValue.Replace("'", "\\'"), jvCombGridCurrentRow, currentColumn, sheetIndex+1);
currentColumn++;
}
jvCombGridCurrentRow++;
}
public void DeleteLastJVCombGridRow(int sheetIndex)
{
if( jvCombGridCurrentRow - jvCombGridRowStart > 2 )
{
excel.DeleteRows(jvCombGridCurrentRow, sheetIndex+1);
}
jvGridCurrentRow = jvGridRowStart;
jvCombGridRowStart = 31;
jvCombGridCurrentRow = jvCombGridRowStart;
}
public void WriteJVTotalJournalVouchers(int sheetIndex, int count)
{
excel.WriteComment( "(Total: " + count.ToString() + " Journal vouchers)", jvCombGridRowStart+1, 9, sheetIndex+1);
}
public void WriteJVTruckerCode(int sheetIndex, string truckerCode)
{
excel.WriteComment( truckerCode, jvCombGridRowStart, 12, sheetIndex+1);
}
#endregion
}
}