C# одна форма две таблицы
У меня есть форма А, которую я ввожу в число в поле поиска и нажимаю кнопку. Если номер найден в таблице загрузки, я открываю форму B и заполняю ее данными из таблицы загрузки. Это прекрасно работает. Когда номер в поле поиска будет найден в таблице истории, я хочу открыть форму B и заполнить ее данными из таблицы истории.
У меня есть код, работающий для заполнения формы B, когда данные находятся в таблице загрузки. Я пытаюсь понять, как использовать тот же код в форме B для заполнения формы, когда данные находятся в данных таблицы истории.
Что я уже пробовал:
Приведенный ниже код заполнит форму B, когда данные будут найдены в таблице загрузки.
public void DisplayRecord(string loadNumber) { var loadresult = GlobalConfig.Load_MainTable.GetByLoadNumber(loadNumber); if (loadresult != null) { if (loadresult.InUseBy == "0") // Record not in use { // Hold the record for current user GlobalConfig.Load_MainTable.TakeOwnership(loadresult.LoadMainId, UserId); // Store the LoadMainId of the current record CurrentRecordId = loadresult.LoadMainId; // Populate form _firstPickUpAccountCode = loadresult.FirstPickUpAccountCode; _lastDeliveryAccountCode = loadresult.LastDeliveryAccountCode; loadNumberValue.Text = loadresult.LoadNumber;
BillWoodruff
Опишите структуру истории и таблицы загрузки. Какие элементы управления находятся на FormB ?
Sandeep Mewara
В чем разница или почему вы не можете применить ту же логику к другой таблице?
Oshtri Deka
Напишите весь метод целиком.
Какова структура обеих таблиц?
Как вы получаете данные из БД?
MIDCOPC
Таблицы те же самые. Один - это текущие данные, другой-исторические данные.
Я стараюсь не дублировать код, если это возможно
Сформировать:
использование SpeadIMLibrary;
использование SpeadIMLibrary.Доступа к данным.Модели;
использование SpeadIMUI.FormTools;
использование SpeadIMUI.Межфазные границы;
использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование системы.Рисование;
использование системы.Окна.Формы;
пространство имен SpeadIMUI.Формы
{
публичный частичный класс AccessorialsMenuForm : Form
{
// Хранит экземпляр родительской формы (LoginForm, который будет)
частная форма _parent;
// Сохраняет идентификатор пользователя текущего пользователя loggid in
частная строка только для чтения _userId;
public AccessorialsMenuForm(родительская форма, строковый идентификатор пользователя)
{
метод InitializeComponent();
_parent = родитель;
_userId = ид_пользователя;
}
частная accessorialsMenuGOButton_Click недействительным(объект отправителя, EventArgs в электронной)
{
if (createModifyReviewAccessorialsRadiobutton.Проверен)
{
ВАР mainresult = GlobalConfig.Load_MainTable.GetByLoadNumber(loadSearchBoxValue.Текст);
//Исправить Тодо замок форма
if (mainresult != null)//load находится в load_mail
{
if (createModifyReviewAccessorialsRadiobutton.Проверено && (!строка.IsNullOrWhiteSpace(loadSearchBoxValue.Текст)))
{
// Pass LoadNumber to LoadProcessingForm
LoadProcessingForm frm = new LoadProcessingForm(this, _userId, loadSearchBoxValue.Текст);
если (ФРМ.IsDisposed == ложь)
{
ФРМ.Показать();
}
loadSearchBoxValue.Текст = "";
createModifyReviewAccessorialsRadiobutton.Проверено = истина;
вернуть;
}
}
else //тест, чтобы увидеть, есть ли в истории
{
var historyresult = GlobalConfig.History_Load_MainTable.GetByLoadNumber(loadSearchBoxValue.Текст);
if (historyresult != null) //load находится в history_load_main
{
// Pass LoadNumber to LoadProcessingForm
LoadProcessingForm frm = new LoadProcessingForm(this, _userId, loadSearchBoxValue.Текст);
если (ФРМ.IsDisposed == ложь)
{
ФРМ.Показать();
}
loadSearchBoxValue.Текст = "";
createModifyReviewAccessorialsRadiobutton.Проверено = истина;
вернуть;
}
}
//TODO: используйте текстовое поле для поиска загрузки, а затем передайте информацию в форму
//LoadFinancialSummaryForm frm = new LoadFinancialSummaryForm(this, _userId, добавьте здесь дополнительные параметры );
//if (_parent is SpeadIMStartForm mainForm)
//{
// форму mainform.openForms.Добавить(frm);
//}
//ФРМ.Показать();
createModifyReviewAccessorialsRadiobutton.Проверено = ложь;
вернуть;
}
остальное, если (accessorialsReportsRadioButton.Проверен)
{
// TODO: измените форму ApplyPaymentForm на форму меню отчетов
//ApplyPaymentForm frm = новая форма ApplyPaymentForm(this, _userId);
//открытые формы.Добавить(frm);
//ФРМ.Показать();
accessorialsReportsRadioButton.Проверено = ложь;
вернуть;
}
еще
{
Ящик для сообщений.Show($"необходимо выбрать переключатель.");
вернуть;
}
}
}
}
Форма B: просто код для заполнения формы:
public void DisplayRecord(string loadNumber)
{
var loadresult = GlobalConfig.Load_MainTable.GetByLoadNumber(loadNumber);
if (loadresult != null)
MIDCOPC
Форма В:
public void DisplayRecord(string loadNumber)
{
var loadresult = GlobalConfig.Load_MainTable.GetByLoadNumber(loadNumber);
if (loadresult != null)
{
if (loadresult.InUseBy == "0") // запись не используется
{
// Удержание записи для текущего пользователя
GlobalConfig.Load_MainTable.TakeOwnership(loadresult.LoadMainId, Идентификатор Пользователя);
// Сохранить LoadMainId текущей записи
CurrentRecordId = loadresult.LoadMainId;
// Заполнить форму
_firstPickUpAccountCode = loadresult.FirstPickUpAccountCode;
_lastDeliveryAccountCode = loadresult.LastDeliveryAccountCode;
loadNumberValue.Text = loadresult.LoadNumber;
shipmentNumberValue.Text = loadresult.ShipmentNumber;
loadStatusValue.Text = loadresult.LoadStatus;
shipperAccountCodeValue.Text = loadresult.ShipperAccountCode;
shipperName1Value.Text = loadresult.ShipperName1;
_shipperName2Value = loadresult.ShipperName2;
_shipperPhoneValue = loadresult.ShipperPhone;
_shipperAddressValue = loadresult.ShipperAddress;
_shipperCityValue = loadresult.ShipperCity;
_shipperStateValue = loadresult.ShipperState;
_shipperZipCodeValue = loadresult.ShipperZipCode;
shipperEmailsValue.Text = loadresult.ShipperEmails;
{
if (loadresult.Send214)
send214Checkbox.Проверено = истина;
}
бковалюэ.Text = loadresult.ВСО;
// Получение списков на основе BCO
LoadAssignmentLists();
LoadOtherSRCList();
// Продолжить заполнение
billToAccountCodeValue.Text = loadresult.BillToAccountCode;
billtoName1Value.Text = loadresult.BillToName1;
_billToName2Value = loadresult.BillToName2;
_billToPhoneValue = loadresult.BillToPhone;
_billToAddressValue = loadresult.BillToAddress;
_billToCityValue = loadresult.Биллтосити;
_billToStateValue = loadresult.Биллтостат;
_billToZipCodeValue = loadresult.BillToZipCode;
{
if (loadresult.Send210)
_billToSend210 = 1;
}
totalWeightValue.Text = loadresult.Общий вес;
totalVolumeValue.Text = loadresult.TotalVolume;
totalQuantityValue.Text = loadresult.TotalQuantity;
totalPickUpsValue.Text = loadresult.TotalPickUps;
totalDeliveriesValue.Text = loadresult.TotalDeliveries;
_stops = int32 значение.Синтаксический анализ(totalDeliveriesValue.Текст) + Int32.Parse(totalPickUpsValue.Текст);
totalMilesValue.Text = loadresult.TotalMiles;
trailerValue.Text = loadresult.Прицеп;
trailerNumberValue.Text = loadresult.Прицеп;
sealNumberValue.Text = loadresult.SealNumber;
// Изменить формат DTP на основе null/MinDate или нет
if (loadresult.TrailerDroppedDate.Равно(Типа Datetime.Параметр minvalue))
{
trailerDroppedDateValue.CustomFormat = " ";
}
еще
{
trailerDroppedDateValue.КР