Добрый вечер!
Прошу помочь со скриптом для заполнения поля "Поставлено" в таблице товар на форме закупка.
Примерный вид скрипта прилагаю:
var
   i,c: integer;
   k,q: integer;
   s: string;
begin
     Zakupka.Tablenom.BeginUpdate;

     q := Zakupka.Tablenom.Columns.Count-1;
     c := Zakupka.Tablenom.RowCount - 1;
     for i := 0 to c do
     begin
            if Zakupka.Tablenom.Cells[10,i] <= Zakupka.Tablenom.Cells[8,i] then
     begin
     s := Zakupka.Tablenom.Cells[10,i];
              for k := 0 to q do
       Zakupka.Tablenom.Cells[10,i]].Text := Запрос не могу сообразить как корректно указать (примерный запрос ниже) ;
         end;
         end;
           Zakupka.Tablenom.EndUpdate
  end;


SELECT
SUM(SpecEntrance.number)
FROM ZakEnt
LEFT JOIN Entrance ON ZakEnt.id_Entrance=Entrance.id
LEFT JOIN SpecEntrance ON SpecEntrance.id_Entrance=Entrance.id
WHERE ZakEnt.id_Zakupka=' +frmZakupka.Edit4.sqlValue+' and SpecEntrance.id_Nomenklature='+Zakupka.Tablenom.Cells[4,i]'

Файл с базой прилагаю

Добрый вечер!
Таблица ZakEnt, была создана как сводная. В данной таблице я редактирую данные таблицы Entrance. Я не могу вывести все данные в данную таблицу без запроса, поскольку для отображения всех требуемых данных, программно не возможно из-за необходимости показа данных ниже второго уровня. Я могу предположить, что не корректно создал схему связей, гл тут мне порой не совсем ясно как обеспечить заполнение таблиц при иной схеме.

Спасибо! Все получилось, но остался еще один вопрос: почему когда я начинаю правку поступления, то у меня в оне открывается некорректное поступление (не то что я вызываю), а какое-то иное и логику я не понимаю
Фото прилагаю

Извините, щас точно прицепил

Базу приложил.
И еще одна просьба, не могу понять почему когда я кликаю на строку во вкладке поступления, открывается форма со ссылкой на документ не который выделен в строке. Прошу помогите, заранее спасибо

Добрый вечер!
Помогите решить проблему. Таблица заполняется по SQL запросу и мне нужно чтобы так же сформировать подвал с итогом суммы по столбцу. Вывод подвала с применением информации из справочника не помог.
Вот запрос на заполнение таблицы:
frmZakupka.TableGrid2.dbSQL := 'SELECT ZakEnt.id, "$autoinc", Docum.docum, Entrance.nomber, strftime (''%d.%m.%Y'', Entrance.data), Entrance.sum, Purveyor.name, Score.nomscore, strftime (''%d.%m.%Y'',Score.datdscore), ZakEnt.note FROM Entrance LEFT JOIN Score ON Score.id=Entrance.id_Score LEFT JOIN Purveyor ON Purveyor.id=Score.id_Purveyor LEFT JOIN Docum ON Docum.id=Entrance.id_Docum LEFT JOIN ZakEnt ON ZakEnt.id_Entrance=Entrance.id WHERE ZakEnt.id_Zakupka=' +frmZakupka.Edit4.sqlValue+ ' GROUP BY Entrance.nomber';
   frmZakupka.TableGrid2.dbListFieldsNames := 'delete_col, № п/п, Документ, № документа, дата, Сумма, Контрагент, № счета, дата, Комментарий';
   frmZakupka.TableGrid2.dbSQLExecute;

Спасибо за помощь...

Добрый день!
Подскажите как правильно использовать запросы в вычисляемом поле при формировании таблицы.
Суть в том, что хочу чтобы в поле вычислялась сумма из другой таблицы, но не пойму как это привязать к id
таблица 1 (Score)
id
nomer
data
sum
sumpay (вычисляемое)

Таблица 2 (Pay)
id
Pay
id_Score

Формировал запрос: SELECT Pay FROM Pay - дает ошибку при формировании таблицы
Заранее спасибо.

9

(1 replies, posted in Russian)

Добрый вечер!
Помогите с решением задачи по вводу большого массива данных в таблицу.
Возможно ли загрузить в базу, посредствам кнопки данные из таблицы exel?
Заранее спасибо.

Добрый вечер!
Я понимаю, что нужен запрос через кнопку (кнопку уже сделал).
Обновление таблицы "Товар" (nomZak - delivered) данными из запроса написанного в начале топа.
Сначала я делаю выборку товаров согласно поступления по номенклатуре с выборкой по номеру заявки, а потом эти данные обновляют таблицу NomZak-delivererd.

Добрый вечер прошу помочь с обновлением таблицы посредствам данных запроса SELECT
Сам запрос выглядит следующим образом:
SELECT SpecEntrance.id_Nomenklature, SUM(SpecEntrance.number) As Total
FROM Entrance
JOIN SpecEntrance ON SpecEntrance.id_Entrance=Entrance.id
WHERE SpecEntrance.id_Zakupka=180
GROUP BY SpecEntrance.id_Nomenklature
Обновить надо таблицу NomZak по условию NomZak.id_Zakupka=180

Прилагаю проект. Запрос планирую осуществлять посредствам кнопки на окне закупка таблицы номенклатура.
Суть обновления простановка поступивших товаров, согласно данных из вкладки поступления (согласно запроса выше)

А вот на вопрос о корректном отражении счетов на форме закупки, можно дать разъяснение как выправить?

Ну а разве нельзя, чтобы перед началом выполнения запроса сохранить запись счета и после выполнения запроса на копирование и последующее обновление созданных записей ссылаться на данный счет. Только тогда возникает потребность при сохранении формы счета исключить дублирование счетов.

И еще одна просьба помочь с выводом данных в грид счета в форме закупки, при условии добавления в вывод данных из таблицы договор.
Вместо одной записи выдает все договора, картинку прикладываю, должно по сути быть только то что обведено.

pavlenko.vladimir.v wrote:
glkonst79 wrote:

Вот как раз в этом и мой вопрос состоит, как мне сделать так чтобы при создании счета в табличную часть скопировать номенклатуру из связанного договора посредствам нажатия кнопки на форме.
Как я понимаю принцип программы, если бы я начал ручное добавление номенклатуры, то при открытии формы создалась запись счета и данная позиция имела привязку к текущему счету. При нажатии на кнопку заполнить по договору этого не происходит. И по этому мои запрос на копирование данных в спеку счета не возможно привязать к текущему счету.

посмотрел  Ваш запрос

SQLExecute ('INSERT INTO SpeScore (id_Nomenklature, number, price, NDS, priceNDS, sumNDS) SELECT id_Nomenklature, number, price, NDS, priceNDS, sumNDS FROM SpecDog WHERE id_Dogovor=' + frmScore.ComboBox2.sqlValue)

У вас тут данные вообще с разных таблиц, тут вообще все неверно
 
Дайте четкое описание, что и от куда Вы берете!

Я хочу скопировать данные из таблицы SpecDog (номенклатура договора) в таблицу SpecScore (номенклатура счета) выборкой по номеру договора. Все это хочу осуществить на форме создания счета. Надеюсь картинка разъяснит мысль.

Вот как раз в этом и мой вопрос состоит, как мне сделать так чтобы при создании счета в табличную часть скопировать номенклатуру из связанного договора посредствам нажатия кнопки на форме.
Как я понимаю принцип программы, если бы я начал ручное добавление номенклатуры, то при открытии формы создалась запись счета и данная позиция имела привязку к текущему счету. При нажатии на кнопку заполнить по договору этого не происходит. И по этому мои запрос на копирование данных в спеку счета не возможно привязать к текущему счету.

Все сделал как было предложено, но все равно не заполняется грид на форме счета, помогите с решением не может же быть что невозможно перенести данные со спецификации договора в спецификацию счета по нажатию кнопки. И теперь при сохранении счета дублируются и грид пустой.
Проект с запросами по советам прикладываю.

При запросе на обновление, я хотел указать, что все записи со значением id_score = NULL  должны замениться на значение поля indent, которое равно id таблицы Score

Добрый вечер!
Этот архив должен работать

Добрый вечер!
Повторно прошу помочь с решением проблемы по заполнению грида по SQL запросу и последующей привязки к открытой форме.
Вот такой запрос по кнопке:
procedure frmScore_Button6_OnAfterClick (Sender: TObject; var Cancel: boolean);
begin
    SQLExecute ('INSERT INTO SpeScore (id_Nomenklature, number, price, NDS, priceNDS, sumNDS) SELECT id_Nomenklature, number, price, NDS, priceNDS, sumNDS FROM SpecDog WHERE id_Dogovor=' + frmScore.ComboBox2.sqlValue;
  SQLExecute ('UPDATE SpeScore SET id_Score=IF NULL (id_Score,' + frmScore.indent.text+ ')");
  frmScore.TableGrid1.dbUpdate;
end;

После выполнения данного запроса выскакивает ошибка, что отсутствует id (открытой формы Score).
Проект прилагаю, форма счета открывается по кнопке словарь - вкладка счет.

Да, но мне надо осуществить привязку табличной части формы к id счета, а его можно получить только при сохранении формы счета.

Все верно, но данная схема работает когда я начинаю ввод табличной части через новую форму. А в моем вопросе заполнение грида происходит через запрос (без вызова дополнительной формы). Поэтому полагаю не происходит сохранение формы счета и как следствие записи строки в таблице Score из которой мне надо вытянуть id_score для записи данных в столбец при копировании в таблицу номенклатуры счета.

Добрый вечер!
Прошу помочь с запросом на заполнение грида на форме при помощи кнопки с выборкой из таблицы на основании данных в комбобоксе.
Попробывал через INSERT INTO SpeScore (id_score, id_nomenklature, number, price, NDS, sum, priceNDS, sumNDS) SELECT __, id_nomenklature, number, price, NDS, sum, priceNDS, sumNDS FROM SpecDog WHERE SpecDog.id_Dogovor=frmScore.Combobox2.SqlValue
не соображу как привязать id_score без записи формы перед выполнением запроса.

Добрый день!
Прикладываю проект с тремя счетами: 2 с договорами и 1 без договора.
В таблице Consalidate получается полная каша, должно быть так:
счет № 122 привязан к заявкам под порядковыми номерами 21 и 22;
счет № 45666 к заявке с порядковым номером 10;
счет № 7 к заявке с порядковым номером 4.
А почему-то при создании записи в addscore создается не 1 запись, а комплект согласно всех заведенных договоров.

Добрый вечер!
Вероятно да, я не совсем точно описал форму в которую нужно вывести данные, надо в таблицу оплаты в форме закупки вывеси данные из таблицы consolidat, со следующими данными: номер договора, номер счета, контрагент, вид оплаты, сумма.
Что касаемо таблицы Form1, да данное окно осталось с предыдущей версии данной базы, а удалить пока не спешу, поскольку это пока не критичный для меня параметр. А вот данные по счету в форме закупки важны для контроля хода отработки заявки.

Прикладываю проект со связями и сводной таблицей, вроде се по науке, но при введении счета сразу создается пачка по всем договорам.
Помогите м указанием проблемы и ее решением.