• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

заміна ID на імя

Автор sergius200803, Травень 08, 2019, 09:16:25

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

sergius200803

Доброго дня. Є потреба створювати рахунок форма замовлення загальний. Тобто, набивати один рахунок форму замовлення від різних постачальників, в новій версії Укр Складу з'явилась (стала активною)можливість вибору колонок, дуже дякую, в яку тепер можна додати ID постачальника потім відсортувати її по цьому ж ID і при перегляді отримуємо чудовий список (перед цим його відредагувавши додаванням поля[DataRep."LAST_POST_ID"]), але цей документ передається далі в руки людині яка не має уявлення кому який ID присвоєний. Так от як можна зробити щоб в друкованій формі замість ID було імя постачальника. Дуже дякую за програму.

admin

Цитата: sergius200803 від Травень 08, 2019, 09:16:25
Доброго дня. Є потреба створювати рахунок форма замовлення загальний. Тобто, набивати один рахунок форму замовлення від різних постачальників, в новій версії Укр Складу з'явилась (стала активною)можливість вибору колонок, дуже дякую, в яку тепер можна додати ID постачальника потім відсортувати її по цьому ж ID і при перегляді отримуємо чудовий список (перед цим його відредагувавши додаванням поля[DataRep."LAST_POST_ID"]), але цей документ передається далі в руки людині яка не має уявлення кому який ID присвоєний. Так от як можна зробити щоб в друкованій формі замість ID було імя постачальника. Дуже дякую за програму.

Пока <DataRep."LAST_POST_ID"> это просто поле БД, к сожалению вы с Архива документов не сможете просмотреть документ, пока в программе не добавим переменную "ID поставщика", делать отдельную выборку к базе по каждому товару тоже нагрузка на базу, да и вообще не очень метод. Ниже, пример решения. Включаем для накладной Двойной проход, меню Отчет : Свойства : Два прохода. Далее в Коде добавляем делаем след:

TStringList slProizv;
String sProizvSelect;

// событие перед печатью заголовка                                                                                   
void Band1OnBeforePrint(TfrxComponent Sender)
{
  // если не последний проход
  if(Engine.FinalPass == false)
  {
    //заполняем SQL выборку
    if(Band1.DataSet.RecNo != 0)
      sProizvSelect = sProizvSelect + ",";
    sProizvSelect = sProizvSelect + IntToStr(<DataRep."LAST_POST_ID">);
  }
}

// событие перед печатью строки                       
void Band2OnBeforePrint(TfrxComponent Sender)
{
  // если последний проход       
  if(Engine.FinalPass == true)
  {
    FIBQuery1.SQL.Text = "SELECT c.num, c.fio FROM client c WHERE num IN (" + sProizvSelect + ")";
    FIBQuery1.Open();
    slProizv.Clear();
    //делаем выборку названий Производительней и заполняем массив                                                                                                                                                           
    while(!FIBQuery1.Eof)
    {
      slProizv.Add(FIBQuery1.FieldByName("num").AsString + "=" + FIBQuery1.FieldByName("fio").AsString);
      FIBQuery1.Next();
    }
    FIBQuery1.Close();
  }
}

void RepOnStartReport(TfrxComponent Sender)
{
  //создаем массив                                         
  slProizv = TStringList.Create();
}

void RepOnStopReport(TfrxComponent Sender)
{
  //удаляем массив       
  slProizv.Free();
}

{
  //очищаем переменную выборки                                                                 
  sProizvSelect = "";
  //стандартый код накладной                                                             
  if(<Товарно-транспортные> > 0)
    Pole2.Visible = true;
  else
    Pole2.Visible = false;
  if(<Скидка.Цифрами> != 0)
    Pole1.Visible = true;
  else
    Pole1.Visible = false;
  if(<Сумма.Акциз> > 0)
    Child2.Visible = true;
  else
    Child2.Visible = false;
}


Далее в отчете показываем поставщика переменной: [slProizv.Values[<DataRep."LAST_POST_ID">]]

Файл печатной формы прикрепили


sergius200803

Дякую. Обов'язково спробую. Але боюсь в мене квола IT-хромосома :)

admin

Цитата: sergius200803 від Травень 16, 2019, 17:22:47
Дякую. Обов'язково спробую. Але боюсь в мене квола IT-хромосома :)

:) для этого прикрепили пример готовой накладной, должны разобраться, если что не понятно, всегда спрашивайте.

sergius200803

Цитата: admin від Травень 17, 2019, 10:53:55
Цитата: sergius200803 від Травень 16, 2019, 17:22:47
Дякую. Обов'язково спробую. Але боюсь в мене квола IT-хромосома :)

:) для этого прикрепили пример готовой накладной, должны разобраться, если что не понятно, всегда спрашивайте.

підтягнув ваш файл через  "Дизайнер/Завантажити з файлу як новий",  відривається редактор https://ibb.co/r0tDz4Y тисну на перегляд і https://ibb.co/tQWKMHV

admin

Этот шаблон сделали для Расходной, а в вашем документе нет этих переменных, просто удалите поля на которые будет ругаться + в Коде:
  //стандартый код накладной                                                             
  if(<Товарно-транспортные> > 0)
    Pole2.Visible = true;
  else
    Pole2.Visible = false;
  if(<Скидка.Цифрами> != 0)
    Pole1.Visible = true;
  else
    Pole1.Visible = false;
  if(<Сумма.Акциз> > 0)
    Child2.Visible = true;
  else
    Child2.Visible = false;

sergius200803

Велике дякую. Розібрався. Тут є прикол, якщо відкривати документ з "архіву документів" подвійним кліком, то буде помилка, а якщо перш клікнути на "редагувати" а потім "продивитись" то все відображається як треба. Дякую. Гарного вам настрою.

admin

Цитата: sergius200803 від Травень 23, 2019, 17:11:41
Велике дякую. Розібрався. Тут є прикол, якщо відкривати документ з "архіву документів" подвійним кліком, то буде помилка, а якщо перш клікнути на "редагувати" а потім "продивитись" то все відображається як треба. Дякую. Гарного вам настрою.

Все верно, выше же писали:

Цитата: admin від Травень 16, 2019, 12:28:17
Пока <DataRep."LAST_POST_ID"> это просто поле БД, к сожалению вы с Архива документов не сможете просмотреть документ, пока в программе не добавим переменную "ID поставщика"

В след. версии уже будет переменная [Товар.Поставщик.Номер]