InfoPath 2007을 사용하고 있고 C#으로 코딩하고 있습니다. 내가 뭘 원하는 계약 기간 종료 날짜 (있는 여러 필드와 필드 계약 번호을, 채우는입니다 형식 YYYY에서 선정 된 날짜 선택기입니다/MM, 수있다 dtTo,), 데이터베이스에서 검색되는 프로젝트 번호 (ddlPortfolio 선택 드롭 다운 목록), 시퀀스 번호 (SQL 서버 2005)과 기금 형 (bFundType, 선택 옵션 버튼).여러 필드 값을 사용하여 필드 채우기
이제 계약 번호 필드를 채우는 데 메서드를 사용했습니다.
public string GenerateContractNo()
{
string sSequence = "";
//IPCode.popSeq(this.CreateNavigator(), this.NamespaceManager, DataSources, this.MainDataSource);
//string seqNo = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:sSequence", NamespaceManager).InnerXml;
string sPortfolio = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:ddlPortfolio", NamespaceManager).InnerXml;
string sYear = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:dtTo", NamespaceManager).InnerXml;
string sMonth = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:dtTo", NamespaceManager).InnerXml;
//string sSeq = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:sSequence", NamespaceManager).InnerXml;
string sFundType = this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:bFundType", NamespaceManager).InnerXml;
//Convert.ToInt16(sSeq);
// return sYear + "/" + sMonth + "/" + sPortfolio + "/" + sSeq + "/" + sFundType;
sSequence = sYear + "/" + sMonth + "/" + sPortfolio + "/" + sFundType;
this.CreateNavigator().SelectSingleNode("/my:myRoot/my:SectionHeading/my:sSequence", this.NamespaceManager).SetValue(sSequence);
//CourseDetails = dtSDate.ToLongDateString() + " - " + dtEDate.ToLongDateString() + " | " + sLocation + " | " + SDCategory;
//CourseDetailsFields = sTitle + "|" + dtSDate.ToLongDateString() + "|" + dtEDate.ToLongDateString() + "|" + sLocation + "|" + SDCategory;
//lstDetails.Add(CourseDetailsFields, CourseDetailsFields);
return null;
}
나는 또한 시퀀스 번호 필드를 채울, PopSeq라는 클래스를 사용하려고했습니다라는 저장 프로 시저를 호출하는 데이터베이스에서 일련 번호 : 간다 ContractNo를 생성 호출되는 방법, , uspGetSeqNo.
static public int popSeq(XPathNavigator xnMyForm, XmlNamespaceManager ns, DataSourceCollection ds, DataSource mds)
{
try
{
SqlConnection conn = new SqlConnection(IPCode.defaultConnectionString);
SqlCommand command = new SqlCommand("[uspGetSeqNo]", conn);
conn.Open();
command.CommandType = CommandType.StoredProcedure;
//XPathNavigator domNav = mds.CreateNavigator();
//string sVendor = domNav.SelectSingleNode("/my:myRoot/my:SectionHeading/my:ddlVendor", this.NamespaceManager).ToString();
//command.Parameters.AddWithValue("@iSequence", s);
SqlDataReader myReader = command.ExecuteReader();
while (myReader.Read())
{
string iSequence = Convert.ToString(myReader.GetOrdinal("iSequence"));
//return Convert.ToInt16(sSeq);
}
}
catch (Exception ex)
{
throw ex;
}
return 0;
}
저장 프로 시저 :
이USE [TAU_PANEL]
GO
/****** Object: StoredProcedure [dbo].[uspGetSeqNo] Script Date: 04/06/2011 08:52:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspGetSeqNo]
AS
SELECT MAX(iSequence) + 1 AS seq
FROM dbo.ResAllocations
그래서 내 문제는 버튼을 저장, 즉,이 계약 번호 필드를 채우지 않습니다 다음은뿐만 아니라 저장 프로 시저의 클래스 . 죄송합니다 나는 C#을 초보자입니다.
덕분에,이 ... 그렇게 할 것 – Martin